天天看點

軟體工程熱身作業

項目 内容
本作業屬于北航軟體工程課程 2020春季計算機學院軟體工程(羅傑 任建)
本作業的要求請點選連結檢視 2020BUAA軟體工程熱身閱讀作業
我在這個課程的目标 提高自身的代碼能力、學習團隊協作開發的過程
本作業幫助我實作目标的具體方面 了解軟體工程中需要的技術、思考自身的職業生涯規劃
作業正文 見下文
其他參考 部落格1 部落格2 部落格3 部落格4

第一部分:結緣計算機

問:你為什麼選擇計算機專業?你認為你的條件如何?和這些部落客比呢?

​我選擇計算機專業大體上還是盲從的心理。在上大學之前,從國中到高中,我對于理科學習的态度一直都是:也不是不能學下去,也不是毫無興趣,如果努力之後都能學好,既然理工科比文史科有更好的發展前景,那不如就選擇理工科吧。就這樣,國中時期沉迷于文學曆史并認為将來絕不可能選理科的我在高中時很自然地跟着大多數人選擇了理科。在聯考結束後又堅決地否決了所有的非理工類學科。本着不能浪費聯考成績的态度,我需要在同濟和北航之間作出選擇。因為地域因素,家長更偏好同樣屬于北方的北京,再加上同濟招生辦的老師認為我的成績無法進入最頂尖的幾個專業,我便選擇了北航資訊大類。在大一結束後專業分流時,一方面是因為身邊成績差不多的同學都認為計算機專業更好,一方面也是因為聽說計算機學院的課程設定非常“硬核”,我認為這樣有利于挑戰自己,學到更多的知識,是以我最終選擇了計算機專業。

​我認為我在計算機的學習上是一個資質比較平庸的學生。首先,我的理科思維、數學能力一直都不算太好。中學時期的理科學習隻是在極其有限的知識範圍内不斷重複,隻要重複的夠多,也能獲得差不多的成績。但我清楚地知道我和别人在思維和能力上的差距。大學中的數學課也大多靠死記硬背刷題通過,往往隻能得到一個不好也不壞的成績。

​和這些部落客相比,我想我的差距首先在于接觸計算機的時間,我在大學之前對計算機的認識僅限于使用,從未接觸過程式設計方面的知識;其次在于鑽研的興趣,對于相關的知識,我并非全無興趣去了解,但經常在碰了一次釘子、遇到不了解的知識或解決不了的問題以後就停滞不前了。部落格1的部落客從國中就開始研究電腦,并有了為電腦學好英文的目标;高中時盡管學業繁重還是能花費相當多的時間去學習程式設計;大學時即便選擇了英語專業,依舊能夠堅持自己對電腦的熱情。他不僅接觸計算機的時間很早,而且有堅持不懈的精神。

問:計算機是你喜歡的領域嗎?是你擅長的領域嗎?

​計算機學科是我喜歡的領域,但是我覺得我還談不上真正的熱愛。我認為任何學科都有其迷人之處,我對很多學科都抱有求知的熱情。在計算機學科上,我喜歡按照自己的想法有序地搭建起一個結構并能夠順利運作的感覺,我喜歡那些巧妙簡潔的算法的美感,我也為曆史上那些從技術理論到改變生活的應用驚歎。我認為,計算機并不是我擅長的領域。我投入的精力與時間還不夠多,我接受學習新知識的速度相對較慢。

第二部分:在計算機系裡學習

問:你對你的大學生活有什麼想要吐槽的地方嗎?你理想的大學教育應該是什麼樣子的?跟學校給你的有什麼差別?比較你在中國大學的經曆,你的老師和學校能做到和國外那樣嗎?如果不能,請分析一下為什麼。

​對我的大學生活,我最想吐槽的就是“學到新知識”的理想與現實中有限的時間和有限的學習能力之間的沖突。這樣的沖突在作業系統課程設計中展現得最為明顯。完成課程設計肯定是要建立在了解原理的基礎上,可是為了在有限的時間内完成任務,往往等不及了解原理就拿着現有的代碼囫囵吞棗。大塊的debug時間投入在無意義的比對中。計算機學院的各門以硬核著稱的核心專業課都在進行改革,顯然,現今并非是最好的面貌。

​我理想的大學教育,在專業技能方面,應當培養學生紮實的基礎學科功底和一定的與工業或科研接軌的應用能力;在個人素質方面,應當培養學生交流、組織、團隊協作等種種社會能力。我認為學校在這些方面都給予了學生一定的支援,但我往往不能很好地應用、與設想的效果相去甚遠。譬如,許多課程設定其實“幹貨滿滿”,但往往應付了事,完成課程的底線要求後就不再付出精力。數學基礎課隻顧作業和期末刷題,掌握并不牢固;一般專業課隻顧最終的大作業或是期末突擊,課堂聽講敷衍了事。要想真正學到東西、培養程式設計能力,還是要靠“硬核”的幾門核心專業課,特别是課程設計。學校的确給了我們很多東西,但是标準卻松緊不一,那就一定會把大部分的時間投入到收益最大、要求最緊的課程上。記得在上學期,我為了找出編譯器中的一個bug,幾乎有一周的時間沒有學任何其他的東西。不能說這樣debug的意義不大,但是顯然用這些時間能完成很多其他收益更大的東西。

​在各種專業課課程設計的教學方式上,通過閱讀部落格2,和老師們對各門課程逐年發展完善的介紹,看得出來老師和學院已經在努力向國外優秀的大學學習和靠攏了。

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

​我沒有具體統計過我寫過代碼的總數量,大體來說就是和大多數同學一樣在計組、面向對象、編譯原理等課程設計上所寫的大作業,再加上在一般專業課的大作業和馮如杯中寫的代碼。

​我做過最複雜的軟體作業可能就是上學期的編譯器了,共有大約3000多行,但是代碼品質并不高,而且就概念來說它并不能被稱為是一個真正的“軟體”。

第三部分:未來規劃

問:對于你未來在IT行業的發展,你有什麼樣的夢想或者未來想從事什麼樣的工作?你準備怎樣來規劃你的技術道路,職業道路和社會道路?

​其實我目前隻是按部就班、走一步看一步,各種IT行業的領域在我看來都可以作為未來的工作方向。無論是近年大火的人工智能還是軟體工程師,都可以在接觸之後再下定論。因為考慮到希望在學術上更進一步,我目前的規劃是國内讀研,再之後的職業道路還沒有确定下來。

​ 部落格3的部落客如此寫道:

​ 從第一次面試,到標明工作Offer,前後隻有短短四個多月的時間。但是為了得到自己喜歡的工作,我從确立興趣方向、進行各種準備到應對面試、最後選擇職業發展道路,付出的時間和精力比這要多出許多。

​ 确立求職目标:IT業的産品經理和管理咨詢業的分析師

​ 整個求職過程中,我一共隻投了十家公司:谷歌(産品經理)、微軟(項目經理)和百度(工程師),六家管理咨詢公司及中國移動(産品設計崗)。在年後才拿到最終Offer的同學中,這算是非常少了,主要原因是我在求職季節到來之前就立下了明确的求職目标,即IT業的産品經理和管理咨詢業的分析師,并且針對這個目标進行了充分準備。

​他的經曆給了我很大的啟發。求職規劃和生涯規劃一定要盡量細緻、可行,這樣才能把力聚至一處,才能更有可能獲得達到目标。當然,這是決定求職之後再做的工作。我目前還處于學習完善自己的階段,部落格4的部落客給了我更大的啟發。

​ 即便這樣,如果純按照現在需要的知識看,我在“沒用”的東西上浪費的時間還是很多。不過我倒不願意稱這些為浪費,在我看來,成長路徑中有很多的偶然,沒人知道在一些關鍵時候需要什麼樣的知識儲備,是以踏實地多儲備一些是好事。我在大四的經曆和其他的一些經曆都告訴我,以前通過看書、自學,徹底地弄懂的一樣知識,會在某個不經意的時候,突然被用到。這時候對當年積累的慶幸和再發現的快樂,就像蓦然回首見到燈火闌珊處的秋水伊人一樣,是沒法用文字描繪的。

​多讀書,紮實地學習知識,少去考慮一些将來“是否有用”的問題,也許才更能從學習這件事中收獲快樂吧。

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

​我将來希望在本校讀研,是以還是希望能夠在實驗室實習、積累更多的科研經驗。