什么才是程序員最有價值的技能?怎樣才能成為一名成功的開發(fā)者呢?我敢打賭,在你的職業(yè)生涯中你至少問過自己一次這樣的問題。你找到答案了嗎?你認(rèn)為自己搞清楚了沒有?
許多年輕的程序員會告訴你,偉大的開發(fā)者最重要的技能是對自己所用語言的掌握。當(dāng)然,你得對 C#、 F#、C++、Java、Ruby、Haskell 或什么別的語言嫻熟于心。然而,語言本身并不能提供足夠的技能讓你完成桌面或 web 應(yīng)用。
“那要不就是對平臺的知識了,”你又問自己。也許甚至是整個平臺體系,如果你仔細(xì)思考一下的話。比方說,這有可能意味著要知道 Windows API 或 iOS 開發(fā)的工具或庫??墒?,你再想一下。如果趨勢變了的話又會怎樣?如果項目轉(zhuǎn)向另一個平臺的話又會怎樣?如果你只具備前一個平臺的知識的話,你還會是一名偉大的程序員嗎?我不這么認(rèn)為。
“對!我知道了??隙ㄊ墙鉀Q問題和分析性思維的能力”,你幾乎對著我吼起來了。事實上你是對的。沒有一個好的開發(fā)者是不具備分析性思維的。但是,問題解決仍然不是你應(yīng)該具備的最重要技能。
“如果不是編程知識的話,那一定就是編程激情。你每天都得學(xué)點新東西。不能停止,你得熱愛它。”的確,你是對的,盡管這并非最重要的能力,但已經(jīng)接近了。讓你從好的開發(fā)者變成偉大的開發(fā)者的,是編程的激情,尤其是學(xué)習(xí)的激情。
然而,還有一個技能更有價值,那就是溝通。
許多時候這一點被低估了,可如果不使用溝通技能的話你一天都過不了。而且,你要溝通的還不僅僅是客戶。還包括你的同事,分享你的想法,用不侮辱人的方式辯論,說服你的老板應(yīng)該采取你的方式。此外,還有還要匯報狀態(tài)更新,解釋發(fā)生的事情。你每天都要溝通,而且要溝通得當(dāng),如果你要成為偉大的開發(fā)者的話。
這就是我要發(fā)文章談演講這個似乎不相干話題的原因。我認(rèn)為從中你可以學(xué)到很多東西,如果你對此感興趣的話你可以繼續(xù)學(xué)習(xí) coursera 的課程(英文)。
聯(lián)系客服