「全棧開發」在就業市場的真正含義

劉唱發表於2016-08-31

大約在 2013 年,“全棧開發”這個詞開始出現在招聘描述和博文之中。很多公司也意識到,僱用一個僅僅精通一種語言的開發者已經不能滿足需求了。一個能處理各種任務和環境的 Web 開發者相當有用,這也開始成為了(公司人才招聘)的規範。

儘管如此,網路架構知識並未普及。很多開發人員雖然做過網站建設,卻對“幕後”知識並沒有很好地領會,(比如)Web 表單、快取記憶體、HTTP 協議、Apache 等。這些(知識)都是次要掌握的。

線上學習對就業市場的影響

大概是受幾年前開始興起的線上學習的影響,自學的 web 開發人員對於底層技術的瞭解少的驚人。面向程式語言的課程不能全面覆蓋 web 的知識,導致學生完全不知道 htaccess 檔案是做什麼的,或者怎樣去重啟 Unix 的守護程式,或者不同型別的 POST 編碼是如何 工作的。

那麼,一個全棧開發人員都應該知道一些什麼(知識)呢?在工作描述中提及的通常是前端和後端技術的結合,像是JavaScript 和 Node、PHP 和 jQuery、Angular 和 Spring 等等。其實,在這個範圍以外,還有相當多的資訊可以提升個人建站的能力。那些固步自封,僅憑單一技術就能做出一番事業的日子已經一去不復返了。

descarga

如果只堅守你(所掌握的技術)已經不再能滿足需求,那我們要怎麼辦呢,我們如何才能跟上 web 庫以指數形式在增長的速度?如今,已推出的軟體實在太多了,導致了技術間組合的可能性也在急速增加。這種組合的爆發將會把軟體開發推向一個特別的領域。你所瞭解的使用技術 Y 和 Z 來解決問題 X 的機率在逐漸減小,而且 Google 可以為你提供的幫助也在以同等速率降低。這些做法很快就要行不通了。

黑客(Hacker):“反脆弱性”的程式設計師

被譽為“程式設計界的搖滾明星”的 John Carmack 的文章中介紹了這個非常有趣的概念(反脆弱性)。我節選了《反脆弱性(Antifragile)》這本書中的一段,它是這樣描述的:

“就像人的骨頭在施以壓力時會變得更加強壯,流言和騷亂越是試圖掩蓋反而越會加劇一樣,生活中的很多事會得益於壓力,失序,波動和混亂。 塔雷伯所稱的“反脆弱性(antifragile)”的意思就是,不但要從混亂中有所收穫,而且還需要(依靠)它來生存和繁榮”。(譯註:塔雷伯,知名思想家,經驗主義者,金融業人士,風險工程學教授、哲學隨筆作家,以《黑天鵝效應》一書聞名於世。來源:維基百科)

13530973

這個想法反映了曾被叫做“黑客”的這樣一些人的態度。現如今,這個詞有了負面含義,但是在早些時候,它指的是對科技抱有某種態度的一類人。正如在行話中定義的那樣,黑客是“享受探索可程式設計系統的細枝末節和不斷延伸自己能力的一類人,他們與大多數只按照最低需求來學習的使用者完全相反。”

曾經有一段時間,當你有問題的時候去 Stack Overflow 查詢是找不到解決辦法的,很多軟體即使有文件也都不可讀。我記得小時候曾試圖修復一個音效卡,當我閱讀這個音效卡的手冊時,只找到了彙編程式碼和中斷程式碼。這是黑客蓬勃發展的環境,這也是我們遲早要回歸的(環境)。當你想解決一個涉及到多種技術的複雜問題,你的第一反應是去 Google 搜尋,那你就應該重新考慮一下你的工作習慣了。

確實,很多時候好奇心太盛會把你指向錯誤的道路上去,尤其是在這種時間永遠不夠的企業環境中。比如,在學習一個新的庫的時候,用它來寫一些基本用例會使你大有啟發。但是想要討老闆歡心的程式設計師會選擇更實在的途徑,即從文件中直接複製例項,其實完全不知道它(這個庫)的工作原理。作為開發人員來提供(自身)價值,需要一定的時間管理和期望設定的技能,為的是讓你可以探索你需要的知識,從長遠上節約公司的成本。

重新思考黑客這一角色

如何去找到黑客?你需要尋找這樣一些人,他們有我所描述的特定的心態,獨特的好奇心和堅持(的品質)。無關分析能力,也無關是否能記住一系列特定的學術演算法,所以,在白板上徒手寫演算法的這種考察方式是行不通的,考察其費米估算的能力似乎也不是那麼行之有效(也不能合理猜測出這個人是否是一個黑客)。(你可以)問一個候選人他在空閒時間都喜歡做什麼,或是他會把什麼有趣的專案作為愛好,你可能會有所發現。我見過很多程式設計師,他們在業餘時間不喜歡寫程式碼,這已經非常可靠地顯示出他們是水平欠佳(低於平均水平)的程式設計師。

如果你是一個開發人員,你可能會擔心自己沒有那種動力或好奇心,那麼對此你能做些什麼呢?

這裡有一些指引:

  • 每當你需要 Google 一些錯誤資訊或問題,請閱讀完所有答案,獲取與問題相關的儘可能多的資訊,不要只是滿足於找到一個解決方法。
  • 瞭解一項技術,也要知道在它的設計和開發之中所做的權衡
  • 捫心自問,如果你想成為一個「全面」的開發者,你需要什麼(技能),寫下你達成目標所需要走的路徑
  • 做其他人不願去做的事,去其他人不想去的地方,你終將從這些經歷中獲得啟發。

軟體開發領域正在飛速發展,學習程式設計也變得前所未有的容易。我們將會生活在一個適者生存的環境之中。但最後的成功者不會是第一個學會(使用)酷炫的新框架的人,而是那個思考這個框架新在哪裡,(與從前的框架)有什麼不同之處的那個人。如果你想跟上技術棧的更新的步伐,那就要停止對不能跟上時代的擔心,開始像黑客一樣去探索吧。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

「全棧開發」在就業市場的真正含義

相關文章