1.程序員應該掌握哪些必備技能?
現在做程序員的,不熟悉10種以上的編程語言的都不好意思稱之為程序員。我認為目前需要掌握的編程語言至少有8種,包括:匯編、C、C++、C#、Java、Javascript、Python、SQL。此外對於自己領域內的知識和技能要做到精通,比如做Web開發的,要精通Web前端(html、css、javascript、jquery和react、angular、vue等至少一個web框架)及至少一門Web后端語言(比如PHP或Node.js等),還要掌握主流的數據庫技術(比如Oracle、SQL Server、MySQL等)和操作系統(Linux)。此外還要熟悉其它領域的知識,幫你打開技術視野,不局限在一門技術上面(比如做Web開發的可以了解了解游戲軟件是怎么開發的,嵌入式開發怎么做)。當然對於一些通用技術和工具,比如Web服務器(tomcat、Nginx等)、CVS(Git等)、Office、PowerDesigner、等等,都是要掌握的。此外還要熟悉你做的領域知識和業務,比如做財務軟件的要熟悉財務的基礎知識(考個會計從業資格快速熟悉)。
除了這些技能,還要熟練掌握至少下面這些理論課程知識,比如:數據結構和算法(ACM)、操作系統、計算機組成原理、編譯原理、數據庫原理、計算機網絡等計算機專業核心課程。所以要成為一名專業的程序員,我認為至少需要10年的各種項目和產品的錘煉。
2.程序員應該掌握哪些軟技能?
1)溝通和表達能力,與他人協作的能力。
2)編寫技術文檔和PPT的能力(完美展現)。
3)自我推銷的能力。
4)帶領團隊開發的能力(項目管理)。
5)...
3.你認為哪個軟技能是最重要的?
沒有哪個軟技能是最重要的,如果一定要指出一個,我認為應該是溝通和表達能力。在中國這個關系型社會,良好的人際關系是非常重要的。好的職場溝通,能夠讓你在職場游刃有余。但與人溝通的能力,恰恰是程序員的短板。所以我認為有時間可以多參加一些技術交流會,跟同行交流技術經驗。平時多關注生活,跟外行交流生活體驗(說不定能發現什么創業的痛點),了解不同的人的思維方式。
平時多關注人,多關注這個社會,慢慢的思路就打開了。
4.35歲還沒有成為CTO的程序員,出路在哪里?
有人說程序員是吃青春飯的,其實大部分職業都是吃青春飯的,關鍵在於你自己的選擇。如果你真正的熱愛技術,相信40、50歲你還會去研究技術。對於大齡程序員,我認為出路無非是兩種:轉型或轉行。轉型比如轉為項目管理,轉行比如轉做技術型銷售,當然這些都要根據自己的實際情況做出選擇。但無論做什么職業,打工都不可能打一輩子,所以一定要提前做好職業生涯的規划,理財和金融投資是程序員必須要掌握的。還有一種出路是創業,但我必須要說的是,創業並不適合每個人,只有極少數人適合創業,而且創業成功是小概率事件,需要天時地利人和。
本文最初發表於異步社區:https://www.epubit.com/selfpublish/article/1076