如何成為在硅谷受歡迎的程序員?

jopen 9年前發布 | 20K 次閱讀 程序員


如何成為在硅谷受歡迎的程序員?

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

90 后硅谷工程師 Feross Aboukhadijeh 是一個極好的學習榜樣。他并非扎克伯克那樣的硅谷明星,但作為普通硅谷工程師的一員,對于大多數程序員來說,他是一個通過努力可以到達的學習榜樣。他的經 歷不僅僅對向往硅谷的工程師有幫助,對所有在北上廣深杭工作的程序員,都有極好的啟發。

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

一、建立自己的個人品牌

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

和 Fenng 編程能力相當的工程師,很難有和他一樣的影響力,這是建立個人品牌的魅力。你不必擔心說:我沒有 Fenng 那么好的文筆,也錯過微信公眾平臺的發展紅利期。條條大路通羅馬,只要愿意在網絡上分享,你就離成為下一個 Fenng 近了一步。

一些方法可以幫你事半功倍,比如建立你在網上的個人主頁。它可以是獨立博客的 about 頁面,也可以是你的 about.me  賬戶。然后在你的微博、知乎、微信、Github、V2EX、技術社區的主頁上放上它的鏈接。就像涓涓細流匯成大河一樣。

讓我們看看 90 后硅谷工程師 Feross 的做法。他在 Github 上擁有 2300 名關注者,8390 名推特粉絲,在問答社區 Quora 有 12500 名關注者。他在這些網站主頁上都附上了個人主頁:feross.org

如何成為在硅谷受歡迎的程序員?

從 Github、推ter、Quora 吸引來的網絡訪客,在這里開始了解他:畢業于斯坦福,在 非死book、Intel、Quora 工作過,還有他的項目經歷、他的愛好等信息。

二、什么樣的簡歷是“完美硅谷求職簡歷”

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

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

簡歷是求職的第一步。作為一個程序員拍賣平臺的運營,我閱讀過數以萬計的簡歷,但 Feross 的簡歷是我見過的最完美的簡歷之一。在這里貼上一部分:

如何成為在硅谷受歡迎的程序員?

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

1、完美的版式

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

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

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

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

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

比如 Projects 中的 油Tube Instant,我們從鏈接中得知 Feross 的光輝事跡:

Feross 在斯坦福上大三的時候,Google 推出了一項新功能 Google Instant,可以實時顯示搜索結果。Feross 覺得也可以為 油Tube 開發一個服務,讓 油Tube 實時顯示視頻。于是他用 3 個小時完成了 油Tube Instant 網站。

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

三、善用 Github

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

這是 Feross 的 Github:

如何成為在硅谷受歡迎的程序員?

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

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

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

現在全文翻譯如下:

我是怎么學習編程的——別人常常問我這個問題,特別是在我建立了 油Tube Instant 網站并被很多媒體報道之后。在這里我決定分享我的經歷。

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

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

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

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

一、我的第一個網站

如何成為在硅谷受歡迎的程序員?

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

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

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

如何成為在硅谷受歡迎的程序員?

這個截圖不能完全反映網站的狀況:事實上,網站上的每個元素都在動,有閃爍的動畫,還有聲音。我在網站的每個網頁上都放了不同的 MIDI 格式的歌曲,并且全是自動播放,無法把它們停下來,除非把電腦設成靜音。哈,在當時這是很流行的網頁設計風格。

過了幾年后,我重新設計了這個網站,使它變得更美觀。我在網上找了一些免費的網站模板并使用它們,還用微軟的畫圖工具修改圖片。

如何成為在硅谷受歡迎的程序員?

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

我第一個真正的項目

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

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

如何成為在硅谷受歡迎的程序員?

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

如何成為在硅谷受歡迎的程序員?

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

如何成為在硅谷受歡迎的程序員?

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

我的第二個網站

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

如何成為在硅谷受歡迎的程序員?

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

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

大量的學習和閱讀

在我進入斯坦福大學后,我學習了大量的計算機課程,諸如 CS106XCS107,我還提前學習了一些 CS106課程。

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

一件意義重大的事

那是 2010 年的夏天,我在 非死book 實習的時候,因為和一個朋友打賭,我開發了 油Tube Instant 網站,它可以讓人們實時搜索 油Tube 上的視頻。這個網站在建成后的 10 天里獲得了一百萬用戶的訪問量,甚至連 油Tube 的 CEO 都表示愿意給我一個 offer。你可以點擊這個鏈接閱讀媒體們對這件事的報道。

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

如何成為在硅谷受歡迎的程序員?

繼續前進

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

如何成為在硅谷受歡迎的程序員?

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

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

團隊合作

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

  • Nginx
  • Supervisor
  • SQLAlchemy
  • Apache Ant

動手去做

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

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

計算機課程

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

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

在 IT 公司工作

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

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

如何學會編程:

  • 做 side projects
  • 看編程書
  • 做 side projects
  • 上計算機課
  • 做 side projects
  • 讀編程類博客
  • 做 side projects

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

如果想去硅谷工作,可以在知乎閱讀我的其他回答,應該有幫助:中國程序員怎么去 非死book 工作? - 知乎@luckystar 的回答。

本文為 100offer 程序員拍賣原創,始發于微信號@(微信 ID:at),原文始發于如何成為在硅谷受歡迎的程序員?

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!