{eval=Array;=+count(Array);}
無(wú)論你是編程愛好者還是將來(lái)要以編程為職業(yè)的準(zhǔn)程序員,需要做好心理準(zhǔn)備的是只會(huì)一門語(yǔ)言是不夠的。當(dāng)然編程語(yǔ)言太多,總共有100多種,都學(xué)的話時(shí)間不允許,也沒有必要,而且每年的語(yǔ)言的排名都在變,根據(jù)語(yǔ)言在編程領(lǐng)域的使用的廣泛度。但是并不意味著排名第一的語(yǔ)言可以解決所有的問題。可能正好在這個(gè)時(shí)間段某類語(yǔ)言被廣泛的使用,需要綜合考慮的是這段時(shí)間內(nèi)的開發(fā)的應(yīng)用和使用的領(lǐng)域。而且很多語(yǔ)言有自己的特長(zhǎng),比如Java在大數(shù)據(jù),服務(wù)器,后端,等都有廣泛的運(yùn)用。在大應(yīng)用程序方便,C++,Java得到廣泛的使用,比如圖形處理軟件,游戲軟件等。C因?yàn)槭呛芏喑绦虻谋亲妫诤诵乃惴ǚ矫姹挥脕?lái)提升效率和優(yōu)化硬件。Python在網(wǎng)絡(luò)爬蟲,科學(xué)計(jì)算研究領(lǐng)域被廣泛使用。而且Python也是很容易上手的。Javascript是網(wǎng)絡(luò)前端語(yǔ)言,通常配合PHP, 還有數(shù)據(jù)庫(kù)SQL等, 當(dāng)然還有GO, Rust,都是增長(zhǎng)勢(shì)頭不錯(cuò)的語(yǔ)言。肯定有它們的過人之處,能夠在這么多的語(yǔ)言中脫穎而出。還有些語(yǔ)言有比較強(qiáng)的平臺(tái)依賴性,比如ios的Swift,Windows的VBA和C#等。
回到問題的核心,其實(shí)是問自己你學(xué)編程語(yǔ)言的目的是為了什么,如果是是為了興趣想了解語(yǔ)言,讓我建議從Java開始,C也是不錯(cuò)的選擇。尤其是C是大學(xué)本科計(jì)算機(jī)必修的語(yǔ)言。Python也是很多人推薦的,但是個(gè)人認(rèn)為正是因?yàn)镻ython太容易上手,而且語(yǔ)言結(jié)構(gòu)比較的松散,不利于養(yǎng)成好的習(xí)慣,如果習(xí)慣了Python再回去學(xué)習(xí)比較嚴(yán)謹(jǐn)?shù)腃,C++等語(yǔ)言會(huì)很吃力。由奢入儉難就是這個(gè)道理。Python的很多智能用法方便了老程序員,卻讓新的程序員容易掉入坑里,不愿意出來(lái)。
如果你是為了尋找一份程序員的工作,那估計(jì)就要考慮行業(yè)的需求了。不同的行業(yè)對(duì)不同的背景的程序員需求不同。國(guó)內(nèi)的編程更多是在前端和上層的運(yùn)用,很少做底層開發(fā)的,因?yàn)榈讓娱_發(fā)時(shí)間長(zhǎng),投入大,收益還沒有保障,所以更多的還是拿來(lái)主義。既然有需求就會(huì)有市場(chǎng),如果你是為了找個(gè)職位,需要考慮國(guó)內(nèi)的大環(huán)境。
之前針對(duì)零基礎(chǔ)的初學(xué)者的編程語(yǔ)言選擇問題,我還專門寫了文章,感興趣的朋友可以關(guān)注我的我們的相關(guān)文章參考一下。
所以不用糾結(jié)于哪一門語(yǔ)言,因?yàn)樽罱K你可能需要了解多門語(yǔ)言,而最后你用的最多的可能不一定是你開始學(xué)的,而且每個(gè)階段用的語(yǔ)言可能都不一樣。
世間武功絕學(xué)太多,每一種絕學(xué)都有自己的長(zhǎng)處,針對(duì)不同的對(duì)手使用不同的絕招才能克敵制勝,然而最高的境界卻是無(wú)招勝有招。放在編程的世界里的道理是一樣的,開始的時(shí)候可能是比較強(qiáng)調(diào)某一門語(yǔ)言,最后就是根據(jù)需求來(lái)選擇最佳的語(yǔ)言組合,發(fā)揮各語(yǔ)言的優(yōu)勢(shì),達(dá)到程序效率,客戶體驗(yàn),運(yùn)維成本各方面的最優(yōu)組合。
這是一個(gè)非常好的問題,作為一名IT從業(yè)者,同時(shí)也是一名教育工作者,我來(lái)回答一下。
首先,從大的發(fā)展趨勢(shì)來(lái)看,學(xué)習(xí)一門編程語(yǔ)言還是有必要的,不論是否在IT互聯(lián)網(wǎng)行業(yè)發(fā)展,未來(lái)職場(chǎng)人掌握編程語(yǔ)言都會(huì)在一定程度上提升自身的職場(chǎng)價(jià)值,這一點(diǎn)會(huì)隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展而不斷得到體現(xiàn)。
目前世界上有大概600種編程語(yǔ)言,流行程度比較高的編程語(yǔ)言也有幾十種之多,不同的編程語(yǔ)言有其特定的應(yīng)用場(chǎng)景,所以在學(xué)習(xí)編程語(yǔ)言的時(shí)候往往要結(jié)合具體的應(yīng)用場(chǎng)景。當(dāng)前對(duì)于初學(xué)者來(lái)說,如果沒有具體的應(yīng)用場(chǎng)景,那么應(yīng)該考慮學(xué)習(xí)一門全場(chǎng)景編程語(yǔ)言,比如Java和Python就是比較不錯(cuò)的選擇。
Java和Python語(yǔ)言都是非常典型的全場(chǎng)景編程語(yǔ)言,而且這兩門編程語(yǔ)言的流行程度也非常高,所以學(xué)習(xí)這兩門編程語(yǔ)言也會(huì)有更好的學(xué)習(xí)體驗(yàn)。在Java和Python之間做出選擇時(shí),可以從自身的發(fā)展規(guī)劃出發(fā),如果未來(lái)要進(jìn)入IT互聯(lián)網(wǎng)行業(yè),從事專業(yè)的研發(fā)崗位,那么應(yīng)該重點(diǎn)考慮一下Java。
Java語(yǔ)言在IT互聯(lián)網(wǎng)行業(yè)的應(yīng)用還是非常普遍的,一方面Java語(yǔ)言的性能比較穩(wěn)定,另一方面Java語(yǔ)言的擴(kuò)展性也比較強(qiáng),經(jīng)過多年的發(fā)展,Java語(yǔ)言已經(jīng)形成了一個(gè)非常健全的語(yǔ)言生態(tài),生產(chǎn)環(huán)境下采用Java語(yǔ)言,也會(huì)在一定程度上降低風(fēng)險(xiǎn)。所以,如果要從事專業(yè)的開發(fā)崗位,可以從Java語(yǔ)言開始學(xué)起。
如果想學(xué)習(xí)一門編程語(yǔ)言來(lái)擴(kuò)展自身的能力邊界,那么可以重點(diǎn)考慮一下Python語(yǔ)言,與Java語(yǔ)言不同,Python語(yǔ)言在傳統(tǒng)行業(yè)的應(yīng)用也非常普遍,所以如果未來(lái)在傳統(tǒng)行業(yè)發(fā)展,學(xué)習(xí)Python語(yǔ)言會(huì)更適合一些。
最后,從發(fā)展前景來(lái)看,未來(lái)隨著大數(shù)據(jù)、人工智能等技術(shù)的逐漸落地應(yīng)用,Python語(yǔ)言的發(fā)展前景還是非常廣闊的。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計(jì)算機(jī)專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會(huì)陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問題,或者是考研方面的問題,都可以在評(píng)論區(qū)留言,或者私信我!
2020個(gè)人推薦:
前端:JavaScript
后端:Go
系統(tǒng):Rust
Windows:C#
Mac:Swift
Android:Kotlin
科研:Python
我們假設(shè)你是一個(gè)初學(xué)者,確實(shí)最大的困難就是不知道選那一門語(yǔ)言來(lái)學(xué)習(xí),肯定有人告訴你學(xué)Java,因?yàn)橛玫娜硕啵灿腥私ㄗh你學(xué)習(xí)Python,因?yàn)檎Z(yǔ)言本身足夠簡(jiǎn)單,而且人工智能現(xiàn)在這么火,還有一個(gè)也是不例外的那就是Javascript,貌似掌握了它就無(wú)敵了。編程語(yǔ)言這么多我們到底該如何抉擇?我姑且認(rèn)為可以從三個(gè)方面來(lái)考慮:
雖然說現(xiàn)在的各種語(yǔ)言在很多領(lǐng)域都能夠作為開發(fā)語(yǔ)言,但是在不同的領(lǐng)域,用的人數(shù)多少以及該語(yǔ)言在這個(gè)領(lǐng)域的優(yōu)勢(shì)是不同的,比如Java目前比較火的領(lǐng)域是大數(shù)據(jù),Python人工智能和爬蟲,C語(yǔ)言在即將到來(lái)的物聯(lián)網(wǎng)時(shí)代肯定會(huì)重新煥發(fā)出它的活力,而且它從來(lái)沒沒落過,再到C#,目前它比價(jià)厲害的地方有游戲領(lǐng)域,如果你對(duì)游戲開發(fā)感興趣,倒是可以從事它,而且微軟開源了
.net
core,發(fā)展相信也不會(huì)差,然后是web方向,論效率php還是很高的,java也不錯(cuò),然后就是Javascript,它是目前我覺得最值得學(xué)習(xí)的語(yǔ)言,因?yàn)樗娴氖菑?qiáng)大到甚至可以為所欲為有些人喜歡從眾,在學(xué)習(xí)編程的時(shí)候,總是不能夠?qū)P模瑒e人說什么就是什么,也不知道自己是否感興趣,到最后啥也沒學(xué)好,所以你得找到一門你喜歡的語(yǔ)言,有可能是它優(yōu)雅的語(yǔ)法吸引了你,有可能是它強(qiáng)大的功能吸引了你,甚至有可能是因?yàn)樗拈_發(fā)工具吸引了你,不管哪一項(xiàng),你必須首先選擇一個(gè)你感興趣的語(yǔ)言并堅(jiān)持下去,不然很可能到頭來(lái)什么都沒學(xué)到,那就得不償失了
選擇其實(shí)并不困難,就看你有沒有學(xué)習(xí)一門語(yǔ)言的沖動(dòng),學(xué)的好,其實(shí)在哪都能吃得開,再好的語(yǔ)言,也得看用的人,今天心情浮動(dòng)較大,回答的不是很有條理,以上僅代表個(gè)人意見,如果對(duì)你有啟發(fā),那再好不過
學(xué)編程有很多語(yǔ)言可以選擇。如果是初學(xué),或者是想再多學(xué)一門語(yǔ)言,那么可以選擇Python。
如果已經(jīng)有應(yīng)用場(chǎng)景,那么看下面的文章可以自行選擇語(yǔ)言。
2020年6月最新編程語(yǔ)言排行榜。可以看到主流的編程語(yǔ)言是C, C++, JAVA 和Python。
C語(yǔ)言是偏底層的語(yǔ)言。使用于底層的驅(qū)動(dòng)開發(fā)和嵌入式開發(fā)比較多。
C++語(yǔ)言。相對(duì)來(lái)說使用最復(fù)雜。多用于一些類庫(kù), 金融軟件,游戲軟件的 開發(fā)。
Java 語(yǔ)言和C++ 語(yǔ)言概念很相似。但是使用起來(lái)會(huì)更簡(jiǎn)單。大多能用在企業(yè)級(jí)的服務(wù)器,前端開發(fā)。
Python語(yǔ)言是一種腳本語(yǔ)言。特點(diǎn)是使用起來(lái)簡(jiǎn)單。學(xué)起來(lái)快。相比其它言來(lái)說容易。所以,青少年學(xué)編程的時(shí)候首選最開始要學(xué)的就是Python。Python是學(xué)習(xí)編程語(yǔ)言的首選第一種語(yǔ)言。
因?yàn)樗悄_本語(yǔ)言,所以調(diào)用其他程序的接口很方便。從而可以實(shí)現(xiàn)更加復(fù)雜的功能。
可以說Python是一個(gè)全棧開發(fā)的語(yǔ)言,無(wú)論前端,后端,數(shù)據(jù)分析,以及網(wǎng)站游戲開發(fā)都可以使用它。
近年來(lái)人工智能和大數(shù)據(jù)的出現(xiàn)。導(dǎo)致Python的使用更加廣泛。所以Python也是數(shù)據(jù)科學(xué)家首選的編程語(yǔ)言。
更多開源軟件。開始支持Python的接口。
Python除了功能強(qiáng)大以外。更是編程愛好者喜歡使用的語(yǔ)言。2020最受歡迎的語(yǔ)言排名中Python也位于前列。
從編程語(yǔ)言發(fā)展趨勢(shì)看,Python也是后來(lái)居上。
這就是為什么?很多人喜歡用Python的原因。
也是建議從來(lái)沒有學(xué)過編程的人從學(xué)習(xí)Python開始。
因?yàn)樗禽p量級(jí)的腳本語(yǔ)言。在日常的工作中就可以用到。比如分析Excel文件。再比如批處理做一些事情。比windows批處理腳本好用的多。
如果你已經(jīng)確定了某個(gè)領(lǐng)域的開發(fā),那么就用那個(gè)領(lǐng)域用的最多的語(yǔ)言!
其實(shí)程序員干了幾年,一般都不會(huì)只會(huì)一種語(yǔ)言的。
前端三劍客 h5 ,js ,css
后端:c/c++,java,c#,python,go...
其實(shí)后面語(yǔ)言限制不住你的,要你知識(shí)面廣,理解深懂底層原理。
什么時(shí)候用啥方便些。
算法,數(shù)據(jù)結(jié)構(gòu),web,數(shù)據(jù)庫(kù),架構(gòu)等等
中間又涉及到很多工具
你要有自己精通的方向,然后對(duì)其他的有一定了解,就可以找到不錯(cuò)的工作了。
這是很多新入行程序員面臨的一個(gè)問題,每個(gè)人都會(huì)有自己的觀點(diǎn),也會(huì)給出不同的答案。而我的觀點(diǎn)是,學(xué)習(xí)什么語(yǔ)言,取決于你的發(fā)展方向和應(yīng)用環(huán)境。
一般來(lái)說,每種語(yǔ)言都有自己的特長(zhǎng)和適用環(huán)境,根據(jù)自己的專業(yè)方向選擇一門最適合的語(yǔ)言,比如我個(gè)人是做圖像處理方面的工作,一般會(huì)使用C/C++作為主要開發(fā)語(yǔ)言,做算法方面的開發(fā),因?yàn)橄啾绕渌Z(yǔ)言,C/C++的效率更高一些。除此之外,對(duì)于實(shí)驗(yàn)性的工作,主要是為了驗(yàn)證想法正確性,以前使用Matlab,近幾年開始轉(zhuǎn)向Python。此外,對(duì)于UI方面的工作,一般會(huì)使用Qt或者C#。
一個(gè)優(yōu)秀的軟件工程師絕對(duì)不會(huì)只會(huì)一種編程語(yǔ)言,他們往往會(huì)多種語(yǔ)言,只不過是會(huì)選擇一門主語(yǔ)言。這有點(diǎn)類似于我們的日常語(yǔ)言,我們有自己的母語(yǔ),但是為了有更高的眼界,我們也會(huì)學(xué)習(xí)一些外語(yǔ)。
至于學(xué)哪一種語(yǔ)言,可以參考TIOBE編程語(yǔ)言榜單,該榜單會(huì)統(tǒng)計(jì)并給出主要編程語(yǔ)言的使用情況,以及長(zhǎng)期的發(fā)展趨勢(shì),下圖是7月份的最新榜單:
從圖中我們可以看到,C、Java、Python、C++、C#長(zhǎng)期處于榜單的前5位,所以選擇他們當(dāng)中的任何一門作為首選語(yǔ)言學(xué)習(xí),都是不錯(cuò)的選擇。
學(xué)習(xí)c語(yǔ)言,c語(yǔ)言可以編寫硬件驅(qū)動(dòng)程序以及應(yīng)用程序,比如驅(qū)動(dòng)硬件LED燈的亮和滅,屏幕的亮滅,非常有趣。
同時(shí)掌握多門語(yǔ)言已經(jīng)是一個(gè)趨勢(shì),且這樣的人會(huì)越來(lái)越多,所以不用懷疑,當(dāng)你入行以后學(xué)的語(yǔ)言肯定會(huì)不止一種
所以應(yīng)該要問的是:
這里強(qiáng)烈推薦Java,其他理由的題主已經(jīng)回答了,就不贅述了,我給出一個(gè)理由就是Java本身是一個(gè)完全面向?qū)ο蟮木幊陶Z(yǔ)言,這一點(diǎn)很重要,在現(xiàn)在這種團(tuán)隊(duì)化合作,動(dòng)不動(dòng)就十幾號(hào)人一起開發(fā)的情況下,一個(gè)開發(fā)的面向?qū)ο蟮木幊趟仞B(yǎng)是非常重要的,如果只是會(huì)調(diào)用API而無(wú)法寫出結(jié)構(gòu)性、擴(kuò)展性、易維護(hù)性好的代碼的話,那樣會(huì)給團(tuán)隊(duì)造成很大的麻煩,而Java雖然被很多人詬病啰嗦,模板代碼多,但是它能強(qiáng)迫你認(rèn)識(shí)到面向?qū)ο蟮木瑁⒉煌5鼐毩?xí)著,而這個(gè)面向?qū)ο蟮乃枷朐谝院髮W(xué)習(xí)其他語(yǔ)言的時(shí)候也能應(yīng)用其中
現(xiàn)在的程序員如果不懂得面向?qū)ο蟮木瑁蔷筒皇且粋€(gè)好程序員。而只懂得一門語(yǔ)言的程序員,他的職業(yè)生涯也會(huì)受限
10
回答4
回答5
回答10
回答1
回答3
回答0
回答0
回答8
回答10
回答