除去學歷,科班出身的程序員其實并不占優勢!為什么這么說呢,首先我們先來對比下計算機系和培訓班所學習的課程。
1 在IT方面,計算機系會講些基礎課程,比如數據結構,算法,操作系統和編譯原理等,當然也會開寫編程課,比如C++和JAVA,有的學校還會開Python/ target=_blank class=infotextkey>Python和spring Boot方面的,但是在講語言的時候,是存粹講語法,不會結合項目應用。
2、培訓班里,會講語法,但一般都會結合項目講開發,比如java方面,會單純講目前最好找工作的技術,比如spring boot,再講項目里怎么用這些技術,一些好的培訓老師還會講如何解決項目里的實際問題,或者再講些諸如組件等深層次的內容。
其次大家更可以從“大學和職業學校”的差別來看待計算機系和培訓班所開設的課程。
計算機系之所以要設置這些基礎課,是想把計算機專業的學生培養成在計算機科學方面的人才,比如設計個算法,優化個數據庫,或是干脆設計個操作系統等。而培訓班就相當于技校或職業學校,直接講技術。
事實上,國內還真有設計或優化算法,設計操作系統或做國產數據庫等計算機科學領域的工作,只不過這方面的活比較少。IT方面大多數的活是做開發,比如用Spring boot+數據庫+分布式組件做個項目。
也就是說,大量的計算機系畢業生和培訓班學員一起在干技術開發的活,在這賽道上,除去學歷和相關項目開發經驗等因素,計算機專業的畢業生其實并不占優勢。
1 .計算機系所講的數據結構和算法等,其實在開發中用到的都是些比較淺的技能,比如線性表隊列等,算法一般是排序和搜索,這塊培訓班里哪怕不講,培訓班出身的程序員用少量的時間一般也能掌握。
2 .計算機系所講的操作系統,編譯原理,計算機組成原理和其他一些基礎課,在項目開發中,用到的頂多也是些概念,真正對項目開發幫助不大,尤其是對只需3年開發經驗的初級開發來說,這些技能用武之地真的很少。
3 .軟件開發真正相關的,是編程語言和數據庫,這塊培訓班是結合項目講,而真正能做到結合項目精講開發技術的計算機系,可能不會太多。
所以在程序員剛入行的3年內,其實培訓班所講授的技術會用得更多些,計算機系畢業生在剛開始工作的一段時間內,要做的事情也是把所學到的理論方面的技能轉換成職業開發技能。