| 專案 | 內容 |
|---|---|
| 這個作業屬于哪個課程 | 2021春季軟體工程(羅杰 任健) |
| 這個作業的要求在哪里 | 個人閱讀作業#1 |
| 我在這個課程的目標是 | 和我的團隊開發一個真正的軟體,一起提升開發與溝通的能力 |
| 這個作業在哪個具體方面幫助我實作目標 | 歸檔cs學習歷程,思考自己的定位與未來 |
一、結緣計算機
問1:你為什么選擇計算機專業?你認為你的條件如何?和這些博主比呢?
羨慕博主I這種中學時就與志同道合的人為之熱愛而奮斗的人,這也讓筆者感到相形見拙,筆者在十八歲以前,只是小縣城高考工廠中的另一位做題家罷了,那一年,區塊鏈、云計算、深度學習這些詞正火熱,恰好筆者也時常浸淫于知乎上充滿個人英雄主義的Geek和白帽的經歷中,再加之筆者除了數學其他學科都學不好的原因,便對cs有了歸宿感,心想著以后靠寫代碼過活也挺cool之類的,在經歷一場失敗的高考后,筆者就到了BUAA,專業分流時持著提升計科核心能力的想法進入了計算機系,
其實筆者看到博主I首先聯想到一位是上古時期程式員的作家王小波,同樣是有兩把刷子的野路子,可惜筆者在高考工廠的時候只讀過小波的文字,并無機會像他一樣動手編程,自楚門的世界出來之后,筆者才知道相比于大學其他同學自己的基礎是零呀,但相比博主I時代變了,而且幸運的是,6系和73書院有著世一大的相當厲害的教科條件,筆者經過CO, OS..的錘煉,可說是融入了cs這個領域并體會到了它的魅力,
問2:計算機是你喜歡的領域嗎?是你擅長的領域嗎
吶,適合自己的東西我當然喜歡了,如果平行世界中我聽了那個沒有頭發的班主任的話去學物理的話,那么大學一定會很痛苦罷,大物證明了我確實一沒天賦二沒熱忱(悲), 但說到cs的話,自底向上剖析調教計算機的各個層次,亦或是將所學所思變成一個個高效的程式實作,這種在cs無窮知識中不斷學習并實踐之所帶來的成就感,還有在屎山中成功DEBUG的暢快感,是我廿年來不曾有的,經歷兩年多學習,我確信計算機領域是我能施展拳腳的天地,所以計算機是筆者喜歡的領域,
因為沒有達到精通的水平,所以計算機不是我擅長的領域,我客觀上基礎打得并不是很牢,專業課也達不到申優的水平,但我在6系大幅提升了編程能力與系統能力,正走在《從入門到精通》的道路上,所以我一定會努力給這個問題一個肯定答案的,
二、在計算機系的學習
問1:你對你的大學生活有什么想要吐槽的地方嗎?你理想的大學教育應該是什么樣子的?跟學校給你的有什么區別?
吐槽:(a)很幸運能進入全國頂尖的計算機系,6系的金課當然是好的:從零打造的流水線CPU、成熟的作業系統課設、自主設計魔幻優化的編譯器.. 各個課設可謂環環相扣,理論與實踐高度結合,也很有深度,就像博客M說的"你做得出來,但是難度大到只要再難一點點你就做不出來的事情",這種磨練讓我成長了很多,但或許6系更看重同學的工程與系統能力,演算法等一眾數學課教的內容比較基本,或者是考核并不太硬核,我期望的是這些計科軟實力也能被同樣重視,(b)其次為了完成6系宏偉的培養方案,我還得刁難自己選一些為寬口徑人才準備的和cs相關性低的課,可能"課程有用無用不是一個大學生的格局能判定的",但我希望給同學們足夠的按個人興趣選擇專業外的課程的機會,(c)你航人口太多了,所以人文關懷和心理疏導確實無法面面俱到,但學院最近在這方面的努力大家是能感受到的,
作為工科生,當然不能只停留在課堂所學,更多的應該是自行探索鉆研,所以在這方面努力可能比天分更有用,自我驅動力就很重要,所以我理想中的大學教育是講授人不僅完成專業知識的傳授,更能少一些照本宣科,引導學生理解課程本質,明白自己在課程中最想學到什么,這樣才能驅使同學們深入研究,拔高課程的深度,其次,課程的考核也應進一步細化,把平時的學習情況納入評定,總不能老是搞一考定音的策略,這實際上是對同學們課內知識增長的程序的忽略,最后也容易演變成臨門一腳,只是對往年考題擬合的應試型學習,
問2:你的老師和學校能做到和國外那樣嗎?如果不能,請分析一下為什么,
博客N近乎就是我理想中的大學教育了,透過博客可以感到國外良好的學術氛圍和教育條件,和我的學校相比的話,一來國內短時間內也沒有這么好的教育資源支撐這種模式,教材質量和硬體質量都亟需提高,二來外國個人主義濃厚,大學內沒有國內這樣復雜的行政體系,學生對自己的大學生活更有規劃,更能注重合作與主動探索,這一點思維的轉變不是每個國內學生都能做到的,所以國外細致的模式可能還不適用于國內的教育環境,
問3:迄今為止,你寫了多少代碼,描述你做的最復雜的軟體專案/作業,
不記空行情況下:計算機組成原理課設2000+行Verilog代碼,面向物件課設共2997行Java,ongoing的一個Android專案也算上吧,1500+行Java;資料庫系統原理寫了一些Vue,因為功能簡單只寫了2162行;編譯原理(MIPS難度)寫了1395行C/C++,其他的是懶得數的代碼片段,課內零碎的1500+行Python,大一在的luogu,oj4th刷的水題也有個幾k行左右,所以攏共就是1.5~2w的樣子,
這其中最為復雜的作業是編譯原理課的小型類C文法編譯器,雖然重構與壓縮后的行數不多,但在邏輯上是相當復雜的,其任務有詞/語法分析,中間代碼生成與代碼優化部分,我在完成代碼生成部分后因為理論課上沒聽懂怎么優化,所以只搞了幾百行對匯編碼的優化(霧),想來其中最大的問題是忽略了代碼的可維護性與可讀性,這種草率的編程風格肯定對團隊是有害的,我有罪,所以我將在軟工中再次審視自己的代碼規范..
問4:速成的培訓班和打基礎的大學教育還有mooc之間有區別嗎?
MOOC的受眾廣,能把優質的課程開放給各個階段的學生,這對于國內高教事業是好的,但我覺得慕課太缺乏互動性,基本就是講授人在一個虛擬背景下念課件的鏡頭,課堂氛圍的缺失讓學生難以持續跟進課程,所以相比之下,我更推崇國內外的錄播課,
培訓班的弊端是往往只能送出只會博客G中那種"不懂得任何的良好編碼習慣、除錯、調優技巧"的搬運工,我也曾在B站為了快速了解一門語言看了一些培訓班公開的視頻,但往往講到某一個庫函式時,講者會強調'一定要在這里呼叫這個函式,不然會出現balabala的BUG',但沒有如我期望中那樣通過原始碼分析BUG的原因,所以培訓班為了時間效益,往往只注重知其然,而不知其所以然,這樣的畢業生往往在企業中日復日地重復相同的編碼,容易在技術上停滯不前,
問5:學線性代數和概率論的時候,你是否有過這樣的疑問“我們為什么要學這么多數學,這和我們的計算機有關系嗎”,你現在是否還有這樣的疑問?對這個問題,你有自己的解答了嗎?那么其他學科呢?
沒有疑問,數學完成的是對抽象的描述,計算機科學中很多模型的建立與演算法都離不開數學,有時它就是那個技術實作上的瓶頸,你還必須得去學會了,計算機圖形學離不開線性變換,影像方面有傅里葉變換,機器學習就牽扯出概率論線代啥的,我認為作為計算機系的學生,還理應當對數論,圖論等這類離散數學有廣泛的了解,當然我們所需的數學只是這個學科的一部分,作有針對性的學習也是有必要的,
三、未來規劃
問1:對于你未來在IT行業的發展,你有什么樣的夢想或者未來想從事什么樣的作業?你準備怎樣來規劃你技術道路,職業道路和社會道路?你對于實作自己的夢想已經做了或者計劃做什么樣的準備?
想做機器學習相關的作業,因為通過課程以及馮如杯和實驗室有了解到機器學習與深度學習,其中推動演算法落地成為應用是很有意思和挑戰的,從規劃看來,短期內還是堅持進行中的考研復習,因為我考量到以自身的實力不深造應該在作業中走不長遠,所以選擇讀研來修煉自己的內功,博客B的讀研經歷也提醒我要避免陷入思維的機械與缺乏活力,當下我應該夯實代碼能力,同時主動去鉆研理論,動手復現,既然決定做ML相關,今后自然要動起手來,只有在實踐中才能發現技術的痛點,找到自己的研究方向,
由于我比較迷茫,所以職業方向沒想得那么長遠,上文也計劃的很粗,如果能從事和研究方向一致的職業自然最好,但讀研也是一個持續增加自身知識儲備的程序,如果我沒能在相關領域有所建樹的話,如博客C說的"在我看來,成長路徑中有很多的偶然,沒人知道在一些關鍵時候需要什么樣的知識儲備,所以踏實地多儲備一些是好事",我想我會深入積累,在就業時掌握有一定廣度的技術堆疊,保證無論是演算法工程師還是開發崗位等都有機會勝任,
問2:你們馬上就要面臨實習了,你打算在企業內實習還是在實驗室實習?
我打算在實驗室實習,因為我就想考本校的研究生,在實驗室實習有助于我適應讀研的生活以及提高個人科研能力,更重要的是盡快找到自己感興趣的科研方向,或結識一些優秀的導師,
問3:實習經驗究竟有多重要?是否需要馬上開始積累實習經驗?
實習經驗當然很重要,不論是實驗室實習還是更注重技術落地的企業實習,積累實習經驗需要盡早,這樣才可以在實戰中驗證自己的規劃是否適合自己,才有充足的時間調整自己的未來規劃吧,
參考博客
博客I 博客N 博客B 博客C 博客G Scalers:大學生上課為什么一定要認真聽講?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/270903.html
標籤:其他
下一篇:固態硬碟與機械硬碟的概念與區別
