作為一個程序員,至少需要掌握哪幾種編程語言?

不要跟我說C語言就夠了。
有的如python,nodejs,ruby現在似乎非常火,也常有人推薦我去學,可我現在倒也用不上。
但如C,C++,Java,perl這樣又顯得更經典而且常用
特別想問在伺服器端,分散式系統環境下需要熟悉哪些語言?


編程語言的風格非常多,維度也多。最小集我覺得應該是:

?C:必須 —— 讓你明白計算機世界

?Java or C++ —— 理解OOD/OOP

?一門動態語言 —— 絕對能給你另一個編程視角,PHP、JS、Python。

另外,編程語言也在不斷進化和發展,比如Go語言日益盛行,也是很值得投入的,甚至量子編程語言都開始露頭角了。還有函數式編程語言,在注重並發的今天也重放光芒,而且Java從8版本開始也已借鑒函數式風格,了解一些函數式風格,是一個非常有益的互補。

作為個人,重要的還是熟悉一兩門,在此基礎之上再了解其他的一些語言。


我若干年前曾經有個夢想,認為軟體工程師的終極能力應該是和語言無關的。後來發現這其實真的就是一個夢想。我上學的時候自學過一點C,但是還沒有真正的算會寫程序,我的工作經歷從Java開始正規編程的(之前搞點VB,個人認為不算編程)。但是因為我一直以來有這麼個夢,所以當Java掌握到一定程度的時候開始正式的學C++,後來工作中涉及到的語言基本以這兩個為主。

單就語言來說,個人感覺當真正熟練掌握一種到兩種編程語言後,學習其他語言的速度是很快的。所以不用局限自己非得掌握幾門語言,關鍵是你的工作中需要解決什麼樣的問題。個人認為,單就語言本身來說,伺服器端分散式系統Erlang語言更加適合,但是C/C++/Java也可以做,並且相關的第三方庫和資源比Erlang更多。


一種靜態語言 C
一種動態腳本語言 Python
一種面向對象的語言 Java
一種函數式語言 Lisp
一種瀏覽器端的語言 Javascript

我認為這是一個優秀的程序員必須要會的幾個種類的語言。只精通一門語言我認為是絕對不夠的,因為你的思維會被那一種語言所限制。
我也還沒有做到,大家共勉


一般學到高級程度,語言都差不多,建議先學c++,c++最難,很多語言語法和c++相似,寫c#用java時就會感覺很流暢。如果會c++,java,c#,你再去學python就很簡單了。

像obj-c這種可能要難點,因為語法不兼容,一般學過幾門語言後,再學別的語言也就一個星期的事。

語言建議多學點,比學演算法簡單,是性價比高的投資,按編程語言排行榜學個十多門就可以了,十個星期可以學十門語言,有的不一定要全熟練,能做簡單應用就好了。

為什麼學這麼多語言,很多語言裡面有寶庫,如python有很多機器學習的包,java有搜索引擎的包可以開發安卓,c#可以做winfrom,c語言可以開發驅動,c++可以做dll庫開發qt庫,obj-c可以開發ios應用,go語言可以方便處理高並發,javascript可以做網頁,sql可以處理資料庫,R/Matlab有很多學術資料,Swift可以快速開發蘋果應用,多種語言結合可以更高效處理問題。

學習多種語言後,你的思想就變得開闊了,更容易找到適合處理問題的方法。現代軟體越來越複雜,一個大點項目可能要用到多種語言,會多種語言開發起來更容易。每個程序員的編程思想都不應該受到語言及語言平台限制,多學一種語言比多學另一個國家的語言容易得多,是非常值得投入的。會多種語言也意味著節約成本,以前可能一個任務需要十個不同語言的程序員(不同語言溝通很困難),現在可能只要三個會多門語言的程序員,減少了溝通可以提高效率節省開發成本。

但每一門語言都是入門容易精通難,使用環境也不一樣,並沒有什麼語言可以給你自動解決業務難題。


我的主力編程語言是Python,其次是C++(大坑),由於項目需求了解過Matlab、Java、C#、PHP、Javascript的基本語法。俗話說貪多嚼不爛,建議你廣撒網多撈魚,多了解一些語言的語法機制、設計哲學、適用背景等,然後選一種或多種符合自己胃口的語言下手。


哎,看了問題就不想回答。

都2018年了,為毛還是有人把工程師當翻譯。你的作文好不好和你用英文法文還是漢語沒一毛錢關係


1、能讓你糊口的;
2、能寫快速、方便地寫出腳本解決臨時問題,提高你工作效率的,比如Python、Ruby一類的;
3、能讓你開闊思維的,或者你最欣賞的;
4、能讓你理解原理和本質的,如C。


主力語言是Python
Java也算是熟練

如果你要說用過的那就很多了: C/C++,C#,MATLAB/Octave,Actionscript,Javascript,VB, 各種Shell, 各種SQL和其變體,這些大都是現學現用,久了不碰大概也就忘了。當然底線是要有一門精通的。


作為程序猿的話看你公司要求用什麼語言,一般剛從學校出來的碼農都有一個主打方向,如C/C++,JAVA,前端...掌握任意一門都能找到工作。身邊不乏從3個月JAVA培訓班裡面出來的只會JAVA的,工作了幾年還是只會JAVA,但不可否認他確實是程序員。
我大學時學校教了C,C++,彙編,自學了python,javascript,可是現在上班之後基本上就是只看C++了,大學裡面看到XX語言很好還會嘗試下,現在都懶的試,反正試了也用不上。
如果你不是團隊的leader,那還是聽老大的,看老大讓用哪種語言哪種架構就用哪種。


Scala + (Rust | C++)就基本上差不多了,有興趣帶上Python,Mathematica之類的有時候也更方便一些


lisp,一個程序員能不能打就看它了。


精通一門語言就夠了,別的隨用隨學


實踐出真知。

我現在做物聯網項目比較多,今年做的一個物聯網項目中,我個人用了C#,node.js,php三種後端語言,前端htmlcssjs三劍客都是基本功了。


lisp和c足矣。
所有語言都是用c實現的lisp的子集。lisp是數學形式,c是實現。
所以學好lisp,不管是過去未來你都再也不會碰到任何能唬住你的所謂新的語言特性了。學好c,你就可以照著php的源代碼擼網頁(我不會php,以前有時候工作需要要寫個論壇插件啥的時候我真的是這麼乾的-_-||),或者照著jvm/pvm的源碼擼應用。
只學這兩個就夠了,省下的時間多去研究下演算法吧。
目前clojure挺好使,安利一下。


應該做到手中無劍,心中也無劍的境界。。不要拘泥於用什麼東西就好了。。


你學彙編吧


以前c+ruby
現在c+go

留下學其他語言的時間
做愛做的事,交配交的人


這個題目真不好回答,這個得看你的工作內容了,如果你是前端的js肯定要好些,如果搞遊戲c++得好,這個還真沒有限制,程序員必須會哪些語言。


作為嵌入式開發程序員,我覺得需要:
1. C/彙編,平時工作需要以及調試用
2. 各種腳本語言,方便自動化
3. octave/r,做數學計算用
4. 目前準備學學python


看你工作需要咯。


推薦閱讀:

什麼筆記本電腦適合學習編程的窮學生學習?
為什麼程序員薪水這麼高?很多工業比如石油能源等行業薪水都偏低?
當應用程序調用Send之後怎麼判斷對方是否成功接收?
上萬元的人體工學椅到底好在哪?
為什麼編程0基礎隨便出來培訓4個月就能拿到不錯的工資,哪我們上大學學計科專業幹啥?

TAG:程序員 | 編程語言 | Python | 編程 | Java |