天天看點

JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Python建立者Van Rossum等程式設計大牛對程式員的職業建議

軟體開發是現時很火的職業。據美國勞動局釋出的一項統計資料顯示,從2014年至2024年,美國就業市場對開發人員的需求量将增長17%,而這個增長率比起所有職業的平均需求量高出了7%。很多人年輕人會選擇程式設計作為自己職業生涯的起點。如何學好程式設計?如何成為優秀的程式員?如何規劃好程式員這個職業?是許多年輕人關注的問題。在Infoworld最近做的一次調查中,邀請到了JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Spring Framework建立者Rod Johnson,Npm 建立者Isac Schlueter, 以及發明了Python的Guido Van Rossum接受了采訪。這些程式設計界的大牛們分别就“教育背景”、“程式設計語言”和“程式設計實踐”這三個方面,對年輕程式員的職業規劃提出了建議。

軟體開發是現時很火的職業。據美國勞動局釋出的一項統計資料顯示,從2014年至2024年,美國就業市場對開發人員的需求量将增長17%,而這個增長率比起所有職業的平均需求量高出了7%。很多人年輕人會選擇程式設計作為自己職業生涯的起點。如何學好程式設計?如何成為優秀的程式員?如何規劃好程式員這個職業?是許多年輕人關注的問題。在Infoworld最近做的一次調查中,邀請到了JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Spring Framework建立者Rod Johnson,Npm 建立者Isac Schlueter, 以及發明了Python的Guido Van Rossum接受了采訪。這些程式設計界的大牛們分别就“教育背景”、“程式設計語言”和“程式設計實踐”這三個方面,對年輕程式員的職業規劃提出了建議。讓我們一起來分享這些大牛的見解吧。

JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Python建立者Van Rossum等程式設計大牛對程式員的職業建議

教育背景

“在人生中最大的挑戰不是技術可以解決的。”Eich說,“是以我們要學習曆史、語言、藝術、還有其它人類的知識,而不是隻學習與電腦有關的東西。”

Hickey贊同了Eich的觀點。他認為,要把程式設計放在一個更寬的視野中。“在具有曆史性的事物中,程式設計是一個全新的成果。我們不要以為已經懂得了怎樣用最好的方法去追求它。”Hickey建議年輕人應該追求其它的學習興趣去幫助了解在程式設計中的各種問題。“最好的程式員是那些在他們所擅長的領域裡,有了解能力的,善于溝通的,以及能夠解決問題的人。軟體隻是一個工具而已。”

JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Python建立者Van Rossum等程式設計大牛對程式員的職業建議

Johnson認為,要成為程式員的話,應該要探索計算機科學和數學以外的學科。這樣可以幫助程式員拓寬他們的教育背景,因為最終“程式設計是關于人的,而不是關于數學的。”即使是當談及把計算機科學作為一種學曆時,Johnson也有着不同觀點。他說:“絕大多數時候,我們學習是為了工作。 良好的計算機科學背景的确是有價值的,但我已見到過有許多優秀的程式員,他們擁有不同的教育背景。”

Schlueter 認為,這是作為一名出色程式員的重要一面。“無論你是否上大學,都要盡量花時間,而且要盡早閱讀大量的文學和哲學,并盡可能寫作,”他說。如果你不打算上大學,那麼盡快找一個導師,讓他給你布置寫作任務和幫你的文章潤色。這項工作發生在網際網路上,書面語是人們在網際網路上交流時使用的。你能寫得越有效,你就越會越好。”

程式設計語言

一旦你坐下來開始學程式設計了,哪種語言是首先應該考慮的呢?

“OCaml,Haskell,Rust,C++,TypeScript,JS,Racket 或者Scheme,”Eich說。當然,我不是要求每個人都去學習所有這些語言,但隻要在合适的時間和地點學好其中幾種就很好了,這對那些有興趣和能力的大學生尤其有用。”

JavaScript之父Brendan Eich,Clojure 建立者Rich Hickey,Python建立者Van Rossum等程式設計大牛對程式員的職業建議

Hickey也建議要有學習多種語言的計劃,但他的觀點更具哲學性,他提出要把現有的廣泛的程式設計語言中具有代表性的,整合在一起。“選擇一種很有代表性的語言,計算機是如何工作的(C),一種封閉式的語言(Haskell,Prolog),一種靜态的函數語言(Haskell),和一個動态的函數語言。我喜歡Clojure,”他說。

Johnson提議學習程式設計語言要用對比的方法。“語言可以影響程式設計的思維,是以學習一門以上的語言是很重要的,而且學習不同的語言要有不同的方法,”他說。“例如,一個面向對象的語言和一個函數語言,而不是說Java和C#。”

程式設計實踐

一旦你已經開發過了一些項目,你如何把自己的技能提升到更高水準呢?

Eich建議要向早期的或現在的程式設計大牛們學習如何寫出很棒的代碼。“閱讀高品質的代碼,有時候甚至要把它們列印出來,在有需要的地方做好筆記。”Eich說。“說到高品質的代碼,我覺得經典的仍然是Kernighan & Ritchie's The C Programming Language, 還有 The Unix Programming Environment”。近年來值得一讀的代碼是'Solving Every Sudoku Puzzle,或者是 norvig.com的代碼。”

要了解更多這些程式設計大牛們的觀點和建議,可以浏覽全文:http://wp.me/p6WSQY-1G5 。

繼續閱讀