軟體工程熱身作業
項目 | 内容 |
---|---|
這個作業屬于哪個課程 | 2020春季計算機學院軟體工程(羅傑 任健) |
這個作業的要求在哪裡 | 第一次作業-熱身! |
我在這個課程的目标是 | 學習軟體工程的開發知識,初步具備多人開發軟體的能力 |
這個作業在哪個具體方面幫助我實作目标 | 分析自己目前的需求以及對未來的展望,還有對過去的反思 |
作業正文...... | |
其他參考文獻... | 部落格1 部落格2 部落格3 |
第一部分:結緣計算機
你為什麼選擇計算機專業?你認為你的條件如何?和這些部落客比呢?
我選擇計算機專業或許是自身興趣加上時代發展的結果。我在上大學以前,從未接觸過計算機程式設計,聽說過資訊類競賽,但自己并沒有參與過,相反我在高中喜歡的是數學和實體。但随着聯考結束,填報志願的日益臨近,我也開始思考自己大學四年時光的專業選擇,不能僅僅依據個人愛好,還要結合熱門的就業領域,數學實體我确實喜歡,但要我進入研究所,埋頭苦幹十幾年,我自問可能沒有那樣的耐心,于是我把目光投降了IT行業,當時IT行業十分火爆,我對IT沒有太多的認識,隻知道他們的工作是坐在辦公室抑或是敲代碼,畢業後找工作相對容易,起薪也不算低,并且計算機最終的最終是數學,正是我喜愛的學科,于是我開始考慮計算機這個專業。我去網上了解相關資訊,知道了計算機是一個十分廣闊的領域,它與我們平時的生活息息相關,同時它又有一部分代表着當今科技發展的最前沿,一個男孩怎麼會不向往高科技,向往黑客帝國裡那種噼裡啪啦敲鍵盤,就可以無所不能的生活呢,說實話,計算機科學有一種别樣的魅力吸引着我,讓剛剛開始了解它的我着迷。
我自身在大學以前,可以說是沒有任何程式設計功底抑或是程式設計思想,上了大學以後,尤其是宿舍對門住着個一個資訊類競賽大佬,大一時,當我孩子為資料結構的題目糾結,或是苦惱着程式中隐含的bug時,大佬早就在一兩個小時内做完了我可能要寫幾天的作業,更加離譜的是他碼處的代碼一遍就可以運作正确,每每遇到這種情況,我就會苦惱,是不是他更加有天賦,是不是我真的不是學計算機的料。在大一一開始,當我寫出人生中自己的第一個程式時,看着指令行界面跳出“hello world”一行語句時,我是真的很興奮,電腦上顯示一行字或許是再尋常不過的事了,但我一直無法想象,電腦是如何顯示出那一行行文字或是圖檔的,那時的我或許還是不知道,但我知道這門學科,隻要一直學下去,我就會有機會電腦運作的原理,知道平時習以為常的電子産品背後藏着的一行行代碼,這樣的興奮激勵着我自己,也在我遇到挫折時,能夠為自己打氣。
閱讀了部份部落客的文章後,我意識到我所處的時代計算機發展更加完善,學校課程的安排更加科學有序,如果那時的IT行業算是初生的太陽,那現在的計算機科學可以說是接近正午的烈日,更加明亮但也更加刺眼。如今學習計算機,資源比過去幾年豐富了數百倍,發達的網絡讓我們在遇到問題的時候再不用去圖書館翻書尋找,或是獨自一人苦思冥想,我們可以在論壇上于全球的碼農交換觀點,總會有人遇到和我們相類似的問題,解決問題的時間和成本大大降低,上手似乎不再是一件難事,就好像現如今經管類的學生都要學習python程式設計,但這也意味着領域内的競争力飛速膨脹,曾經的IT是個冷門專業,人才市場有大量缺口,供不應求,但現在每年畢業的計算機學科學生成千上萬,競争更加激烈了;并且計算機的發展也更加迅速了,每年全球投出數以萬計的計算機相關學術論文,計算機領域的發展日新月異,每一天都有源源不斷地新知識産生,作為一個碼農必須保持學習新知識的狀态,一旦停止學習就有被淘汰的風險;當然我個人的英語能力還可以,這在我閱讀外國文獻或是論文原文時,起到了很大幫助,不需要逐字翻譯,讓我閱讀效率大大提高,并且更友善了解一些翻譯成中文可能就失去本意的内容。
計算機是你喜歡的領域嗎?是你擅長的領域嗎?
我或許并沒有程式設計的天賦,但我有一顆爆肝的心,大二的計算機組成,我可以為了調bug熬夜通宵,如果有我個人能力不能做到的事情,我願意用時間來換取能力,因為根據我大學三年學習計算機的經曆來看,計算機大部分是一些熟能生巧的事情,如果你不是發論文想不到好的靈感,其他的缺陷都可以通過大量的練習以及閱讀資料來彌補。就像我宿舍對面的大佬一樣,或許并沒有那麼多的擅長與否,别人看起來能力超群,隻是人家可能從國中就開始寫你大學才開始學習的代碼,隻是花費時間多與否的問題。
計算機或許真的讓我的大學生活極度充實,我票圈裡其他專業的朋友周末或是去逛一逛北京的景點,或是去品嘗北京的美食,但我們宿舍,抑或是周圍宿舍周末都隻能呆在教室或是去圖書館碼代碼,甚至通宵找一些無法複現的bug,大二的計算機組成,面向對象,以及作業系統、大三的編譯原理都給我留下了極其深刻的印象,但這一切終究是個人的選擇,或許有些人認為每日燈紅酒綠,結識好友才是青春,但我認為當面向對象糾正最後一個bug,自己寫的電梯能夠自主運作的時候,當編譯原理寫完最後的優化,使用着自己寫的編譯器時,這也叫青春。是以,我認為我是喜歡計算機的,學習計算機的日子真的很苦,但日後回想起來的卻都是送出後AK(All Kill)的喜悅。
第二部分:在計算機系裡學習
你對你的大學生活有什麼想要吐槽的地方嗎?你理想的大學教育應該是什麼樣子的?跟學校給你的有什麼差別?比較你在中國大學的經曆,你的老師和學校能做到和國外那樣嗎?如果不能,請分析一下為什麼。
我的大學生活,除了肝代碼經常肝到半夜以外,其他都還好,我感覺我遇到的老師都是很優秀,願意幫助學生解決問題的老師,并沒有遇到太多網上傳聞中那種存在某種道德問題或是嫉妒傲慢的老師。就比如我大一的資料結構晏海華老師,一個矮矮的年紀有點大的老師,我本以為會是一個墨守成規的老學究,沒想到是一個十分風趣幽默的老師,當然他在C語言方面墨守成規(笑),但他上課的内容真的不會讓人犯困,反而讓人有繼續聽下去的渴望,并且他非常負責任,每節課都會先花一點時間督促作業未完成的同學完成作業,然後回顧一下上節課的内容,真的是一個讓人印象深刻的老師,其他計算機學科的老師也都十分樂意回答學生提出的問題,從來不會因為問題太過低級或是膚淺而嘲笑學生。在提供的部落格中,我看到部落格B裡,劉帥的資料結構老師就是光教授書本知識,而不是一行一行的代碼,我就覺得幸運了很多,我的資料結構老師從第一堂課就強調程式設計講究實戰,隻有大量的練習才能狗進步,光有理論知識很有可能上手寫代碼無法實作,我也秉承着這一觀點直至現在,每次讀到的論文必然要自己代碼實作一番,而不是讀完就扔在一邊。
我理想的大學教育大概核心觀念就是自學+自覺吧,畢竟理論課上講到的内容是不足以完成課設實驗的,還需要同學課下查閱大量的資料,以及親身實踐才能有所收獲,如果高中是老師督促你學習的話,大學生活完全靠個人自學,幾乎沒有人會督促你完成作業亦或是起床上課,畢竟都是成年人了,要為自己的行為負責,為自己日後理想的生活而奮鬥,全靠自覺的話,周圍的環境就會很重要,索性我的室友都是關鍵時刻能夠爆肝的選手,也會互相提醒作業亦或是起床上課。當然,我高中從未想過大學的生活學習壓力會比高中還大(這或許和我選擇的學校以及專業有關),整個專業相當于是重新參加了一次選拔後可以說最優秀的同學,沒有人願意掉隊,也幾乎沒有人願意課程成績隻有80+,大家都向着90+在奮鬥,這時的壓力真的很大,(我真的很想會高中),當然,我也很榮幸能遇到這麼多好學本身又十分強大的同學。
我并不了解國外的學習經曆,但我對于校内的一些課程也确實存在不滿,例如計算機組成的考核制度,從P0至P8,又或是作業系統的Lab0至Lab6,考核成績中幾乎不會關注你平時的代碼工作,隻會考慮上機時那幾個測試點是否通過,并且上機不會提供測試點,即使上機結束也不提供,我認為這樣的制度存在一定問題,畢竟我們學習知識是為了解決問題,而考試是為了檢驗我們學習知識的掌握程度,那為什麼要忽視平時的努力,而一考定分,平時分給出的比例着實有些小,一旦上機出現bug,在短短的2小時内修複bug的可能性極低,也就意味着平時大量的工作都付之東流。這也僅僅是我個人的想法,必然有不完善的地方,也希望老師能夠指正。
迄今為止,你寫了多少代碼,描述你做的最複雜的軟體項目/作業
迄今為止一共寫了約兩萬行代碼,其中最複雜的項目應該是大三上學期的編譯器了,總計有一萬行左右的代碼量,其中大部分都是優化功能的實作
科班出身和北大青鳥有什麼差別?
我認為科班出生,未來的發展方向遠比北大青鳥來的廣闊,課内學習的知識如作業系統,計算機組成,編譯原理等,都是為将來學習更進一步的知識打下基礎,也就是為将來能夠學好這些領域的知識提供了平台,但像北大青鳥這樣的教育訓練機構,我并不很了解,但我推測他會根據你自己提出的就業要求提供課程,也就省略了打基礎這一環節,而直接跳到了應用層面,或許缺少對計算機底層的了解并不會妨礙你寫前端或是界面,但也就限制了你未來的發展空間。并且,北大青鳥的學員對于一些晦澀知識點的了解,很大可能沒有科班出生的了解深刻,例如指針,或許北大青鳥也會講到,但講解一定沒有大學老師來的細緻,甚至反複強調其重要性,而同時作業系統的理論知識也能幫助我們更好的了解語言,了解指針等概念,北大青鳥就缺少了這個機會。同時我相信,在高校内接觸到的老師遠比北大青鳥的老師更加優秀,社會閱曆以及工作經驗更加豐富,校内老師更懂得某一塊領域的核心知識點所在,而不是泛泛而談,讀ppt式授課,甚至有如部落格3中所說,一些是視訊授課,向老師提問時老師的态度極其惡劣,或者都沒有與老師接觸的機會,自身産生了問題可能隻能自己解決,填鴨式的教學,就像如今的雞鴨,完全是為了養肥而喂食,自然沒有農村裡自家養殖的不吃飼料的雞來的好吃。大學裡老師若是為了教育學生,真正的傳授知識的話,北大青鳥或許隻是教育訓練機構,本身對你隻有利益的往來,沒有什麼責任感。
第三部分:未來規劃
對于你未來在IT行業的發展,你有什麼樣的夢想或者未來想從事什麼樣的工作?你準備怎樣來規劃你技術道路,職業道路和社會道路?
我希望未來從事的是計算機與其他學科交叉的工作,例如我最近跟進的項目就是使用機器學習來幫助醫生判斷兒童斜視的角度,幫助醫生縮小角度範圍,之前也了解過生物醫學工程方面,使用深度學習來幫助判斷氨基酸所屬肽段進而分析蛋白質的項目,都是使用計算機的知識在其他領域能做出十分突出貢獻的,醫生本身并不懂太多的程式設計知識,但如果你是計算機專業,同時又懂得醫學知識或是金融的專業知識,我認為這樣的人能夠為社會做出極大的貢獻,我自認并不是十分擅長算法方向的研究,是以在其他領域使用計算機知識而不是開發新的計算機知識就更加吸引我,目前來看其他領域對于計算機的需求很大,或者是這個領域還沒有意識到計算機可以被用于促進其發展。
目前我的打算是研究所學生階段繼續讀計算機專業,同時學習金融方向的課程,因為金融是與數字的互動,與計算機類似,源于數學,如今的計算金融專業也十分火爆,我對于數學也很感興趣,相信計算金融會是一門十分有趣的學科,分析資料,從過去的資料分析未來的走勢。
你對于實作自己的夢想已經做了或者計劃做什麼樣的準備?
現階段,我打算先打好計算機的基礎,并在有意的去接觸機器學習或是深度學習相關領域的知識,自己做一些資料分析的代碼實作,抑或是參加一些資料工程方向的比賽。并且,我也在參與一些多人項目,學習多人合作的相關技術,如GitHub等版本管理手段,確定和他人的合作互相不妨礙,同時又能在最後融和時沒有阻礙。自己也在閱讀一些金融相關的書籍。
你們馬上就要面臨實習了,你打算在企業内實習還是在實驗室實習?
我打算在企業内實習,因為企業内的實習或許更加接近生産應用,管理方式或許會與實驗室内有所差別,同時企業内實習也可以結識很多社會上的朋友,為畢業後的工作應聘或是求職打好基礎。
以上都是我個人的觀點,如有不妥或是我思考不周之處,還希望老師幫忙指正,謝謝。
17373015 喬玺華