1. 程式人生 > >9.4 基礎和應用的平衡中找到大學的節奏——《逆襲大學》連載

9.4 基礎和應用的平衡中找到大學的節奏——《逆襲大學》連載

返回到【全文目錄

目錄

9.4 基礎和應用的平衡中找到大學的節奏

基礎與應用兼顧的三種對策

大學四年的節奏——基礎和應用的均衡

以實踐入手,開啟基礎學習的大門 

課外的自主性學習的路線


9.4 基礎和應用的平衡中找到大學的節奏

在學習目標的追求中,專業基礎理論學習和實踐應用能力提高是一對值得關注的話題。這一對關注,可以簡稱為“基礎”和“應用”,這也是我們日常口頭交流時的表達。在領域中長期立足,保證專業“科班”教育成色,在終身學習的年代能夠輕鬆應對技術的不斷髮展,這需要紮實的專業基礎作支撐。而在市場中能自由擇業,為社會創造財富,為自己贏得美好生活,學有所用,過硬的應用能力也不能忽視。單純注重基礎或應用的學習,都不是一個理想的選擇。大學生需要根據自己的目標,把握好兩方面的度,找到適合自己的平衡點。

基礎與應用兼顧的三種對策

這裡我想列出三種可以採取的對策供大學生參考。在圖9–1中,深顏色代表著較高的重視程度,中心的小圓代表著專業基礎的核心(可以簡單理解為專業基礎課程),而外圈的大圓代表著應用波及的範圍。與我二十多年前學習計算機軟體專業時學過的課程相比,專業基礎課的結構沒有太多的變化,但應用方面,變化的幅度卻不可同日而語。

圖9–1 專業基礎和應用能力兼顧的三種對策示意
圖9–1 專業基礎和應用能力兼顧的三種對策示意標題

這三種對策是:

(a)面向應用,兼顧基礎:適合在課外學習中能夠放得足夠開的大學生。專業基礎的學習要達到基本的要求,在對眾多方向的廣泛涉獵基礎上,見多識廣的優勢保證了其強大的適應能力,藉此而來的悟性將會彌補在基礎學習中投入相對少的劣勢。選擇這種對策的危險在於,有人放得太開,以至於課程的及格與否都放開了,就業的能力倒不在話下,但嚴重者都無法保證拿足學分,獲得畢業證。

(b)強調基礎,適當拓展:這是一種在現行高校教學體系下更常見的做法,也是大學生延續以前的學習習慣最容易實施的方案。這種路線的優勢存在,但執行過程中需要更有耐心和毅力。執行好了,造就具有非凡競爭力的人才,而執行不好會陷入沒有特點、能力一般的糾結中。要注意嚮應用層面的擴張,而不要只守著一些課程的要求,在理論的圈子中死學。

(c)打好基礎,加強某一應用方向求特色:這是我比較推崇的一種現實的選擇,紮實的專業基礎保證基本功與擴張力,而有選擇的應用方向,讓基礎學習有了體會的機會,並形成了順利就業,以及事業成功的入口。

大學四年的節奏——基礎和應用的均衡

無論是談到基礎學習還是應用提高,總有人將這個問題與大學畢業後的出路方式聯絡在一起。一種典型的說法是,考研的,學好基礎課,要就業的,多做些應用。這樣的說法有點道理,但不少的人在實施中卻忽略了平衡:考研的,不管應用能力的培養了,而決定走出校園就工作的,基礎知識成了雞肋。這樣的選擇聽起不可思議,但在現實當中卻是很多人選擇的真實情況,後果就是有人考上了研究生,眼高手低,在進一步的學習中找不到落腳點,而就業了的,只能去做一些表面的工作,遇到核心的技術問題只能繞開。

有不少的人提議大學生應該及早確定目標,有很多學校也在開展大規模的所謂目標導向或者目標牽引一類的“工程”幫助大學生找到目標,並按照規劃的路徑安排學習。但現實情況是,經歷高中應試教育的大學生在進入大學之後,短時期內視野不能開啟,甚至連確定大學目標的能力都不具備,盲目地聽信各種各樣的說法。而遇到不一致的說法時,卻失去了自己的判斷,陷入迷茫不能自拔。

為了讓基礎與應用均衡發展,為了讓學生有能力自己做出選擇,我一直提倡的大學生四年的學習節奏是:大一大二是夯實基礎和開闊視野期,大三大四是目標實現期。大二結束大三開始的那段時間確定目標,而目標中必須明確主要的應用方向。

大學前兩年的學習還不到面對現實的時候,可以投入足夠的精力搞清楚專業中的基本問題,並且為選擇做好準備。大學低年級的同學,可以將“是否有用”的問題留給未來,在尚不能回答某問題之前“傻傻地”學下去,為給自己回答問題留下機會。在這樣一個夯實基礎的時期,保證基本學業,可以追求高分。然而,這也並非追求高中式的學習,要按照培養方案學好基礎課和專業基礎課的同時,務必學會安排課外學習並獲得體驗,包括廣泛的閱讀、一定量的社會實踐、社團兼職等。對於專業涉及的方向,可以多方出擊,廣泛涉獵,為此不惜每個方向上都蜻蜓點水,淺嘗輒止。在這個過程中,基本的實踐能力得到提高,多方的體驗以及由此開啟的視野將給大學後半段的選擇,以及長期目標的確定提供足夠的依據。

這樣,在面臨選擇的時候,是真正地能夠按自己的意願選擇的。相對於前兩年走了極端稀裡糊塗地度過的人,這就是一種自由。對確定要就業的,基本能夠確定要從事哪個專業方向的工作,可以是為著當前的高薪、未來的前景,或者是純粹自己的興趣;對確定要考研的,知道為什麼要考研,大致清楚將來要深造的研究方向,更遠地,規劃出在研究生畢業之後的去向,而支撐長遠發展的基礎知識,已經在不考慮“實用”的學習中獲得了。

大學後兩年的時間,學校的約束逐漸放鬆,到了分方向培養的時候。大學生需要選擇一個專業方向形成自己特色。這一點,在各個學校的培養方案中都有體現,有相應的專業選修課給予支撐。這也恰是大學生完成了個性選擇,在具有紮實的基礎之後,各自朝著屬於自己的方向前進的時候。個性的自主性學習的空間變得更大,有的是一番撲騰的天地。

要就業的,需要確定一個就業方向,知道希望從事的崗位的要求,並且將針對崗位要求的學習體現在課外學習中。爭取在進入求職季的時候,在真正提高應用能力的同時,做出一個能夠讓人看的“產品”,這也是在就業面試時的一個“敲門磚”。與此同時,即將就業,並不意味著基礎就此可以放鬆了,此時的專業課程,恰是進入實用的階段,有些專業基礎課程,正是基於已有的體驗能夠深入進去的時候。從求職的角度,大公司篩選求職人員的筆試題目,體現的是專業基礎和專業核心能力,專業基礎課中的那些問題搞不明白,沒有辦法勝任高階技術工作。

確定考研的,應該對研究生考試加以關注,有些基礎課的複習要列入日常計劃。要考研的大學生切莫將複習那幾門課當成了全部的學習,在備考之外,也要進一步瞭解選擇的研究方向,繼續提高實踐能力。在研究生入學考核環節中,面試所佔的分量越來越大,具備較強的實踐能力,是取得研究生入學資格的必要,也是自己真正成長的需要。在研究生的面試環節,如果能談論起對研究方向發展的話題,這不是盲目考研的同學能夠做到的,怎麼能不令導師動容?有了這樣的學習和準備,也讓本科、研究生階段的學習的延續性更好,綜合能力的提高可以持續下去。

以大二、大三為分界的兩段學習節奏,與有些同學只顧一頭的學習安排相比,要多付出不少的精力,掌握平衡中需要拿出更多的聰明才智,但這是在各種不確定中將自己的命運真正掌握在自己手中的需要,其實,安排得當,兩方面相互促進形成的合力會推動著人前行,1+1的結果大於2。

如果說在大學前接受的是一種完全受控制的教育的話,在大學中,一定要有節奏地將自己放開來。在大學低年級受的約束多,卻也要開闊眼界,多方涉獵,為選擇做好準備,而在高年級時清楚地做出選擇後,有重點目標,但也是整體推進。畢竟,無論怎樣的選擇,人的成長是根本,在任何時候都不能將自己交給單一的“出口”。

在很多年前,有個關於大學的說法:“大一不知道自己不知道,大二知道自己不知道,大三不知道自己知道,而大四知道自己知道”。這種說法很有道理,描述的是一個完美大學的軌跡。以大二末大三初作為分隔點,做好“不知道”向“知道”的過渡,用投入的學習給自己做好選擇的準備,進而能夠享受由正確選擇而帶來的知識、能力的積累。

回顧“習而學”,大學的培養方案是否能夠,或者可能按照茅以升先生的建議設定,並不是一個可以輕易下結論並實施的事。於大學生的學習而言,在基礎與應用之間保持著平衡,可以發揮“習而學”在個性化的課外學習安排的效力。大一大二的多方探索拓寬了“習”的空間,在高年級沉心下來的“學”中得以昇華。為了考研、就業中面試,或者考證的需要,高年級時,需要系統地將學過的基礎課及專業基礎課再去複習一番,這時不僅是要奔著考試去複習,而且是完成學習之後再提高的輪迴,那自然是另外一層的境界了。

以實踐入手,開啟基礎學習的大門 

在CSDN對我的專訪中,我比較全面地闡述了我帶領學生開展的以實踐為主線的程式設計學習過程。有人發表了評論:

大學重點學的應該是基礎,不是你那些所謂的為了完成工作而學的專案經驗。什麼是基礎?重點是數學、英語,接下來是計算機組成和作業系統。這個老師太重點強調企業需要的東西,而不是作為一個大學生本質應該學習的東西。

有跟帖贊同這一觀點:

我完全贊同你的觀點,我之前是一名計算機專業的專科生,大家都知道專科生與本科生的差距就在於基礎知識(數學、英語)與計算機理論知識(作業系統原理、編譯原理、計算機網路等)。大學期間做過不少專案,當時自認為不會比本科生差,但隨著學習的深入,越來越發現到基礎的重要性。有時候看一些別人寫的原始碼,發現如果是我自己寫的話有多麼繁瑣,而人家用到了數學的知識,一個繁瑣的演算法原來可以這麼簡潔優雅。有時候一個問題硬是不懂,去網上問別人原來涉及到一些記憶體管理和作業系統的知識。記得有一次聽一個大公司專案架構師的演講說道:“寫程式碼、做專案,你們與一個高中生甚至一個初中生沒什麼區別,區別是你們大學學得的知識以及鍛鍊的邏輯思維和自學能力。”如果你只想當一名coder,基礎知識你甚至可以不學。如果你想當一名軟體系統的設計師和架構者,數學和計算機基礎你必須要會。”

評論中還有一些難聽的話我沒有摘出來。但是,說實話,我也贊成他們的觀點。在IT界能夠高薪,能夠不懼技術進步和發展,能夠站在重要位置上的人,就是基礎紮實的人。在基礎中吸取了抽象之精華的人,心中有放之四海皆可用的知識和思維,這比任何的具體技術、技能更重要。

然而,在我的課程當中,我還是帶領我的學生熱情地投入了實踐,在我的諮詢當中,也不遺餘力地推動大學生將以實踐為主線的課外自主學習進行下去。我期望用這種手段,讓學生們能夠快樂地進入到這個圈子,快速地瞭解行業中的話題,瞭解專業和方法,最重要的是,要知道程式設計背後還需要什麼。我推動實踐,但不輕視理論,大學生有了充分的實踐,才能夠注意到基礎知識和思維訓練的重要意義,才可以將理論視為非常鮮活的知識。如果沒有深入實踐的過程,對大多數人而言,學習理論將是個枯燥困難的事情,沒有經過親自體會獲得的感性認識,理論學習的效果也不能得到保證,甚至有人永遠不明白理論的作用。必須找到一種途徑,讓每一位學生都能自發地認識到基礎的重要性,找到理論學習的入口。這條途徑就是實踐。

至此,應該理清的思路就是:大學生應該要打好基礎,但學習目標還是實踐能力;為了保證基礎學習的效果,需要用實踐開啟通道。將基礎和實踐兩方面都做好,這就是“兩手都要抓,兩手都要硬”,這是一個現實的選擇。

課外的自主性學習的路線

大學生從中學走進大學,由完全由別人管著學,要過渡到完全能由自己安排學習。在大學低年級,學習的主要內容是專業基礎課程,可以由別人管得多一些,而高年級重點在於應用能力的學習,需要更個性的成分多一些。大學不僅要有受限的課內學習,還要有自主的課外學習。課外學習異常重要,也是大學生把握的難點,在此將我觀察到的成功學習路線作一歸納。

第一條自主性學習的路線:先重基礎,再重應用,如圖9–2所示。由於我們是希望獲得“雙豐收”的,所以用兩個“重”,也暗指要兼顧。重基礎的階段,並不完全棄實踐,而重應用的學習中,基礎同時也在融合,基礎好的優勢會體現出來,應用也能做出水平。我提議入學時專業學習興趣本身就很濃和起步學習順利的學生走這一條路線。由於先期投入的學習中沒有應用開發中的那種“熱鬧”,這樣做的同學需要耐得住寂寞,知道這樣做的價值。由於基礎紮實,一旦開始在後期重實踐的歷程,馬上能表現出更快的學習速度,得到質量更高的應用成果。從時間角度,我建議大一大二重基礎,標誌是參加過一次ACM競賽,不管是學校組織的選拔賽,還是有機會代表學校對外參賽,都是一次很好的經歷。有些同學選擇在高年級參賽以求獲得好成績,但可以在低年級時打足基礎。到了大三,轉入重應用開發的階段,由於眼界相對開闊,入手點可以與感興趣的專業方向緊密結合,可以將應用的學習,與未來求職中有意願的崗位結合起來。

圖9–2 先重基礎,再重應用的自主性學習路線

第二條路線,先重應用,再重基礎,如圖9–3所示。在現實中,有些同學在對專業瞭解不深的情況下,一定想迫切知道計算機“這玩意”到底能做些什麼,聲稱不明白學著不帶勁。其實就有一大批所謂迷茫的同學就在此徘徊,那就在先重應用的課外學習中獲得體驗好了。應用的內容可以始於做一個個人主頁、班級主頁之類的網站,可以藉助一些外部的目標,如參加學院組織的網頁設計大賽之類的初級的競賽,以及各種“軟體設計大賽”等之類的門檻不算高的競賽,逐漸可以考慮參加像微軟、阿里巴巴等企業組織的應用大賽。走這一條路線的同學需要明確,這不是說課內學習的基礎可以先不必重視,課外自主的應用學習安排,是建立在認真完成課內學習要求基礎上的。這樣走到高年級時,適當的時候可以往提高基礎理論的路子上走一走,方式可以是將投入應用學習期間有些應付了的專業基礎課複習一遍,或者也去做做ACM題目,做一做一些大企業,如微軟、谷歌的面試題等。一段時間的“淡定”,將換來豐厚的回報。我的學生中,有不少的優秀學生就是這樣做的。在大一剛剛學習程式設計後不久,覺得程式語言很能幹,試圖做一個能用的程式出來,發現不少功能的實現需要API的支援,於是利用某平臺提供的類庫,適用的軟體包,開發出了一些好玩的應用,激發了學習的興趣,也找到了信心。在眼界大開之後,意識到了演算法和其他基礎知識的重要意義,轉而沉下心來,在向專業基礎的方向發力了。要重視基礎之類的話老師經常講起,但我的學生們說“只有自己親自體會到了,才有如此的激情投入”。

圖9–3 先重應用,再重基礎的自主性學習路線

除這兩種路線以外,我觀察到,還有些學生的自主學路線以學期或更短的週期,根據實際情況在基礎和應用之間交叉安排。有些學生,喜歡開發應用程式,他們的自學中,不斷嘗試不同的技術,在不同的領域中開展體驗,畢業求職時選擇面很寬,在工作中也將是個多面手;有一個學生L,他一直喜歡電腦科學,他的自主學習的主要內容就是專業基礎理論,並且將觸角伸到了本科生常不關注的複雜性理論層面,他也寫了不少程式碼,但以作業系統層面的程式碼為主。大學中需要有自主性學習,這些都是不錯的安排。在大學,把握住了課堂,課外又能有效安排好,這樣學出來的,都是人才。

在課外的自主性學習,最忌諱的就是,常想學,但總不起步,或者在走出第一步時就顧慮重重,讓自己總是停留在是否要走出第一步的階段。只要起步了,視野拓寬,就會不斷有新的想法產生,能觸控到適合你的“下一步”學習的內容,從而能夠一直走下去。

還有一些同學,在迷茫與放縱中停留過久了,以至於到了高年級,在別人基礎紮實開始明明白白地在自己喜歡的領域中左右逢源之時,他才開始起步。面臨著即將到來的就業壓力,開始感覺到了恐慌。這時,重應用的自學路線成了唯一的選擇。由於時間關係已經不能夠補上足夠的專業基礎,再去學習應用了。由於基礎差,實踐不能夠太深入,入職時選擇崗位的自由度會減小,這就是代價所在。至於專業基礎方面的缺陷,只能寄望於工作以後的自主學習了。

返回到【全文目錄