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