目前python熟練 ,想再學golang 需要先學c嗎?
屬於野生自學的非科班學生(學地理的) 想把這塊基礎夯實
有類似的朋友或者前輩能給些不走彎路的學習路線嗎
水平停留在入門階段
首先需要題主記住一個結論:編程技術是一個技能。既然是一項技能,就像騎自行車一樣,是可以通過不斷的練習來獲得這項技能。
因此,題主在日後的工作中,不要再提自己屬於野生自學非科班學生這個背景,每當你這麼說自己時,其實都是對自己的不自信,潛意識裡認為自己是非專業出身,是學不會的根本原因。但是,其實壓根就是錯誤的想法。想想看,從高考後,到大學的所學專業,沒有幾個人真正知道自己想學什麼的,另外還有很多是服從調劑的專業學生。因此呢,從這裡可以說明,學什麼專業在某種程度上其實是一個偶然事件。所以,以後千萬不要再拿自己的非專業出身說事,不會就學,人的主觀能動性是能發揮決定性作用的。
其次,題主已經熟練使用了Python,說明是具備編程基礎和編程思想的。既然已經掌握了Python,那再接觸golang,無非就是換了一門語言而已。所以不要先去學C了,那樣只會是浪費時間,重要的還是我說的第一點,多練習。
人類的最本能的學習其實是模仿,所以,看不懂golang的一些特性,沒關係,別逼著自己看,也別著急。你可以先用golang語言,比如使用golang的框架搭一些小型的項目,做幾個功能。再比如說,去看看開源的一些組件和框架,自己按照例子,學習著寫一些。在用的過程中,用到什麼就學什麼,遇到的不會的,就找資料去解決問題。
這種學習方式是遇到問題解決問題;而不是試圖把所有知識都學會,所有問題都弄明白,最後再去實踐,後一種方式是錯誤的學習方式,效率及其低下。
希望題主能掌握好go,謝謝。
最後說一下,如果需要的話,我在github上維護的一個go的學習資料庫,可以看看:https://github.com/rubyhan1314/Golang-100-Days
也歡迎大家star和fork。
聲明:內容完全免費,侵刪。
要這麼看:
Go 已經實現了自舉,做應用和看源代碼,基本就在 Go 裡邊打轉轉。
但是有 C 的基礎的話,你再接觸到 Go 的指針、結構等概念時,會發現 Go 裡面的這些概念跟 C 比起來都是小兒科,畢竟 Go 的作者 Ken 自己就是 C 語言的作者之一,畢竟 Go 就是類 C 的編程語言。然而這些概念的問題都不大,畢竟 Go 也是友好上手型編程語言。
你這個問題是等於問,學習Python 需要先學C 語言嗎?
不需要先學C 語言。
如果真的熟練Python,Golang 可以在很短時間內學會的。
該學習一下數據結構和演算法了。
當然如果是轉行的,先轉行成功,以後再補上C 語言、操作系統、編譯原理、資料庫等科班課程。
請看
程序員提升書大全
顯然,有 C 的基礎肯定是好的,因為 Go 語言和 C 有太多的相似之處。但是題主的目標是 Go 語言,那就直接學 Go 語言吧。沒必要為了學一門語言而去再學一門比他更難的語言。如果是這樣,那我覺得,每個人都應該把 C 學一下,甚至要把彙編學一下,畢竟這樣你才能對什麼是指針,地址理解的更深刻。
資料是很多的,小白的話,我建議去學 bilibili 上韓順平的 Go 語言課程或其他類似課程,輔以各種書籍資料,如此學習起來會比較輕鬆。那些專業老師的事無巨細,雖說對有經驗的人來說是浪費時間,但我覺得對小白的學習是很有幫助的,能把基礎打的比較牢。
雖然說 Go 語言很簡單,對於有經驗的開發而言,一個星期就可以寫代碼了,我就是這樣。但一個基本沒什麼經驗的小白,還是建議系統學習一下,很多時候大佬不懂小白的苦,小白的問題,大佬也是很無語的,說不定因此會打擊了學習的熱情。
在有了一定的基礎之後,就是時候參考各位大佬的方法進行更加深入的學習了。
不需要先學C語言,但是有C語言基礎會更好。下面回答當中會有完整的Go語言的學習路線圖,以及配套資料。在看如何學習之前,先來看看Go語言比較中肯的評價。
懶人目錄:
- Go語言的分析
- Go語言基礎學習路線(附詳細學習方案!)
- Go語言免費資源分享
一、Go語言的分析
下面這個是我在知乎上看到過的比較中肯的對Go語言的分析。原鏈接:kanmars:最近在看GO語言,反思C、JAVA等語言 。把文章部分內容引用在下面,給大家看看。
這個作者寫的後面他對於Go語言的判斷分析:
原公司架構為PHP等架構,需要升級,而公司無力立刻招攬足夠的JAVA等語言技術人員,既有IT架構人員又不能立刻開除,這種情況下,可以採用GO語言「先頂個五年」。原公司架構為C語言等架構,因擴展業務至其他未知領域,C語言開發過於精細,而Python等又過於粗糙,且既有IT架構人員不能立刻開除換一批,這種情況下,可以採用GO語言「先用著」原公司因為業務擴展,伺服器內存不足但是CPU充足,原業務為JAVA也不複雜,在此情況下,適宜用GO語言對業務進行重構原公司業務一無所有,而資金有限,GO語言程序員便宜,可以迅速招攬,並且公司自己用就行,不對外商業化,此情況下,適宜建立GO語言的技術體系。而如果是:公司資源充足,技術體系為JAVA體系,業務目標極其底層只能用C,等情況,不建議使用GO語言。
其實Go語言在近幾年一直在風口浪尖上,比如知乎開始招聘Go語言的開發人員了。或者是Steam平台也逐漸轉向go語言開發等等這樣的話題一直被大家拿出來討論。