我是有web開發(fā)經(jīng)驗,但是完全不懂go語言,算是0基礎吧,感覺學起來還行。平時是在慕課網(wǎng)看GO開發(fā)工程師體系課,先從簡單的語言基礎學,然后會涉及全棧項目、微服務、分布式,從安排上看挺貼合企業(yè)實際生產(chǎn),總體感覺還算可以。
目前成都創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、綿陽服務器托管、企業(yè)網(wǎng)站設計、永吉網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Go語言是谷歌推出的一種全新的編程語言,可以在不損失應用程序性能的情況下降低代碼的復雜性。谷歌首席軟件工程師羅布派克(Rob Pike)說:我們之所以開發(fā)Go,是因為過去10多年間軟件開發(fā)的難度令人沮喪。
Go是谷歌2009發(fā)布的第二款編程語言。2009年7月份,谷歌曾發(fā)布了Simple語言,它是用來開發(fā)Android應用的一種BASIC語言.
Go Logo
北京時間2010年1月10日,Go語言摘得了TIOBE公布的2009年年度大獎。該獎項授予在2009年市場份額增長最多的編程語言。
谷歌資深軟件工程師羅布·派克(Rob Pike)表示,"Go讓我體驗到了從未有過的開發(fā)效率。"派克表示,和今天的C++或C一樣,Go是一種系統(tǒng)語言。他解釋道,"使用它可以進行快速開發(fā),同時它還是一個真正的編譯語言,我們之所以現(xiàn)在將其開源,原因是我們認為它已經(jīng)非常有用和強大。"
2007年,谷歌把Go作為一個20%項目開始研發(fā),即讓員工抽出本職工作之外時間的20%, 投入在該項目上。除了派克外,該項目的成員還有其他谷歌工程師也參與研發(fā)。
派克表示,編譯后Go代碼的運行速度與C語言非常接近,而且編譯速度非??欤拖裨谑褂靡粋€交互式語言?,F(xiàn)有編程語言均未專門對多核處理器進行優(yōu)化。Go就是谷歌工程師為這類程序編寫的一種語言。它不是針對編程初學者設計的,但學習使用它也不是非常困難。Go支持面向對象,而且具有真正的閉包(closures)和反射 (reflection)等功能。
在學習曲線方面,派克認為Go與Java類似,對于Java開發(fā)者來說,應該能夠輕松學會 Go。之所以將Go作為一個開源項目發(fā)布,目的是讓開源社區(qū)有機會創(chuàng)建更好的工具來使用該語言,例如 Eclipse IDE中的插件。
在谷歌公開發(fā)布的所有網(wǎng)絡應用中,均沒有使用Go,但是谷歌已經(jīng)使用該語言開發(fā)了幾個內(nèi)部項目。派克表示,Go是否會對谷歌即將推出的Chrome OS產(chǎn)生影響,還言之尚早,不過Go的確可以和Native Client配合使用。他表示"Go可以讓應用完美的運行在瀏覽器內(nèi)。"例如,使用Go可以更高效的實現(xiàn)Wave,無論是在前端還是后臺。
Go 同時具有兩種編譯器,一種是建立在GCC基礎上的Gccgo,另外一種是分別針對64位x64和32位x86計算機的一套編譯器(6g和8g)。谷歌目前正在研發(fā)其對ARM芯片和Android設備的支持。派克表示,"Android手機存在的問題是,我們一直沒有一個數(shù)學協(xié)處理器。"
Python:
難度系數(shù):一顆星;歡迎指數(shù):四顆星。
學完之后可以從事:web開發(fā)、應用開發(fā)、大數(shù)據(jù)、數(shù)據(jù)挖掘、科學計算、機器學習、人工智能、運維、自然語言處理等。
就業(yè)薪資:北京地區(qū)Python開發(fā)工程師,工資收入水平應屆畢業(yè)生起步10k左右。
GO語言:
難度指數(shù):一顆星;歡迎指數(shù):四顆星
相對于來講,GO語言并不是很難。但是GO語言的學習資料相對于其他語言比較少,所以學習起來沒有其他語言那么便利;很多人都說GO語言很火,按照數(shù)據(jù)來講是的,尤其是在國外,GO語言非?;?,有很好的開發(fā)效率,主要用于服務器端的開發(fā),進行處理日志、數(shù)據(jù)打包、虛擬機處理、文件系統(tǒng)等。
就業(yè)薪資:GO語言起步薪資相對于較低,而且招聘崗位也不是很多。
Java:
難度指數(shù):三顆星;歡迎指數(shù)五顆星。
Java可以做:安卓和IOS的應用開發(fā)、視頻游戲開發(fā)、桌面GUI、軟件開發(fā)等。
就業(yè)薪資:Java屬于老牌編程語言,但是由于市場上開發(fā)人員較多,競爭激烈,薪資比較平穩(wěn),招聘需求量也不是很高,如果是應屆畢業(yè)生的話,可能并不是很好找工作。
C++:
難度指數(shù):四顆星;歡迎指數(shù):四顆星。
C++目前被看作編寫大型程序時應用最好的面向對象編程語言,C++是C語言的升級版本。
C++可以做:搜索引擎、軟件開發(fā)、操作系統(tǒng)、視頻游戲等。
就業(yè)薪資:C++開發(fā)工程師起薪工資一萬左右,高級工程師薪資兩萬左右,但是學習起來不易,對基礎、學歷都有要求。
綜合情況,從難易度、就業(yè)薪資、需求量方面來講,更推薦大家學習Python。Python簡單易學、容易入門、語法清晰,對初學者十分友好。
每種語言都有自己的側重點,如果可以的話建議題主還是分開學,循序漸進,如果學習同時學習三種語言,容易記混不說,反而容易導致學習進度停滯不前。
知了姐就來跟大家詳細說說java,python,go三種語言之間的區(qū)別,僅供題主參考~
01 Python
難度:★
歡迎度:★★★★☆
創(chuàng)始于:1991年
**學完之后可以干什么:**web開發(fā)、應用開發(fā)、大數(shù)據(jù)、數(shù)據(jù)挖掘、科學計算、機器學習、人工智能、運維、自然語言處理等等等。
Python的優(yōu)點:
? 易于學習:就像論壇里有些人說的,做了幾年Java或者是C++的,幾天就可以寫Python了。但是這個不是什么壞事,入門來說,從簡入難,或者從難入簡,都是很好的選擇。
? 庫:庫都是免費的,并且有很多庫和函數(shù)把編程變得相對容易很多。
? 物聯(lián)網(wǎng):Python也許是會成為物聯(lián)網(wǎng)當中最受歡迎的語言,我們都知道樹莓派這樣的新平臺都是基于Python開發(fā)的。
Python的缺點:
速度:開發(fā)速度是快,比如java100行代碼python20行就搞定了。但是作為解釋型的語言來說,比編譯型語言的速度慢很多。
? 移動端:Python在移動計算方面是弱的,很少有智能機的應用是Python開發(fā)的
? 設計:python是動態(tài)型的語言,需要更多的測試以及錯誤僅僅是在運行的時候展示的。
02 JAVA
難度:★ ★ ★
歡迎度:★ ★ ★ ★ ★
創(chuàng)始于:1995年
Java可以做什么:**安卓和IOS的應用開發(fā)、視頻游戲開發(fā)、桌面GUI、軟件開發(fā)等等;
Java是老牌語言,但是由于市場上相關開發(fā)人才較多,競爭激烈,薪資趨于平穩(wěn)。
Java的優(yōu)點:
? Java開發(fā)人員需求量大:這個是根據(jù)統(tǒng)計得出的。JAVA在很多語言當中,是需求量最大的;
? 進化語言:首先C++是基于C語言優(yōu)化的,Java是被優(yōu)化過來的。而且在這人平臺是增加了很多的功能,lambda等功能
? 安卓應用開發(fā):谷歌的安卓移動平臺是世界第一的移動平臺,編寫安卓應用開發(fā)者使用的主要語言是Java;
Java的缺點:
? 使用大量的內(nèi)存:Java和C++相比使用更多的內(nèi)存所以占用的內(nèi)存就更大
? 學習曲線:這邊指的是Java雖然不是最簡單的入門語言,但是也不是最難
? 啟動時間慢:用java寫過安卓的應用的人應該都知道。同樣的代碼在模擬器中啟動是非常緩慢的事情。
03 GO語言
難度:★
歡迎度:★★★★☆
創(chuàng)始于:2007年
go語言的難度,相對來說,GO語言不難的。
可是GO語言的學習資料相對其他的語言來說很少,所以學習起來沒有其他的語言那么便利;
很多人說GO語言在國內(nèi)更火,按照數(shù)據(jù)來說,是的。因為中國人多,基數(shù)大。其實GO在國外更火。對于現(xiàn)在來說,GO實際上也已經(jīng)站穩(wěn)腳跟了。不管是Google自帶光環(huán)也好,實際應用也好。go算是找到了屬于自己的空間。
golang相對其他語言來說,招聘職位還是較少。
GO語言的優(yōu)點:
? 編譯時間快:GO語言編寫最大的微服務的時間大概需要6秒,相對Java和C++呆滯的編譯速度來說,GO語言快速編譯是主要的效率優(yōu)勢。
? 并發(fā)性和通道:GO語言的logo大家可以了解一下,它就是致力于事情簡單化,也就是快。其實并沒有引入很多的新的概念。就是打造一門簡單的語言,使用起來很快。在goroutine上運行一個函數(shù)最小的樣板代碼,我們只需要使用關鍵詞go添加函數(shù)調(diào)用:
? 生態(tài)系統(tǒng)也是很強大的:面向Redis、RabbitMQ、Template等等很多穩(wěn)定的庫。有很強大的工具支持。
GO語言的缺點:
? 缺少框架:GO是沒有一個主要的框架。但是很多人認為不應該從框架的使用開始。也可以從社區(qū)的討論了解一下這個問題。
? 錯誤處理:在錯誤處理方式,很容易丟失錯誤發(fā)生范圍,所以在編程過程中很難向用戶提供出有意義的錯誤信息。
? 軟件包管理:在默認的情況下,沒有辦法制定特定版本的依賴庫,也沒有辦法創(chuàng)建可以復寫的builds。
前期,咱們可以熟練掌握一門語言先找到合適的工作,拿到滿意的薪水,穩(wěn)定之后咱們逐漸就可以學習更多的語言,豐富技能~
Go語言的工作需求量不大,所以工作比較難找。
目前僅憑Go語言不好找工作,一是因為圈子不大,需求量也不大,二是即使工作需Go,也不是僅憑Go就可以,更重要的是其他的,比如云平臺開發(fā)經(jīng)驗這些Go的應用能力。
隨著Go語言越來越成熟,很多大廠還是有Go的需求量。只不過北上廣深的機會要比其他城市多一些,畢竟公司也多。但是Go要比Java和Python年輕太多,而且生態(tài)圈還沒有那么成熟。所以工作比較難找。
學習GO并沒有你想象中的那么難,更何況你還懂Java。我也是把Go當作第二語言學習的,在慕課網(wǎng)看那個go的學習路線,花了兩個月左右,Go確實很強大也是未來的大趨勢。