天天看點

軟工熱身作業

項目 内容
這個作業屬于哪個課程 2021春北航計算學院軟體工程(羅傑 任健)
這個作業的要求在哪裡 作業要求
我在這個課程的目标是 提升代碼能力,掌握工程化方法
這個作業在哪個具體方面幫助我實作目标 對自己有一個更為清晰的認識

一、大學生上課一定要認真聽講嗎?

Scalers表示大學生上課一定要認真聽講,這一點我并不是完全贊同。

在大多數情況下我是贊成大學生上課要認真聽講的,正如文章裡所說,老師畢竟是老師,大多數老師的水準會比學生高,至少有值得學生去學習的地方。但是,在少數情況下,老師講的内容難度太大或者表述得過于抽象,讓學生如同聽天書一樣,這個時候繼續聽課除了加重學生對于這門課的負面情緒以外别無好處,此時學生應該選擇趕緊查漏補缺,抓緊複習并提前預習,争取下節課開始能夠跟上老師。

二、結緣計算機

1.你為什麼選擇計算機專業?

自己和計算機結緣其實挺晚的,在進入大學以前電腦對于我而言就是一個可以看視訊、上QQ的工具,我從來不曾想過以後要進入計算機學院進行學習,就連國中、高中那少的可憐的電腦課也被我用來偷偷打4399而混過去了。上了大學以後,程式設計這門課讓我第一次接觸了代碼,由于當時從來沒有接觸過其他語言,是以不僅沒有覺得C語言寫起來麻煩,反而為自己能夠動手解決新的問題而感到高興。在大一上考期結束的那幾天,我在宿舍花了幾天時間寫了個大幾百行的C語言程式,用來給弟弟自動出四則運算的口算題并自動批改,從那以後我便對計算機不排斥甚至有了一點點興趣。同時,由于認識不少來自計算機學院的優秀學姐,是以覺得計算機學院是優秀同學的共同選擇,再加上父母覺得計算機的就業前景良好,而且在近30年内都不會被淘汰,于是在這種種因素的作用下我最終選擇了計算機學院。

2.你認為你的條件如何?和這些部落客比呢?

我自己是一個各科均衡發展的學生,沒有明顯的短闆使得我在聯考中非常占優勢,但是也一定程度上掩蓋了我沒有優勢科目的事實。事實上,我很努力也學不好與數學直接相關的學科,和一些包括算法在内的、與數學有着密切聯系的學科。我始終無法做到融會貫通,舉一反三,隻能夠通過反複練習做到對于書上出現的例子在考場上能夠複現出來而已。是以,在學習能力上,我覺得我不如部落格D和部落格I 的部落客,我無法在某一個領域做到精通。

3.計算機是你喜歡的領域嗎?是你擅長的領域嗎?

我曾經喜歡也曾經不喜歡,但是我覺得未來會喜歡。在大一時,我曾經很喜歡用C語言寫短小的程式來幫助我解決一些小問題,興緻盎然的我還曾經用C語言寫了個短小精悍的生日祝福程式給學姐,如果沒有記錯的話就連跨年夜都是C語言陪伴着我度過的。在大二時對于我的專業我是不太喜歡的,我讨厭帶有複雜拗口的體系結構術語的計組,也讨厭夾雜着C語言、彙編語言和一堆牛鬼蛇神注釋的作業系統,我原本以為我會為我弄懂了計算機底層的原理而感到驕傲和自豪,但實際上我隻覺得學得身心俱疲。到了大三,我發現原來卷編譯是如此有意思的事情!當你通過種種優化使得代碼運作的效率提升了十倍時,你會發自内心的為自己所取得的成就而感到高興,雖然卷編譯的過程中也因為種種bug而感到沮喪,但是在克服了各種困難後所獲得的成就感仍然讓我為之歡欣鼓舞。對于未來,我相信我能夠找到我感興趣的事情并繼續為之努力下去的。此外,雖然我沒有教書育人的經曆,也沒有從事科研的經曆,但是當喻之斌教授為他培養出的學生感到驕傲時,當他通過努力讓華為的性能變得更好時,他的那種驕傲、欣喜我是能夠産生共鳴的。我想,也許這樣的共鳴表明我内心深處還是熱愛計算機這個領域的。

至于是否擅長取決于評價标準以及比較對象。我覺得我相對于同級計算機學院的同學來說,代碼能力和工程能力都高于平均水準,曆次的競速也都取得了較為靠前的名次,從這一點來說我是擅長計算機的。但是相對于專業的碼農,我還有很大很大的差距。首先,我對C++的STL庫和Java内置的容器并不十分了解,對常用的架構也知之甚少,從知識面上來說我就有所欠缺;其次,我沒有真正參與過能夠投入生産使用的軟體工程,缺乏實際開發以及運作維護的經驗。

三、在計算機系裡學習

1.你對你的大學生活有什麼想要吐槽的地方嗎?

在生活上,我覺得學院路的食堂好吃的東西實在是太少啦!要是能把沙河食堂搬過來學院路就好啦!在課程設定上,我覺得計算機學院對于算法的學習太少了,學習資料結構時隻是粗略地涉及了一些基本的算法,并沒有詳細講述對于算法的優化;而大三的算法課雖然有講代碼的具體實作和優化,但是沒有上機也沒有足夠的課時來深入講解算法,導緻同學們對算法的認識其實隻停留在非常淺層次的階段。

2.你理想的大學教育應該是什麼樣子的?

  • 能學到成體系的知識,學到無法速成的紮實基本功,學到學科素養
  • 給學生充分的時間德智體全方位發展

3.跟學校給你的有什麼差別?

學校的老師總體而言都比較認真負責,專業課的課程都比較成體系,是以隻要用心學了的同學都能夠學到成體系的知識。再加上計算機學院對于同學們的代碼要求很高,也非常注重工程化方法的教授和培養,是以我認為學校給我的基本上達到了我的第一點要求。

但是,由于課業壓力較大,而且北航的社團總體而言和世界一流大學還存在較大的差距,再加上寸土寸金的北四環以内不允許學校建更多的運動場(平時隻有一個小足球場是開的,籃球場也隻有室外的而且框還有好多是歪的),是以我覺得大多數北航的同學(包括我在内)在社交活動和體育鍛煉方面花的時間不夠,沒能實作全面發展。

4.比較你在中國大學的經曆,你的老師和學校能做到和國外那樣嗎?

我覺得比較難做到。畢竟各國國情不同,國内公立大學幾乎全靠國家補貼,不像國外私立大學的學費如此高昂,是以可能無法提供像國外那麼好的教學裝置和實驗器材。此外,由于學生數量比較大,是以也隻有有限的幾門課可以實作小班教學,學生個人的發展和學習全靠自覺,無法像國外一樣為學生量身制定發展方向。但是,我覺得所有用心學習的同學都能夠在大學階段收獲自己想要擷取的知識,尤其是理工科的學生。正如這個部落客所說的那樣,技術是硬實力,擁有技術就不用擔心沒有飯碗;此外,當你的謀生已經不成問題時,你就有資本去追逐事業,追逐更廣闊的天空,同時你的下限也不會太低。是以,國内的學生也應當充滿信心,相信國内的教育體系也能培養出優秀的畢業生。

5.迄今為止,你寫了多少代碼,描述你做的最複雜的軟體項目/作業

迄今為止,我寫過的過千行的工程應該就是計組、OO、編譯和資料庫的大作業。其中,計組的代碼一千多行,OO四個單元中每個單元的代碼量都在一千到兩千行之間,編譯算上優化總共有6000行,資料庫大作業大約一千行。

我認為,最為複雜的工程是自己寫的編譯器,但是總體而言它的代碼架構是最清晰的,詞法分析、文法分析、代碼優化、代碼生成四個環節環環相扣,依次進行。工程雖大,但是由于可以拆解成一個個小的局部結構,是以實際上并沒有想象中那麼複雜。

6.科班出身和北大青鳥有什麼差別?

我認為,科班出身和北大青鳥的主要差距在于專業知識水準的差距以及是否熟悉行業規範。專業知識水準的差距展現在多個方面,在計算機領域下的表現是,科班出身的同學能夠懂得底層的原理,明白計算機是怎麼運作的,是以往往能夠更好地優化自己的代碼;此外,由于專業知識水準的差距,在描述問題時他們使用的術語更加專業,表述更加準确,能夠有較高的溝通效率。是否熟悉行業規範則主要展現在代碼上。科班出身的同學無論是代碼風格還是變量命名都更加符合工程要求,同時由于他們有過獨立開發大工程的經驗,是以會更加注重前期的架構設計和收集需求,這讓他們在進入企業以後能夠更好的适應。

四、未來規劃

1.對于你未來在IT行業的發展,你有什麼樣的夢想或者未來想從事什麼樣的工作?

雖然決心還不是特别堅定,畢竟這條路實在是太辛苦了,但是目前來看我是希望讀到博士然後留校繼續從事研究。這個選擇基于兩點,一是因為我覺得從事研究比去當碼農更有可能讓我感覺到快樂,因為在企業裡當碼農可能會像這位部落客一樣不順心,二是因為留校的社會地位更高,被人尊重無論如何是一件高興的事情。

2.你準備怎樣來規劃你技術道路,職業道路和社會道路?

  • 技術道路:目前在學校裡我對待專業課非常認真,希望能夠掌握紮實的基本功,盡可能的多方面了解,這樣有利于為将來保留更多的選擇機會。
  • 職業道路:想要留校學曆是硬門檻,是以努力考研讀博,并且努力發好文章。
  • 社會道路:現在離出來工作還很遠,暫時沒有考慮。

3.你們馬上就要面臨實習了,你打算在企業内實習還是在實驗室實習?

由于未來更加可能從事科研方向,是以會選擇在實驗室實習。在好的實驗室實習,能夠在組會中聽到同學們的分享,能夠聽到一些讓人耳目一新的idea。同時,由于實驗室中會有研究不同課題的同學,是以聽他們的分享也能夠很好的拓展知識面,知道目前的學術研究的進展。最重要的是,組會上老師會傳授一些關于如何寫好文章的小trick,這對于未來從事科學研究是彌足珍貴的。