在最近的一次訪談中,Joel Spolsky(StackOverflow的聯合創始人)表示,一個新從事編程工作的小白需要學會3項技能:經濟學、寫作和C語言。乍一看,這三項技能除了C語言以外也許與程式設計師關係不是太大,但是經過深入挖掘後你就會發現這其中的奧妙。
Spolsky建議程式設計師學習經濟學的原因是「programmers often don’t know that and consequently don’t understand how they add value to a business.」(程式設計師往往都不知道如何在軟體產品中注入商業價值)。花一分鐘時間想一想,我們是否經常都會聽到設計師與開發員抱怨如噩夢般的客戶 和他們不合理的需求?其實這樣的客戶肯定會存在,一個很容易被忽略的事實是開發者的主要作用就是為客戶創造商業價值。只有理解到這一點才能夠與客戶建立良 好的合作關係。
此外,對經濟學有一定了解能夠幫助自由職業者更好地推銷自己。當客戶出現不合理的要求時,經濟學能夠幫助他們(普通的web開發者)體現出自己的價值,用一個成功的站點為客戶帶來商機。
Spolksy也建議程式設計師學習寫作技能並練習溝通能力,因為「essentially, the most successful people are the ones who can explain their ideas the best.」(實際上,最成功的人就是能夠最完美地表達出自己想法的人)。他說得沒錯!溝通是最重要也是常被忽視的一項技能。無論你是否是頂尖程式設計師,如 果你不能將你的想法正確地傳達給團隊中的其他成員,那這些想法都會變得毫無意義。
這並不僅僅適用於編程,日常生活中也是如此。作為一名編輯我不得不審閱大量的文章,只有清晰、有深度的文章才能更快地通過審核。
Spolsky的最後一項建議是學習C語言。當我聽到這項建議後第一反應是「什麼鬼?!」我明明能夠使用擁有更優雅語法的JavaScript或者Ruby語言,為啥還要學習C語言?我可不想讓我的程序爆炸。
如今的大多數程式設計師會學習一些高等級的語言—例如Python、Ruby或者Java,但是確對在這些語言中的代碼的執行沒有一個好的把控,導致編 程工作變得緩慢或者無法突破瓶頸。其實這就像建議一個想學習jQuery或者JavaScript框架的人停下腳步去學習這門技術的由來。花時間去學習所 在領域的基礎知識,能夠讓你在正確的道路上走得更遠(例如在調試程序時程序未按預期工作)。
您怎麼看呢?換做是你,你會向新從事編程工作的小白提出哪三項建議?
稿源:evget