C#、C++、Java、Python 編程語言選擇哪個好?

C#、C++、Java、Python 編程語言選擇哪個好?

一個好的程序員不能把自己綁定在一種語言上,不能把自己就定義為JAVA程序員,C#程序員,等等。語言沒有高下之分,只有適用的場景。好的程序員,應該有很快學會一種新的語言,並解決實際問題的能力。在我二十年的程序生涯中,有過不止一次,因為項目,一兩天學一種語言的基本語法,然後邊Google函數和庫用法,邊完成項目,然後項目完成後就扔一邊的經歷。

一名優秀的程序員,永遠繞不開這些東西東西:

  • 計算機組成原理
  • 算法與數據結構
  • 軟件工程
  • 程序語言理論課
  • 操作系統原理
  • 數據庫原理
  • 學習能力
  • 編譯原理

語言只是工具而已


C#、C++、Java、Python 編程語言選擇哪個好?

基礎功夫打好,以後隨便什麼語言都可以亂拳打死老師傅

工作這麼多年,正式項目用過的語言有: Pascal/Delphi,dBase/FoxBase,FoxPro,VB,VBScript,JavaScript,COBOL,C/C++,Lua,Python,Java,C#,各種數據庫的SQL。

最早學的是Pascal,大學裡面學數據結構用的,畢業以後用delphi寫了一個小項目,然後再也沒有用過。

dBase/FoxBase也是學校裡面學數據庫的時候教的,然後畢業以後用的是FoxPro,也是做了一個小項目,後面基本就沒用了。

VB/VBScript作為主力語言,從1998年用到2002年,對,那時候做ASP。也用VB寫過還算有規模的EXE的項目。至今書櫥裡面那本《VB5金典》依然保佑一席之地。VB做快速開發真的很好用。然而http://VB.Net就壓根沒看過。那已經不是VB了。

我認為,語言沒有高下之分,只有應用場景之分。作為一個技術決策者,拿到任何一個項目,首先第一個考慮的,不是怎麼做,而是用什麼做。如果你拿到的是一個Web項目,我認為,在很多情況下,JSP、PHP、ASP.Net甚至Node.js基本上都是等價的,應該都能夠很好的完成項目的開發,選擇什麼技術開發,看自己所擁有的資源稟賦和具體情況。如果手下一幫弟兄都是搞Java的,當然JSP啊,如果手下小弟都是做C#,當然ASP.Net啊。當然,項目有特殊要求的除外,比如,如果甲方是銀行,那估計就沒法用ASP.Net了,如果是有客戶端的項目,當然C#+WinForm啊,如果是做安卓,當然Java啊。


但作為一個好的程序員,應該至少會三種以上語言

C#、C++、Java、Python 編程語言選擇哪個好?

這樣你能夠充分接受不同語言的風格,更關鍵的是你會去關注不同技術社區的討論,開闊眼界,對編程的本質會有更深刻的體會,然後你會覺得,看任何語言都是差不多的。我經常對公司的技術人員講,要用Java的編程思想來寫C#的代碼。這是不同技術社區的風格體現出來的。在Java的社區,你能看到更多的對模式、框架的討論,而微軟雖然自己做的東西很講究模式和框架,但似乎更喜歡做好一堆全家桶給你,讓你去做快速開發。


寫程序,關鍵的是解決問題的思路,而不是語言本身。對語言來說,無外乎語法,函數,類庫,現成的框架這些東西,這些都是“術”,而你對數據結構,設計模式,系統架構,計算機原理這些東西的理解,才是“道”。

打個比喻,你這個問題就好像武俠中一個剛拜師學藝的江湖人士,問:刀槍劍戟,我學什麼比較好?真遇到高明的師父,會說:去打坐、練好吐納心法。刀槍劍戟什麼的都不急,先把內功練好。

你看看江南七怪手裡的郭靖和遇到馬道長之後的郭靖就明白了。練好了內功,拿條毛巾都能無敵天下。

不過,話說回來,真正的絕頂高手,哪個不是十八般兵器樣樣精通的?所以,要成為你想成為的那個挺厲害的人,這些你早晚都得會。然而,在那之前,學好數據結構和算法,會事半功倍。

Java和Python

C#、C++、Java、Python 編程語言選擇哪個好?

當然,沒有一種語言,空學數據結構和算法什麼的也是無稽之談。從這一點講,Java 和Python可能會適合一些。

沒有哪個語言好哪一個不好,都有自己的特點。如果只是剛接觸要用到工作上面,那麼非常建議學好Java 和Python或者C++,C++只是在C的基礎上面做了一些擴展,而且經驗豐富的程序員會選擇C 而不是C++,C++確實要麻煩些。C#呢對個人來說應用面還太窄,遠不如Java的面廣,庫也不如Java的多。


我們最後來談談Java和Python,從Java 開始那麼就會接觸到分佈式、多線程、垃圾回收、web網站開發、spring 框架、andriod 開發、大數據、人工智能等一系列。所以前景肯定是不錯的。學得好,自然容易飛黃騰達。

Python呢和Java比用起來就順心多了,學會後會感覺自己從道士變為了神仙,功力大增。人工智能是未來的趨勢,而Python 做完官方的語言,做人工智能會有很多優勢。想往人工智能方向發展的那麼久選Python,當然也是以後比較掙錢的行業,選了不後悔,不選後悔一輩子。

Python的優勢還是很明顯的,我認為它的整個生態還會活躍相當長的時間。C++是一種高效的語言,但是涉及到了太多的內存管理的內容,比如裡面涉及到了指針的操作,這對於非計算機專業的同學就非常不友好。C#和Java從“形式”上是非常相似的,首先和C++一樣他們都是面向對象編程的語言,再著它們都有非常友好的IDE環境,功能豐富。但是它們的體系都略顯厚重,老實說不是很適合跨界的同學。Go在服務器編程方面是有優勢的,但是仍然是剛剛說的那些問題,它的生態不如Python這麼豐富。

只要有對數據的需求(數據抓取、數據分析、模型部署)在,那麼Python就會一直火下去。

語言的發展都是從底層慢慢往高層發展的,從具體到抽象的。這個也是適應現代的發展需要,所以選著抽象程度高些的語言自然可以容易編寫出更高層的東西。


分享到:


相關文章: