c++開發轉向go開發是否是一個好的發展方向?
2014年畢業。
然後目前在一家互聯網公司做後台系統開發,語言c++。一年多時間,學了一些服務實現框架,一些c++的使用和語言特性,一些腳本等。但是還有很多c++的細節並不知道,如一些stl的實現原理,或者范型編程的實現原理等。現在業務發展問題,應該年後會跳槽,找了家金融創業公司,但問題是服務端是用go語言開發,進去後需要轉型。所以,擔心的是一個未精,又開始鑽另一個,對於未來幾年的發展可能會有影響。望各位有經驗的人不吝指點
多謝
你說呢寫了一年多代碼了……
但是你還沒明白,語言只是你面向工資編程的工具,而不能是你自身發展的方向,還在這裡請教別人該學什麼語言?你見過換了個車就不會開車的司機嗎?
你見過換了個拼音輸入法就不會打字的程序員嗎?你見過換把鋸子就不會做傢具的木匠嗎?木匠的奧義在於不利用工具的奇技淫巧,而在於利用設計的鬼斧神工,見過榫卯嗎?哪個榫卯是利用工具的特性弄出來的了?就拿你寫了1年多的c++來說好了。
今天你用shared_ptr用得開心,明天換個項目的生產環境是gcc4.1.2,你是不是撂挑子不幹了?今天你用pthread用得很開心,明天換個windows,你不會編譯,是不是又撂挑子不幹了?今天你用boost用得開心,明天換個公司不允許用boost的,你是不是再一次撂挑子不幹了?只能說,你連寫代碼的門都沒入。
語言只是手段,不要把手段當目的。用一句老一輩唬人的話總結:
學c++那麼多年了,面試的時候但敢說自己精通c++的,統統不要。你竟然還想精通了c++以後再去學別的。。。。。。ps: 說句題外話。當今天朝,因為寫代碼門檻低,培訓班遍地,工作機會多,老闆自己又不懂,到處都是濫竽充數的。到處都是「寫代碼要記熟api」,到處都是「21天學會xxx」。實在是慘不忍睹,靜下心來好好思考代碼結構設計上的問題,比你記熟一百個api背誦一千個關鍵字都有用一萬倍。
欲要學作詩,功夫在詩外
寫了四年的cpp。
從桌面應用,到伺服器後台,到遊戲開發都做過。最大的感受就是每一次都像是接觸新的語言一樣。寫桌面應用第一次深入了解C++面向對象特徵。
寫後台時候讓我感觸最深的就是內存管理和數據結構。遊戲開發更是把C艹各種宏、模板、多繼承、操作符重載、泛型編程、多線程、c11等特性都接觸了個遍。而這些隨便一個都能坑得你爬不起來。你以為你做了一年,只是「一些細節還不了解」。
你以為只要搞懂諸如const int *i, int const *i, int *const i之間區別這種細節你就可以掌握它。然而你不知道同樣是一門語言,碰到不同類型的開發,面對一團看似熟悉無比,文檔注釋齊全的代碼,而你卻根本沒法讀懂其中任何一句的時候,它照樣能把你嚇哭。
cpp很強大,要什麼有什麼。猿類總是對它無比著迷又無法自拔。
然而它終究只是個工具罷了。
新手司機總是想能像電影里一樣擁有飄逸、甩尾各種炫酷的車技。
然而老司機都明白又快又穩地駕駛到目的地才是最終結果。學多幾門語言你才會明白,它們的共性都是差不多的。你有C艹基礎,跑去學其他語言,也就一兩個月的事。
然而,編程思想、軟體設計、演算法等等,才是最重要的所以,別傻想了,該幹什麼幹什麼吧。順帶著學個語言就是了.Go又不是非常難學。我現在是C++.GO什麼的都在用。
至於你說的C++的很多細節不知道,放到GO身上,如果你不深入,一樣不知道很多細節,
所以還是得多努力啊。請問題主現在的東家是什麼公司,c++做後台的那個公司,叫什麼名字?我也是做c++後台的
我工作14年,11年遊戲行業,至今還在做少量的一線編碼。
我能用來做產品的語言有:C/C++、Lua、Go、Erlang。我能用來做玩具的語言有:Python、JavaScript、Visual Basic、Scratch、Bash。我摸過一下下的語言有:Java、C#、Ruby、Objective-C、COBOL、Scheme。題主有空問這個問題不如花幾天時間把Go學會,Go是超級簡單好學的語言之一。記得之前在哪兒說過:應該把自己定位為擅長於解決某(幾)類問題的程序員,而不是擅長某(幾)種語言的程序員.
金融創業公司?不會是我所在的公司吧。。。
你c++熟悉,那麼學go應該很容易,好歹比PHP轉go的人更容易理解指針
go調試功能較弱
go入門難度比Java c++低,比JavaScript高
go QQ群活躍,社區不太活躍
docker比較火
go和github結合較緊密
用go做Web後端,由於學會go開發相對容易,所以go開發人員的工資較低Go語言簡潔有力,沒有多少複雜特性。都說是工程師為工程師創造的語言,相對的就是有那麼一堆思想和特性 龐雜的設計語言。所以入門確實較容易。
但是越簡潔的語言 設計模式就感覺相對重要,不然就是堆代碼。堆一個個func。我個人覺得Go很適合做很多Java乾的事情,但是Go還是不適合C/C++做的部分事情。Go比較全能,但做不了底層和極限壓榨性能的場景。
我比較喜歡golang的一點,它真的非常簡潔。用 C++ 做一些事,確實很鬱悶,這語言非常龐雜,用法千奇百怪。但只要去看看各大牛逼公司的項目,各大牛逼的工具,哪個離得開 C++?有時候用C和 C++ 做項目,突然用用 Go,那確實是那個舒爽。但一碰到跨平台,一碰到嵌入式,或者碰到某個性能瓶頸,要精打細算的利用內存,會發現 Go 語言是那麼的無力。Go 語言就像分銷商,如果只打算在中游,對上游毫無興趣,確實有它的價值。能快速搞定一般的項目,性能也不錯,不需要浪費時間來甄別十幾種申明字元串的方式, 不需要擔心,這玩意會不會吃掉所有內存,搞著搞著就崩潰了,何樂而不為。但如果想使勁鑽,想爬上金字塔的頂尖。我覺得還是搞搞 c 和 c++ 這些古董吧,鬱悶是鬱悶,但真金白銀也是真金白銀。
套用一位大神的話,程序員以技術分,不以語言分。
多會幾種語言不是問題 我從c c++ basic delphi vb 到objc js python java在學go準備寫dns的有關東西 英語過六級很久了 還在提高口語 法語也能聽懂不少 沒覺得多會語言是負擔 我小孩會英語 瑞典語 當然還有中文 嘿嘿
語言只是工具,思想才是技能。
如果你真正的熟悉c++的話,你會發現golang 真的是極容易上手的 最多熟悉一周就可以開始寫一點東西了
去年我也在寫C++新項目決定用GO了,之前對GO沒多少了解對於一些項目來說GO太合適了,太爽了,開發速度,C++拍馬也趕不上,並且效率還不錯。如果用C++也只是用些STL之類的上層的東西,直接轉GO吧。就第一個月比較痛苦吧,各種語法錯誤,可能邏輯上沒什麼,調語法錯誤比較費勁,為此沒少加班,等熟悉了之後,爽的不要不要的,不過還是有坑,如果沒有技術積累的話,就怕出現緊急問題,不會像C++那樣好查,如果已經有現有項目了,只是跟著做,就不要想了,直接轉,遇到問題還有的人問,比自己單幹好很多。
有對比才會有進步
推薦閱讀:
※這個求指數函數exp()的快速近似方法的原理是什麼?
※為什麼C++中的RAII類一般都是不可複製的?
※如何評價博客園上的博文《 開發人員要亡新浪微博,你攔都攔不住!》?
※C/C++ 中 0 與 NULL 區別是什麼?用 delete 時,用 p=0,還是用 p=NULL 好?為什麼?
※考慮R值引用,c++下多字元串連接,如何寫更高效?