軟件工程第0次做業

軟件工程第0次做業


項目 內容
這個做業屬於哪一個課程 2019春季計算機學院軟件工程(羅傑)(北京航空航天大學)
這個做業的要求在哪裏 [2019BUAA軟工助教]第0次我的做業
我在這個課程的目標是 學習軟件工程方法與相關工具,提高本身的工程能力,鍛鍊本身與他人協同開發以及開發較大項目的能力
這個做業在哪一個具體方面幫助我實現目標 在目標方面,本次做業讓我明確了自身的現狀和侷限,明確了我努力的方向

第一部分:結緣計算機

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

我最終跟隨計算機系學習經歷了一段很是曲折的過程。不一樣於博客中的各位博主,我雖然在高中時很是嚮往計算機專業,但並無付出什麼具體的行動,也沒有系統地在這個方向上努力學習,僅僅是喜歡「瞎搗鼓」本身的電腦(例如裝個Linux看看這類相對膚淺的搗鼓)。實際上我直到大一才正式系統地學習編程。而在高考時因爲發揮不太好,沒法直接選擇北航的計算機專業,一開始選擇了軟院,但最後陰差陽錯地落到了數學系。在數學系學習了半年後我又幸運地得到了進入高工的資格,但大一的我比較浮躁沒有好好珍惜當時的機會,從而到了大二選專業時成績又不夠直接選擇計算機方向。我真正清楚地感受到本身獨自站在了人生的岔路口上,由於選擇不一樣的專業會讓本身的將來徹底不一樣。彼時的我已經接觸了一些編程的知識,憑藉着本身心底仍然存留的對計算機的嚮往,憑藉着一種「認爲本身能夠遇上甚至超越其餘榮譽學生」的自信,最終我仍是退榮選擇了計算機專業。html

對於我的條件,相比那些大佬博主,如博客1中的輪子哥,在中學時期就能自學編程並完成上萬行的程序,我我的以前的積累能夠說幾乎爲零,並且我我的起初的自學積極性也不足。但在以一種爭強好勝以及證實本身的心態中學習了一年後,我發現本身雖然天賦不如一些大佬們,但憑藉本身的努力也能夠作的不錯,而且本身自學的能力也有所提高。前端

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

之前的我在幾乎不瞭解計算機的專業知識時,也仍是挺喜歡計算機這個領域的。一方面從小我對各類電子產品都有一種自然的好感,另外一方面高中便在知乎上了解到了計算機專業前景相對較好。雖然起初喜好的緣由很是功利,但在我真正接觸了計算機專業相關知識後,我對其的喜好能夠說是加深了。大一上學期參與的「大學計算機基礎」課程讓我完成了第一個能夠說是有各類功能的小程序,雖然如今看來很是簡單,但當時看着程序跑起來時仍是很是欣慰的。大二開始參與諸如計算機組成、操做系統還有OO這樣的硬核課程時,各類複雜的知識我也並未感受很枯燥。大二時我也真正開始接觸到了一些前沿的東西,如目前熱門的深度學習。我對這個領域的喜好隨着知識面廣度和深度逐步增大而增長,而且喜好的內容也更加細緻了。程序員

說到擅長,如今想一想起初我毅然決然要學計算機的時候仍是很莽的,由於僅憑大一寫的幾百行小程序就以爲本身可以承受住以後各類硬核的課程設計顯然不夠理性。大二時的計組實驗介紹課上,老師說每一年作到最後一關的人不多,我心底便暗暗想着本身必定要成爲這一小撮人裏的一個。無論通了多少宵,最終我仍是成功了,這件事也給了我極大的鼓舞。如今看來我雖然不能說天賦異稟,但憑藉本身的努力,我認爲本身仍是取得了一些進步的,也有了面對未來各類挑戰的底氣。算法

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

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

其實大學生活過了一多半了,大部分問題上我都沒有太多要吐槽的,一開始想說相比於不少高中同窗的大學生活來看,北航的課業壓力的確較大,但在閱讀了博客2中關於美國大學的課堂經歷後,我認爲北航的課業壓力還位於能夠接受的範圍內。惟一我想吐槽的事情多是所謂「選課決定論」,這是我和同窗一塊兒發明的一個詞,特指因爲選了一些給分廣泛較高/廣泛較低的課程而致使GPA增減的現象。在這一現象中,自身努力帶來的影響小於選課自己。例如某些課程老師給分廣泛較高,你們爲了本身的成績而爭相選擇;某些課程我很感興趣,但因爲從同窗那裏據說這個老師給分較低而最終沒有選擇。我理解一些老師但願你們都能取得好成績的好心,但這也對那些沒有選到課的同窗形成了一種不公平,而一些老師給分平均較低也對選課的同窗來講不夠公平。編程

我理想中的大學教育已經和我目前接受的大學教育較爲接近了,固然理想當中我但願學校可以給予更多選課上的自由權(適當寬鬆對外名額),以及可以少一些「水課」,多一些與時俱進的課程內容。在博客3當中我看到了國外的移動App開發課程,相比於我上學期學習的安卓開發課程而言,這個課程在平時所教授的內容更加充實,而且附帶了各類小練習。與此相比上學期的安卓開發課程僅僅是課堂上講了不少理論後就直接跨越到最後一步「自行選題開發一個App」,並且平時講述的不少內容有些過期,致使最後寫程序仍然僅能靠自學。我不否定自學的重要性,但開設課程的目的不就是帶領你們學習新的知識嗎?小程序

我看到了不少老師目前爲了提高教學效果而作出的諸多努力,他們其中一些也在努力地向國外那些先進的教學方式靠攏。我從心底裏敬佩這些爲學生着想的老師。可是我仍然以爲中國的大學全然作到像博客2中提到的美國課堂同樣仍有着很大的距離。這種距離是沒法僅靠課程自己改革就能彌補的。換句話說,我認爲中國教育與美國教育模式的不一樣更多地關係到兩國國情以及總體教育體系的差別。
博客2當中,我看到了這樣一句話後端

國內高等教育的問題,其實不止是模式、大學擴招的問題,更多仍是理念上的差距(父母、教育工做者、教輔人員、官員),並不會像經濟發展那樣容易遇上發達國家。數據結構

我很贊同這句話的觀點,老師、家長甚至是學生自身的觀念不一樣就會致使差別。從小學到高中咱們每一個人幾乎都擁有共同的目標,即考上好大學。老師家長經過各類方式督促着咱們像目標前進,從而學生自身的創造性和自覺性有所削弱。上了大學以後忽然沒有人「管」了,不少學生失去的督促的動力便會泄下力來,卻不知大學學習的專業知識才是未來最爲重要的(慚愧地說我本身也曾經懈怠了一段時間)。而爲了讓學生學習,學校不少狀況下不得不採用一些相似於高中的作法來督促你們,而且因爲學生習慣了被動接受知識,不少老師爲了省事也沒有考慮不少發揮學生主動性的地方。所以我認爲大學教育遇上國外的模式仍有很大的路要走,亦或者咱們能夠根據當前的國情再去探索新的模式,固然這些就是另外一個話題了。架構

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

粗略的算我寫的代碼應該有萬行以上了,雖然相比之下仍不算太多。我作過的最複雜的項目應當是今年寒假期間參與了清華大學一個學長帶領的知識圖譜項目,這也是我真正意義上第一次接觸多人協同開發。從前端到後端整個系統代碼量超過萬行,我也僅僅負責了其中部分功能的實現,大部分是前端功能。多人開發項目與獨立開發不一樣,不少時候要作一些必要的約定來約束你們開發,我也從中真正體會到了大二OO課上學習的諸多知識的用途。第一次參與大項目遇到了不少頭疼的狀況,例如因爲有人改變了接口而致使不少函數須要重構,以及功能之間出現衝突的狀況。不過整體來講這個項目給個人提高相比於普通的課程設計來講要大得多。機器學習

速成的培訓班和打基礎的大學教育還有mooc之間有區別嗎?

速成班和正經大學課程的區別我想是很明顯的,不管是從知乎上仍是各類博客經歷中,都能看出基礎課程不管是對寫代碼自己仍是對開發大的項目而言都有很是重要的意義。從博客5中做者對培訓班學生的評價就能夠看出,培訓班每每爲了速成,即便連一些很基本的代碼規範和編程思想都不會贅述,也就不能讓學員養成良好的習慣。

我更想討論一下大學教育和MOOC之間的區別,由於這二者我均有所接觸。我想先敘述一下我和MOOC的幾回接觸。在我正式開始大二計算機的專業課學習前,很差意思地講我只會Python一門語言,並且因爲一個學期沒寫代碼而幾乎忘的差很少了,而其餘最基礎的計算機專業知識如數據結構則幾乎沒有概念。爲了可以跟上課程,我在大二前的暑假中學習了浙大開設的C語言和數據結構兩門MOOC,而且跟着課程要求完成了不少練習。在學習以後我認爲MOOC對於速成一門課來講的確頗有用,起碼開學以後個人C語言水平足夠應付課程了,大二高工雖然也開設了數據結構課程但我因爲以前學過,再學起來也更加輕鬆。隨後我爲了拓寬知識面也嘗試了一些國外的MOOC,如Coursera上吳恩達講授的機器學習課。

雖然說看MOOC視頻速度很快,有時嫌老師語速慢我甚至會開1.5倍速看課程,也會作課後習題,但MOOC課程的效果仍然比不上真正的大學課程,或者說MOOC僅僅適用於速成/啓蒙,但不夠深刻。我在上學期學習了學校開設的機器學習導論後感覺到了MOOC和實際課程的差距。通常的MOOC爲了擴大學習羣體,每每會下降課程自己的難度,例如吳恩達的機器學習課程中省略了不少數學推導。而實際應用中每每這些被省略的東西纔是最重要的。因此我認爲MOOC的做用僅限於速成一門課中的知識,但知識的深度每每不如學校裏的課程。

第三部分:將來規劃

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

我很贊成博客6中做者的一句話,即「作規劃時最重要的是兩個方面:一是清楚地認識本身的能力、優點和性格;二是肯定本身的專業和想從事的行業」。一方面,在計算機專業學習了一段時間後,我對各方向的興趣有了區別。以往我對深度學習方面很是嚮往,但在學習了一些機器學習還有CV方面的課程後我以爲這方面和我想象當中有些差距。反卻是在接觸了系統方面的一些知識後我感受比較符合我的的胃口。另外一方面,在上過一些課程、作過一些小項目後,我發現本身在工程方面的能力強於作純算法或者模型方面的能力,這也是爲何我對目前的機器學習失去了部分興趣,由於認識到自身可能真的不適合。可是本科階段我積累的相關知識和經驗還不夠找到一份我心儀的工做,所以我仍然打算進入實驗室準備讀研。在研究生畢業後我但願可以從事基礎架構或者中間件方面的開發工做,而且但願可以在技術崗位上多堅持一段時間。固然在不斷學習技術的同時我也計劃學習一些管理和金融方面的技能,爲未來向管理層轉型作準備,畢竟現實地講互聯網公司里老程序員的生存境況不容樂觀。

大家立刻就要面臨實習了,你打算在企業內實習仍是在實驗室實習?

其實我自己很嚮往企業實習,但已經計劃讀研的我目前仍是打算在實驗室中實習,而且等本身有了一些深度的積累後再去企業實習。一方面實驗室實習對於保研很重要,另外一方面我認爲本身目前的知識與技術水平不夠進入大企業的核心團隊實習。去小團隊搬磚的確也能夠增長很多經驗,但對於目前的我來講性價比不如在實驗室中實習。
說到這裏,我對博客6中的部分觀點不太認同,我認爲這個觀點因爲時代的變化須要被修訂了。博客中的主人公認爲

在大學的時候儘可能多地進入公司參與實際工做,一方面積累工做經驗,另外一方面,提早認識工做和本身,以便畢業時更準確地把握本身的方向。

這篇博客的發佈時間是2007年,按文中時間推算主人公在1997年已經進入計算機行業工做了。一方面,國內當時的計算機行業正處於快速變革與發展中,編程仍是一門屬於少數人的手藝;另外一方面,當時研究生在國內還很稀少,本科生學歷仍是競爭力很強的時代。但對於如今來講,我身邊甚至小學生都開始學習編程了,而周邊的同窗甚至非計算機系的同窗均可以熟練地寫代碼。此時除非是大佬,通常人找實習每每找不到那些真正可以帶給本身提高的崗位或公司。除此以外不少須要較深知識背景的崗位如目前各類「算法崗」都須要以研究生學歷爲基礎。從而我以爲這句話在當前環境下不能說徹底適用了。我認爲若是想在目前的大環境下向各領域高層次進發,仍是須要在一些實力較強的學校或研究所中深造的;若是想從事開發方面的工做,那麼在大公司中參與的項目的確要優於不少實驗室中的小項目。

相關文章
相關標籤/搜索