A. 目前大學生,總感覺自己要學一點編程語言,有什麼推薦的嗎
那需要先定義一下你所謂的「好」是什麼,說明白這個,才可能做出合適的選擇。所以,接下來我根據這個不同的「好」,給出建議。
一、如果你說的「好」是指「入門難度低」
即,你想要一門編程語言,可以在3個月內,通過自學來掌握語法,且能用學到的知識來做點有意義的小項目。
那我推薦 Python,因為入門很容易,這點從雨後春筍般的面向中小學生的Python編程培訓就可以看出來。你也可以在京東、當當等以Python+零基礎為關鍵字來檢索相關圖書。
二、如果你說的「好」是指生態好
即,這種編程語言,生態很好,各種輪子齊全,各大公司支持力度很高,典型應用非常多,那我覺得看看編程語言排行榜,取前幾位就好。
如果你說的「好」是指工作好找
即,這種編程語言,工作機會多。
某編程平台發布的最具就業前景的編程語言排行榜上,java排第一,網紅語言Python排第二,JavaScript排名第三,其次是C%2B%2B、PHP等。也就是說2018年最具有「錢」途的編程語言是:Java、Python、JavaScript。
1、Java
Java 這種老牌編程語言,雖然一直被詬病語法臃腫,但是其實隨著Java版本的更新,已經逐漸支持了很多新語言的特性,並且在2019年的TIOBE編程語言排行榜上,Java每月總是穩坐第一寶座,毋庸置疑,它仍然是市場上最流行和最火爆的編程語言。
目前國內的電商行業一片火熱,電商平台的數量也十分驚人,由於Java語言開發的電商平台具有安全性高,結構合理 ,高效,穩定,擴展性強,支持高並發量、採用集群式部署等特點,在開發方面相對於其他編程語言具有天然的優勢,所以電商平台基本都是由Java開發而成,像京東,阿里巴巴,淘寶等大型電商平台均是使用Java開發。
也許未來Java 不是最有前景的語言,但是Java在未來很長一段時間內都會是不可或缺的語言,相關的工作崗位也自然一直有需求,而且Java語言的易學性也很高,適合新手。
2、Python
AI興起,Python開始大,Python是一種用於Web開發的通用編程語言,也是軟體開發人員的支持語言,它可廣泛用於科學計算,數據挖掘和機器學習,人工智慧大量依賴數據,而Python在數據分析,數據挖掘方面實用性非常的強,當然有人會問了 Python那麼火熱,以後會不會競爭很大。
Python之所以這么火熱,是因為現在大家都對趨勢越來越敏感,大家開始焦慮自己是否會被淘汰,所以很多其他編程語言的從業者都在關注,學習使用 Python。
更何況,在一個新的時代即將到來,相對應的需求本就大,所以,一旦人工智慧技術有所成熟與突破,Python 的需求還會更大。再說到易學性,其實Python相比較大部分語言來說,都算是很容易上手的,語法清楚,也沒有那麼多復雜的概念,適合新手學習。
3、JavaScript
超過80%的開發者和95%的網站都使用 JavaScript 來實現頁面上的動態邏輯。
隨著物聯網和移動設備越來越流行,React和AngularJS號JavaScript前端框架具有巨大的未來潛力,所以我們可能很快就會看到JavaScript 的普及。
當然,你也可以根據自己所在地區,檢索下招聘網站,看看針對初學者的工作機會,選擇機會多的那種語言。像51job、智聯招聘、拉勾等,都是可以利用的網站。
四、如果你說的「好」是指未來薪水高
即,使用這種編程語言為主要開發語言的程序員,將來普遍薪水較高。
那要看看統計數據了。
StackOverflow 2019年的調研數據,全球范圍內,編程語言的收入排行如下:
上榜的都是不錯的,可以排除掉那些工作機會比較少的,然後在剩下的語言中選一種來學習。
B. 編程領域內為什麼要有那麼多的語言
應用領域不同,導致需要的是不同的編譯效率和代碼質量以及執行速度的要求:底層是用戶發出操作上層的各個軟體發出所有指令的最終匯聚點,都要去控制CPU。相當告訴公里上的收費站,所有車輛都要匯聚到這里。
所以要求處理速度快,代碼質量高,能用一句的絕不用兩句,那麼就意味著不能有很復雜的編譯過程、同時代碼質量要高、精簡,不能笨重。顯然應該直接寫機器碼,起碼也得寫匯編語言,一步到位就能得到機器碼。再不濟也得用C語言,但為了開發起來友好點,想方便一點,C++也霸蠻的允許,因為它裡面有面向對象可以極大的方便編程。但再不能是java了或者PHP以及JS這些了。
那麼用匯編和C語言去寫非常好看的圖形化界面,它的意義只在於學習,而不在於實際應用。你寫了好幾天的引入各種的圖形庫函數庫最後看到個紅顏色,還不如PHP里寫一條控制CSS的color:red來的省事呢,當然用CSS就更加省事了。所以學習什麼和實際怎麼使用,之間還有一個賽選的味道。
C. 瀛︿簡澶氱嶇紪紼嬭璦鐨勪笉涔卞楀悧錛
闅忕潃縐戝︽妧鏈鐨勫彂灞曪紝鐜板湪寰堝氱殑鍏鍙稿逛簬紼嬪簭鍛樼殑瑕佹眰涔熻秺鏉ヨ秺楂橈紝涓嶄粎瑕佷綘綺鵑氫竴闂ㄧ紪紼嬭璦錛岃屼笖榪樿佷綘浼氬叾瀹冨嚑縐嶇紪紼嬭璦錛屽凡緇忎笉鏄浠涔堟柊椴滀簨浜嗭紝榪欏氨閫煎緱紼嬪簭鍛樹滑涓嶅緱涓嶆帉鎻″嚑闂ㄧ紪紼嬭璦錛屽惁鍒欏湪浣犻潰璇曟椂灝變細灝戜簡寰堝氱殑鍒嗐備絾鏄闂棰樻潵浜嗭紝瀛﹀氱嶇紪紼嬭璦鍚庡湪宸ヤ綔鎴栧啓紼嬪簭鏃朵細涓嶄細鎼炰貢濂椾簡錛岃嚜宸變篃涓嶇煡閬撴庝箞鍐欎簡鍛錛
鐔熻瘽璇粹滆壓澶氫笉鍘嬭韓鈥濓紝鍏跺疄浣犳墍鎷呭績鐨勫﹀氱嶇紪紼嬭璦浼氫貢濂楄繖縐嶇幇璞″苟涓嶄細鍑虹幇錛屽傛灉鏈夊嚭鐜拌繖縐嶆儏鍐碉紝鍦ㄥ伐鍏風殑甯鍔╀笅涔熻兘椹涓婂彂鐜板苟鍙婃椂綰犳o紝鎵浠ユ棤闇榪囧氱殑綰犵粨浜庤繖涓闂棰橈紝鍔鍔涘幓瀛﹀惂銆
D. 如何學好編程
學習編程是一件好事 不過之前你得先了解 你學習編程的目的是什麼 這個很重要 因為目的決定發展方向
目前對於編程有很多種編程語言以及相對應的開發軟體 下面說明一些常用的編程語言 根據你的情況選一種語言進行學習 不要盲亂學習
C語言 一種可移植性和多系統平台的編程語言 開發軟體TC
VB 一種可以說是既學既用的軟體開發語言 開發軟體如:VB6.0
DELPHI 一種和VB差不多的既學既用的軟體開發語言不過其功能遠比VB強大 代碼書寫上更加方便
開發軟體 DELPHI7.0
JAVA 一種功能強大可移植性強開發語言
程序語言,顧名思義就是語言,是用於交流的,程序就是計算機的語言和人的語言的翻譯者,做一個程序員就是要把人類世界的問題用計算機的方法去解決和展現,可是因為種種原因,大多數人在如何學好語言,如何學好開發平台上疲於奔命,到頭來你只會敲寫代碼。
程序基本上都是自學的,買書是一開始碰到的最頭痛的問題,計算機的書大多都很貴,現將我的一點經驗供大家參考:
如果想做一個合格的程序員,C++是一定要學的,
首先你要花兩個月的時間學習C,C++,這樣的書很多,去選一些大學的教材足亦,切記,不要花過多的時間研究C++,兩個月夠了,只要學會其中語法就行了,不要為了深入用DOS編寫菜單什麼的,那是吃飽人參了。
如果你有過多的時間,接下來你可以學習數據結構,推崇《數據結構C++語言描述》,清華大學出版,58元,但如果無過多時間,還是不看為妙,至少我現在從未用過這本書的知識,許多東西MFC VCL等開發平台都為你已經做好。
接下來開始學習Windows下的SDK編程, 推崇《Windows程序設計》160元,建議去借,不要買,而且你只看上冊,你只要了解Windows的運作機制即可。兩個月
然後你將轉入VC的世界,既然要在Windows下編程,VC不可不學, 推崇《VC++技術內幕》第四版,96元,三個月,不要全部看,看前面的三部分,後面不要看。後面的只是對COM,資料庫,Internet形如雞肋的介紹。
接下來你應該考慮一下你將要發展的方向,如果是做資料庫,你可以用VB和Delphi或CB, 如果要做通信方面,或者硬體,你將要深入VC, 如果是WEB相關的,去學學ASP,JAVA,JSP,XML等,但有一樣你必須要學的,COM。COM與其說是一樣新的技術,還不如說是種機制,推崇潘愛民的《COM原理和應用》39元,你可以一邊看這本書,一邊學習些ActiveX組件,ATL控制項等等。如果你有的是時間,不急於找工作,你還可以看看《Windows高級編程》或《Windows核心編程》,但不管怎麼樣,你要切記,VC不是用來做界面和資料庫的,做網路的現在也有JAVA,都是用來做一些很底層的東西,VC是很高薪的,如果你對自己有充分的信心和有的是時間,你才可以深入VC。否則的話,還是看看人才市場,看看行情,再說。
還有一點切記,有些書,諸如《MFC深入淺出》這些書主要是關於那些技術原理的介紹,我個人認為程序只是工具,只是技術,只要學會用,能完成任務即可,如果有的是時間,才會去探索根源,也許有許多人會說,懂了原理對你編程會有很大幫助,我不否認,但是,要知道,就算你編程技術如何了得,你只是個技術人員,當你學了那麼多的技術和知識,第一,計算機的知識其實是各大公司制定出的標准,標准變了,你不是白學了嗎?第二,當你花了幾年的時間學習,到頭來你只不過程序水平提高一點。我認為應當將你的大部分智力和精力用在如何與人打交道,電腦讓你用的好有什麼用,人腦讓你擺弄的好才算真本事,就如《黑冰》裡面的計算機工程師,雖然對計算機十分精通,可有什麼用,還不是死在王志文的手裡?而且死的很慘,臉都毀了。
另外,不要去學你喜歡的,也不要去費勁腦子想該學什麼,看看人才市場,市場需要什麼,你學什麼。
E. 闃愯堪鍑芥暟緙栫▼鐨勬渶鏂板彂灞曞姩鎬佹槸浠涔堬紵
鍑芥暟寮忕紪紼嬭璦鐨勫叴璧鳳細闅忕潃鍑芥暟寮忕紪紼嬭寖寮忕殑嫻佽岋紝瓚婃潵瓚婂氱殑鍑芥暟寮忕紪紼嬭璦琚寮鍙戝拰搴旂敤錛屼緥濡侰lojure銆丼cala銆丠askell絳夈傝繖浜涜璦鍏鋒湁楂樺害鐨勬娊璞″拰琛ㄨ揪鑳藉姏錛岃兘澶熸彁楂樼▼搴忕殑鍙璇繪у拰鍙緇存姢鎬с
鍑芥暟寮忕紪紼嬬殑騫惰屽寲錛氱敱浜庡嚱鏁板紡緙栫▼寮鴻皟鍑芥暟涔嬮棿鐨勭嫭絝嬫у拰鏃犵姸鎬佹э紝鍥犳ゅ嚱鏁板紡緙栫▼闈炲父閫傚悎騫惰屽寲澶勭悊銆傝繎騫存潵錛岃秺鏉ヨ秺澶氱殑鍑芥暟寮忕紪紼嬫嗘灦鍜屽簱琚寮鍙戝嚭鏉ワ紝鑳藉熸柟渚垮湴瀹炵幇騫惰屽寲澶勭悊錛屾彁楂樼▼搴忕殑鎬ц兘鍜屾晥鐜囥
鍑芥暟寮忕紪紼嬩笌浜哄伐鏅鴻兘鐨勭粨鍚堬細鍑芥暟寮忕紪紼嬬殑鐗圭偣浣垮叾闈炲父閫傚悎澶勭悊浜哄伐鏅鴻兘棰嗗煙鐨勯棶棰樸傝繎騫存潵錛岃秺鏉ヨ秺澶氱殑浜哄伐鏅鴻兘宸ュ叿鍜屽簱寮濮嬮噰鐢ㄥ嚱鏁板紡緙栫▼鐨勮寖寮忥紝渚嬪俆ensorFlow銆丳yTorch絳夈
鍑芥暟寮忕紪紼嬩笌澶ф暟鎹鐨勭粨鍚堬細鍑芥暟寮忕紪紼嬪規暟鎹鐨勫勭悊闈炲父鏂逛究錛屽洜姝ゅ湪澶ф暟鎹棰嗗煙涓涔熷彈鍒拌秺鏉ヨ秺澶氱殑鍏蟲敞銆備緥濡傦紝Spark鍜孎link絳夊ぇ鏁版嵁妗嗘灦涓閲囩敤浜嗗嚱鏁板紡緙栫▼鐨勬濇兂錛屾彁楂樹簡紼嬪簭鐨勫彲璇繪у拰鍙緇存姢鎬с
鍑芥暟寮忕紪紼嬩笌鍖哄潡閾劇殑緇撳悎錛氬尯鍧楅摼鏄涓涓鍘諱腑蹇冨寲鐨勫垎甯冨紡璐︽湰緋葷粺錛屽叾涓鏅鴻兘鍚堢害鏄涓涓閲嶈佺殑鍔熻兘銆傛櫤鑳藉悎綰﹂氬父浣跨敤鍑芥暟寮忕紪紼嬭璦榪涜岀紪鍐欙紝渚嬪係olidity璇璦錛屼互紜淇濆悎綰︾殑瀹夊叏鍜屾g『鎬с
F. Java瀛︿範闇瑕佸叿澶囧摢浜涙潯浠訛紵
闅忕潃璁$畻鏈鴻屼笟鐨勪笉鏂鍙戝睍錛岃$畻鏈鴻璦鐨勪嬌鐢ㄨ秺鏉ヨ秺騫挎硾錛屽湪鎵鏈夌紪紼嬭璦涓錛孞ava璇璦涓鐩村緱鍒板緢澶氫漢鐨勫叧娉錛屽湪鎵鏈夎璦鐨勫︿範涓錛孞ava璇璦瀛︿範鐨勪漢瓚婃潵瓚婂氥侸ava璇璦鐨勮兘澶熶嬌鐢ㄥ湪寰堝氳屼笟涓錛屼絾鏄瀵逛簬寰堝氭兂瑕侀夋嫨Java璇璦鐨勪漢鏉ヨ達紝搴旇ユ庢牱瀛︿範Java璇璦鍛錛熷︿範Java璇璦闇瑕佸叿澶囧摢浜涙潯浠訛紵涓嬮潰鐢佃剳鍩硅涓哄ぇ瀹朵粙緇嶅︿範Java璇璦闇瑕佸叿澶囩殑鏉′歡銆
涓銆佸笿ava璇璦鎰熷叴瓚
寰堝氫漢閮界煡閬擄紝鍏磋叮鏄瀛︿範榪囩▼涓鏈濂界殑鑰佸笀錛屽彧鏈夋嫢鏈夊叴瓚f墠鑳藉湪瀛︿範榪囩▼涓涓嶆柇鍔鍔涖傚叾瀹炴棤璁哄湪瀛︿範榪樻槸鐢熸椿涓錛屽叴瓚i兘鏄闈炲父鍏抽敭鐨勩傚湪璁$畻鏈虹紪紼嬭璦涓銆侸ava璇璦鐨勭儹搴︽槸闈炲父楂樼殑錛屽苟涓斿緱鍒板緢澶氫漢鐨勫叧娉錛屼絾鏄鍦ㄥ︿範榪囩▼涓鐩茬洰瀛︿範鏄娌℃湁浠諱綍鏁堟灉鐨勩侷T鍩硅璁や負濡傛灉鎯寵佽嚜宸卞︽湁鎵鎴愶紝鍏磋叮鏄鏈濂界殑鏀鏌憋紝娌℃湁鍏磋叮鏄寰堥毦鍧氭寔涓嬪幓鐨勶紝騫朵笖闈炲父嫻璐規椂闂村拰綺懼姏銆
浜屻佸︿細鎬葷粨瀛︿範鏂規硶
淇楄瘽璇達紝琛岃屽嚭鐘跺厓錛岃繖涓昏佹槸鎺屾彙鏈閫傚悎鑷宸辯殑鏂規硶銆傚︿範Java涔熼渶瑕佸悓鏍風殑鏂規硶銆傞栧厛灝辨槸鎺屾彙鑹濂界殑瀛︿範鏂規硶錛岃幏寰楀弻鍊嶇殑鎴愭灉銆傚湪瀛︿範榪囩▼涓錛屽寳浜鍖楀ぇ闈掗笩寤鴻鍦ㄥ︿範涓鎵懼埌閫傚悎鑷宸辯殑鏂規硶錛屽苟涓斾笉鏂鐨勬葷粨緇忛獙錛岀『瀹氳嚜宸辯殑瀛︿範鐩鏍囷紝榪欐牱鎵嶈兘璁╄嚜宸辯殑瀛︿範鐨勮繃紼嬩腑涓嶆柇鍓嶈繘銆
涓夈侀傚簲Java緙栫▼鏂規硶
Java寮鍙戜笌緙栫▼瀵嗕笉鍙鍒嗐傝繖鏄涓縐嶈$畻鏈虹紪紼嬭璦銆傚畠鏄涓縐嶉潪浜虹被璇璦錛屽洜姝ゅ繀欏誨叿鏈夊己澶х殑閫昏緫鑳藉姏鍜岃$畻鑳藉姏銆傚寳澶ч潚楦熸槍騫寵$畻鏈哄﹂櫌瑕佹眰紼嬪簭鍛樺湪鍐欎綔鏃惰佷粩緇嗚冭檻錛屽苟涓旈渶瑕佷粩緇嗙爺絀墮愯屼唬鐮侊紝鍏鋒湁杈冨己鐨勯昏緫鎬濈淮鑳藉姏鍜屾g『鐨勫︿範鎬佸害鍜屽績鎬侊紝榪欎簺鏄疛ava鐩稿叧宸ヤ綔鐨勫熀鏈鍔熻兘鍜屽繀瑕佹潯浠躲