天天看點

軟工熱身作業

軟工熱身作業

項目 内容
這個作業屬于那個課程 2020春季計算機許願軟體工程(羅傑、任健)
這個作業的要求在哪裡 第1次個人作業
我在這個課程的目标是 創造“足夠好”的軟體
這個作業在哪個具體方面幫助我實作目标 幫助我總結自己的經驗和不足并明确對未來的規劃

結緣計算機

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

對于我來說,在進入計算機專業之前,進行了兩次選擇,第一次是選擇進入北航的資訊類工科試驗班,第二次則是在大二分專業的時候選擇進入計算機專業進行學習。

在我聯考那年,計算機領域發生了一件非常出圈的大事,就是AlphaGo的出現。在此之前,我僅僅是聽說過“人工智能”這些概念,并不清楚它究竟能夠做什麼。是以,當我聽說AI打敗了世界一流高手,而且是在我一直覺得特别複雜的圍棋這方面時,我是很震撼的。而且當時突然興起的VR、AR等技術,讓我覺得以前隻有在影片中才能看到的那些畫面都有了成為現實的可能。我由此也對計算機方面産生了非常濃厚的興趣。再加上當時的分數段并沒有合适的符合我當時的第一志願經濟類的學校,我便決定進入北航的資訊類工科試驗班進行學習。

在大一一年的學習中,我接觸了很多以前沒有接觸過的東西。從C語言到資料結構,從看見自己編寫的第一個小程式成功運作時的喜悅,到後來debug de到頭秃後終于解決問題的成就感,我也慢慢發現了自己對于程式設計這方面的興趣。大一上學期開設的計算機導論與倫理學,也介紹了許多我沒有聽說過的計算機領域的發展方向,讓我了解了很多計算機專業的知識。

雖然的目标是計算機專業,但是到了真正選擇專業的時候,我也猶豫過。由于當時自己的成績并不是很好,很擔心能否順利進入計算機學院,或者進入之後會不會跟不上學習進度。但是仔細考慮後還是決定遵循自己的初心,去接受這份挑戰,我也很幸運地搭上了計算機學院的末班車,順利地進入了自己心儀的專業進行學習。

在進入大學進行學習之前,我對計算機方面的了解頗為匮乏,對計算機的使用也僅僅局限在處理一些文檔,玩玩遊戲這些方面。跟同屆的同學比,我的基礎應該是處在下遊的。在大佬們在專業知識方面侃侃而談的時候,我還在摸索着怎麼把一個 Hello,world 程式跑通。跟部落格I的部落客比,更是相去甚遠,既不像他起步那麼早,在摸索和實踐中積累了豐富的經驗和知識,也沒有他那樣的對于計算機的激情和熱忱。

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

喜歡是肯定喜歡的,在前文中我也提到了自己對于計算機領域的喜愛之情,我到現在依然覺得能夠用AI打敗世界一流圍棋高手是一件很酷的事情,那可是圍棋啊,小時候看的《圍棋少年》裡的那種圍棋啊。但是說到擅長,很慚愧,在大學裡學習了三年,我依然不能說這是我所擅長的領域,了。前路漫漫,任重道遠,在這個領域的我,還是需要更多的努力,才能讓自己在這個領域稱得上是擅長。

你熱愛這一專業嗎?你對計算機的熱愛是怎樣的的?僅僅是口頭上的嗎?

我不敢說我對于計算機的那一份喜歡可以稱得上是熱愛,由其是在看過了很多真正熱愛計算機的大佬的經曆之後。部落格I中的一個小故事給我的觸動很深:

一個周末,我們幾個熱衷學習程式設計的在學校留宿的同學,跟平時一樣,到電腦老師的房子用他的機器,因為周末的時候電腦室不開,而且電腦老師也樂意于讓我們學習電腦。但那個周末老師不在家,而我們習慣了每個周末都用他的電腦,大家又沒有鑰匙,碰巧另外一個老師經過,說:"break in啊",當時就震驚。然後大家都說:你看,這老師都讓我們闖進去了,那就闖呗。最後,我們爬窗進去了。當晚大家的确研究了不少東西。我們還在老師的房子裡面開小竈,弄了一鍋粥,吃得挺開心的。大家累了倒頭便睡。第二天早上,老師開門看見我們和變樣了的房子,“責罵”了我們一頓,他其實也沒有什麼的,呵呵。不過我們之後都沒有在未曾得到老師的同意之前“入侵”他的房子了。

我覺得隻有像這樣想方設法地去解決問題并且樂在其中的人,才可以稱得上是真正的熱愛吧。

在計算機系裡學習

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

總體上來說,我對于在北航計算機學院的學習經曆是滿意的。從計算機組成、作業系統、編譯技術,到資料結構、面向對象、算法設計與分析,學校在硬體和軟體方面都對我們進行了非常系統化的教育訓練。

在大學課程的教學方面,我能感覺的到許多課程都在探索更科學、更系統化的教學方法,也在積極地去學習國外的教學方式。在部落格O中,作者介紹了一些他在美國讀研期間的課程的作業,我感覺和我們現在許多課程的作業的模式相似度還是很高的,比如分組進行作業,分階段檢查成果,甚至在通過git送出作業這些方面,我們的許多課程也是這麼安排的。但是,我覺得我們也有一些需要注意的地方,畢竟中國和美國的基礎教育還是存在很大的差别的。我們中的很多人并不是像美國孩子那樣,在高中甚至更早之前,就經曆過這種模式的學習活動了。而我們的基礎教育還是以應試教育為主的。是以,如何幫助學生實作這個過渡,也是我們的學校應該去思考的問題。

我理想中的大學教育就像部落格P中說的那樣,是一種健身教練/健身學員的關系。每個來健身的人,都是想健身才來的。而每個人的基礎不一樣,目标不一樣,健身教練給出的健身計劃也不一樣。在完成健身後,學員根據自身情況給出回報,教練根據回報确定下一階段的計劃。具體的描述在文章中說的已經非常清楚了,在這裡我就不再贅述了。

至于和國外學校的比較,在計算機領域的發展方面,國外目前還是領先的。而一個學校在一個領域的發展情況,在很大程度上也就決定了它能夠提供給學生的教學資源的天花闆。從這一點上來說,我們和國外的學校肯定是和國外有差别的。而具體到老師個人的教學上,我也覺得不太能做到像國外那樣。像部落格Q中提到的部落客在UCSD的課堂的經曆中說的:

一般上來他就講他工作時的一些故事,講他身邊的奇葩工程師,特别二逼的manager,特别照顧他的mentor等等,然後就開始講Head First Design Pattern,用了三周時間過完了一本書,有用了兩周時間過完了Head First Software Development,上課基本沒有講義,直接維基百科,無比飄逸。

事實上我也遇到過老師在課堂上分享自己的工作經曆,花大段時間說一些自己工作研究中的趣事的,但是我身邊的一些人,包括我自己,就會開始吐槽他講課水,沒營養,沒幹貨。總之就是衆口難調吧,我也覺得沒有必要去特意學習國外老師的授課方式,每個老師都有自己獨特的授課方式,而且學校也給了我們機會去選擇自己喜歡的老師,雖然很多時候都抽不中吧。

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

迄今為止寫的代碼量沒有具體的統計過,上萬行應該是有了,但是大部分都是重複造輪子,品質也參差不齊。

我做的最複雜的作業應該就是上學期的編譯技術課程設計了吧,需要從最基礎的部分做起,一點點的搭建一個自己的小編譯器,然後自己測試可靠性等。

科班出身和北大青鳥有什麼差別?俗稱的教育訓練班和打基礎的大學教育還有mooc之間有差別嗎?

這兩個問題我覺得可以放在一起來說。科班出身跟其它的肯定還是要有差別的。部落格G的部落客描述了他見過的很多教育訓練班出來的學生:

1.求職履歷都寫的完全一樣;

2.缺乏自學能力;

3.不懂得任何良好的編碼習慣、調試、調優技巧;

4.很多老師和教育訓練機構為了追求就業率,傳授各種履歷面試技巧,甚至不惜幫助學生作弊;

5.因為無知而狂妄。

我覺得科班出身的人比其它的多的就應該是自學的能力和獨立思考的能力,以及許多良好的習慣和技巧等。當然,我并不是覺得跟其它的人相比有什麼優越感,我們擁有這些是因為教育資源和教育方式的不同,也因如此,我們更應該去積極地利用我們所能接觸到的教育資源去充實自己。

學線性代數和機率論的時候,你是否有過這樣的疑問“我們為什麼要學這麼多數學,這和我們的計算機有關系嗎”,你現在是否還有這樣的疑問?對這個問題,你有自己的解答了嗎?那麼其他學科呢?

說實話,我确實有這樣的疑問,而且我不止有這樣的疑問,我還确确實實地去做了(捂臉),當然後果也很嚴重,現在寫程式的時候,都需要用到之前學到的數學知識,比如線性代數中關于矩陣的知識,而且對gpa影響也挺大的。其他學科我覺得也是一樣的,計算機專業日後的發展方向一定是和許多學科有交叉的,需要用到很多專業的專業知識,現在多學一點總不是壞事。

未來規劃

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

對于未來的工作,其實有很多的想法,希望進入一家自己喜歡的企業,幫助自己喜歡并且一直在用的軟體和它的公司變得更好吧。我覺得相比于薪水和福利,從事一份自己喜歡的工作,在自己喜歡地方工作更加重要,對于我來說,這樣才能讓我自己充分地發揮出自己的積極性和創造力。

目前的注意力還是主要集中在考研這方面,一是覺得自己在之前大學學習中浪費了太多的時間,需要學習的知識和技能還有很多沒有掌握,需要再鞏固完善一下自己的知識體系,二是覺得大學的教育很多都是比較基礎的,而自己也沒有去學習一些額外的知識,是以對于前沿科技涉及得很少,希望去接觸一下最前沿的那些領域,這樣自己以後步入社會從事工作的時候能夠更好地去應對。

至于畢業之後的事情,目前還沒有什麼具體的考慮,像騎單車的故事裡描述的那樣:

爸爸教兒子騎單車,兒子總也學不會。爸爸看出了問題所在,于是在再一次示範後讓兒子看身後彎彎曲曲的車輪印,并語重心長地說:我兒,雖然你看見别人騎車時車頭很直,但那也是因為他在時刻調整方向,才能順利前進啊!

人生本來就是曲曲折折不斷調整着方向前進的,可能等我過幾年,心智更加成熟,經曆更加豐富的時候,會有其它的選擇吧。

參考文獻

部落格A:辜新星:時刻調整方向 找到人生的藍海

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

部落格I:我的軟體開發生涯 (10年開發經驗總結和爆棧人生)

部落格O:分享下在美國讀研期間的一些計算機課程作業

部落格P:現代軟體工程講義 0 教學方法

部落格Q:軟體工程資料 - 優秀的大學怎麼教程式開發和軟體工程課