今天下午在空間看到有學弟學妹在空間發說說,吐槽我們的教育方式。作為一個大四老狗,覺得這篇文章里有一些觀點,是我在大一大二也深有同感,但是到后來,甚至是開始實習的現在,才慢慢理解,這種看似挺蠢的教學方式背后的原因。之前也總能看到說說在問java到底怎么學,數據結構好難之類,結合今天這事就有了這篇文章。
嘿,我并不是有意去“杠”與我不同的觀點,正相反,對于課堂教學質量確實是我也一直覺得很嚴重的一個問題,而就算對于題目的問題來說,我自己就是在大二時整個宿舍黑的最起勁的人。但我并沒有在為課堂教學辯護,在這里只談為什么會有這樣的任務安排。時期不同會對相同的事物有不同的看法,這是很正常的,只是我想向學弟學妹們談談我的看法,盡可能少走一些彎路。很多學長學姐這么幫過我,我也會去盡力幫助學弟學妹,這是我對山大最愛也最認同的一點。
我們大一學了一年Java,為什么學數據結構要用C++,甚至老師還默認我們會了?!
這事,站在還算初學的我們的角度,看起來真的很蠢。甚至當時我們還沒有C++這門限選,你能想象當時的意見有多大,結果最后也沒有什么人來跟我們解答,讓人忍不住去懷疑是不是教務編排課程組出了什么錯,甚至我當時不無惡意地猜,學校是不是買錯了一批C++版的書又退不掉要強賣給我們,加上老師上課又大多數時候在念ppt,真的很難讓人有什么好印象。
不僅僅是數據結構,很多課程也有類似的問題,例如java課設,默認我們會了gui,io,網絡編程等等(據說現在會講,但我們那時候就直接上手了);操作系統,計組也是老師不想跟你說話并扔過來一個nachos,一堆芯片。這時我們理所當然會想,臥槽,這跟我學的真的是一個東西么。所以更進一步,我們自然會生出反感情緒,并覺得是不是實驗安排的有問題。
事實上,有一部分實驗老師、助教對實驗的講解也存在問題,例如講解非常單調,基本不理會學生,評判標準不明確等,這就更加劇了我們的不理解和反感情緒。這些問題客觀存在,但這些我們先不談,我們先拋開這些偏見來看看,為什么課程組會給我們這樣的安排。
因為想讓我們學到更多東西
我打出上面這行字就覺得,如果我從這個點來談,肯定是會被噴的。因為所謂“那為什么老師不好好講”,“我自己想學什么可以自學”之類的論調,也是我本人的觀點。關于這兩個觀點有三點避不開:資源,時間,自覺性。
資源主要是能教這門課的老師,這個可能缺乏,但如果出現這個問題,這也確實是學校的鍋他得背好。
時間問題,上課,和自學是不一樣的。上課是以學期為單位的,要指定教材和參考資料,課程安排也不會只教語法就算了,這種必修學校要求要有實驗,而且于情于理,學習這種技術不做實驗只背書根本也不現實。如果開一門必修課,是一定不會按照老師隨便教大家隨便學的模式的,必定會有各種實驗考核、期末考試等考核形式來檢驗成果。大家可以想想,如果學校將C++限選改為必修,你們會有時間去學習嗎?更別提之后的網站搭建必會的各種java框架,HTML,CSS,JS等一大堆要學的東西,如果每門技術都要開一門必修強制大家學習,那我們可能要像醫學生一樣要5+3了。
自覺性,試問大家,你知道了有C++這么一門很主流的語言,基本也沒有不會C++的程序員,那大家有多少大一在空閑時間主動去學習的呢?如果數據結構用不到,有多少人會去學這么一門又厚又難學的語言?有多少人又能堅持到入門的級別?
因為我們需要學會自學這個基本技能
退一步講,這樣的安排真的就那么難嗎?
我能理解大家的想法。當時我聽到要用一門根本沒學過的語言上課就被嚇到了,不得已去搜c++入門,聽人推薦就買了一本C++primer plus,一看見那本能砸死老鼠的書就更抗拒了。但是究根結底我在抗拒什么呢?我在抗拒新的知識嗎?不,我只是懶和膽小而已。但是硬著頭皮看了下去,驚訝地發現,除了指針之外,其他的也就是java換了個方法寫,或者換個函數名,而指針在我們的課本基本用的也不多。于是偌大一本cpp,其實只看前五章,就能理解數據結構的代碼了。而且如果認真聽講,實際上老師上課著重在講思想,我到最后也沒怎么看過書上的代碼,其實不過是自己在嚇自己罷了。
其實很多技術都是這樣的。編程語言,這只是這條路上最最最基礎入門的一道坎了,只要你掌握了一種,再去掌握其他的其實難度真的不大,不要被那一本本大部頭嚇到。后面的技術呢?數據庫,計算機網絡,操作系統,說起來都挺基礎嚇人的,你認真一步步看下去,難道真的一點都看不懂嗎?再后面,圖形學,信息安全,數據挖掘,人工智能,是不是聽名字就得放棄了?如果只能寫最基礎的代碼,到了企業連實習期都過不去的。
說到企業,在企業里難道要指望所有工作都是我們上課學到過的嗎?這不現實。你的項目經理會給你一點時間去熟悉,但真的是“一點時間”,一周學習一門新的語言?不現實,最多給你三四天。拿我進的這家公司,再做銀行的大數據項目,雖然我兩眼一抹黑,還是被指派去搞了很多分布式大數據的一些程序,這之中只留給我一周時間去熟悉平臺,應用的技術和代碼。一開始絕望的不行,但慢慢做下去發現其實套上了很牛逼的名字的可能概念并沒有那么難,而且實際上經理給安排的任務也是循序漸進的,八成是在考驗我的抗壓能力和學習能力。
哪怕讀研,大四有很多同學是直接跟著導師的,導師會直接指派任務,讓你學習一些你可能本科根本沒聽說過的東西,這時候你還指望有人能夠一點點講嗎?很多前沿的研究別說中文書、視頻,怕是只能看英文論文才能了解一二。
再退一步到面試的時候,難道對面只會問課本上的內容嗎?難道你指望那些自學的很多技術、做過很多的項目的同學會不加分嗎?
因為我們必須去學這么多東西
在深入到最根本的開始講:我們為什么要學到更多?因為我們的“學業、技能”,在大學是有三個標準的:自我標準,學校標準,和社會標準。
自我標準是自己決定的,是對自己以后想做什么,拿到怎么樣的一份薪水,過什么樣的生活的的定位。
學校標準是課程組、老師給我們布置的任務,比如必修課,實驗,也包括類似用C++教數據結構你要先學會C++這種要求。
社會標準是我們未來的“出路”給我們的標準,例如想去的企業對我們學校應屆生的要求,想去的高校對研究生的面試要求,出國,甚至繼承家業的要求等,根據個人對未來的出路的想法也會有所不同。
從這里看,高中和大學一個最顯著的區別就是,在高中,學校標準是明確而強制的,其他兩個標準接近不存在,因為只要跟著學校的課程去學習,去考試,獲得更高的分數,就能上更好的大學,這也就是高中的幾乎全部任務了。
但是大學不一樣的。大學里很多人自始至終都不能從高中轉換過來,一是學習方式,二是對這種標準的認識改變。在大學,學校標準不會那么明確強制,而應該尤其重視社會標準和自我標準。舉個例子吧。
拿我大二時的自己來說,我的自我標準是實現物質自由,不再為錢和房子車子苦惱(現在已經降低到了不用加太多班……),學校標準我和大家一樣,而社會標準是我想要工作去BAT這樣的企業,或者專業排名前五的學校讀研,那么他們的準入要求就是我的社會標準。簡單看一眼就能知道自我標準是最高的,社會標準次之,而學校標準呢?它只需要每門必修都及格就好了,甚至不會去要求你考高分。之所以有人大學墮落,是因為他們只看到了學校標準,所以只追求及格,畢竟考那么高有什么用呢?甚至哪個標準也不看在眼里,只要玩就好了。
自我標準是我們自己來決定的,社會標準是我們選擇的出路指定的,而學校標準是怎么制定的?學校標準是培養一個合格的、能配得上這所學校名聲的本專業人才的最底線。對,請認清楚,它絕對不是所謂的“成神”標準,僅僅是一個“合格的最底限”。沒錯,學校標準合格足夠我們找到月薪破萬的工作。但這可能并不能滿足你的自我標準,甚至是稍好一些的社會標準。
舉個例子,拿社會標準來說,像是百度、阿里,再比如小米京東今日頭條的筆試題,大三的同學可以去牛客網找一份來做,看你能不能達到他們的標準。想考研的同學可以參考下每年我們考研25%的成功率,想保研的同學可以百度下夏令營機試面試題和報錄比,再看看你是不是滿足了你的社會標準。
更高一點的自我標準,先拿大家可能沒怎么想過又理所當然的房子舉個例子,有較大互聯網企業的城市基本在北上廣深和杭州蘇州,前五個不必多說,拿蘇州3w一平的房價舉例,100平的房子不算裝修要300w,首付40%是120w,假設22歲畢業,30歲前買房每個月就要存1.25萬,還不算房價上漲。別急,買了之后房子還有貸款要還呢,要還多少呢?還30年算,每個月要還超過一萬。至于之后的車、婚禮、孩子奶粉錢呢?如果你的月薪剛剛破萬,這些壓力也足夠讓你和你的家庭遠離詩與遠方歲月靜好了。
是的,這個社會是那么現實而有壓力的,到你面試的時候,難道還要向企業抱怨,我們這些都沒學過,是我們教育體制的錯,是你們用人單位招聘制度太高的錯嗎?現在回過頭再看看數據結構讓我們多學一點C++,而不是順著java講,你會有什么體會。