我在謀殺自己的職業生涯。沒錯,很多人都這樣說我。
我的同事剛剛得知我即將離開公司的消息。大多數表示理解。但讓他們困惑的是,我現在的公司是一家 Windows 商店,用 C# 和 .net 編寫代碼。然而,我要去擔任的是 Linux 環境下主要語言為 Java 的開發工作。因為語言的改變,他們覺得我拋棄了自己的優勢,拋棄了自己這麼多年的工作經驗,正在自尋死路。很多人都秉持這樣的觀點。
編程語言很多很多,數以百計。有些很常見,如 Java,C#,PHP,Ruby,Python 和 JavaScript,而有些則比較邊緣化或是新出現的,如 awk,Go,Julia,Rust。選擇如此之多,我們又該關注哪個呢?於是,我開始思考這個問題——我們真的需要知道多種語言嗎?
你會想要學習不止一種語言的 9 個原因
你不想學習更多語言的 9 個原因
這並非是一個非黑即白的問題。和其他問題一樣,最好的解決辦法是取中間值:總會有一個灰色地帶。如果你是一個初學者,那麼光學一種語言,然後用它開發個十幾個項目,明顯更容易。但在那之後,我建議你成為一個T形的軟件開發人員。
什麼是T形的軟件開發人員?
所謂T形的軟件開發人員在某一個特定的區域擁有很深的造詣,而且是一種語言的專家,這就是T字母中非常堅實的豎直線,而T的水平線則代表了在此基礎上還應該繼續更廣泛地學習其他技能。
那麼,這與軟件開發,更具體地說,是學習編程語言有什麼關系呢?我的建議精通一種語言。 這種語言將成為你解決大多數問題的左膀右臂。你應該盡你所能掌握這門語言。然後你才可以學習最適合工作的第二種語言或技能。可以閱讀我先前寫的《 Finding What To Learn Next 》這個帖子。
T 形軟件開發人員不光精通於某一領域,還是一個多面手。
在成為T形開發者的歷程中,你不但能享受成為某一領域專家的好處,還能因了解多種語言而增加靈活性和適應性。
你應該選擇掌握什麼樣的編程語言?
看到這裡,很多人或許就要問了,那麼我們應該選擇學習哪種編程語言呢。亦或者,你才剛剛步入編程這個時間,你想知道你應該先學習什麼語言。對於主要語言,我會選擇那些已經存在了一段時間的語言,而不是新出來的。語言應為多個行業使用,並且有一個堅實的社區基礎,擁有大量的開發工具。 一些符合這些標准的語言是:Java,C#,.NET,Ruby,Python 和 Swift。
軟件排行榜基於這些標准持續跟蹤軟件語言的人氣指數。你可以點擊這裡查看完整的編程語言列表。指數每月更新,前 20 名中的大多數語言都是不錯的選擇。那麼 10 年之後,這些語言還會依然名列前茅嗎?我也不知道。不過至少在未來 4 年內是准的,我想,4 年時間應該已經足夠你從現在開始開發無論什麼項目了。
是否需要了解更多的語言取決於你的目標
想開始新的業余項目或業務?你可能只需知道一種語言。
想換行業或駕馭技術發展趨勢?你可能需要知道不止一種語言。
想在企業環境中工作?你可能只需要知道一種語言。
想工作在前沿項目?你可能需要知道不止一種語言,因為潮流總是在變化。
說實話,關於是否需要了解更多的語言,其實並沒有絕對正確或絕對錯誤的答案。最後的決策結果取決於你。
你知道多少種語言?你的專業領域是什麼,你如何擴展它?歡迎分享。
英文原文:Do You Need To Know More Than One Language?