2020BUAA軟件工程 第一次我的做業 回顧與展望

2020BUAA軟件工程\(\cdot\)第一次我的做業 回顧與展望

1、做業要求簡介

本文是北京航空航天大學計算機學院軟件工程課程的第一次做業。做爲一名計算機專業的大三學生,此次做業的目的正是讓咱們更好地總結過去的學習生涯,作好將來的職業規劃。經過閱讀前人的職業經歷,借鑑他們的成功經驗,同時反思本身是否在正確的道路上朝着本身想要的目標前進。html

項目 內容
本做業屬於北航軟件工程課程 博客園班級連接
做業要求請點擊連接查看 做業要求
我在這門課程的目標是 得到成爲一名軟件工程師的能力
這個做業在哪一個具體方面幫助我實現目標 總結過去、規劃將來

2、正文

第一部分:結緣計算機

問:你爲何選擇計算機專業?你認爲你的條件如何?和這些博主比呢?

博客I中的做者是一位狂熱的計算機愛好者,他/她選擇從業於計算機徹底是出於對行業的愛好。而博客G中的主角選擇投身寫程序並不是出於對計算機和寫代碼的熱愛,而是爲了生活——"因而,雖然她歷來沒有碰過電腦,雖然她不知道什麼是編程,可是她已經有了一個理想,那就是作程序員,一個月掙 8000 塊錢。"git

我認爲,一我的與計算機行業的結緣的緣由並不在於其對行業的熱愛或信仰,也不在於科班或非科班。而在於其所處的時代背景與我的機緣巧合的選擇。程序員

博客I中的做者處於我的計算機剛剛家庭的時代,他當時家裏擁有386,和同窗一塊兒偷着去老師家裏玩電腦。正是在這個時代背景下加之他優質的家庭條件賦予了做者對計算機的熱愛。而博客G的主角處在互聯網公司剛剛興起,行業急需大量程序員的時代。她看到了計算機行業上升期的紅利,於是決定投身到計算機工做中。編程

對於我本身而言,我所處的時代是計算機技術逐漸普及千家萬戶,互聯網產業飛速發展的時代。同時也是一個高考畢業生瘋狂選報計算機專業、其餘行業的人員瘋狂轉入計算機行業的時代。計算機行業實際上已經成爲當前社會發展進程中的主流行業,表明着當今時代。我並無經歷過像博客I的做者同樣從幼時起對計算機技術如醉如癡的過程,也並無博客G女主角同樣因生活所迫從事計算機產業的壓力。我之因此選擇計算機專業,大概即是被互聯網產業的時代洪流裹挾而衝進了這計算機領域吧。我相信有不少人會和我同樣,在選擇本身將來的行業時,並無一個所謂的最喜歡的方向,於是便選擇了成爲大多數,向着大多數人所追求的計算機行業前進着。。。數據結構

談完了我爲何選擇計算機專業,再談談後面的問題。我在中學是一個地地道道的應試教育考生,每日沉迷高考,無時培養興趣,報志願時確實不知道本身將來喜歡從事什麼職業。可是,應試教育也培養了我紮實的數理基礎,語言表達,英語能力,學習能力等。相比於博客I做者的理科偏科,以及博客G主角的低文化水平,個人基礎能夠說比他們都好。有了這些文化基礎,其實不論從事什麼專業領域的學習,都可以很好的投入進去。因此當我選擇計算機專業後,我便踏踏實實的學習計算機專業的每一門專業課,力爭獲得好的課程成績。"只有無限投入,才知何爲熱愛。"逐漸地,兩年半的時間過去了,我已經瞭解了計算機這門學科,真正感覺到了博客I做者的那種癡迷與熱愛。架構

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

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

下文中,我只討論我所經歷的北航計算機學院的教育,其餘大學或其餘專業的教育模式可能不一樣,我也沒經歷過,因此不作討論。性能

首先,B文H文中都提到了大學教育的問題。B文指出,不少學生遵循高考模式來學習大學知識,只瞭解上課講的和考試考的,使得科班出身的計算機畢業生並無真正學懂計算機。而H文更強烈地指出,"中國大學教育就一個字,渣"。並以本身一個文科生靠自學編程從而超越衆多科班生實現自我價值來印證中國大學教育的失敗。學習

在我看來,H文的觀點過於偏激了,他並沒證實,若是本身接受過計算機科班教育並依然如他所述的努力會比他自學的結果差,因此並不能以他的我的努力否定計算機科班教育。而B文所言的道理是值得思考的,即如何讓大學生掌握大學的學習方式確實是當前中國高等教育面臨的挑戰。下面談談我對這個問題的理解。測試

  1. 爲何中國學生願意只掌握老師上課講的,考試考的知識。想獲得一個高的分數卻不肯意深究此科目更深層次的問題?優化

    有些人可能會怪罪到應試教育頭上,這當然是一個緣由。但我認爲更重要的緣由是中國學生沒有作好職業規劃。咱們做爲正在接受高等教育的成年人,實際上有能力判斷出上課老師講授的知識遠遠只是冰山一角(也許有些同窗真的不知道,good for them),而不肯意深刻研究的緣由正是由於咱們沒有明確的職業規劃。能夠深刻研究的知識浩如煙海,每個方向都足夠耗盡你短短的本科四年,因此要深刻研究哪個方向呢?

    依我看來,本科教育更像一個行業的科普教育,它能決定畢業者的行業知識下限。做爲本科生,咱們並不知道下限是什麼,這個下限正是由大學的培養方案制定者給出的,也是由各個科目的老師在課堂上的教授,期末的考試所體現的。因此,當一個本科生沒有足夠充分的職業規劃目標時,他只能選擇相信學校,學會老師所講授的知識點,考個好成績。這樣他才能保證至少知足行業要求,從此有資本選擇本身要走的職業方向。

  2. 既然學生渴望輸入式教育,爲何咱們的高校不作到100%輸入呢?

    100%的輸入換句話說能夠理解爲,讓學生在有限時間內得到更多的知識和能力提高。B文做者談到了本身聽清華教授講數據結構課受益不淺,NOQ三篇博文也介紹了世界一流大學的課程狀況和做業狀況。以上均可以理解爲老師讓學生在有限時間內得到更多的知識和能力提高。中國不少高校沒法作到這點的緣由是教育資源的不足

    隨着中國的發展,中國大學的本科教育實際上已是普及教育了,一個月3000塊錢僱不了一個農民工,只能僱個大學生。普及教育致使教育資源的不足,如師資力量匱乏,教學經費不足,教輔團隊水平低人員不足,課程設計差等等。舉個最簡單的例子,在美國上大學,一年要花30-50w,中國學費只有8000,宿舍費1000之內。你期望這些錢能買到多少教育資源呢?

    可是,能夠看出,中國頂尖學府的教育質量和教育資源正在快速提高,以北航計算機爲例,能夠看到某些學科的教育資源和教育質量已經有很大提高。如計算機組成原理課,我有幸經歷課程學習,並做爲教輔團隊的一員幫助下一屆的同窗學習了此課程。經過從14年到19年這6年的不斷改革與設計,以分Project的實驗爲載體,讓學生親自上機實踐,大部分學生都能經過一行行代碼實現一個五級流水全速轉發支持中斷異常與外設的高質量MIPS處理器。這種優質的課程設計使得學生在短期內學到了大量知識,提高了不少能力。其餘課程也都在逐漸提高教學質量,以良好的課程設計,提高學生的知識輸入。

  3. 既然教育資源有限,學校應該如何引導學生轉變學習方式呢?

    如上文分析,若是能讓學生有明確的職業規劃,就能夠解決這個問題了,學生知道本身未來要作什麼方向,就能夠根據方向選擇須要深刻學習的知識。例若有一些學長在經驗分享時指出,本身在大一入學就決定本科畢業就作開發工做,他就天然放棄了刷高學分,而把時間放在實習和作項目上,深刻研究開發所需的技術棧,最後找到了很好的工做。學校應當引導學生作好職業規劃,這樣才能充分發揮學生的主觀學習動力,朝着他的目標努力。

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

目前,個人代碼量大部分來源於各門課程大做業。數據結構大做業在500行,組成原理大概2000-3000行,面向對象一學期的做業大概累計5000行,編譯原理寫的編譯器大概5000-6000行,一些零散的小項目的代碼加起來大概2000-3000行。因此總共的代碼量加起來差很少有15000行(指代碼總量,有效代碼量可能不多不多)。

我目前作過的最複雜的項目應該是編譯原理課寫的類C文法編譯器,在這個項目中學到了不少東西。採用了C++語言,是我在看了C++ Primer書以後真正用C++寫的第一個稍大型項目。採用了面向對象思想設計架構,學着用git管理版本,熟悉使用VS集成開發環境。代碼的內容邏輯也比較複雜,尤爲是後期作編譯優化的階段,爲了實現inline和DAG圖優化,也經歷過很痛苦的熬夜debug過程。最終用5000-6000行代碼獨立實現了一個類C文法編譯器,包括詞法分析、語法分析、錯誤處理、符號表管理、中間代碼生成、代碼優化、目標代碼導出等功能步驟,並達到了較好的測試性能。

第三部分:將來規劃

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

個人夢想是經過技術達到自我實現,在IT的一個領域作一好項穩紮穩打的技術。2019年阿里巴巴首席架構師、阿里雲之父王堅當選中國工程院院士,在我讀了王堅帶領團隊開發阿里雲的事蹟以後,我深深被他那種對技術執着的追求所打動。我從心裏深處發覺,原來我也想成爲這樣一位不懈追求技術的人。

想要追求技術必定要終身學習,本科畢業以後我要讀研究生,掌握科學的研究方法。畢業以後爭取去到大企業的核心業務技術部門,先積累行業最頂尖的技術。再針對待改進的問題,敢於攻克最困難的部分,這樣才能真正經過技術達到自我實現。

固然,談這些都只是目前所想,將來實際的道路充滿了無限可能。當下仍是要作好眼前的工做的,在接下來一個學期的軟件工程課中,我期待着能學到更多的知識,提高更多的能力,我依然會盡心盡力的。Rush!!!

3、參考文獻

劉帥:在失望中尋找但願

我前妻的故事:一個北大青鳥出來的,如何從月薪800元到年薪40萬?

【野生程序員】:優先招聘

個人軟件開發生涯 (10年開發經驗總結和爆棧人生)

美國視界(1):第一流的本科教學課堂該是什麼樣?

分享下在美國讀研期間的一些計算機課程做業

軟件工程資料 - 優秀的大學怎麼教程序開發和軟件工程課

相關文章
相關標籤/搜索