C++程序員和Java程序員的差異
首先說(shuō)明,這幾年接觸的最多的程序員就是C++程序員和Java程序員,這只是我自己的一點(diǎn)體會(huì)而已,一個(gè)人的眼光難免是淺薄的。不過(guò),歡迎拍磚,也歡迎對(duì)號(hào)入座。
從對(duì)基礎(chǔ)知識(shí)掌握的程度來(lái)說(shuō),例如數(shù)據(jù)結(jié)構(gòu)和算法,C++程序員要比Java程序員牢靠得多。究其原因,大概是因?yàn)镃++程序員需要經(jīng)常自己實(shí)現(xiàn)那些項(xiàng)目基礎(chǔ)設(shè)施,但是Java程序員大多拿來(lái)即用。公平地說(shuō),C++不是一門(mén)適合程序員初學(xué)者的語(yǔ)言,但是Java是。C++程序看起來(lái)確實(shí)要比Java 程序稍難懂一些,C++程序員往往思維更加嚴(yán)密。另一方面,我也發(fā)現(xiàn)內(nèi)地的程序員要比沿海和發(fā)達(dá)城市的程序員基礎(chǔ)扎實(shí),而且低調(diào)內(nèi)斂,不那么浮華,但是就是善于解決那些難啃的問(wèn)題。
從視野的角度來(lái)說(shuō),Java程序員往往要更寬泛一些。由于語(yǔ)言本身上說(shuō),Java將很多C++逃不掉的陷阱和坑洞都填補(bǔ)了,僅從語(yǔ)言上說(shuō),無(wú)論是入門(mén)還是使用都顯得更加簡(jiǎn)單,程序員就有更多精力來(lái)關(guān)注語(yǔ)言本身之上的事情。而且,Java領(lǐng)域的類(lèi)庫(kù)明顯要豐富得多,所以在考慮某一個(gè)設(shè)計(jì)實(shí)現(xiàn)的時(shí)候,Java程序員很喜歡到處尋找可以拿來(lái)即用的類(lèi)庫(kù),但是C++程序員習(xí)慣于自己去做其中大部分的事情。對(duì)于面向?qū)ο笤O(shè)計(jì),模塊和組件的設(shè)計(jì),Java 程序員往往要掌握得稍好一些。
在讀書(shū)的時(shí)候,很多程序員都會(huì)給自己訂立一個(gè)方向,有的喜歡寫(xiě)底層實(shí)現(xiàn),有的喜歡研究人工智能,有的喜歡做企業(yè)應(yīng)用,有的喜歡涉足互聯(lián)網(wǎng)……就像對(duì) C++和Java等語(yǔ)言的選擇一樣。當(dāng)然,工作有時(shí)候并不如心中所愿,這方面可能和自己最初的方向并不一致——有人選擇繼續(xù),發(fā)現(xiàn)這個(gè)活兒也不錯(cuò);有人就會(huì)選擇放棄,繼續(xù)執(zhí)著地尋找自己喜歡的事情。我有三個(gè)當(dāng)初和我一起學(xué)Java學(xué)J2EE的朋友,現(xiàn)在一個(gè)成了DBA,一個(gè)賣(mài)水果去了,還有一個(gè)在創(chuàng)業(yè)搞機(jī)頂盒。
當(dāng)然,也有很多程序員天天都在糾結(jié):學(xué)什么更賺錢(qián)?C++還是Java有前途?前端還是后端有前途?轉(zhuǎn)管理還是轉(zhuǎn)咨詢?也有人這樣問(wèn)我,對(duì)于這樣深不可測(cè)的問(wèn)題,為了避免顯得我沒(méi)文化、見(jiàn)識(shí)淺,我總是一笑置之。