自學的程式設計師如何找到好工作?

Brian Knapp發表於2017-07-02

2016 年有位年輕的程式設計師在 Quora 上提問求助:

我今年 17 歲,從 14 歲開始程式設計。我主要關注 Java 語言,並在 AP 電腦科學這門課上拿了 5 分。我相當精通 Java(比如語法、主要類、GUI/JFrame 等),HTML5 和 CSS3 也不錯。我感覺自己缺乏很多有用的技能,來幫助我在人才市場上推銷自己(比如資料庫的工作原理,以及我應該使用哪些工具),我很好奇其他人是如何學習這些東西的。我打算去大學拿一個軟體開發的學位,但我開始感到有點沮喪,覺得讀大學的目的就是為了工作。現在有哪些我應該上的課程,或者應該做的事情嗎?

自學的程式設計師如何找到好工作?

下面是 Brain Knapp 的回答分享︰

我認為你的看法錯了。你覺得你需要上課,讓別人來教你,告訴你答案。從根本上講,自學的程式設計師能夠做不一樣的事情。

自學的程式設計師和自學的吉他手有很多共同點。我不知道你是否玩過吉他,所以我將向你解釋如何自學吉他。

首先,這一切的開始是由於某人與某個吉他手產生了共鳴。大多數突然想要自學吉他的人,是想要成為另一個吉他手。之後,他們下定決心——“我也可以成為一個吉他手 ”,於是去了當地的樂器店,買了一把二手吉他(因為二手吉他更便宜,但也很酷)。

接下來可能會有兩種情況,要不買一本“吉他入門”或類似的書籍開始自學,要不開啟 YouTube,開始學習如何彈奏自己喜愛的歌。那些嘗試學習彈奏喜歡的歌的自學者,往往學得更好。

當年輕的吉他手主動地學習某首歌時,他們往往需要觀看視訊、列印曲譜、練習和絃等等。然後,根據拿到的視訊和曲譜,他們會坐下來嘗試重新演繹歌曲。

經過數小時的練習,不斷重複和絃、獨奏、節拍等,他們將能夠以自己的形式表演那首歌。它不再是原來那首歌,但也夠酷。

然後,他們會拿起另一首歌,重複這個過程。一路走來,他們不斷學習節拍、技術以及其他的東西,甚至都沒有意識到學習的內容。在知道專業名詞和理論前,他們已經懂得如何操作。

最終,彈吉他變成了一種“直覺”,學習一首新歌也變得習以為常且不再痛苦。吉他的“語言”變得像你我說話那樣容易。

這一切的發生,背後是數千小時的艱苦練習。即使每天只練習一小時,也需要耗費數年。

那麼,這和自學的程式設計師有什麼關係呢?

事實上,真正成就自學的程式設計師的,就是他們會自己建立東西,很多東西。要成為一個具有卓越技能的出色程式設計師,你必須建立東西,寫程式碼。

上課學習理論知識固然是好的,但很多教授不能跳出條條框框的束縛,以自己的方式程式設計。就算他們努力嘗試,也做不出別人願意用的應用程式。

這並不是說他們不瞭解教授的知識,而是說,作為一名教授,他們掌握的技能是研究和理論性理解,而不是寫程式碼和為客戶提供價值。

你看到區別了嗎?

我合作過的最好的程式設計師,他們的工作方式就是做東西,做很多東西,並且幾乎一直這樣。

例如,現在幾乎每個人都使用 WordPress。在 WordPress 出現很久之前,我就用 PHP 和 MySQL 建立了 3 到 5 個不同的內容管理系統。我寫過遊戲、移動應用程式、框架,還有 SAAS 應用程式。

沒人付錢讓我做這些事情。我做這些事純粹是出於好玩、學習或好奇的目的。

我已經好幾年都沒有上過課了,即使上了,我也不覺得這會對我的事業有任何幫助。然而,如果我決定坐下來,從頭開始建立我自己的計算機語言或作業系統,我打賭我一定能在過程中學到很多有趣的東西。

是的,我可以帶著那些想法上課,但在建立東西,犯下錯誤,以及真正“體會到”這一切的經歷中,相比讀一本書或聽一次講座,我能收穫更多。

因此,我給你的建議(如果你做到了,相比沒有做的那些人而言,會帶給你巨大的優勢),就是:

解決一個你想解決的問題建立一個用於某件事的軟體,解決一些你本人或他人想要通過軟體解決的問題。每天為這個軟體寫程式碼,晚上寫,週末也寫,每天都寫。即使你每天只花了 15 分鐘寫程式碼,也沒關係。

最終,你將得到一個能用的軟體,這很不錯。

然後,你再重複這一過程。做一個其他的東西。不斷地做。花費大量的時間,通過建立更多的東西來提升你的技能。

做東西的同時,注意在你的網站上儲存工作,並將其放在一個作品集中。每次你結束了一個專案,就將它上傳到 Hacker News、Reddit 或其他什麼網站,併發條關於它的博文。

你現在僅僅 17 歲,當你 20 歲的時候,你已經輕鬆地將兩千多小時用於鍛鍊技能,你的個人作品集中也有了大概十到二十多個軟體,你學習到的經驗是那些僅僅上課的人無法比擬的。

更重要的是,你已經清楚地告訴別人,你能夠獨立地寫程式碼,解決問題並給世界帶來一些新東西。這是最難能可貴的一點,也是公司在不斷追求的一點。

一旦你找到了工作,請繼續在業餘時間建立東西,並提升你的工作技能。你的提升速度將比你的同事更快,因為他們在下班回家後看電視,而不是學習、成長或建立東西。他們拿到了薪水就回家享受去了。

你做的越多,你學的也越多;你學的越多,你的價值就越高;你的價值越高,你就越容易找到工作,你的工資也就更高,這是一個良性迴圈。

所以,去做些東西出來。現在就開始寫程式碼吧!

相關文章