高級軟件工程2017第1次作業


Deadline:2017-09-18 21:00pm

(:以下內容參考和轉載自 北航助教 陳彥吉博客 )

作業說明:###

  • 1中要求建立自己的技術博客。
  • 閱讀2.1博客索引部分的全部博客內容 (特別注明暫時不讀的除外)。針對2.2回答問題3分析軟件中的問題完成一篇隨筆。博客隨筆排版要求請參見 http://www.cnblogs.com/ChildishChange/p/7282849.html
  • 如果你在閱讀完這些博客后產生了新的疑問,請按照4.附錄中的格式提問。
  • 同時我們也希望能通過這次博客作業讓你建立這樣一個印象:作業不是交上去就完了,而是一個活着的文檔,會有各種評論和修改。
  • 本次作業須獨立完成。總分為10分,評分規則如下:
    • 遲交得0分,以隨筆提交時間為准。遲交2周以上倒扣10分。
    • 言之有物,按照提示的模板來寫 (7分)
    • 能回答助教與老師的點評,並改進 (3分)

1、建立博客,登記信息

建立個人技術博客,在博客園cnblogs.com上注冊開設博客。請修改默認頭像
!!提交個人信息的方式有修改,請認真閱讀!!
碼市coding.net 創建賬號。
按照 https://coding.net/u/greyzeng/p/WHU_SE_2017/git/blob/master/README.md 的說明提交個人信息。

2、閱讀和思考

2.1 博客索引

<前言>為什么要讀/寫博客

"他山之石,可以攻玉”

“以人為鑒,可以明得失”

“你在學校里的困難和迷茫,別人一定有過”

希望通過閱讀這些博客與撰寫自己的博客,你能夠有以下一點或多點收獲:

  • 了解到別人的成功和失敗,從經歷相同的人身上獲得經驗、警示或者心理上的支持
  • 吸收前人的經驗解答自己曾經有過的疑惑
  • 提出新的疑問
  • 堅定自己下一步的發展或為自己的進一步發展給出新的可能性

總結起來就是:
讀別人的故事,擴大自己的眼界;結合他人的經歷與觀點對自己進行一個回顧式的剖析,而且最終能夠懷着希望繼續前行。

OK,現在切入正題......

研一的同學們,你們覺得在大學里,到教室來聽課有意思么?請看:你為何要來上課並且認真參與

你在學校里的困難和迷茫,別人一定有過。請看看別人怎么學習的,有些是科班,有些是野路子,有些成功,有些失敗。請閱讀完“一、1”中的題目,有選擇地閱讀下方的博客或者整個讀完 (讀這些博客你不吃虧,你也不上當!)

一流的大學:

N. 你也可以把你的課堂生活過得像這樣(第一流的本科教學課堂該是什么樣?)

O. 美國讀研期間的一些計算機課程作業(和你上過的專業課有什么不同?)

new:你在大學中體驗到了哪種師生關系 (你希望在這門課中采用哪種師生關系?)

new:世界一流大學怎么教軟件工程 (這種方式是你喜歡的嗎?)

科班出身:

A. https://book.douban.com/subject/4006425/discussion/22803733/

(把每天把要做的事情分成ABCD四類:A-緊迫且重要;B-重要不緊迫;C-緊迫不重要;D-不重要不緊迫。你是否有類似的習慣?)

B. https://book.douban.com/subject/4006425/discussion/22803961/

(你是否也覺得自己是科班,但沒學懂計算機?)

C. https://book.douban.com/subject/4006425/discussion/22802960/

(把每天胡思亂想的東西記在一個筆記本上,作為思維快照,並常常翻回去自省,看看過去和現在的變化。這樣的習慣呢?)

以上三篇來自《IT小小鳥的故事》https://book.douban.com/subject/4006425/

D. https://www.cnblogs.com/xiaozhi_5638/p/4485805.html

(偏科生自學摸索的道路。實習經驗對應屆生重要嗎?)

E. https://www.cnblogs.com/geniusalex/p/4928713.html

(速成的培訓班和打基礎的大學教育有區別么,你是否對大學的基礎學科存在的必要性有疑問?)

非科班出身:

F. http://www.cnblogs.com/Tpf386/p/4798437.html

(很多同學看不起大學老師按部就班地教課,他們心想,我看視頻也能學會的,為何要來聽課?請看這個學生學習的經歷)

G. https://news.cnblogs.com/n/531362/

(半路出家,認真學習,對自己狠心,不斷在實踐中進步)

H. https://www.cnblogs.com/freeflying/p/4796369.html

(文科生轉編程與他對大學教育的批判)

大佬的博客:

I. https://www.cnblogs.com/unruledboy/p/DevCareer.html

(技術棧和大佬的爆棧之旅)

J. https://www.cnblogs.com/unruledboy/p/DevLif.html

(大佬在職場中的摸爬滾打)

K. http://blog.csdn.net/haoel/article/details/1688104

(大佬給出的職業規划建議)

L. http://coolshell.cn/articles/4561.html

(熱情、能力、選擇)

M. https://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html

(大佬的成長史與如何進入微軟亞研院,他的知乎:https://www.zhihu.com/people/excited-vczh/answers)

補充閱讀:

P. 不要輕易在簡歷上寫我熱愛編程,我熱愛學習(你對計算機的熱情是怎樣的?)

編程人生,長篇連載(文章較長,可以暫時不看):

Q. https://www.cnblogs.com/blog470130547/category/629368.html

R. https://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10years.html

2.2 回答問題

讀完以上博客后,結合個人經歷寫一篇博客談談自己的感想(請在博客中加上原文的鏈接,說明想法來自哪篇博客),回答以下的必答問題並帶有選擇地回答其他問題。

(考慮到大家閱讀博客的精力有限,這里將博客根據內容進行了簡單的分類與推薦,並按照推薦排序)

第一部分:結緣計算機

推薦博客:博客I

  1. 你為什么選擇計算機專業?你認為你的條件如何?和這些博主比呢?(必答)
  2. 計算機是你喜歡的領域嗎?是你擅長的領域嗎?
  3. 你熱愛這一專業嗎?你對計算機的熱愛是怎樣的?僅僅是口頭的嗎?

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

推薦博客:博客M博客C博客B博客D博客H博客E博客F

  1. 你對你的大學生活有什么想要吐槽的地方嗎?你理想的大學教育應該是什么樣子的?跟學校給你的有什么區別?比較你在中國大學的經歷,你的老師和學校能做到和國外那樣嗎?如果不能,請分析一下為什么。(必答)
  2. 迄今為止,你寫了多少代碼,描述你做的最復雜的軟件項目/作業。(必答)
  3. 科班出身和北大青鳥有什么區別?
  4. 速成的培訓班和打基礎的大學教育還有mooc之間有區別嗎?
  5. 學線性代數和概率論的時候,你是否有過這樣的疑問“我們為什么要學這么多數學,這和我們的計算機有關系嗎”,你現在是否還有這樣的疑問?對這個問題,你有自己的解答了嗎?那么其他學科呢?

第三部分:未來規划

推薦博客:博客K博客L博客A

  1. 對於你未來在IT行業的發展,你有什么樣的夢想或者未來想從事什么樣的工作?你准備怎樣來規划你技術道路,職業道路和社會道路?(必答)
  2. 你對於實現自己的夢想已經做了或者計划做什么樣的准備?
  3. 實習經驗究竟有多重要?你准備如何積累實習經驗?你希望在企業內實習還是在實驗室做項目?

第四部分:課程期望

  1. 你對這門課的期望是什么?你打算平均每周拿出多少個小時用在這門課上?你願意為了一個你感興趣的項目、或得到實戰鍛煉而付出更多時間和精力(包括熬夜)嗎?(必答)

隨筆示例

博客D[1]的作者認為“企業要的應屆畢業生就是一張白紙,這些白紙吸墨能力的高低決定你能否找到好的工作,而吸墨能力高則主要是基本功扎實、自學能力強的體現,並非我一直以為的豐富的‘實習經驗’。”,我對此有一個問題:實習經驗對本科生是否重要?

對於這個問題:首先,我同意作者強調的“基本功扎實、自學能力強”。同時,我也經過學長了解到部分公司,如依圖科技的CEO也認為:“我不需要你有什么項目經驗,本科生的經驗是相當有限的”。但是,大多數企業招聘時都會強調“有過xx開發經歷者優先”。另外,從本科生個人發展的角度考慮:博客K[2]的作者認為“在大學的時候盡量多地進入公司參與實際工作,一方面積累工作經驗,另一方面,提前認識工作和自己,以便畢業時更准確地把握自己的方向。”

所以,實習經驗確實是很有用的,不管是對於應聘還是個人的發展。但是企業招聘看重的真的是“實習經驗”嗎?

博客M[3]的作者就在博客中提到了他曾經完成的大小項目,並打趣地說他能進微軟是因為他把這些經歷寫進了簡歷。所以綜合上述觀點,我認為,企業在面試時看重的並不是全實習經驗,而是實踐能力,實踐能力自然也就包括了一開始提到的“自學能力強”等。

但是我還是有疑問:“完成一個類C文法的編譯器”這樣的作業的含金量有多少呢?

[1] https://www.cnblogs.com/xiaozhi_5638/p/4485805.html

[2] http://blog.csdn.net/haoel/article/details/1688104

[3] https://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html

其他回答示例

一篇滿分隨筆


3、分析軟件

軟件有很多種: ShrinkWrap(在包裝盒子里面的軟件)、Web APP ( 基於網頁的軟件)、Internal Software (企業或學校或某組織內部的軟件)、Games(游戲)、Mobile Apps(手機應用)、Operating Systems(操作系統)、Tools(工具軟件),選取三種軟件,請分析它們各自的特點。

  1. 這些軟件的開發者是怎么說服你(陌生人)成為他們的用戶的?他們的目標都是盈利么?他們的目標都是賺取用戶的現金么?還是別的?

  2. 你個人第一次用此類軟件是什么時候,你當時多大,具體在什么學校讀幾年級,老師是誰,同桌叫啥?軟件是如何到你手里的?例如:郵購,下載,互相拷貝,從應用商店購買,…….

  3. 我們知道有些軟件是收費的,有些是“免費” 的, 那么,軟件公司為何會給你免費使用這個軟件呢? 寫這個軟件的工程師們,他們的工資如果不從你(用戶)這里來, 從哪里來呢? 目前你們當地的軟件工程師的工資大約是多少,請給出盡量詳細的分析,精確到年收入多少萬元人民幣。

  4. 你是如何學會用這軟件的?它給你什么好處,壞處? 這些軟件是如何處理 bug 的?  如何更新新版本的?  你估計軟件團隊更新一個主要版本花了多少 人月? 請寫上人月的定義. 如果你們宿舍(或者你和另外三四個同學)要做同樣水平的軟件,請估計你們需要多少時間?

  5. 同一類型的軟件之間是如何競爭的?你現在還用它么,你為何選擇這個產品,而不是它的競爭對手?

  6. 5年后, 這種軟件運行的硬件會有什么變化, 軟件再過 5 年還會存在么,為什么?

  7. 列舉你在使用上述軟件的時候觀察到的 “特殊”現象,它們和硬件有什么不同?  這些能說明軟件的某些本質特性么?


4、附錄

提問的模板

  1. 在每個問題后面,請說明哪一章節的什么內容引起了你的提問,提供一些上下文。
  2. 列出一些事例或資料,支持你的提問。
  3. 說說你提問題的原因,你說因為自己的假設和書中的不同而提問,還是不懂書中的術語,還是對推理過程有疑問,還是書中的描述和你的經驗(直接經驗或間接經驗)矛盾?

示例1

我看了這一段文字 (引用文字),有這個問題(提出問題)。 我查了資料,有這些說法(引用說法),根據我的實踐,我得到這些經驗(描述自己的經驗)。 但是我還是不太懂,我的困惑是(說明困惑)。

示例2

我反對作者的觀點(提出作者的觀點,自己的觀點,以及理由)。


免責聲明!

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



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