16歲的我是如何成為全棧開發人員的?
我與計算機技術的緣分要從我七歲的時候說起,當時的我擁有了人生第一臺計算機,這為我打開了一個新世界,其內置的 Win 7 系統對當時的我來說是世界上最精彩、寶貴的東西。14 歲的時候,我獲得了第一份“工作”,16 歲,我有了一個新夢想——移動應用開發夢想。
先來解決第一個問題:我是誰?
我叫 Nuno,今年 16 歲,來自葡萄牙。今天,我想跟大家聊聊我是如何成為一名全棧開發者(至少算是廣義上的全棧開發者)的。
首先,我覺得我這個年紀的人接觸編程并不算什么新鮮事。因為我身邊就有很多同齡的朋友,他們特別希望能夠開發出像《俠盜獵車手 5》或者《皇室戰爭》這樣的游戲,而且有幾位還真的就開始了追夢之旅。他們學習編程、熱愛編程,如今開始著手開發自己的獨立游戲作品。
第二,隨著市場上應用程序的數量越來越多,很多年輕人借此成了百萬富翁(例如 Mark Zuckerberg 和 Evan Spiegel)。他們的創業思路看起來非常簡單,所以很多年輕人會想,“我為什么不試試運氣呢?”但也有不少人看到代碼就覺得害怕。反正每次我向兄弟姐妹展示自己的代碼時,他們就連連搖頭,“看不明白你在寫什么東西。”
我媽媽也差不多是這樣,她看到我用 C# 編程之后,關心地問我是不是在做炸彈。當然,她是在開玩笑,因為她最后笑場了。但我確實得向她解釋,我這是在編程。
我爸爸完全不知道 Python 是什么,所以我打算幫他寫一個簡單的 Python 腳本來完成某些自動化操作。不過在向他解釋必須單擊文件才能讓腳本運行時,他看起來一臉迷茫。
無論如何,即使面對著如此恐怖的代碼,很多年輕人仍然義無反顧地愿意投身進來。事實上,編程本身的難度也確實在逐步下降。看看互聯網上那么多的框架和庫吧,儲量豐沛,專為簡化流程而生。代碼本身雖然枯燥,但學習的過程卻豐富多彩。
我的編程之旅:起點
我一直很喜歡互聯網和信息技術。我 2003 年出生,所以我接觸的第一臺計算機上裝的就是超經典的 Windows XP。我真的很喜歡 XP,它簡直太棒了。我花了好幾個小時玩彈珠臺游戲,還用畫板應用涂涂劃劃。另外,我還玩了一會兒《瘋狂出租車》和《模擬人生》等游戲。總之,我對技術很感興趣,而且總想知道眼前的事物是怎樣運作的。
大概是七歲的時候,我有了自己的第一臺電腦。在葡萄牙,家長通常會在小學二年級的時候給孩子買臺筆記本,就是下圖里這臺。它叫“麥哲倫(Magalhães)”,紀念的當然是葡萄牙探險家麥哲倫啦,這是二年級小孩們最想要的東西了。里面預裝了不少教育課程,對 7 歲的孩子來說就像是個全新的世界。它使用的是 Windows 7 系統,這套系統對我來說就像是宇宙里最精彩、也最寶貴的東西。
麥哲倫 2 代——2010/2011 年的時候 7 歲小朋友們最想要的禮物。
但“王權沒有永恒”,最后這臺電腦壞了。我爸爸把它送去修,雖然毛病修好了,但運行速度變得很慢,基本沒法用。(我說的「用」,就是拿來玩游戲。我那時候特別喜歡玩游戲。)
接下來我又有了第二臺電腦,我記得我爸爸還買了一臺壞的麥哲倫電腦,打算出毛病的時候拆上邊的配件來換。可能他覺得無論我的東西出了什么問題,他都能修好吧。但無所謂的,因為我終于有了一部臺式機,雖然沒有麥哲倫那么有趣,但性能可要好得多啦。
就在這時候,我突然冒出了一個改變了自己人生的神奇念頭:既然我爸修不好原先那臺麥哲倫電腦,我想我可以用配件組裝一臺個人游戲機。
OUYA,這是我編程旅程中最重要的靈感來源。
當時的我,并不知道自己的決定意味著什么……
我當時聽說過一臺名叫 OUYA 的主機,它給我留下了非常深刻的印象:這是一臺基于 Android 系統的全新主機,能夠自由修改并創建游戲。所以,我想弄一臺只屬于自己的麥哲倫游戲主機。
相信大家肯定能想到,我當時沒能——實際上到現在也不能——完成這項目標,其中涉及的專業知識量多得驚人。但我還是非常興奮。在閱讀了互聯網上的一些文章之后,我決定學習 C 語言加匯編語言來構建自己的操作系統。
我真的感覺這事不是很難……
然后,在看到第一行匯編代碼的時候,我就哭了。好吧,并沒有真的哭出來,但大家應該明白我的感受:一個美好的主機夢,就這樣胎死腹中。
時間快進到幾年之后,我和朋友又打算創辦一家像微軟或者蘋果這樣的公司(當時我 13 歲)。這又是個令人興奮的打算,我們會開發眾多程序與應用、聲名大噪,然后每天坐著數錢。
這就是我們的夢想……
那還等什么,馬上開始吧!那么,創建這家大企業、豪賺數百萬歐元的第一步應該是什么?
對了——先創建一個 Facebook/Twitter 頁面。
在此之后,我們又開始動手創建應用與程序。但那時候我和我的朋友還完全不懂編程,一點也不懂。我們做的事情跟 Python、Java、PHP 甚至是我的老朋友 C 語言一點關系都沒有!
那我們是在干嘛?實際上……
我們根本就沒有學習編程。相反,我們覺得可以在 YouTube 上建個頻道,專發如何使用 Visual Basic 創建一款網絡瀏覽器。
對我們的這家大公司來說,這真的很有創意,對吧?
而且不怕告訴各位,我們的瀏覽器真就成功了!我甚至在 Weebly 上創建了一個網站(加上.com,我設法說服父親給我買了個域名,真的)將其分享給全世界。
但是,沒人關心我們的成果。
但這無所謂。首次嘗試,代表著我正式踏出了編程學習的第一步,也是我如今能夠成為開發人員的原因所在。這是我第一次接觸 Visual Basic(之前我也試著學過 Java,但放棄了)并真正開始編程(雖然我所做的,只是復制粘貼教學視頻里的內容)。
我的編程之旅:真正的起點
現在,我要說說如何正確學習編程了。在有了以上愉快的經歷之后,我意識到自己必須認真學習編程,而不能只靠 YouTube 視頻幫自己構建那些實驗性的網絡瀏覽器,向大家隆重介紹我的恩師:Codecademy!
Codecademy 是迄今為止我在編程學習過程中接觸到的最有用的網站之一。它跟 freeCodeCamp 有點類似(我去年才知道這個網站,它同樣非常出色),但我覺得 Codecademy 在某些方面做得更好。
我的第一段歷險是探索 Python 世界。Python 簡單、快速、有趣,是最理想的編程學習起點!它跟英語只有一點點區別(英語老師說我英語學得不錯,可能這也是我喜歡 Python 的原因吧)。
學了一陣子之后,我的好奇心更加強烈。所以我開始學習 PHP,當然只是出于興趣(我不想開發網站,網站真的很無聊……)。我有個朋友,是 PHP 方面的天才。聽了他的建議,我也踏上了這條學習的道路。
很快,我就掌握了 PHP 和 Python 的基礎知識。但是后來,我發現了一個 YouTube 頻道,它徹底改變了我的開發思維。這是一個巴西頻道,名叫 Curso em Vídeo,里面有不少編程課程,來自一位名叫的 Gustavo Guanabara 優秀大學老師。
這個頻道讓我真正朝著專業的方向邁進。
我在這里上的第一門課程叫算法與編程邏輯。學習編程邏輯非常重要,有了對它的理解,我才能真正消化很多編程基礎知識。
在此之后,我開始專注于學習 PHP、Java(我最大的夢想,因為我一直想開發 Android 應用)、HTML/CSS 以及 JavaScript(現在對我來說非常重要)。
我也嘗試過學習一點 C 語言知識(只是基礎),并發現這真的是有門檻的。例如,我在理解指針的概念時就感到非常困難。但至少我已經了解了最基礎的情況,能夠編寫出簡單的 C 程序了。
我的編程之旅:“海綿期”
在完成以上工作后,我感覺并不開心。因為在最初開始學習編程時,我最大的夢想就是能夠開發出自己的桌面和移動應用程序。但出于某種原因,我一直不喜歡開發網站,到現在也不喜歡——而且我也說不出個所以然來。
我的一個朋友(就是當初那個打算跟我一起開大公司,而且很擅長 PHP 的朋友)告訴我,他認識的一個人手頭有個大項目,前景光明、沒準能發展成一家真正的企業。
這個項目是開發網站,后端加前端。
但作為一個 13、14 歲的孩子,當時的我并不關心這些。我想的是,既然朋友都參加了,那我也得參加。雖然學習的內容多了一點,但我畢竟也只是個普通的同齡人,那么大的時候大家都又愚蠢又容易嫉妒。反正朋友能去的,我也得去。
我跟朋友提到的那個人談過了,最終決定以股權的形式(大約是占股 10%)幫忙開發網站。這個項目,還有他們的計劃,都讓我非常振奮。
好了,這就是我第一份“工作”的故事:我當時 14 歲,學過 PHP、HTML/CSS 和 JavaScript,而且對自己的朋友充滿嫉妒。
挺“專業”的吧~
我的編程之旅:現在進行時
現在我 16 歲了,我的編程之旅也遠沒有止步。在意識到 Web 開發與移動開發將成為我的飯碗之后,我開始學習更多關于 PHP、數據庫(MySQL 與 MongoDB)、API、JSON、HTM/CSS 及其框架(Bootstrap、Sass/Less 等)甚至是 JavaScript(ES6、Node.js 等)的專業知識。
剛開始我打算學習 React,而且在它、AngularJS 和 Vue.js 之間掙扎了很久。但事實證明我選對了,學習 React 的過程中我接觸到了 React Native,這幫我一步步走近自己心中的移動應用開發夢想。
現在,我想我已經掌握(至少了解)了以下技術:
- HTML/CSS (及其框架)
- JavaScript (MERN stack、NodeJS 等)
- PHP (但我很后悔沒有學習 Laravel, 目前只會用 CodeIgniter)
- 數據庫 (MySQL、MongoDB)Java
- Python
- C# (只會一點點,好在它跟 Java 比較類似)
- C (會一些。我用得不多,主要是用來擺弄 Arduino)
- API (了解如何開發并使用 REST API)
現在,我再不像以前那樣專注于編程。我喜歡編程,每天也都在做相關工作,但我更關注加密貨幣、商務以及人工智能,這些都是我接下來的學習重點。
我現在最大的項目就是用 Python 編寫的加密貨幣投資機器人,我覺得它有很大的發展潛力。
另外,我很慶幸自己學習了 UI/UX 設計,這些知識為我在網站上開發出良好的主題與設計做出了重要貢獻。
總結
希望大家喜歡這篇文章。對于那些跟我同齡,而且也在考慮學習編程的朋友們,我的建議是:不要想,馬上去做!編程是我在整個人生中最難忘的一段歷程,同時也讓我有了豐富而精彩的回憶。總之,這段旅程越早開始越好!