16歲的我是如何成為全棧開發人員的?

2019-09-13 06:38:25

作者 | Nuno Martins
編輯 | 核子可樂
我與計算機技術的緣分要從我七歲的時候說起,當時的我擁有了人生第一臺計算機,這為我打開了一個新世界,其內建的 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 設計,這些知識為我在網站上開發出良好的主題與設計做出了重要貢獻。

   總結     

希望大家喜歡這篇文章。對於那些跟我同齡,而且也在考慮學習程式設計的朋友們,我的建議是:不要想,馬上去做!程式設計是我在整個人生中最難忘的一段歷程,同時也讓我有了豐富而精彩的回憶。總之,這段旅程越早開始越好!

原文連結:

https://medium.com/better-programming/how-i-became-a-16-year-old-full-stack-developer-10af18a8f6c7


活動推薦

與無人駕駛(或輔助駕駛)技術類似,AIOps 目標是通過數值驅動手段,藉助演算法、建模、推理等方法輔助 DevOps 提升效率,把經驗問題轉變為一個算力問題。在12月6日北京ArchSummit會議上,屆時會邀請阿里等公司技術專家來分享AI探索經驗,歡迎點選“閱讀原文”瞭解細節。

已同步到看一看



熱點新聞