選擇什么語言來學(xué)習(xí)首先要看你的基礎(chǔ)和期望進(jìn)入領(lǐng)域。如果沒系統(tǒng)學(xué)過數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、編譯原理這基礎(chǔ)課程,C++就不要想了,你很難學(xué)會(huì),而且成長之路艱難,沒有5年以上工作經(jīng)驗(yàn)的C++程序員大多數(shù)只能混初級(jí)崗位,拿不到高工資。
相比C++,Java上手更容易一些,應(yīng)用范圍也比較廣泛,前中后三端都可以做,工作崗位也比較多,但是需要知悉:Java這玩意上手容易,要做精其實(shí)也很難,沒有扎實(shí)的專業(yè)知識(shí)、不經(jīng)過長時(shí)間實(shí)戰(zhàn)磨練,寫出來的東西會(huì)大量內(nèi)存泄露、并發(fā)沖突、線程阻塞、頻繁GC等問題,程序性能低下,崩潰宕機(jī)也是家常便飯。因?yàn)镴ava發(fā)展得比較早,使用行業(yè)多,從業(yè)人員也特別多,因此不做到高級(jí),工資待遇其實(shí)也一般。
C#比Java要更簡(jiǎn)單一點(diǎn),上手快,因?yàn)镃#就是借鑒Java而來的,因此他跟Java很多語法都類似,功能也大同小異,它也是前中后三端都能做,但是現(xiàn)實(shí)中用它做前端更多,比較少用它做后端,如果你是想做游戲或者辦公軟件的前端開發(fā),可以選它。
至于Python,優(yōu)點(diǎn)很多,比如上手簡(jiǎn)單,沒程序基礎(chǔ)也可學(xué)。第三方庫很豐富,開發(fā)效率很高。但是同樣的,它的缺點(diǎn)也很致命:運(yùn)行效率低、代碼難以閱讀、程序難以加密,安全性差,因此它大多數(shù)時(shí)候只能做些小腳本,比如大數(shù)據(jù)領(lǐng)域的爬蟲、自動(dòng)化辦公工具、自動(dòng)化測(cè)試工具等,大型復(fù)雜項(xiàng)目、高性能需求項(xiàng)目和高安全等級(jí)項(xiàng)目它基本都無能為力。Python因?yàn)楹?jiǎn)單易上手,現(xiàn)在發(fā)展得比較快,但是簡(jiǎn)單是把雙刃劍,越簡(jiǎn)單也越不值錢。因此如果你是奔著“程序員工資很高”的期望去學(xué)Python,可能會(huì)失望,花幾萬塊去報(bào)培訓(xùn)班學(xué)這玩意更是不值,說句不太友好的話,僅僅會(huì)Python,我們專業(yè)程序員都不承認(rèn)他是程序員,因?yàn)槲覀児具\(yùn)維、QA、策劃、甚至PM都會(huì)這玩意。
最后,如果你僅僅是抱著技多不壓身的學(xué)習(xí)的心態(tài),想去擴(kuò)展一下自己的知識(shí)視野,那么不用太糾結(jié)語言,選一個(gè)最簡(jiǎn)單,最容易看到效果的去學(xué)就好了,比如Python、HTML5,因?yàn)榫幊探?jīng)驗(yàn)具有相通性,當(dāng)你熟練了一種之后再去學(xué)別的就很快了。想當(dāng)年,我大學(xué)混日子畢業(yè)后(我計(jì)算機(jī)科學(xué)軟件工程專業(yè)),為了找到滿意的工作,重新自學(xué)C++花了3個(gè)月,后面做頁游開發(fā)用AS3時(shí)就只用了半個(gè)月,再后來自學(xué)了一周Java就去做了Java服務(wù)端主程,再后來為了教我老婆學(xué)Python,只看了一天就開始給她教學(xué)了