大學的軟體工程比技校強在哪裡?

我是一名大一(開學大二)的軟體工程專業的學生,上大學之前基礎為零(就會個qq打遊戲啥的),上了大學認為會變得懂很多,學很多專業知識變成那種高手。但是大一一年下來我發現只學了兩門編程語言(C,Java)而且學的很淺,其餘的就是高等數學,高等代數,離散數學,物理還有一些思修形勢與政策之類的雜課。發現這一年下來還是什麼都不知道,那些以前學過的大神感覺什麼都懂,他們說的東西我一概不知道。而那些技校的學的專業的東西好像更多更厲害一些。所以我現在就很迷茫,我們的競爭力在哪裡?我們到底比他們強到哪了?為什麼感覺和身邊的一些大神差距好大,今後發展該怎麼樣?據說知乎大神比較多,請求帶帶路...


你學了

高等數學,高等代數,離散數學,物理

這就是你比技校生強的地方

編程的核心是縝密的邏輯思維,紮實的數學、演算法基礎,敏捷的大腦,而不是學了某種語言,記住了哪些語法。只是學了某種語言,記住那些語法,誰不會呢?但大牛與普通人的差別還是那麼大。

你說

那些技校的學的專業的東西好像更多更厲害一些

我想就是他們天天只重複性學習語法,短時間內學的東西看起來確實會多,但工作後解決問題的能力是遠遠比不上紮實的,全面發展的合格大學生的。

記得大一上c語言時老師對我們說過:你們不要只是學了語法,跑幾個常式就行了。如果只是寫簡單重複性的程序你們還比不過技校生。你們要做的是多思考,有解決問題的能力,這樣才能比他們強。

至於你說現在很迷茫,沒關係,才大一,一切才剛開始。多上機編程,多思考,相信你也可以成為大牛的。


師生


如果光從內容上說,技校的課程更面向實際工作需要,大學的課程則更為理論化一些,抽象一些,學習難度、深度更大一些。但「理論」和「抽象」就一定比」實際」和「具體」更「強」?這足夠引發一場爭論了。

具體到個人,說「大學生」比「技校生」強,更是勉強了,這取決於進行對比的兩個個體自身太多的具體因素,比如所處環境,個人素質、他的想法和他所採取的行動等等,並且這些因素還會隨著時間的流逝而不斷地變化……

當然,從概論統計角度來說,「大學生」平均水平確實比「技校生」要高,但針對個體而言,這個結論並沒有太多意義,焉知你不就是那個特例?特別是對於計算機專業而言,個體的可變因素影響很大。就計算機專業而言,除去硬體方向因為需要各種實驗設備而顯得「門檻高」一點以外,軟體只需一台電腦+互聯網路就可以學習了。那些技校不教而大學教的課程,技校生完全可以通過自學而掌握它們,根本就不是什麼不可逾越的鴻溝,而知識本就是一體的,本質上就沒有「技校的」和「大學的」之分,都是後來人為給知識貼上的標籤。當你設計與開發一個計算機軟硬體系統時,難道你能清晰地分出:我所應用的這個知識是「技校」的,那個技術和理論是「大學」的……

在我看來,大學的軟體工程比技校強是個根本沒有答案的偽命題。


大學本科的軟體工程培養出來的人才特色往往會寫:

厚基礎,精應用。

而技校里培養出來的人才特色往往是:

知識夠用,注重崗位技能。

軟體工程本科生:

本科的軟體工程專業會花上許多時間上英語,一學期一學期地上大學物理,上離散數學,計算方法,上概率統計,線性代數;不喜歡的人覺得這些東西雖然高大上,然並卵呢?

其實這些課程是相當有意義的。英語的重要性不說,大學物理對思路的鍛煉和知識面的擴展有重要意義,有博士給我們講講廣義相對論和量子力學,比自己去啃書還是要輕鬆不少;數學給你以思維鍛煉,同時為今後想考研走學術路線的人打下了基礎,數學基礎差的讀讀計算機核心期刊上的文章去,全是數學推導和公式。

本科軟體工程專業的專業課程也比較基礎,數據結構、面向對象程序設計、資料庫原理、編譯原理 、計算機組成原理、彙編語言等,有的應用性學校搭幾門JAVA,.NET的課程,工業界主流開發工具的教學不會花多少課時的。

有人說,畢業之後的工作要麼寫移動開發代碼,要麼用JAVA.NET,PHP編B/S程序,學這麼多專業基礎課做什麼呢?

這種厚基礎的學習方式的目的給你打下的幾根樁子,在樁上可以變幻出各式各樣的新語言、新工具和新方法,掌握了原理 ,掌握了學習新語言、新工具的方法,你的適應能力就完全不同了。

所以軟體工程扎紮實實學好的,畢業之後英文能扯扯;研究也能做(數學),任何語言上手都比較快(編譯都會了),做嵌入式也行(C、彙編、組成原理都學過),要折騰一下演算法也行(數據結構、計算方法),做比較大的系統也都有方法和思路去指導完成(軟體工程、項目管理)。

軟體技術的技校生:

現在的技校和崗位結合得很緊密,短短几年學習時間內,基礎課開得比較少,就是花時間讓你做某個專業方向的開發,多做,做熟練,做到吐。比如ANDROID方向,IOS方向,.NET方向,J2EE方向等。畢業前在開發崗位當碼農實習一年,在拿畢業證的時候,在這個方向上的動手能力秒殺本科生,甚至研究生。

但問題在哪呢?

現在人才過剩,許多單位要看學校層次招人給工資,中專技校生比較吃虧;

中專技校軟體學生的職業適應能力稍差於軟體工程本科生,好好學的本科生基礎紮實,做什麼都上手快,見得多,膽子大,中專技校大部分學生的眼界和膽量還是不如本科生。

結果就是一般而言,工作幾年後技校生進步速度慢於本科生。

也見過極其拚命的中專技校生,他們逃過了高考的考驗,最終還是要多花精力和時間,以求得和本科生一樣的技術水平, 這世界是公平的。

順便說一句,讓我選擇招本科的學渣,或者是招技校的精英,我選後者。

學渣沒有興趣,沒有態度,完全不能接受。

OVER


其實吧,技校和大學的軟體工程差距沒想像中那麼大,條條大路通羅馬,只要是認真努力,最後都是殊途同歸。

主要的差距在於上技校和上大學軟體工程的人以及企業對於這兩類人的一個篩選機制。

是的,我想說的就是上大學的人本身就比上技校的人平均水平高了。

大學裡的優秀人才比技校里的優秀人才不敢說更有天賦,至少更加勤奮(至少高考前更加勤奮)。

大學裡的優質資源又比技校多。

技校里最後混的很牛逼的人有嗎?有,而且很多,但跟總人數一比還是極少數的一部分,所以開始有人因為倖存者偏差亂灑雞湯。技校要真有那麼好,為啥狀元們去清華而不是去藍翔?狀元們都是傻子?

技校還是在被逼著學,而在大學,優秀的學生能養成優秀的學習習慣,並且收穫比技校更給力的人脈,再配上本身具備的學習能力以及勤奮,更容易比技校生做出成就。

硬要說大學的軟體工程比技校強在哪了?

強就強在你周圍可能是一群很牛逼的人,你在大學遇到的人未來成才的概率更高,而你在技校遇到的大多數人只是一群為了生存就已經竭盡全力的人了。


技校告訴你HOW,本科告訴你WHY


一個是工程師,一個是技工。

比如武俠小說裡面,職業技能的培訓過程是在學習武功招式,而高等教育的教育過程是在提升你的內功同時,教會你應該掌握的招式,內功的高低決定了你能掌握的招式的多少。

在技校裡面學習的所有東西都只有一個目的,就是為了找工作,所以你接收的是職業培訓的過程,學會一門技術,然後靠這門技術吃飯,很難站在一個更高的視角去看。

而在大學裡面,你去學習的目的絕對不應該只是找工作、養家糊口這麼簡單。計算機學科,分成計算機應用、計算機工程和計算機科學三個方向,像軟體工程專業,需要在計算機工程方向上有較為突出的能力值。至於在大學裡面我們學的東西,其實都是在培養你的思維和認知能力,去接觸和學習最底層的知識,而不是最表層的應用層的技術。

記得有句話是這麼說的——『教育無非是一切已學過的東西都遺忘掉的時候所剩下來的東西』。很多人簡歷上都會寫學習能力強,可怎樣才算學習能力強?你能否在一門技術被更替後,迅速學習新的技術去勝任你所擔任的工作?你是否有能力作為一個系統架構者?這些問題都需要自己去好好想想。


其餘的就是高等數學,高等代數,離散數學,物理

我現在就恨自己本科和碩博都是生物的,數學底子太水,看很多東西都只能看個大致概念,而且只能看個結論。

我們這領域,至少有一半的業務邏輯就是數學。


如果再給我一次機會,我剁手也不報電院,圓潤的滾去我交軟院


各個答主說的都挺好,另外大公司應屆招聘一般要求本科畢業。作為職業生涯起點,大公司有一定好處。社招的話就看工作經歷了。

牛人為啥看起來都懂,因為他們熱愛這個專業/行業,自己會去鑽研,參加相關的技術/學術交流,主動進入牛人圈。

題主趕緊思考愛不愛這個專業,CS 分支很多,找個好玩的深入下去。投入後一般你不會有時間玩遊戲的,也就在廁所玩一下 2048。

漸漸的你也成別人眼中的牛人。

多關注下學院和學校的交流實習項目,比如復旦有 MSRA 交換項目,這些專科那邊一般機會不大。有出國交流,大企業實習,夏令營的多去去。

編程只是個手段,要把思想用它們表達出來。大學給你一個開放式的環境,搞好GPA,抓住建立 connection 的機會,在這個池子里快速長大,游去更大的池子,看更頂尖的項目。


這麼說吧,本科生的知識體系是包羅萬象的,技校的一個方向就是我們的一個大作業。

對於題主,學得很淺是正常的,因為課堂上時間有限,入門課頂多教會你如何使用一門語言來把你的想法表達出來,完成一些基本的算術或者邏輯。至於標準庫、三方庫里一些雜七雜八的東西,不會在課上提及,要學的話看書,或者翻文檔。你要是覺得技校生(或者任何人)搞的東西看起來很牛x,你應該去看看他們在搞什麼,如果能學來最好還是納入到自己的技能樹中。

=======================================================

順帶提一句,既然你們覺得技校很low,那麼做mooc的時候就不要做成技校那種課程體系。國內的計算機方向的mooc基本都是一大堆關於「how」的課程,很少能看到關於「why」的課程。也不知道你們做給誰看的,起碼技校生和本科生都不會去看。 @QianJoe

另外再扯一句,大公司應屆招聘一般要求本科畢業,是因為IT行業真的缺少一個統一的、公認的職業資格證書體系。所以只好拿教育證書來代替。弊端很多,就不展開了。


其實,說白了,最重要原因還是人(學生)本身差距


記得我大學剛畢業時去公司上班

我是公司里唯三的軟體本科畢業生之一

公司其他員工基本都是技校生或者最高是專科生

我做為一名高大上的高科技高級知識分子

特么的打開電腦機箱連CPU是哪個內存條長啥相都不知道

把技校生們笑得滿地找牙好么

但不到二年

我已經設計開發完成了兩套MIS軟體

(第一套超級爛我不會告訴你 [笑cry])

他們還是只會插插CPU和內存條

努力好學點兒的學著能寫點兒簡單的代碼

接下來我的職業生涯里

除了沒去做過銷售

軟體生產的整個Lifecycle的每個環節我都做過

而且都做得不錯

(好沒羞沒臊啊)

但我已經不知道他們在做什麼了

我只知道我離開公司的時候他們還在插CPU和內存條

當然現在的時代與我畢業時已經大不相同

技校生可能沒那麼低能了

但大意就是

大學是學習"學習能力"的

是掌握系統化理論化知識的

是讓人站得高看的遠的

如果你給自己的人生目標是能寫寫代碼就行

那真的應該去技校或者專科

又快又省錢

但如果你給自己的人生目標是不光能寫代碼

還能勝任你可能接觸到的更有挑戰的工作

大學還是非常有用的

前提是你得動腦子學


滾尼瑪,技校學特么的蛋啊!真看不下去了,你把你現在的c和java強化一下,找個項目練習一下,離散數學,高等數學,數據結構,演算法,這些都是你畢業後找工作的重要武器,技校我艹它大爺的只會帶你去車間干苦力,美其名曰實習!

技校畢業狗實在看不下去了


因為你還沒意識到這個專業要靠自學


如果從大一入學始,就把一名高校軟體工程的學生,和一名技校生,交換學校。那麼到畢業時,他們會有怎樣的區別?

企業招聘去名校,很大程度上是認可高考的篩選作用,而並不代表對該校教育水平的承認。


你會有大學文憑,找工作時你會優先獲得參加面試的機會.


本科教育本是要教人"why",然而受限於很多學校教育水平和學生自身眼界能力,大多數人覺得"why"太難學,不甚了了,然而對"how"又不願俯身,【會像題主一樣想「我這樣下去和技校生又有什麼區別...」】所以技校生畢業往往有一技傍身,我們這些平庸的本科生一出來,「哦,勞資好像什麼都沒學哎...」T^T


道理非常簡單。

你想想你學的那些「基礎課」為啥被稱之為「基礎課」?因為那些課程是軟體開發、演進乃至軟體行業的基石,是進入這個行業要掌握的最最基礎的東西。

技校和本科相比,就是少了這些基礎:大部分技校學生最多只能做到「知其然」,而本科生可以不同程度地做到「知其所以然」,二者掌握了不同層次的生產資料,高下立判。

換個角度,想想另一個問題:專科裡面的建築施工和本科裡面的建築學有啥區別?


所以這看起來是學校專業定位和課程設置的問題,實際上是不懂得規則的學生怎麼在大學裡生存的問題;這本是題主自身的問題,卻推給我們解答,我們除了呵呵和打臉,還能怎麼辦?

在大學軟體工程課上,印象最深的一句話,也是教授講的最多的一句話,是「不要總是工程師思維,不要過早關注細節」。在題主拿自己學校和技校比較之前,也先別陷入無聊的細節比較之中,不如先想想它們不同的定位。

當然,學校專業的定位再不同,對於沒有找到自己興趣點、也不能踏實完成基礎課程(比如掛科,當然不只是掛科)的題主來說,並沒有什麼用;或許題主得像高考那般,被人逼著高強度地學習些馬上就能用到的東西才會感覺充實。

(有時間學習些沒什麼用的東西是多麼幸福的事情。)

沒有人有義務讓你覺得學什麼是有用的,自己覺得什麼重要就給什麼分配時間精力優先順序、還要讓自己覺得做這個事情很有意義(沒錯,類似唐吉柯德)。

學習是個取悅自己的過程,題主取悅不了自己,還把自己搞得很狼狽,反過來怪學校欺騙了題主,這是不對的。


推薦閱讀:

在計算機中utility應該怎麼翻譯?
要理解王垠的研究,就數學上而言,需要達到什麼層次?
有哪些值得一看的數學家、物理學家或者計算機科學家的傳記?
數學不好能深入學習計算機嗎?
跨專業從事機器學習或數據挖掘可能性?

TAG:成長 | 大學 | 軟體工程 | 計算機科學 | 計算機工程CE |