天天看點

軟工-熱身閱讀作業

關于作業要求

問題 内容
這個作業屬于哪個課程 2021春季軟體工程(羅傑 任健)
這個作業的要求在哪裡 2021軟工—熱身閱讀作業
我在這個課程的目标是 提高個人開發水準以及團隊合作意識
這個作業在哪個具體方面幫助我實作目标

通過多種形式的作業内容全面提升開發能力;

通過結對以及團隊合作方式提升團隊合作意識;

通過部落格及文檔撰寫幫助思考未來方向

引言:關于為何要來上課并認真參與

關于這一題的回答我認為結果要因人而異,對于一些翹課去做更有意義或者更重要的同學來說不上課可能會把這段時間用的更有價值一些,但是我覺得可能大多數同學在大學階段并沒有比上課更加重要緊急的事需要處理。

不上課或者上課時做其他事無非就是認為課程與自己未來方向無關或者單純認為授課老師或者課程本身比較“渣”。但我想大學教育畢竟也是經過了多年的疊代和考驗,現在的“無用”可能就是将來的“有用”。

  • 就前一方面來說,專業素養固然重要,但适當全面提升自己的能力可能會讓我們未來的路走得更寬一些。既然是通識教育就要将學校的利用價值最大化,多聽多看總比閉門造車強,而且多數時候造的可能并不是車。
  • 就後一方面來說,我很同意Scalers的觀點。退一萬步講,即使這門課很“爛”,自己也能不帶情緒地将其學到自己能力範圍内的最好,那麼将來在任何地方,自己也能成長的很快。誰又能保證自己未來的工作環境以及合作對象永遠如意呢?

如果往上看有差距我們有時也可以往下看看,無論怎麼說這門專業的教學品質也算得上國内的較高水準,如果我們對于這樣的學校抱有過多不切實際的幻想,最終會發現什麼都不會發生,最重要的還是應該改變自己的思維方式。

第一部分:結緣計算機

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

    雖然題目問的是為什麼選擇計算機專業,但這裡為了讓我的叙述更加完整些,就稍微偏下題從為什麼選擇北航開始吧...

    就個人來說,我對于來北航以及計算機專業的結果都是很多機緣巧合的産物。這并非學校或者其他原因,完全是自己的性格讓我的人生在大二之前都一直是被客觀因素裹挾着前進。在聯考之前因為一名之差失去了國内某大學的降分優惠,在聯考中又考了一個非常“雞肋”的分數,後來由于計算機學習的熱潮以及個人的選擇限制,我填報了北航的資訊大類,最終以僅高一分的成績險入北航。但是現在來看,當初自己對于資訊大類除了往年錄取分數其他一概不知的情況下就直接填報的做法實在是有些草率。經過快三年的學習,我漸漸意識到,很多時候選擇往往比努力要更重要。

    高中時期我引以為豪的“不偏科”讓我習慣了對任何課程都付出平等的精力和時間,這也間接導緻了我在大一一年的大類培養中完全沒有培養出對任何一門小專業的特殊興趣,于是看着北航計算機A類的學科排名,隐約覺得将來廣闊的就業空間以及對計算機技術有着的一丁點好奇,我帶着勉強湊合的分數跌跌撞撞塞進了計算機專業。

    就自身條件來說,

    • 如果隻是和小範圍的同等級同學來比,我對于計算機技術零基礎,剛開始對于程式設計缺乏自學的概念和鑽研的精神,而我又屬于對新知識接受速度較慢的那類人,在學習程式設計和資料結構時可以說是舉步維艱,基礎屬實不算好。
    • 和舉例的部落客相比,我的基礎反倒顯得空白了很多。部落格G中作者的前妻雖然不是科班出身,但從經曆來看已經具備了一定的實踐能力,如果當初給予她專業的培養,可能現在的結果又會大不相同;部落格I的作者在國中時期就對計算機有了較多的了解,這也是我的環境無法達到的,但是他文中提到的對于做開發最重要的兩個能力我是很贊同的,包括學習能力和交流能力。還有很多部落格我雖然進行了一一浏覽,但是由于所處的環境和對問題的認識有一定差别,我隻是停留在看客的階段,并沒有産生共情。我不認為這些部落客的選擇有什麼是非對錯之分,尤其看到部落格F的作者經曆後,我覺得他一路走來真的很辛苦,也走了不少彎路,但有的時候缺少自悟能力或者說缺少引路人的就業之路可能就是這樣,這也是坐在大學課堂上接受着專業計算機教育的我們永遠無法體會到的。
  • 計算機是你喜歡的領域嗎?是你擅長的領域嗎?

    計算機算是我現在比較感興趣的領域吧,畢竟我自己也說不上來什麼程度算是“喜歡”。雖然學習的過程有些困難,但是也在努力适應新的思維方式,好歹也堅持到現在。就目前來看,計算機領域仍然是社會發展的主要推動力之一,相信如果在未來能夠将所學真正與實際應用相聯系,我的感受可能會更深一些。

    關于第二個問題,首先計算機領域實在過于龐大,其次計算機領域相關從業者也都總是處在一個不斷學習的狀态。現在作為學生的我還隻是停留在相關基礎課程的學習,擅長根本無從談起,但将來在選擇更加細分的方向時,我也會盡己所能地努力學習。

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

    關于“熱愛”我認為與上文中的“喜歡”并無二意,這是需要時間的考驗和持久的努力的。所謂“乍見之歡不如久處不厭,久處不厭莫若相見如初”可能是最理想的一種相處模式。就像部落格R的作者提到的那樣,熱愛不應輕許,也不是炫耀的資本,而是應當落實在具體行動中,展現在對計算機專業知識的每一份渴求中的。

    曾經我覺得無論熱愛什麼都應當有強大的内在自我驅動力和對事物本身的高度興趣,但後來我發現熱愛是可以被培養的,就像習慣一樣,人對于投入了很多并且有一定産出的東西自然而然就會覺得喜歡了。對于部落格中的一些勵志人物我也充滿敬佩,他們中的有些人學習計算機的出發點并不是熱愛,可能隻是為了生存的需要或者追随所謂的潮流,但這又如何呢?隻要他們在某個階段願意主動為此傾注大量的時間和精力,說其熱愛又何嘗不可呢?

    對于個人而言,通過短短兩年半的專業學習我對于計算機可以說有了初步的了解,也做了不少投入,即使談不上熱愛至少也做到了與這門專業和解吧。由于多種因素的原因我現在也僅僅能做到踏實進行課程的學習,偶爾也會在實驗室了解一些專業前沿領域的知識,最重要的是從當初的被動學習漸漸轉變為主動去做,也算是一步步向目标靠近吧。

在計算機系裡學習

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

    關于大學生活的槽點首先是好像跟我過去的想象有些不太一樣,倒像是進階版的高中生活,當然這也與北航的工科氛圍和我選擇的專業有着密切關系,這些對我來說适應了倒也是無關緊要。但是有些課程的設定的确還有一些改進的空間。
    • 首先是有的課程理論與實踐分離得有點嚴重,甚至完全是兩碼事。即使“自學”應當是當代大學生自覺培養的重要素質,但這樣形式的自學是不是就失去了開設該課程的意義了呢?而且最終的評價與課程所學好像并沒有太大關聯,有的展示甚至把幾種完全不相關的功能糅合在一起表現功能的複雜性,有點刻意為之的感覺...
    • 其次是有些關于大作業是結課論文的課程。本來應該是闡述清楚即可的課程論文因為大家都交幾千字是以自己也被裹挾着廢話了幾千字,自己的寫作水準也并沒有提高,不僅浪費了時間還增大了個人的壓力和焦慮的心情。
    • 當然就部落格H中對大學的批判來說我并不完全認同,雖然當今國内的大學教育還有很多值得商榷之處,但是僅僅因為社會對非科班程式員所謂的“歧視”就全盤否定大學教育顯然有點意氣用事了。
    我隻上過這一次大學,并沒有什麼可比性,但在部落格B的作者的叙述中我又好像看到了理想的大學教育:
我清晰地記得他在工業工程系課堂上講“棧”的時候,用計算幾何中的Convex Hull(計算幾何中求凸包的算法,由美國ACM大牛Graham發明,該算法通過nlogn複雜度求出平面中一堆點的最外層包圍矩形邊界)來顯示棧的使用。這個算法在A4紙上寫說明最少也要兩頁,加上裡面具體的技術,個人覺得可以給3個小時的時間來考查一個訓練有素的程式員是否合格。而朱老師在1.5小時的時間裡,一邊講,一邊寫,用最優雅的方式,完整地實作了這個算法,寫完程式,一個編譯錯誤也沒有,成功運作,随機的點,優雅的邊界,當時全班鼓掌兩分鐘。

這種對老師教學方式的要求其實可能隻是我個人的一種理想,大學也不可能也不适合讓每個老師都改成實時示範互動的方式授課。但是如果一些軟體實踐課老師老師少用一些“PPT”式輸入,多用相關軟體實時示範,哪怕隻是展示很簡單的結果都可能讓課程效果改善很多。不僅可以提高學生上課的興趣,也可以增加師生互動,這種授課方式其實适用于很多課程,包括數學模組化、資料結構等等。

就現實來說,學校的資源其實不少,而且計算機領域相關技術的學習如果隻是單純想提升個人能力的話真的可以說是随手可得。我認為本專業理想的大學教育主要包括老師充分的準備,師生間友好的互動,課後及時的回報以及督促大家培養自我限制和自我學習的能力。關于課後回報方面我認為現在大多數課程的考核方式可能要麼是考試,要麼是大作業,最後都是以課程結束後老師給個綜合評價分數收場,可能也會有課程中途會布置一些小作業,但老師的評價和指導都有些欠缺,如果能将課程細分,老師或者助教能夠階段性親自參與學生課程實踐并提供一些有效的指導,相信不管是最後的作品還是學生的體驗與收獲都會大大提升。

關于我的老師和學校能否能做到和國外一樣,我覺得這并沒有什麼可比性。中國的國情讓實施小班精英化教育成為不可能,隻能選擇目前這種盡量公平合理的教育方式。再者雖然科學無國界但科學家也是有國籍的,老師和學校都處于國内的環境,也都有很多各自的壓力,要做到和國外一樣是沒有意義也是不可能的,隻能說希望老師在能力範圍内多培養學生的自我學習能力,讓大家知道如何進行自我提升,讓學生除了技術之外的其他素質包括溝通交往能力等等都有所進步。但是話又說回來,在目前環境下,有些事為了公平原則還是應該由學生保持主動性,多聽多問,我很喜歡部落格N的作者對于美國教育評價的最後一句話:

學生的學業壓力普遍是很大的,開學伊始(除了沒課的周末)就得一直處在用功狀态當中,自我管理能力也很強,其得到的教師或助教的指導也是很多的。但是他們并不是以而成為學習的奴隸,而是追求着綜合素質的全面提高。學校所有的努力都旨在于培養未來世界所需要的人才,為自己負責的終生學習者。
  • 迄今為止,你寫了多少代碼,描述你做的最複雜的軟體項目/作業。(必答)

    就目前來說,我寫的代碼主要來自于各種課程設計的作業,程式設計和資料結構可能有兩千行左右,計算機組成大約兩千行,面向對象大約三千行,編譯原理三千五百行左右,資料庫項目可能有零星的一千行,再加上其他一些零散的實驗總共大約有一萬五千行。

    做過最複雜的項目可能就是編譯原理的大作業了,主要完成的就是一個類C編譯器,使用的是遞歸下降分析法,雖然最後的優化并沒有全部完成,但從中還是學習了一些C++面向對象的思想和一些基本庫的使用。

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

    • 科班出生和北大青鳥除了先天環境的客觀差別更重要的是思維方式的不同。雖然我并不贊同“科班出生的起點就是北大青鳥的終點”等類似激烈的言論,但是系統循環漸進式的學習與突擊學習對人影響的深度是大不相同的。就像同學A每節課都認真聽講并消化了老師上課的所有知識點與同學B考前突擊幾天通宵複習,即使取得了差不多的分數,A對于課程的了解深度和記憶時間應該是B無法比較的,如果北大青鳥短期的教育訓練能夠達到科班幾年甚至十幾年積累的效果,我們又為什麼要寒窗十年來北航學習計算機呢?
    • 同上文一樣,如果想走得快,在教育訓練班速成并找到對口的工作也不失為一個好選擇,但如果想要走得遠,至少對于大部分人來說,大學教育是必不可少的。這并不是說我們在大學能夠學到什麼特殊的技術,而是我們能和更多優秀的人一起交流經驗,培養自己一種專業化的思維模式,而這種思維對于我們将來在工作崗位或者人生道路上遇到困難和問題時都是至關重要的。mooc雖然是網課,也算是大學教育的一部分吧,但是由于缺少師生互動以及實踐,教學效果大打折扣,是以僅可以将其作為教學的輔助工具。
  • 學線性代數和機率論的時候,你是否有過這樣的疑問“我們為什麼要學這麼多數學,這和我們的計算機有關系嗎”,你現在是否還有這樣的疑問?對這個問題,你有自己的解答了嗎?那麼其他學科呢?

    學線性代數和機率論時我并沒有為什麼的疑問,倒是學大學實體的時候有過這樣的疑問,雖然這個疑問到現在也沒有解開,就姑且當作培養自己的理科思維吧......

    數學可以說是計算機科學的根基,之前雖然學了線性代數和機率論,覺得可能和計算機科學有一定的聯系,但因為學習的不夠深入是以也沒有細究。現在看來線性代數中的矩陣運算和機率論中的貝葉斯理論可以說是機器學習的核心。同時,數學素養的形成過程也可以說是邏輯思維的建立過程,這無論是對計算機領域還是其他科學領域的相關從業者來說都是極其重要的。

未來規劃

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

    就短期來看,我個人更傾向于先在國内深造,提升自己的專業技術水準,雖然大學出去工作可能也不會太差,在企業中也會成長得較快,但是一旦進入職場自己能夠系統學習的時間就會大大減少,還是希望能在學校中多吸收些知識,為自己之後的工作多一些底氣;

    就長期來看,我可能不會從事前沿領域的研究型工作,而是更希望将技術轉化成實在的應用,這也是讓我堅持到現在的動力。

    關于三種道路的規劃:技術道路在前期基礎階段肯定都需要兼顧,在後期确定了自己更細緻的研究方向後再進行專攻;職業道路大體上就先定為網絡工程師吧,至于是開發、測試或者算法再看個人發展情況;社會道路上至少做到能夠無愧于心吧。

  • 你對于實作自己的夢想已經做了或者計劃做什麼樣的準備?

    在大二時在實驗室做了一個關于NLP的馮如杯,感覺對其有了一些淺顯的了解,現在在校内的一個實驗室參與了一個資訊抽取項目,也算是為未來的深造做一些準備吧。
  • 你們馬上就要面臨實習了,你打算在企業内實習還是在實驗室實習?

    答案同上,我個人打算在實驗室實習,畢竟畢業後還想走國内深造這條道路。
  • 實習經驗究竟有多重要?是否需要馬上開始積累實習經驗?

    實習經驗對于計算機類從業者應該是非常重要的,理論應該與實際相結合才能真正有所作用。雖然學校的專業課程也會有些課程設計,但是對于學生完整工程能力的培養還有所欠缺,這在實習中就可以得到鍛煉。對于大三的同學來說,大學階段專業的學習已經接近尾聲,馬上就要面臨保研、考研、出國以及直接工作等等選擇,但無論是哪種選擇實習都可以當作自己作為學生和即将進入職業的過渡期,既可以與一些比自己層次更高的人讨論問題,請教經驗,也會有較大的容錯性,是以現在積累實習經驗可以說是比較合适的時期。

參考部落格

1、劉帥:在失望中尋找希望

2、.net程式員工作兩年總結

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

4、 【野生程式員】:優先招聘

5、我的軟體開發生涯 (10年開發經驗總結和爆棧人生)

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

7、不要輕易在履歷上寫我熱愛程式設計,我熱愛學習