1. 程式人生 > >一個畢業生的大學總結 值得反思

一個畢業生的大學總結 值得反思

-------------------------------------------神奇的分割線---------------------------------
昨天想了整整一宿,最後寫下下面這些對於大學學習生活的回顧與反思。覺得作為一個“過來人”很有必要將一些問題說給未來將要畢業的同學,希望能夠吸取我的教訓,少走些彎路。同時以此為鑑,今後努力的改正、提升自己。(沒興趣聽我白話者可直接跳讀到第六部分總結)

         大學生活馬上就要結束了,這裡不禁感嘆時光飛逝,物是人非……
         記得剛剛踏入大學校門的時候,心中躊躇滿志,雖然那時甚至不知道C語言是什麼東西,但是仍然對於自己四年後的形象充滿了無限的憧憬:
雄厚的基礎知識,良好的學術能力,很高的技術才華,未來之科學棟樑等等……
而如今的狀況卻是:為了得到一個可以餬口的IT民工職位抓破頭皮,鬱悶與苦惱中為得到一個工作機會而暗自慶幸,至於什麼專心學術,什麼科學棟樑,似乎距離自己越來越遙遠。
         直到此刻,我仍然不認為自己的大學是完全墮落的,我也不認為自己讀的書是無用的,我更不贊成自己沒有學習電腦科學的資質,那麼問題究竟出現在什麼地方?我想這裡有很多原因,絕大部分是自己的,但絕對不能忽視環境的因素。

1.       基礎知識薄弱
在我東奔西走找工作的時候,才真正的體會到自己原來喜歡炫耀的基礎知識是多麼的薄弱,而他們又是那麼的重要。我曾經在面試時因為說不清程序間的通訊機制而當場被無情的BS,也因為對於自己基礎能力不自信而放棄一家很牛逼的公司研發部提供的筆試機會。
先要談及計院的一大問題。其實在這裡真正對於計算機感興趣,並且肯於專心研究,搞學術的學生真的是鳳毛麟角。大環境是普遍是網遊成風,腐敗猖獗。 真正的沒有幾個人肯安下心來讀書,即使那幾個老老實實聽課的 “ 好學生 ” 也只不過是為了一個高高的 GPA ,一個可以在家長同學面前顯擺的獎學金證書。而真正希望學東西,做學問的人太少了。在我找工作的過程中,手中握著一摞獎學金證書,後來被證明絕對是廢紙,任憑你怎麼吹噓自己的成績,沒有單位會真的拿來仔細的看上一看。
迴歸正題,什麼才是真正的基礎紮實?我的理解是不僅要牢牢的掌握大學課本中關於計算機核心課程的理論知識,而且還要適當的進行深入。對於該方向非常重要的思想、名詞、技術都要有良好的把握。比如可以隨手寫出快速排序、雜湊查詢等經典的常用演算法,熟記執行緒與程序的概念、他們的差別,並且能夠解釋清楚諸如殭屍程序之類的問題。會 Linux 的不僅僅是就會幾條 shell 命令,或者乾脆就會裝個系統。用 C++ 的不僅僅要會語法(估計這是絕大多數畢業生對於 C++ 的理解程度),起碼要了解一些常用的標準庫,知道什麼是 STL ,瞭解些基本的 OO 思維方法。學過網路的最起碼要用過socket ,瞭解資料庫的不能僅僅就會寫幾個 SQL 語句,背兩條正規化等等。
說到這裡不禁有點激動,前幾天在一個 IT 論壇上看到一個關於大學讀書無用論的帖子。說讀書無用的人這些基礎知識掌握的恐怕也不怎麼樣,連基礎的東西都沒弄明白怎麼好意思說自己讀過書?沒讀過書怎麼他媽的好意思說讀書沒用?!其實不是讀書無用,是肯安心讀書的人太少,而書讀的足夠的人更少。
倘若沒有這些基礎,僅僅會用這個工具,那個框架,充其量也不過是個 IT 民工,今後的發展必定受到制約,選擇只有三條:
1. 做一輩子 IT 民工
2. 將大學中欠下來的債補上
3. 改行
這裡我不想說太多,話歸正題。如果要我重新的去選擇,我一定在學習每一門課程的同時儘量的找到相關的資料,擴充套件每一個話題。同時,將一些最常用的思想,技術,方法記錄下來,並且苦練到可以熟練應用的地步,並且時常的加以回顧。真正基礎雄厚的人就應該是可以將常用的基礎性知識熟記成誦的人,提到一個基本的名詞或者話題能夠將其來龍去脈解釋清楚的人。

2.       學風不正,腐敗猖獗
這裡的學風不正,腐敗成風。我想一方面要怪罪於我們自己,對於前途不負責任,將大好的寶貴時光都用在了網遊、泡妞、喝酒等事情上;另一方面計院的領導以及老師就真的沒責任了嗎?
如今的老師大都想著自己的小專案能賺多少錢,如今的領導多數考慮自己負責的這一塊不要出問題而影響到頭上的烏紗帽。“一切為了學生”,表面看起來冠冕堂皇,實則是句屁話。老師根本沒時間備課(或者沒水平備課),上課照本宣科的念幻燈片,考試之前為了保證及格率不忘幫大家“畫畫範圍”。記得大學一年級的計算機導論課,一個老頭足足的唸了一個學期的幻燈,內容就是C語言,數字邏輯,離散數學課程的前1/3……內容巨枯燥,而且朗讀水平超級差勁。也難怪很多人從一開始就認為進入計院如同進入火坑。大學四年學下來不知道計算機專業的學完了究竟能做什麼。到了畢業時刻,領導開始擔心就業率了,早就內外成患、以渙散墮落為風的計算機學院有豈能在短時間裡奮發起來?這個時候開始埋怨大家這個不是,那個不對,彷彿一切問題都是學生的,我想問問你們早幹什麼來的?
之前的那麼多時間不好好的調教你的學生,為什麼這個時候才想起來教育?
在這樣的學習環境下,除了主動的自學,多多的上網蒐集資訊、泡圖書館,還能有什麼選擇呢?但說回來,我沒完全的做到。最終問題還出在自己,不夠堅定,有時會隨著大環境一起墮落,一起enjoy美好的大學生活……

3.       實踐薄弱,人才位置錯放
看著自己簡歷中可憐的實踐經驗,面對人才市場上實踐經驗黃金般的價格,自己不禁暗自悔恨……
很多人都在用理論紮實來搪塞自己實踐方面的低能,我想這個藉口根本站不住腳。首先,計算機這個學科的性質就決定了沒有實踐,理論幾乎沒法理解的紮實透徹。就好比熟記騎自行車手冊的人可能根本不會騎車一樣。 我們不排除有未來的圖靈、 Knuth 一類的大牛,只要即使不寫什麼重要的程式碼,理論也是巨牛無比。但是大多數學過資料結構與演算法的人來說,能用 C 寫個 Dijkstra 最短路演算法就算不錯了,你要給他個什麼城市公交線路選擇問題,他保準暈菜,當場崩潰(這樣例子我見多了)。
其實我們的同學中真的有些非常的出色,只不過是放錯了位置。(尤其是女生,我覺得大多數都不適合去程式設計)倘若不是在計院,可能他們已經憑藉著自己出色的能力在該方向上開始嶄露頭角了。我不只聽到一個人抱怨自己不適合程式設計,一些人是純粹的為自己腐敗找藉口。這些人往往自己都不知道計算機究竟在學什麼,估計換個環境也還是一個逼樣。有些人我感覺絕對是高考造成的資源嚴重錯放,他們在感性理解方面確實非常的出色,自己也非常的上進,換專業絕對是非常好的選擇。但是大一大二的時候,我們的老師,我們的領導又他媽在幹啥呢?一些必要的引導總是你們的職責吧,幹麻叫這些同學走過了大學四年才意識到自己不適合學計算機?
總之,種種因素,大多數同學四年沒編過幾行程式碼,課設不過草草了事(據說某些老師甚至推薦同學去校外找人代做畢設),所以畢業時,之前做過的東西根本不敢往簡歷裡寫,因為根本沒有啥技術含量,都他媽copy的。

4.       專案反思
在我向面試官誇誇其談自己的所謂有技術含量的專案經驗時,不住的冒虛汗,甚至還被一個考官當場揭穿並遭到無情的BS。現在想想,更加悔恨不已……
我也曾經意識到實踐的問題。自己也曾經雄心勃勃的要寫有技術含量的程式碼。我大學裡自己寫過兩個自認為是比較有技術含量的專案。不過兩個專案最終皆因打不完的補丁,層出不窮的新bug,臃腫而雜亂的程式碼,以及自己對於繼續開發與維護失去信心與興趣等原因而最終擱淺失敗。

究其原因,我總結如下:
首先是自己太浮躁。我覺得這個問題在當今的畢業生人群中以及IT行業裡是普遍存在的。剛剛會程式設計就開始yy自己能寫出多牛逼的程式,做多牛逼的軟體。事實證明,任何牛逼的軟體都不是一下子就那麼牛逼的,必須要循序漸進的展開。當時,剛剛背熟了C++的語法,就萌生了要寫一個牛逼系統證明自己的想法。其實這個想法本沒有錯,錯就錯在我沒有進行必要的積累,而且缺乏對於系統模組逐步開發並測試的耐心。在網上下了點別人的設計經驗,自己就開始照貓畫虎的寫程式碼。其結果可想而知,除錯了n久程式碼才能勉強的執行,而且及其不穩定。整個專案亂成一團,打一個補丁又出兩個bug那種。
這個時候其實應該吸取經驗,對於程式碼進行重寫,系統進行改進,甚至有必要重新設計。而我又開始浮躁了,覺得這個算不了什麼,吸取教訓,再寫個更有技術含量的牛逼程式一定成功。於是竟然無厘頭的放棄了那一堆研究了將近一個月的程式碼,開始了新的專案設計。這個專案的結果更加的可笑,我最終甚至都沒有完整的執行整個程式,無論我怎麼除錯,程式到一半的時候都會莫名其妙的崩潰,而雜亂的設計與垃圾程式碼使得我想趕緊將這些破玩意放入回收站。這時我一方面感覺自己也沒啥能力寫軟體,估計再寫也就是九流貨色,沒啥發展;另一方面開始責怪學校,為什麼沒有一丁點程式設計的氛圍,這樣也不至於我孤軍奮戰。我還傻了吧唧的鬱悶了好一陣子,之後做了一個我雖然不後悔,但是卻覺的是很愚蠢的決定—加入考G大軍,並全職學習一年的英語。
其實現在想想那時真是愚蠢的很,明知道做軟體一次成功是不可能的,還偏偏犯這種錯誤。為什麼呢?答案就是當時太急功近利了,以為自己多牛逼,寫個程式不費事。但實際遇到困難的時候,有沒有耐心與毅力去解決,甚至感覺之前的工作是在浪費時間。雖然現在想想可笑,但是此刻很多人(可能我也在內)還在犯著同樣的錯誤。
總之急功近利很容易導致莫名的失敗感,並且會為自己的失敗(其實這個不能叫失敗)找各種藉口,然後在藉口的安慰下完全的放縱自己。這一點也體現在了我考G的過程中。

5.       藉口==障礙
當時的挫敗感使得我對於計算機學院這個機構完全的失去了資訊,眼看就是最最關鍵的大三了,這將決定我的出路,我該如何是好?
這個時候我是這樣想的,如果考研的話,恐怕會從一個火坑跳到另外一個。從而可能會與許多和我一樣迷茫的同學一樣繼續兩年打醬油的生活。因為種種yy以及對於自己不準確的定位,導致我想到了考GT出國。於是花了1000多塊錢報了個新東方,成天夾著厚厚的紅寶石去圖書館……現在來看,我不後悔當初的決定,因為我確實在這個過程中學到了好多,也認識了很多朋友。而且我覺得,如果當時是因為害怕而沒有去嘗試的話,自己會在悔恨中渡過前半生。但是我覺得當時的考G絕對是泡沫,它讓我產生了種種幻覺,以為自己因為考G水平就高了不少。這個泡沫膨脹了半年多,最後以一個失敗的分數為標誌迅速的破滅。(就好像金融危機一樣)
其實,如果這個時候,我意識到前面問題的嚴重性,最差也應該把握住考G這個機會。然而,我又一次沒有做到。回顧整個考G的過程,我在不斷的為自己找藉口。我埋怨背單詞太苦,於是經常為自己開小差(遊游泳,看看雜書、電影等)。我做題受到打擊時,埋怨周圍沒有人跟我一起準備。我還以考G為藉口,糊弄自己的專業課,糊弄自己的課設,糊弄自己的前程!我還經常的受到打擊,而每當被天書般的GRE習題打擊之後,總是自己傻了吧唧的鬱悶,而沒有用心的去總結,去努力的提升自己。我因此浪費了不少時間。雖然,在此期間我從沒有放縱過自己,每天都儘可能的堅持呆著圖書館或自習室裡,但是對於本身英語基礎就很薄弱的我來說,面對這樣大的挑戰,如此糟糕的狀態又怎麼能成功呢?
最後的結果可想而知,我用了一年的時間專門學習英語,雖然英文水平有了一些進步,但是與鉅額的開銷,以及自己辛苦的付出絕對不成比例。現在我的GRE單詞也忘的差不多了,不知道這個曾經的美麗留學夢會不會隨著我的科學夢一起從此破滅呢……

6.       總結
上面說了好多,此刻心情很激動,思維好雜亂,現在要平靜一下,整理一下。
上大學首要任務:明白自己是來幹什麼的,走出這裡的時候自己要收穫什麼,自己希望會變成什麼樣子。
每個人都必須要有明確的目標,除非你想過四年打醬油的生活。
這一點我做到了,雖然做的不好,走了彎路,但是我沒有白白荒廢四年的時間。
要有紮實的學科基礎,不要將自己侷限在得一個高分的狹小範圍內,僅僅看到眼前的榮譽無疑是目光短淺的表現。要注意學習的擴充套件性,要努力的去理解並掌握本專業常用的的核心思想與技術,並達到熟記於胸的程度。
發現自己的優勢,選擇適合自己的出路。不要僅僅看中程式設計師的高薪水,做最適合自己的方向才是最最重要的。
學過理論要注重實踐,可以自己做一些力所能及的小東西,有意從事計算機方向的同學需要:
熟練掌握一門程式設計語言,一個開發工具,一個系統平臺,一種程式設計思想。自己動手做一些有一定技術含量的專案。
最好是能夠利用好假期的時間,出去實習。因為這種經歷將是畢業時賣身的有力籌碼。
切忌浮躁、急功近利,假如以你的實力可以通過5年的時間成為一個領域的高手,如果自己期望縮短到3年的時間甚至更短,最終很可能要用8年的時間甚至永遠都做不到。
對於自己的目標和已經決定的選擇,要執著的追求,直到在其中獲得了你滿意的成果。
做事情不為自己找藉口,藉口==失敗。
最後環境的因素,我們希望它會變得越來越好。但是繼續這樣也沒有關係,只有對自己充滿信心,相信自己,堅持自己的理想,無論在多垃圾的環境中都會取得自己滿意的成績。