軟件工程-個人閱讀作業 #1


項目 內容
這個作業屬於哪個課程 2021春季軟件工程(羅傑 任健)
這個作業的要求在哪里 個人閱讀作業#1
我在這個課程的目標是 掌握並實踐利用軟件工程方法構建大規模高質量應用的技術,提升自身工程能力
這個作業在哪個具體方面幫助我實現目標 了解行業及個人,明確未來規划,更好地在計算機領域內進行學習

Part 1: 結緣計算機

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

其實從小學開始,我就覺得計算機很神秘,想要去了解它。家里的第一台電腦是2006年安裝的,應該也是國內較早連通網絡的。至於用途,當然是打游戲居多。至今仍然記得頂着56Kbps的網速下載游戲的煎熬(溜)。后來慢慢接觸到了Cheat Engine這個軟件,一開始跟着他的教程改數值,盡管不明白原理但還是能用,后來進入到匯編的修改,就完全搞不懂了。當時覺得非常神奇,只是改了幾個英文字母,就能有這樣的結果。也許是當時看到了電視里的“黑客”,也想要那種敲幾行代碼就實現一切的感覺(笑),於是開始真正想要了解計算機的原理,想要進入計算機系。上了高中斷斷續續看了一點很淺的C語言(拖延症實錘),看計算機根據我的指示完成不同的任務確實是件非常有成就感的事。

再往后就是大學的學習了。因為我校大類招生,在大一結束時要進行專業分流,而計算機系是大熱門,基本上最前面的所有人都會選,因此大一的時候我更多的是在“恰分”,生怕無法進入計算機學院。最后算是以一個相對中間的名次進入了計算機學院。

相比博客I的博主,我相信很多人不太可能在中學階段擁有比他更好的條件了,而我也不例外。相對應的,作為計算機系學生,在進入大學后,我們的條件是遠遠好於博主的。而且如今學習資源的獲取也比早年容易更多,因此我認為我的學習條件是相當好的。

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

計算機確實是我喜歡的領域。這種話換在大一,我是斷然不敢說的。但是,經歷過幾門專業課的洗禮,在經歷過挫折和困難后,我仍然覺得計算機很有趣想要學習,這應該可以作為喜歡的依據。至於擅長,相比於自己的其他技能,在經歷的多年的學習后,自然是要更擅長一點的。

Part 2: 在計算機系里學習

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

大學生活想吐槽的地方確實有不少,但是細細想來,其中一大部分還是個人的努力可以解決的,而我沒有去做。我個人怨念最深的其實是學校的大類招生,讓我大一一年的時間大部分心思都放在了如何得分而不是如何學會上;而大類的一年也導致專業課內容的壓縮和時間的緊張。我個人是有點迷信“黑書”的,因此經常能感覺到專業課內容偏少,但是自己去看書時間也很有限。當然,正如博客D中所說,學習主要還是得靠自己,我個人的原因還是占大部分的。但我總忍不住去想,如果能稍微多一點時間的話,會不會更好。

我理想中的大學教育其實要求並不多,主要是高質量的教學和良好的人文關懷。當然,在龐大的人數下,想要做到和博客N中作者所述的國外高校那樣對每個學生的關照顯然不太可能。然而,即使在教學質量上,我認為還是不能讓人滿意。盡管Scalers:大學生上課為什么一定要認真聽講?這篇文章中提到,老師的整體水平還是優於學生,且課程有用無用不是一個大學生的格局能判定的。但是,教學質量的標准在於老師的水平有多高,而是學生能接收到多少。作為學生,我們可能無法評判一個老師整體水平的高低,但是對於自己聽講效果的評判還是可以做到的。在這種由於各種原因導致的聽講效果差的情況下,我覺得與其強迫自己去聽,不如開始自學,特別是我們計算機專業,有很多經典書籍一步一步引導我們的思維。當然,大多數情況下,老師是會認真准備的,認真聽講一定會有收獲。

很難做到良好的人文關懷,原因是人口基數大,學校自然難以顧及每一個人(當然,我也不認為學校在其能力范圍內做得很好,這就是另一說了,也許校領導會有什么別的理由吧);而教學質量方面,我還是認為,老師的准備很重要。老師們也有科研等任務要做,本科生教學只是附帶,是否用心准備就要看老師了。事實上,除了幾門專業課,大部分課我都感覺總是不那么“酣暢淋漓,圓潤如意”,聽的過程會比較費勁。相比之下,反而是疫情原因在線上學習的,全體課程組共同制作的網課體驗最好。

2.2 迄今為止,你寫了多少代碼,描述你做的最復雜的軟件項目/作業。(必答)

項目 語言 代碼量 說明
程序設計基礎和數據結構 C/C++ 4000行 大部分是60行以內的小片段,還有一個300行左右的大作業
計算機組成原理課程設計 Verilog 3200行 其中一部分是測試代碼
操作系統課程設計 C 200行 看的代碼居多,真正寫的並不多
面向對象系統課程設計 Java 6000行 包括測試程序,可能是代碼風格不好的原因,總是寫的比較冗長
編譯原理課程設計 C++ 5000行 架構很差,寫的不太好

編譯原理課程大部分是相似成分在不同層次上的重復,最復雜的項目是OO的電梯調度吧,大概有2000行左右。電梯調度有大量的實體,想要拿到最優的策略,就需要了解僅可能多的實體的內部狀態,而這又與面向對象的原則和理念有一定沖突,這里的權衡是最困難的點。

2.3 科班出身和北大青鳥有什么區別?

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

這兩個問題可以一並回答。我認為,所謂的區別在於,計算機的思維方式。需要注意的是,並不是科班出身就一定有計算機的思維方式,而北大青鳥沒有。但是,培訓班注重“速成”,對一個知識的形成過程經常會省略,因此就很難培養出計算機思維方式;而基礎的大學教育和MOOC關注知識的形成過程,老師也會有意識地引導學生的思維方式。當然這也不絕對,畢竟學習最重要的還是看個人。

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

確實,我曾經有過,但現在已經有了解答。一開始我以為,線性代數和概率論和人工智能相關,而工科數學分析是他們的基礎,那么只要我避開這些領域,就不用在意數學了。然而事實是,計算機最重要的問題,計算的本質,正是數學的范疇。無論是算法效率的優化還是系統結構的設計或者系統安全的證明,都離不開數學。盡管不是大一學的三門都有用,但是對應的數學思維可以在學習對應領域時讓人事半功倍。現在自然是嘗到苦頭,開始拾起來過去落下的東西。

Part 3: 未來規划

3.1 對於你未來在IT行業的發展,你有什么樣的夢想或者未來想從事什么樣的工作?你准備怎樣來規划你技術道路,職業道路和社會道路?(必答)

我的夢想是進入一個可以專心技術的公司,做自己感興趣的方向。目前的方向大概有兩條,一條是嵌入式部分的軟硬件結合方向,另一條是計算機安全方向。其中計算機安全方向我一直沒有機會去嘗試相關內容,因此還不敢說自己只是盲目的好玩還是真正的興趣。

技術道路上,在大學畢業前嘗試一下計算機安全方向,然后做出自己的決定,在縱深方向研究。

職業道路上,我計划在畢業后考研,之后才是正式的就業,在這其中進行數次實習。我並不計划進入國企、事業單位,而是希望在私企或者外企等技術氛圍更濃的地方。

社會道路上,我暫時沒有想好,但是希望能用自己的技術為開源項目等做出貢獻,寫出幫助他人的代碼。

3.2 你對於實現自己的夢想已經做了或者計划做什么樣的准備?

我已經選修了數門硬件方向的一般專業課,擔任了計算機組成原理課程設計的助教並計划參加相關競賽。計算機安全領域我計划在學期過半后開始接觸,此外,我也計划參加暑假實習。考研方面,也計划在學期后半開始復習,但是具體時間安排是否足夠仍有待商榷。

3.3 你們馬上就要面臨實習了,你打算在企業內實習還是在實驗室實習?

我計划要參加企業實習,正如博客K所說“在大學的時候盡量多地進入公司參與實際工作,一方面積累工作經驗,另一方面,提前認識工作和自己,以便畢業時更准確地把握自己的方向。”。我認同他的觀點,認為公司的實習經驗是我們真正工作后要接觸的,因此相對更重要一些。

3.4 實習經驗究竟有多重要?是否需要馬上開始積累實習經驗?

我認為實習經驗比較重要,實習學到的技術不是重點,而工作流程、組織架構等則是重中之重。但由於個人時間限制,因此只能暫緩實習。幸好,還有時間,我應當可以在畢業之前進行至少一次實習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM