向矽谷的 90 後取經 如何成為受歡迎的工程師?

評論
評論

134534699485

本文轉自虎嗅網 《程序猿看過來~就算没有 祖克柏 的文筆,也能一步步建立個人品牌》

在工作​​中,我常常和矽谷地區的工程師交流,時常討論這樣一個話題:什麼樣的工程師,在矽谷是最受歡迎的?

90 後矽谷工程師 Feross Aboukhadijeh 是一個極好的學習榜樣。他並非祖克柏那樣的矽谷明星,但作為普通矽谷工程師的一員,對於大多數工程師來說,他是一個透過努力可以到達的學習榜樣。他的經歷不僅僅對嚮往矽谷的工程師有幫助,對所有不再矽谷工作的工程師,都有很好的啟發。

下面分成四個部分來闡述,第四部分是 Feross 分享的他如何學習編程的經歷。

 

一、建立自己的個人品牌

 

在水準相同的情況下,擁有更高社交影響力的工程師,在職場中佔有更大的優勢和更多的機會:在換工作時擁有更多的選擇,更多的與同行中的佼佼者學習交流的機會,還總有人邀請你加入他的創業團隊當 CTO —— 不一定要做出改變的決定,但有更多的機會和見識總是好的。

和祖克柏編程能力相當的工程師,很難有和他一樣的影響力,這是建立個人品牌的魅力。你不必擔心說:我沒有那麼好的文筆,也錯失社群網站的發展紅利期。條條大路通羅馬,只要願意在網路上分享,你就離成為下一個祖克柏近了一步。

一些方法可以幫你事半功倍,比如建立你在網上的個人主頁。它可以是獨立 Blog 的 about 頁面,也可以是你的 about.me 帳戶。然後在你的 Facebook、Line、微博、知乎、微信、Github、V2EX、技術社區的主頁上放上它的鏈接。就像涓涓細流匯成大河一樣。
讓我們看看 90 後矽谷工程師 Feross 的做法。他在 Github 上擁有 2300 名關注者,8390 名推特粉絲,在問答社區 Quora 有 12500 名關注者。他在這些網站主頁上都附上了個人主頁:feross.org。

 

1351128977

 

從 Github、Twitter、Quora 吸引來的網路訪客,在這裡開始了解他:畢業於史丹佛,在 Facebook、Intel、Quora 工作過,還有他的項目經歷、他的愛好等信息。

 

二、什麼樣的履歷是「完美矽谷求職履歷」

 

個人品牌影響力 = 能力水準 × 傳播度

經驗豐富、能力突出的工程師,如果不善於在網路上分享,“酒香也怕巷子深”。前一部分便敘述了對此的解決方法。但自身能力才是根本,如果技能不夠,再傳播無濟於事。

履歷是求職的第一步。作為一個工程師媒介平台的營運者,我閱讀過數以萬計的履歷,但 Feross 的履歷是我見過的最完美的履歷之一。在這裡貼上一部分:

 

1353098044

 

這份簡歷至少在這兩點非常出色:

 

1、完美的版型

 

HR 每天要看不計其數的履歷,眼花繚亂的狀態下能看到這樣美觀清晰的履歷,簡直是一種視覺享受。

一份能被 HR 和技術負責人看懂的履歷,才是真的好履歷。這種看懂包含兩方面:一是履歷結構清晰、資訊充足但不冗雜;二是要讓不懂技術的 HR 也能從履歷中清楚地讀懂你的經歷和項目經驗。在這兩方面,Feross 的履歷都堪稱完美。

特別要強調後一點。在網路公司裡,HR 要對技術有一點了解是必須的。但無奈有的工程師履歷寫得深澀難懂,甚至不是同方向的其他技術人員都看不懂,更遑論 HR 了。 “ HR 水準不夠看不懂履歷,不是我的責任”,永遠不要有這樣的想法。

 

2、從這份履歷透露出的經歷

 

史丹佛畢業的教育背景、知名矽谷公司的工作/實習經歷、創辦過公司並被雅虎收購、豐富的項目經驗、有影響力的事蹟,還有 Organizations 、 Hackathon Wins 、 Awards 等加分大殺器。這樣的履歷就是“完美矽谷求職履歷”。

比如 Projects 中的 Youtube Instant,我們從連結中得知 Feross 的光輝事蹟:

Feross 在史丹佛上大三的時候, Google 推出了一項新功能 Google Instant ,可以即時顯示搜索結果。 Feross 覺得也可以為 YouTube 開發一個服務,讓 YouTube 即時顯示影片。於是他用 3 個小時完成了 Youtube Instant 網站。

有一百萬人在 10 天內訪問了這個網站。 Feross 因此收到了來自 Youtube CEO 的 offer ,還有 Engadget 、 TechCrunch 、 NY Times 等一票知名媒體報導了這事。

 

三、善用 Github

 

Github 對於工程師來說,是一種生活方式。越來越多的公司在招聘時,技術負責人會關注求職者的 Github 。我所在的公司 100offer,也鼓勵用戶在填寫簡歷時附上自己的 Github 主頁。

這是 Feross 的 Github:

 

1358557698

 

當然,為了表面好看去刷提交次數或者 star ,是沒有意義的。善用 Github ,對求職、精進自己的代碼水準、擴大在同行中的影響力,都有非常好的正面作用。

 

四、Feross Aboukhadijeh 是如何學習編程的

 

Feross Aboukhadijeh 在自己的 Blog 上記錄了 自己學習編程的經歷 , 同時發表在 Quora 上獲得了四位數的讚同。

現在全文翻譯如下:

 

我是怎麼學習編程的——別人常常問我這個問題,特別是在我建立了 Youtube Instant 網站並被很多媒體報導之後。在這裡我決定分享我的經歷。

一句話以概之:我學習編程的方法,就是大量創建網站。

我在很小的年紀就開始學習編程,學習的方法就是創建大量的網站。下面我將介紹幾個自己創建的網站,其中最早的一個,是我在 11 歲的時候開發的。我希望讀者能從我的敘述中了解到:如果你想學好編程,做大量的練習性項目是非常重要的。

學習一種技術最好的方法就是練習、練習、練習。我知道的所有優秀的程序員都非常享受編程——編程是一件讓他們樂在其中的事情,所以他們大量編程,甚至常常到達廢寢忘食的程度。學會如何編程——還有如何做好這件事——並不需要有超出常人的能力。只要你願意動手開始做就行。

 

下面就是我如何學習編程的故事:

 

一、我的第一個網站

 

1030203570
在我十一二歲的時候,我決定給自己做一個網站。我記不清那時為什麼想到要做一個網站,只記得這樣我便開始做了。於是,我開始在網絡上搜索關於網頁、瀏覽器、HTML 工作原理的知識。雖然在這過程中,我發現網上很多信息已經過時了,甚至是明顯的錯誤(例如為 IE 和 Netscape 瀏覽器分別建立網站),但這個過程讓我覺得非常有趣,學到了很多新知識。

儘管在網絡上得到的信息質量層差不齊,我最終還是完成了一個簡單的網站,我稱之為“ Feross 的網站”。我用 Frontpage 開發了它,那是一個很棒的所見即所得的 HTML 編輯器。我用很常見的語法,比如粗體和斜體對網站做修改,在編輯器裡即時查看這些 HTML 標記的效果。這是個非常有效的學習方法。

這是我的第一個網站的截圖,現在它已經不存在了。

 

1030532976

 

這個截圖不能完全反映網站的狀況:事實上,網站上的每個元素都在動,有閃爍的動畫,還有聲音。我在網站的每個網頁上都放了不同的 MIDI 格式的歌曲,並且全是自動播放,無法把它們停下來,除非把電腦設成靜音。哈,在當時這是很流行的網頁設計風格。
過了幾年後,我重新設計了這個網站,使它變得更美觀。我在網上找了一些免費的網站模板並使用它們,還用微軟的畫圖工具修改圖片。

 

1031305652

 

雖然我在建立網站的過程中大量依賴現成的模板,但這仍然不失為一個學習 HTML 和 Web 瀏覽器的好方法。 “ Feross 的網站”除了用來收集我小時候的一些影片外,沒有其它用處,所以不久後我便對它失去了興趣。

 

我第一個真正的項目

 

在我 9 年級,也就是我 14 歲的時候,我和朋友們都沉迷於在 Newgrounds 和 eBaumsWorld 等網站上觀看 flash 視頻和動畫(這是 2005 年之前,那時 YouTube 還沒有出現)。我每天花大量的時間泡在這些網站上,所以我熟知所有最棒的影片和遊戲。

我產生了一個想法:如果我做一個網站,收集所有我喜歡的 flash 動畫、影片、遊戲,那真是一件非常酷的事情。於是我便做了 FreeTheFlash 網站,它是這樣的:

 

1032140110

 

感謝我在開發“ Feross 的網站”過程中學到的 HTML 知識,同時我還使用了 Macromedia 公司——也就是現在的 Adobe ——製作的 Dreamweaver 編輯器,通過這個軟體,我可以在網站重複的頁面上使用同一套模板。

 

1038219170
過了一段時間,我想到可以讓網站動起來。我聽說可以用一種叫做 PHP 的編程語言來做(動態的)網站,於是我花了 20 美元在 Amazon 上買了一本書,叫做《PHP and MySQL for Dynamic Web Site》。我通過學習,使用 PHP 和 MySQL 重新設計了網站,同時還對它進行了新的美化:

 

1033291068

 

在我讀高中的時候,我對 FreeTheFlash 網站的開發持續了 2 年。這是我第一次嘗試做一個“真正的”網站。對於一個初手來時,這個網站是成功的——在 2006 年,它獲得了 60 萬人次的訪問,以及 300 萬的頁面瀏覽量。 FreeTheFlash 讓我感受到,做出一個成功的產品並看大量的人使用它,是一件多麼自豪的事情。從此,我決定做出更大更好的網站。

 

我的第二個網站

 

在中學時期,我在計算機課上做了很多筆記。在我 11 年級的時候,我決定把這些筆記放到網上,讓那些不喜歡看課本的學生使用。我做了一個叫做 StudyNotes 的網站。在開發過程中,我使用了 PHP 和一種叫做 Joomla 的內容管理系統。我也嘗試使用 Drupal,但最後發現它太複雜了。

 

1034090673

 

還是這一年,我為學校的 Key 俱樂部建立了一個網站。

在這段時間裡,我花了很多時間泡在  WebmasterWorld  論壇裡,這裡有很多網站站長和 SEO 專家,他們推測 Google 的算法,討論 AdSense 技巧,調整網站問題等。

 

大量的學習和閱讀

 

在我進入史丹佛大學後,我學習了大量的計算機課程,諸如 CS106X 和 CS107 ,我還提前學習了一些 CS106 課程。

我把所有的課餘時間都花在閱讀設計、編程、瀏覽器和 JavaScript 等領域的資料,平均每天 4-5 個小時。我在讀些什麼?五花八門,什麼都有。其中有大部分,是我敬仰的設計師和工程師寫的部落格。

 

一件意義重大的事

 

那是 2010 年的夏天,我在 Facebook 實習的時候,因為和一個朋友打賭,我開發了 YouTube Instant 網站,它可以讓人們即時搜索 YouTube 上的影片。這個網站在建成後的 10 天裡獲得了一百萬用戶的訪問量,甚至連 YouTube 的 CEO 都表示願意給我一個 offer 。你可以點擊 這個鏈接 閱讀媒體們對這件事的報導。

我很清楚地明白,YouTube Instant 的成功歸功於好時機和幸運。

 

1039239161.jpg
繼續前進

 

我發現有很多人使用 YouTube Instant 來聽音樂視頻,這讓我想到了另一種使用 YouTube API 的好方法。於是我和朋友 Jake Becker 在 2011 年的前 3 個月裡開發了 Instant.fm,它能讓人們輕鬆地向朋友分享音樂播放列表。通過這個項目,我們學到了很多新東西。

 

1040247321
在這個項目裡,我學到的技術:

  • jQuery
  • CSS(以及 Modernizr 和 YepNope,幫助人們解決跨瀏覽器問題)
  • Python
  • Tornado
  • Git&GitHub
  • Last.fm API
  • YouTube API
  • 團隊合作

還有其它一些我們學到的東西:

  • Nginx
  • Supervisor
  • SQLAlchem​​y
  • Apache Ant

 

動手去做

 

我詳細敘述了我從 11 歲開始做的東西,就是希望能告訴你:如果你想學習編程,你需要動手開始做!現在就去做,不要找任何藉口。動手做是最好的學習方法。

把編程語言書從頭讀到尾是一件很枯燥的事,常常讀到一半你就堅持不下去了。但如果你打算做一個項目,你會在做的過程中明白自己應該​​學習哪些知識,這是學習知識更有效的途徑。

 

計算機課程

 

大學裡的計算機課程,是另一種十分有效的學習編程的方法。那些好的計算機課程,都十分強調學習計算機科學領域裡的重要概念,而不是局限於教會某個特定的語言。這可以幫助那些沒有接受過正規教育的人在自學時開闊眼界。

我還清晰地記得,在史丹佛大學裡我上的第一堂計算機課(那是一堂關於 C++ 的課程)。當時我還在想“變量前怎麼可能不帶$ 符號呢?”——因為那時我只使用過 PHP ,我用了很長一段時間,才改掉在變量前加$ 的習慣。

 

在 IT 公司工作

 

另外一個提高編程水準的方法,就是去 IT 公司實習,比如 Facebook 或者 Quora 。最近的兩個夏天裡,我就是在這兩個公司里工作。你可以從優秀的同事那裡學會如何更好得編程,如何閱讀和理解他人的代碼,如何在大項目中進行團隊合作。

還是那句話——比什麼方法都管用——學習編程最好的方法就是做項目練習。我是不是已經重複這句話無數次了:-)
如何學會編程:

  • 做 side projects
  • 看編程書
  • 做 side projects
  • 上計算機課
  • 做 side projects
  • 讀編程類部落格
  • 做 side projects

 

這就是我能給出的最棒的建議。 Happy hacking!

《延伸閱讀》

 

歡迎加入"Inside" Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

 

相關文章

評論