自學編程和計算機科班出身的差別在哪?

下面的回答我都很認真的逐一看過了。但是我希望的回答是全面的,深入的。有一些回答我不明白您是在抖機靈還是像輪子哥一樣初中就開始編程,但是我是個普通人,我希望回答者能夠抽出一點時間寫個全面一點的回答,謝謝。

還有請不要在問題上評論,這種不說出論據直接甩出觀點或者嘲諷,影響不大好……
ps:題主的自學構架是和學校里計算機專業的構架同步

有興趣的同學可以去看另一個題主的提問:計算機科班出身的優勢是什麼? http://www.zhihu.com/question/57746751?utm_source=com.miui.notesutm_medium=social


吾之蜜糖,彼之砒霜,有人說這就是一篇毒雞湯。我也不想本文成為年輕朋友輟學的借口,各位看官請慎入、請慎入。還有人說是我智商高,我只能敬謝不敏了,其實我只是出發的早而已。十幾年來,我合作過的大牛程序員有小縣城畢業的初中生、高中生,北清復交的畢業生, MIT,普林斯頓,斯坦福,伯克利的計算機博士,他們都有自己的特點,都有讓我敬佩的地方。我寫本文來分享我的經歷,希望年輕的喜歡編程的朋友們,能夠堅持下來。


我讀了計算機的本科,碩士和博士,但我的編程是99%自學的。我大概12歲左右開始自學編程,並不需要什麼其他知識,頭兩年也沒有老師,書都很少。我都很熟練能寫basic, c和pascal了,才在英語課本里學到return這個單詞的意思,原來我一直不知道這是個單詞(我小時候那會兒初一才開始學英語)。當時真的很難,每個指令都是一個一個字母死記硬背的。小時候信息學聯賽也不是正經上課,基本都是賽後總結一下,大家分享一下題目咋做的。所以我的演算法和數據結構也是自學的。我還記得少年宮的老師面試我,讓我不用遞歸寫一個樹的遍歷,因為我自學了半本數據結構,前天晚上剛好看到棧,就做出來了。很多時候這都是命運啊,我要是看的稍微慢點,就沒戲了。

我本科時候基本沒去上過編程的課程,本來就沒幾門,我也都逃了,當時年少輕狂,覺得太淺,而且C語言老師的寧波口音我實在聽不明白(都是借口,我不愛上課)。博士期間我上過一兩門編程的課,重溫一下c++的感覺,而且其他課拿A還是要花點力氣的。我從來沒上過java的課,但十幾年的職業生涯,我基本是已用java為主的。有朋友問,優秀的編程思璇哪裡來?老師能教嗎?其實極少有老師能教你這個,我覺得99%還得從你自己多探索、多吃虧、多看別人怎麼做中自己總結。以前有我帶過的程序員跳槽以後,就照搬我做過的架構去其他公司,畢竟應用場景不同了,吃了好多虧,但幾年下來,人家不斷探索和總結,現在成為一個公司的技術負責人,解決各種問題都是妥妥的。

這也是我為什麼在很多回答里都鼓勵非科班的兄弟們自學編程,因為我覺得沒有差別,你並不需要先學好數學和英語,一樣可以寫代碼,一樣可以當好程序員。計算機的數學很多是非常直觀的,比如說n的平方和n的立方誰增長的快,快多少?你不學數學分析也能有大致的認識,不影響你學演算法,當然建議你能從數學的角度思考,把這個問題真正的學明白。演算法和數據結構里用到的數學知識是很少的,多項式和對數就涵蓋99%了。至於英語,就算你看原版書,也不需要認識多少單詞,一半都是代碼和圖。再不濟你用谷歌翻譯擼一擼,也就看懂了。編程和唱歌跳舞一樣,如果你能找到個大師親自指點你,那當然是最好不過,不過這種機會是可遇而不可求,就算在大學裡,即使你是個博士生,你和導師交流也是很有限的,本科生更是一年和導師也說不了幾句話。自學才是獲得知識的最主要途徑。在美國,一個博士往往要修50幾個學分,我們學校還強迫每個方向的課程都要有,軟體,硬體,數學,網路等等,這聽起來好像很多,但和普通博士生自己看的論文、自學的知識比起來,那50幾個學分真的不算什麼。

我始終覺得高等教育不是知識和技巧的傳授,大學不是技校,計算機專業和教你開挖掘機不一樣。大學的教育主要是幫助你進行人格、性格和思維的塑造,比如說數學分析能讓你更加理性堅韌而又不失變通,離散數學可以讓你感受結繩記事以後,人類思維的演變。我一直非常感謝我的母校復旦大學,本科四年,她沒有把我像工具或者螺絲釘一樣培養。而我後來在美國的博士階段教育,又讓我更加懂得如何向未知領域探索,如何解決前進中難題。我覺得大學裡的最終產品是大師,當然不可能出來的各個畢業生都立馬成為大師,可能是在幾十年後在大學裡或者大學外成為大師,也有可能僅僅是出產一個個內心更加寧靜和強大的懂得獨立思考人,不會沒事出來問自學和科班的差別在哪裡,我的大學是不是白讀了之類的問題。我覺得大學教育既不能工具化,也不能精英化,而是應該更加的個性化,每個人都應該有自己更獨立的靈魂。

我比較自豪的是我多年來在技術上並沒有走太多的彎路,我也比較少會有技術和人生選擇上的迷茫,我想這也是科班教育給我帶來的一個顯著收益吧。


哇,這是我最火的一個回答了,感謝大家。謝謝大家誇我智商高,智商高到一定程度,學什麼都會快,我見過這樣的人,但我顯然沒高到那個水平。武功再高,也怕菜刀,我自學也是很苦難的,到現在也沒把演算法導論看完。趁機說一下感覺自學很困難怎麼辦。我老婆推薦我看過一本書,關於大腦腦迴路(brain circuits好像是這個詞吧)鋪設的。人的大腦不是一成不變的,你可以通過訓練讓大腦里的迴路鋪設更適於干某一種事,我想這就是為什麼有人說什麼事做10萬小時,你就是專家了,估計那時候你腦子都改變了,學類似的東西就會很快。這是很笨但是很穩妥的辦法,只要花時間,總歸能學得會。就是下面這本書。

還有一個技巧就是虛極靜篤,很多時候你不接受一個概念,是因為你自己心裡已有的觀念太強了,讓你不自覺地產生了排斥。比如說我學ruby的時候就很痛苦,因為我以前一直學習的都是靜態類型的語言,很多概念在心裡太強了,再來看ruby, 就什麼都覺得奇怪,很多的懷疑讓我靜不下心。蹉跎了很久之後,我就開始嘗試放下已有的知識,就好像是學習我的第一門語言,用ruby的哲學去學習ruby,效果就特別好了。

還有就是編程需不需要數學?我個人很喜歡數學,但我認為數學只是工具,而且是沒那麼常用的工具。不管怎樣,作為一個程序員,學好數學肯定不是最終目的,數學家不等於好程序員。我們程序員寫好代碼才是目的。寫好代碼需要玩轉數據結構和演算法,演算法需要使用一些很直觀的數學,我自己的體會是不懂數學也能學演算法,你可以在學習演算法的過程中不經意間把數學也學了。但大學裡開那麼多數學課也不是白費的,這是思維的鍛煉,你數學學的好能讓你理解演算法更快,而且從數學的角度來看演算法,能讓你看的更透徹。


關於編程等不等於計算機科學,我覺得是等於的。程序=數據結構+演算法,我實在想不出計算機科學的什麼分支,包括計算機原理,操作系統,編譯原理,計算機網路,這些都沒有什麼逃出數據結構和演算法的範疇。而且我們在計算機科學中所學的一切,都會最終落實到程序上。 自學編程,就是自學計算機科學,沒有什麼高低貴賤之分。或許有例外,請大家在評論中教我,謝謝!


來說說自己的體會吧,我算是是自學編程出身的程序員。

先說說自己的教育背景,本科學習的EE,master也是EE,做的方向還是模擬電路。和文科生這樣自學編程的基礎還是不太一樣的。像基本的數學知識,微機原理,信號處理,數字電路,計算機體系結構是有基礎的。

再說一下自己自學的過程,因為我的第一份工作是所謂的management trainee, 有相對自由的輪崗機會,我特意選擇了能夠真正寫代碼的崗位。這樣就有比較好的環境在補缺了的計算機基礎課程同時在實際工作中運用。

關於上課,我先上了berkeley的 CS61A,CS61B,CS61C。這三門課基本涵蓋了編程入門,基礎的數據結構和操作系統。也是對我幫助最大的三門課。讀了兩遍CSAPP,受益匪淺。然後在coursera學了machine learning入門, Functional Programming Principles in Scala系列, Programming Languages系列和一些android相關的課程。

關於演算法,因為自己演算法訓練是極其不夠的。我和朋友開始組隊刷Leetcode,每天大概一個多小時,也就是大概medium 2-3道。不算節假日,一共進行了大概一年。一共做了200多道,基本涵蓋了algorithm里的easy 和medium。

自學背景介紹完畢。

現在說說感覺和科班出身,同樣努力程度同學的差距主要體現在這些方面:

  1. 職業起點不同: 這是我感覺最明顯的差距,也是影響最大的一點。絕大多數公司對於軟體工程師的招聘,尤其是校園招聘,還是要卡學歷的。當然許多崗位像我這樣相關專業的也可以,但是演算法,系統底層這樣的hard core,6年CS的科班訓練是必須的,即便是Math的本科,很多還是prefer CS的背景。而一個人的職業生涯一個很大影響因素就是第一份工作,在歐美更甚。
  2. 技術天花板不同: 如果你一直想走技術路線,
    1. 自學出身一般會是: SE -&> Senior SE -&> Lead SE-&>Arch -&> ?
    2. 科班出身:
      1. 工業界:SE or Scientist -&> Senior SE or Senior Scientist -&> Lead SE or Principle Scientist -&> Arch or Fellow -&> ?
      2. 學術:AP -&> Assoc Prof -&> Prof -&> ?(也就是說自學和學術界,大公司的research基本無緣了)
  3. 技術視野不同: 視野是個很玄學的東西,如果要測量的話,自己的體會大概就是自學出身很難讀懂CS領域頂會的文章。這個東西也許大家都還在寫for each的時候是沒什麼卵用的,但是如果讓你去做Arch,設計一個DSL,這個東西就很有用了。
  4. 計算機基礎知識薄弱: 程序員三大浪漫(編譯原理,圖形學,操作系統),我估計99.99%的程序員只會在OS的課上寫人生唯一一個OS,compiler同理。自學嘛,基本上是不會涉及了,除非工作需要。拋開圖形學不談,我實在是認為OS 和 Compiler非常有用。

以上四種差距,影響力依次遞減。所以我覺得自學和科班最大的差距還是在上車有沒有車票的問題,是起跑線的問題。至於上了車,那就真的是各顯神通了。


我現在越來越發現知乎上的大量問題都是邏輯上存在混淆的。比如這個問題就是把「自學」跟「科班」對立起來。

我考察新人的一個很重要方向就是「自學能力」,對於程序員這個行當,科班再牛,不思進取2-3年就會面臨淘汰。所以關注的是解決問題的能力,而非是否科班出身。而「解決問題的能力」從何而來,所謂「師傅領進門,修行靠個人」,這時候你的「自學能力」是時候拿出來走兩步了。


如果畢業後的目標是變成一個程序員的話,given that那些老師的開發經驗也是基本接近於0,所以你在獲得相同的材料的前提下,是否讀了這個專業是沒有區別的。

但是

現在碼農已經太多了,公司卡你個專業少弄點簡歷在所難免。


沒什麼區別,科班同時學基礎學科和編程,非科班一般只學編程,不能說科班比非科班厲害,愛學習的人才厲害,學習永無止境


最明顯的差別大概是,自學的程序員寫 parser 普遍不如科班的 6。


問題的邏輯怪怪的。

如果在大學裡,非科班上了科班專業課,算是科班還是自學呢?
算科班?貌似說不過去。算自學嗎?有老師教你還好意思說自學?

題主邏輯混亂,做程序員前途堪憂。


其實計算機科班的人也都是自學的
攤手


就國內我看到的大部分情況來說,即使是名校科班出來的,也依舊有大量的人工程能力很差。(不了解科研,不瞎說,我也沒學過數學,離散都是61分及格,數學要求在普通編程上也就是個高中看懂f(x)=x+1的水平)。

所以就各高校來說,培養出的科班程序員和自學編程的程序員的區別,就在於科班因為《培養計劃》的原因,比自學對計算機學科的科目記住的名詞多一些。

至於如何彌補這微不足道的差距,@Badger4us @蕭井陌 看兩位作者的這個 編程入門指南 v1.5 我當初非常痛苦的看完了這個目錄的大部分書籍和視頻(當然跳過了很多太簡單和太困難的,比如sicp後面幾章實在無法理解),大二的時候連續15天*10小時我也第一次囫圇吞棗地坐在圖書館看完了算導(我拿這個事跟蕭井陌吹逼過,不知道他還記不記得),不過現在畢竟好久沒寫過代碼了,已經忘光了。

好了,編程入門指南彌補了結構上和視野上的問題,自學和科班兩者是沒有任何區別的了。


這個問題提的不合適,因為自學的也有很厲害的,科班出身的也有很垃圾的,說平均水平差異的話,進科班的基準本來就不一樣,意義也不大。要比較只能說,典型的科班畢業成功案例與典型的自學失敗案例比起來,產生這種差別的原因在哪。

主要就是:

  1. 科班畢業,學習的東西成體系,所以新學的東西能夠有效地用體系內的東西表達起來,這樣不管是學習還是交流效率都比較高,這樣學新技術比較快。
  2. 科班畢業數學基礎紮實,能意識到實際遇到的各類問題可以總結成數學問題,從而套用現成的模型,而不是走野路子
  3. 科班畢業視野比較廣,起碼知道哪些是自己不懂的,要到哪裡去查

不過實際上據我觀察,大部分科班畢業的並不能做到以上這幾點,這些人在工作之後會退化到跟自學差不多的水平


計算機技術的學習與實踐可以看成是一場長達數十年的馬拉松,在這場馬拉松中,有無數的人臨時加入,也有無數的人中途退出,最後能堅持跑到終點的,與他是否科班出身一點點關係都沒有。

所以,從長遠的角度來看,是自學還是計算機科班出身,根本就無關緊要。

就我個人來說,見多了科班出身的「弱雞」,我反而更讚賞那些通過長期刻苦自學而成長起來的人,這些人至少在個人基本素質上就差不到哪去,道理很簡單,因為差的早就會因為堅持不下去半途而廢了……


我補充一個大家沒怎麼提到的差別:你的同學!

科班的,同學也是計算機科班的,雖然就我個人的經驗,可能有一半同學畢業之後沒有從事計算機行業;但是剩下的也還有一半呢!這不是一個小數目。

所以,一個科班出身的,很容易在自己能力有限的時候,找到同學的幫忙,無論是技術上還是業務上,甚至是找工作上內推也更便利。

另外計算機不僅僅是編程,編程也不僅僅是前端,也許一個項目需要用的電路模塊,也許另一個項目用到演算法,再一個項目需要用到安防技術……科班上更容易找到從事此領域的同學;而非科班的人脈就要差很多。

我微信的同學群里,有時大家把自己碰到的問題發一下,基本上都能找到解決辦法,至少也會有條路子。

當然這一條也可以通過自身努力拓展人脈補足。


title(學歷等)都是給外人看和衡量評估的,自己付出了多少時間和精力,走了多少路,學了多少東西,真正掌握了多少,自己心裡有數就好。

更何況這種專業只要一台電腦就能玩轉了……毫無硬體設備門檻(最多不過是租個雲服務),假如問個制導彈科班和半路出家的有何區別,或者內存條製造技術的科班和半路出家有何區別,還能有點意思。


取決於這個自學具體學了啥,如果你真的把科班的核心課程都學到差不多的水平,去不去聽課、畢業證上寫的啥,區別不大,頂多就是個簡歷關。

如果你就照著文檔學個python、照著博客教程學個「建站」學個什麼前端框架,然後就是自學編程程序猿,覺得自己比科班「脫離生產實際書獃子」牛逼多少多少多少,對不起只能呵呵。

遺憾的是感覺網上一般是後者多些。


這問題的問法其實就已經凸顯差別了。

一句話概括:

非科班:編程=計算機

科班:編程 != 計算機

總結起來就是:非科班人員容易把格局放小,這是因為他們本身就沒有經過系統計算機體系的學習,而是直接學習編程速成的結果。

我在歷次的回答中,都有討論過,數學,英語,計算機基礎以及整個計算機體系知識對於計算機學習的幫助

很有意思的是,我的回答得到很多贊同,甚至最高贊,但是並不是在第一位,被一些人踩下去了。很明顯,很多人感同身受,但是有些人無法得到共鳴,甚至有些是科班出身。

為什麼有些人無法認同這些觀點呢?

因為他們所在的工作當中,所用的知識幾乎都是那幾套,玩來玩去就是語言+架構。

他們已經把自己的格局無限地陷死在自己的位置上。

事實上,關於這個,首先要明白一點:

計算機領域,大部分要解決的核心問題,都不是編程問題,無論是工業界還是學術界。

這意味著,無論企業還是學校青睞的IT人才是那些在核心業務領域表現突出的人才,這部分人才也是最稀缺的。

譬如一個優秀的SE專業的學生,更多把考慮工程問題。一個優秀的工程師不僅編程強,同時理論,以及工程經驗都必須足夠。

而CS格局會更大,分支更多。關注演算法的,關注軟體這一塊的,或關注硬體的。比如近兩年大火的機器學習,事實上屬於演算法領域。

這些優秀的人才儘管在前期可能和大家做同樣的工作,大家都在敲代碼。

所以很可能給人一種錯覺,編程能力決定一切。

但他們的上限是不一樣的,只要經過努力,積累經驗,不出幾年很快就可以從一個普通的碼農,升級為關注工程項目的項目組長,關注技術的架構師,亦或者研究能力強大的演算法工程師。

所以,自學人員最缺什麼?如果一個自學人員想走得更遠。最應該關注哪一塊?

還是那個詞:基礎

關於這方面,可以參考我其他回答。


我補充一點技術之外的:

自學成才的踏實,科班出身的浮躁。

知乎其實只是個小社會,在這裡,有很多聲音是發不出來的。

比如你逛知乎,會覺得全世界的人都在想轉行做程序員,所有正在轉行的程序員都在學前端。但如果你逛逛csdn,咦?所有的程序員都在嚷嚷著要轉行,大家熱火朝天的討論著回老家、賣燒餅、開個小餐館之類的事情。

干IT這一行已經十年了,也接觸了一些同事朋友,算起來非科班出身的還要多些。他們之前的專業,中文化學圖書管理,什麼雜七雜八的都有,總體感覺:他們都比較喜歡(或者「在意」)編程這份工作。當然也有不爽的時候,吐吐槽就過去了,他們不會把問題上升到「程序員這份職業還有沒有前途」的高度。

但科班出身的就不一樣了,「碼農」「IT民工」「搬磚的」自嘲常常掛在嘴邊,而且「轉行」的念頭時不時的會蹦出來,敢不敢當然是另外一回事。比如他們會這樣說我:「好好的律師不做,你來搶我們民工的飯碗!」他們非常不理解,為什麼我的腦子會進水——不,應該是灌水吧,灌成這個樣子。

與之相對應的,我就會想起我剛入行時,帶我們的那位項目經理,他溫和的笑容。時隔多年,我還是沒能學會他的那種寬容溫和,然而也明白了很多事情。

很多事情,都像圍城:城外的人想進來,城裡的人想出去。但進來過的,和從沒出去過的,終歸是不同的。

傅雷在《貝多芬傳》譯序中寫道:

現在,當初生的音樂界只知訓練手的技巧,而忘記了培養心靈的神聖工作……

其實,我覺得,這話也適合於「初生的IT界」。

每當看到有人說培訓班出來的程序員如何如何的時候,我都只能呵呵,說得好像大學畢業出來的程序員就如何如何一樣。

我又不是沒讀過大學!我還是20年前的大學,還是重點大學,一樣地逃課、上網、談戀愛,彷徨、沉淪、混日子……要不然,應屆生就業也不會這樣一年比一年難。

沒有別的意思。我們很多人,其實是被命運的浪潮推著走的,隨波逐流而已。考什麼學校,選什麼專業,做什麼工作……殊無自主,鮮有抗爭。

而無論是通過自學,還是培訓,走上編程這條路的同學,無論是生計的壓力,還是興趣的驅動,總之,他們「離經叛道」地選擇過一次,為自己使勁地犟過一次爭過一次。無論結果如何,選擇得對還是錯,他們總是會多一些體會——這,有時候被稱之為「成熟」。

++++++++++++++++

任何現象都有例外,所以用不著和我爭。

信就信,不信拉黑。

++++++++++++++++

另外,關於什麼底層原理,別信了一些人的瞎掰掰。就那幾本書,書看不懂的話網上視頻教材滿天飛,不是什麼玄而又玄普通人就學不會的東西。

說句大實話(其實也是在知乎看到的,記得是 @vczh 哥說的吧?),這些東西,大學以外,教的不多,學的人少,主要還是因為沒用。好吧,委婉點,用處不大;再或者,性價比不高。如果企業招聘的要求都是:精通數據結構和演算法……所有的培訓機構,立馬培訓數據結構和演算法,教的學的,都比你大學強,你信不信?

難?!哈哈,英語難不?司法資格考試難不?注會、建造,還有那麼多考試,哪一個的難度不比你個計算機基礎難?為什麼那麼多人去學,那麼多人去考?真正有用,而已!

++++++++++++++++

收藏進:野生程序員,歡迎關注。

另外,《折騰》開始更新了,O(∩_∩)O~

++++++++++++++++

我發現問題都是越到後面,評論越是沒水平,好奇怪喲,為什麼呢?

所以是時候關閉評論了:

  • 點贊和關注,熱烈歡迎;
  • 拍磚和拉黑,悉聽尊便。

—— 但特地來噁心我一下,就沒有必要了吧?你不累啊?!大家都已經是成年人了……


首先肯定一下題主抓住了重點,使自己的自學框架跟學校差不多。這是科班跟非科班兩大區別之一。一點小建議,做作業用教材能用外國名校的盡量別用國內的,國內很多教材不適合自學。

下面詳細來講講。

第一點是知識體系的構建過程。
很多人說得好像計算機科班就不自學一樣……No,科班只是交錢寫作業,哪怕是CMU也是一樣……經常上課一臉懵逼回去查課外資料自學。

不一樣的是自學是自己給自己出作業,而科班是別人給你出作業。

區別就在這兒,自學的人本身在學習的過程中是懵逼的(不然還學個啥),所以對要學習的東西並不能有一個優先順序和主次的掌握,而一個好的老師能把最重要的核心提出來講,把學生自己能輕易解決的內容給省略掉(就問大家熟不熟悉「顯然」和「學有餘力的同學」這種話),這樣往往能夠讓學習效率大大提高,同時知識體系相對完善。自學的朋友往往只有單個切入點,這樣在深入的時候發現牽涉的東西越來越多會覺得力不從心。

不知道你有沒有這樣的經驗,反正當年我剛接觸編程自學的時候把大部分時間花在了嘗試各種ide和hello world上……

為什麼越好學校教出來的學生越厲害,大部分情況是作業比其他學校的要好一些……特別是清華北大的。要是復旦計算機系的作業能夠完全照搬美國TOP50的計算機系作業,那國內計算機TOP3的位置應該是穩的,可惜不是所有老師都有做這些作業的水平,相當一部分都是客串念書罷了。

這還真不是科班出身的優越感,這就是教育水平的差距,這就是教育者眼界和意識的差距。誰說學習沒有捷徑,當然是有的,學習方法就有高下。我女朋友是鄭州某大學,我上次去她學校,一個冬天的晚上,氣溫接近零度,大老遠路燈下有好幾個學生站在昏暗路燈下的長椅上念書,我路過的時候聽一個人念了十遍「east or west, home is the best.」 我看著感覺心情挺複雜的,你說他不刻苦嗎,顯然不是,那麼冷的天在外面刻苦念英語,主觀上比窩在宿舍打遊戲的勤奮到不知道哪裡去了,但是這樣的效率真的高嗎?反正對我來說這樣遠不如在宿舍這樣舒適的環境里效率高。

計算機也是一樣,抓不住重點,往往費了很多力氣也只是學到皮毛。

第二點就是社交了。

一句話說教育的本質就是一棵樹撼動另一棵樹,一個靈魂喚醒另一個靈魂。一起做作業,上課,做項目,打比賽的過程中,這種相互提高往往是自學者所欠缺的。


自學成才掌握方法絕非不可能,但是在摸著石頭過河的時候能夠看清楚這些問題是不容易的。所以為什麼正規軍總體上就是比野路子強,因為教育本來就應該是如此。


能力上來說,自己努力的話在能力上差別不會太大,畢竟各種資料論文都是有渠道可以獲取。這是個很好的時代,你想學習,滅霸都攔不住你。

成長速度上來說,如果沒人給你引路,非科班的成長速度肯定沒科班的快。雖然會大學大部分也靠自學,但老師這種指路傳輸功力的作用也很大。自己苦練十年內功肯定比師傅直接傳十年內功給你要慢很多。所以非科班的同學出來後拜師學藝還是很有必要的。

機會上來說,由於it已經火了很多年了,培訓班每天都在批量生產。從業人一多企業不可避免的只能用學歷篩選,所以現在非科班的相比科班的機會會少很多。


首先是所有科目自學的通病:沒有定期的考試等措施督促學習。

除此之外就是非科班沒有計算機專業的文憑,對應屆大學生在IT行業求職會有一定負面影響。

——————

至於說自學比不了科班大神的一票答主,現在入行門檻已經這麼高了??


我覺得差別不大。
作為數學系的畢業生,我畢業做房地產了一年,自學編程來互聯網。
我身邊有很多優秀的非科班出身的程序員。
這玩意就跟跨專業考研一樣,我能說當年我跨專業考復旦金融,據不完全統計專業那門課全國前50么。。


推薦閱讀:

關於 Python 的經典入門書籍有哪些?
編程是否該作為基礎教育的一部分?
Visual Studio 有哪些好用的插件?
關於後端程序員寫前端用什麼框架更好?
你見過哪些奇趣的代碼注釋?

TAG:編程 | 計算機科學 |