有編程基礎,辭職每天自學四小時編程,做git項目,刷leetcode。會比大廠在職的程序員成長慢嗎?

ww13142010


肯定會慢的,紙上得來終覺淺。不要說大廠了,可能比不過很多學習氛圍比較好的中小型公司,只有自己去做商業項目才能明白用戶需求,只有自己去把技術運用到實踐中才知道突破點在哪。

閉門造車只是在原地踏步,如果是初級碼農的話可能還有效果,但是到了中高級的時候,不是單純的寫代碼就行了,後面你還要懂設計模式,跨部門的交流,厲害的還要在甲方提需求的時候挖掘潛在需求,這樣就不要一天到晚改需求了。

然後如果想往技術深耕的話,除了架構師其實還有現在比較熱門的人工智能行業,這是我們一個新的進階路線,很多人都在說學人工智能就是轉行,其實不是,我以前的目標就是架構師,後來我脫坑了。

人工智能核心就是算法,算法就是一個有智能的程序,我們本身就是搞程序開發的,我感覺就是我們技術深耕的另外一個方向。

知道我為什麼現在有時間和你們在頭條、問答上面閒扯嗎?因為我訓練模型的時候可以自由活動,搭建一個模型就幾百行代碼,然後看著計算機訓練模型就行了。

如果有想往這個方向發展的小老弟可以找我私聊啊,我告訴你我的上岸經驗


架構師交流圈


毋庸置疑的:會。

我自己在it行業已經混了十年,給你講個真實的例子:我公司以前有個哈工大的研究生,在做行政工作的。覺得編程工資高,有前途,就自己自學java編程,據說自學了有2,3年。然後來公司的時候,技術總監面試摸了一下底:能幹活,就是初級工程師的水平,在公司java開發水平屬於墊底的。如果不是老闆介紹來的,估計都沒有面試機會。如果在公司上班的程序員,3年如果項目成長夠快的話,都可以成為高級程序員了。

為什麼會有這麼大的區別?編程是一門實踐科學,需要不斷的去解決現實中的問題,才能不斷獲得成長。自學練手的項目做出來就好了,並沒有什麼實際的用戶去使用,給你提各種奇葩的需求。實際項目給客戶用之後會出現各種各樣你想不到的問題,產品,客戶,測試,項目經理,運維,甚至客服都會對你的項目產生各種影響。大廠的程序員的項目都是影響千萬用戶,甚至上億用戶體量,一點點細節沒注意到,就是成千上萬用戶被影響。就像玩遊戲一樣,你一直在新手村砍些什麼花花草草怪物升級,輕鬆經驗少,別人已經在下大副本,過一次副本經驗值夠你刷新手村怪物好幾個月。時間久了,差距自然就天壤之別了。

所以,要進步快就是準備個差不多,就趕緊去面家公司上班,去實際的項目中去鍛鍊成長,會比自己閉門造車效率高多了。


子安之路


本人是一個前端工程師。我的觀點:自學比大廠在職成長更慢。


分析一下,github項目應該是指參與到開源項目的開發。這個我有一點發言權:我參與了harbor的一個較為獨立功能的前端開發。

我學到了什麼呢?PR的分支管理?前端代碼的整體架構?還是說變量函數的命名規範?emmm....其實都有學到一點東西。學到最多的估計是熟悉了Angular的代碼並進行開發,畢竟在此之前,我都是Vue陣營的。整體來說,開源項目和實際項目有一定的差距。而且開源項目的邏輯複雜度並不一定不會比實際項目高。就算harbor有多語言配置、各種組件高度抽象。

再一個非常現實的問題,如何參與到開源項目?我的經歷估計沒啥可複製性:我司後端在工作項目中用到了harbor,然後根據業務需求提出了新的特性反饋給社區,然後我參與到了其中。emm...開源項目經驗也是來自於實際工作,就很現實。據我個人瞭解,開源經驗一般是解決issue、完成feature、或者是在某個生態圈自己產出項目。這裡面對開發者的要求也是一步步往上升。


leetcode我不是很熟悉,不過在類似的學習平臺上也做過些算法題。工作中作用蠻大的,建議去刷,過程中要著重看下別人的思路,漲見識!


最後說下,我為什麼認為大廠的在職員工成長更快。

1.同事間互相補充,溝通更方便。項目有需要用到的新框架,新組件。可以直接在群裡發個消息,基本上會有人知道,然後可以很快上手,解決問題。比如我之前調研了xterm,實現了瀏覽器的shell功能。同事在其他項目裡或新需求有用到,就不需要再去從頭開始瞭解。比如我想把ts引到項目中來,有個同事之前在另外的項目實踐過了。那我就可以少踩很多坑。


而一個人的話,碰到坑,基本只能去論壇、社區裡求助;新知識需要一個人找資料、再去消化。當然,這樣的獲益會大一些,只是時間成本會大更多。


2.項目督促學習。每個deadline,需要我們有完成需求,或者有文檔產出。舉個例子:我接手的項目需要我去調研openShift的UI項目。迭代出調研報告。那我就得去好好看,我還得思考怎麼和實際項目結合起來。

自己學習的話,說實話,這裡是非常大的坑。很容易沒有重點;或者說學到了東西,沒有實踐的機會,知識學到了也很容易遺忘。


ps: 工作的成長快,其實也有個大前提:不能只做一些重複的業務工作。


Humiliter


當你有了一定的經驗之後,並且短期的目標是明確的時候不會,反而會比在大廠快一些

90%的程序猿的工作,都是增刪改查,在大廠也同等,只不過大廠因為要面對海量用戶和數據,這種場景下,通常會超越一般的開源軟件的系統設計和性能瓶頸,因為開源軟件是一個普適的設計,大廠沒有辦法,只能從開源裡面脫離出來,你自己學習是不太可能會去研究這方面的,所以這點,你不如大廠

但前面的問題,其實也一樣,如果你沒有深厚的基本功,你想也別想,肯定沒你的機會

對上面的問題,如果你找到一個專家級別的人指導你,你然後去自學,你就擁有了大廠的背景,而且是一個負責整體設計的人給你帶來的經驗,這會更加深刻,這樣你自學半年,絕對會趕超一批大廠程序猿

基本功其實不只是leetcode,還有計算機基礎,併發、操作系統、分佈式理論這些,比如併發情況下,我怎麼優化鏈表,提高併發?比如操作系統方面,如何利用磁盤的順序寫,提高性能?


編碼大棚


刷 leetcode 我知道,你在 leetcode 上做算法題,刷算法,可能想通過這種方式來提高自己的算法能力,畢竟程序員面試的時候,算法是比較重要的一環。

但是做 git 項目是什麼鬼?git 是什麼?是代碼管理工具, 是一個開源的分佈式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。題主貌似沒明白什麼是 git 吧?這樣的話,在家自己學習容易誤入歧途啊!

你應該想說的是在 GitHub 上學習一些開源項目吧?GitHub 是一個開源項目的社區,是可以進行代碼管理,裡面有很多開源項目值得學習。


建議你在自學編程期間一定要搞清楚各種工具和技術之間的概念,概念都搞不清楚的話,容易學著學著就走錯路了,就跟古代武俠上的人一樣,閉關練功,容易走火入魔。


一個人的成長和學習,無非這兩條道路,一個是自我主動學習,一個是在工作實踐中提升自己。

但是一個人真正的提升,是堅持兩條道走路,而不是隻堅持其中一個。


自己在家學習,自學當然不錯,但是自己學的時候,其實成長和提升的都比較慢,並不是自己在家學習的時候,很難控制自己的時間,無法控制懶惰,也無法合理管理時間,拋出去這些因素之外,更重要的是自己學習,是一個相對緩慢的過程,自己學習很容易誤入歧途,在學習的過程中會經常走彎路,所以會緩慢,有時候,會跟實踐脫節。一旦這樣的,你學習的成本會大大提高,學習的效率會大大降低。


而在工作和項目實踐中學習提升的話,是結合實踐的,實踐是檢驗真理的唯一標準,實踐也是矯正你學習路線的一種方式。在項目實踐中,會經常遇到一些現實性的問題,實踐性的問題,而這些問題,可能會讓你攻堅克難,你一旦把他們克服了,提升有可能是質的改變。這是自主學習不能相比的。


自學,往往都是一直在學,而不是在克服困難,學的時候,看別人講,看書都覺得對,但是隻有實踐的時候,才知道你自己有沒有掌握。而實踐真正的項目,往往會遇到很多問題,解決問題才會讓自己有質的飛躍。不僅讓你學習了,而是也提高了自己的解決問題的能力。


尤其是編程這個行業,我感覺編程重要實踐,所以在項目中歷練比自己學提升的更快,更好。


非著名程序員


首先,這樣的情況是無法斷定的,因為具體得看學的質量怎麼樣,以及做的git項目的質量怎麼樣。不過一般情況來說,僅僅是問題中的描述的話,成長還是相對會比較慢的。以下給大傢俱體講一講原因:

第一,經驗。程序員不論是否在大廠工作,通常都需要通過不斷的工作或者項目來促進開發能力的提升,這個也是最為重要的,程序員要儘可能的接觸到不同需求的項目或者工作,在不斷的完成之後,會有所提升,得到的經驗相比於自學還是會比較多的。

第二,信息資源。對於程序員來說,比如從事大數據、人工智能方向的程序員往往都需要大量的軟硬件資源作為研發的基礎,而自學者很難能夠獲得這些資源。另外,大部分程序員的工作需要多個角色進行配合,在配合的過程中也能互相促進,不少應用級程序員就是在合作的過程中逐漸成長為研發工程師的。所以,交流對於程序員的成長往往會起到更加重要的作用。

綜上所述,對於初學者來說,自學在短期內應該是有一定效果的,且效果提升應該也是很明顯的。但倘若想要繼續深入,還是要通過工作儘可能的給自己壓力去學習。大家對此有什麼看法嗎?


朝陽黃明律師


首先給出答案:會比大廠在職的程序員成長慢!其次,不建議辭職自學編程!

有編程基礎的情況下,每天自學四小時編程當然是能進步很快的,但是想同大廠在職的程序員相比,顯然還是不夠的。

互聯網大廠裡的牛人大神非常多,普通人也多,雖然不是每一個人都能達到超群絕倫的技術水平,但畢竟平臺大,接觸的人都是這個行業裡的翹楚,所以他們的眼界都是很寬闊的。並且大廠對程序員的代碼要求很嚴格,所以即使是普通程序員也會潛移默化提升自己的代碼功底,並且身邊有大神可以交流,提升的速度那就更加的快了。

而如果選擇辭職在家自學編程,那麼以上的優勢都不存在,只能通過書本、文檔、教學視頻或開源項目來提高自己的編程能力,而這些經驗在實際的項目開發中是遠遠不夠的,因為你在自己的項目練習中,可能並不會面對大量用戶訪問的高併發請求,不用考慮那麼多的前端性能調優,也不用考慮一個項目的前後端架構設計等等。

為什麼不建議你辭職來學習編程呢,因為你對產品項目開發可能還沒有一個簡單的瞭解,或是一個系統的學習過程,等你完全的瞭解現在開發的環境,市場需求,技術走向,有了一個簡單的基礎之後,需要全身心的產出或完全需要準備面試時再辭職。辭職不一定就能學好,不辭職就不能學好嗎?也不一定。辭職之後,過度的自由會讓你失去生物作息的控制。當然也有一個前提,在你的本職工作之外,確實有自己的業餘時間,比如晚上8:00-12:00點,早上6:00-7:00點,週末2天。這個時間段完全可以利用起來,早上可以看看書,晚上可以敲敲碼。

每一個程序員都有想進大廠的目標,而互聯網大廠最看重的是程序員的計算機專業基礎知識,所以建議你自學的同時,可以看看計算機網絡,計算機組成原理、編譯原理、數據結構和算法。


Neeky


辭職自學這條路我認為走不通,會被那些在大廠工作的人拉開不小的距離。

實踐出真知,編碼除了理論要掌握之外,我認為最重要的還是要去項目中實施,試錯,然後才能編碼水平才能有一個質的飛躍。

下面就幾個方面簡單闡述一下其中緣由。

正常工作的編碼人員為了解決項目中遇到的各種問題也在自學

身在程序員這個江湖,很多時候身不由己,同時分你幾個新項目也是常有的事情。項目急著上線,要同時get幾種新技能(語言或者框架)。這個時候就考驗個人的自學能力了。在這種高壓情況下的自學速度,可以說完勝那種辭職在家悠哉悠哉的自學速度。

程序員這個行業,知識更新換代很快。需要通過不斷學習跟上時代發展,才不至於被淘汰。自學能力要強,是能在程序員這個江湖混下去的基本功。

所以說,想通過自學來提高自己,完全沒必要辭職。工作中同樣可以。

辭職在家自學需要很強的自制力,很難堅持下去

懶惰是人性,一個人在沒有學習環境的前提下,很難做到完美的自制。除非自己制定一套很詳細的學習計劃,而且要雷打不動的堅持下去。如果沒有這種自學,最好還是不要盲目的去嘗試。

我感覺邊工作邊自學是最理想的狀態。有工資拿,還能不斷的提升自己。為什麼非得要辭職才能去學習呢!


麥子君


前言

介於自己從事軟件開發行業已有幾年的時間,自己以前也曾思考過類似的問題。所以,就此問題,談談個人對此問題的看法,希望個人觀點能更有助於有類似疑惑的小夥伴做出自己更好的選擇。下面,我們就從時間,資金和視野三個方向來探討這個問題,並餘留一點點思考給到大家

時間

辭去公司職務,我們就不需要關注公司業務的細節和工作任務的進度。同時,也不需要維護複雜的辦公室關係。這樣注意力能更加集中。我們也就有更多時間放在自學編程技術上。但是,能不能把時間有效地轉化到自學編程技術成果上,這期間就需要我們更自律,更加嚴要求自己。只有我們變得自律的基礎上,充足的時間對我們而言才算是有意義的。

資金

大部分人選擇上班,我想其中一大好處就是,有一筆穩定的資金來源可供自己生活,從而無需擔心自己生存的問題。但是,辭去職務之後,我們的生存問題能不能得到保障,我想這個問題必須得在我們自己內心好好過濾一遍。如果生存問題不能解決,那麼談論自學編程技術是沒有任何意義地,因為經濟基礎才能決定上層建築。

視野

進大廠,除了有一筆穩定的資金外,我想更重要的一點是,能讓我們的視野更加寬廣。除了技術上的挑戰會歷練我們之外,也能讓我們明白一個產品是如何從需求轉到最終落地的。

思考

自學編程技術,只是我們學習一門技術的一個過程,至於我們自學編程技術的最終目的是什麼?這就需要各位小夥伴自己好好反思一下,從而能幫助自己做出更好的選擇。如果你喜歡文章的觀點,記得點贊關注。如果有不同意見,也歡迎大家拍磚留言。


關注我,不定期分享好玩的科技知識,一起探索科技的魅力。


drinkingcode


這個問題不太好回答,因為對比的對象是大廠在職的程序員。而大廠在職的程序員其實是分很多種類,並不能夠一概而論,所以這個問題讓我稍稍的有點點為難了。

在大廠的程序員可以粗略的分為兩類吧,一種是領導者,一種是幹活兒的。作為大廠的技術領導,其平臺、眼界都不是中小型的互聯網公司可以媲美的,遑論你這自己自學的人呢?正常情況下,除非你是絕頂天才,否則和這樣的人幾乎沒有什麼比較價值,因為差距實在是太遠了。

那麼比一般幹活的程序員呢?說實話,也看具體情況。如果這個程序員在一個崗位上兢兢業業的幹了十年CURD的工作,那麼很可能你稍微努力一下,就比他厲害了。但是如果這個程序員在自己的崗位上努力工作,還不斷的利用平臺資源進行學習,那麼你不太可能超過人家的。

簡單來說,對於一個開發工程師而言,自己的努力固然是十分重要的,但絕對不可以忽略了平臺的重要性。因為不一樣的平臺,看到的世界是完全不一樣的。

舉個例子,一個小公司的運維人員,可能就是管理著三兩臺的服務器,面對的也就是每天幾萬流量的負載。在這樣的環境中成長,自然不可能接觸到那種千萬甚至億萬流量的壓力。對於服務器集群均衡負載等這些領域,自然是接觸不到,只能通過自己的臆想來進行揣測,和大廠的運維所面臨過的真實情況,差距就是雲泥之別了。

所以,我給你的個人建議是,通過自己的努力學習,趕緊為自己找一個相關的工作。無論公司大小,有平臺就是好的。在能夠勝任小型的互聯網公司的開發任務的情況下,不斷的往優秀的公司跳槽,提升自己到一定的級別,才能看到更加精彩的世界。

同樣是賣東西,小賣鋪是賣,大型連鎖超市也是賣。原理無非是進貨賣貨結算而已,但是世界解決的問題,是完全不一樣的。

戰鬥吧小夥兒!你的前途很光明哦!

感覺我說得有點道理,就給我點個贊,留個言,順手關注一下人家唄!~謝謝!


分享到:


相關文章: