1. 程式人生 > >現代軟件工程 第一周博客作業

現代軟件工程 第一周博客作業

廠商 意誌力 根據 要掌握 width 期望 團隊 計算機學院 是把

自我介紹

我是中國科學技術大學信息科學技術學院電子工程與信息科學系的大四學生,現在感到非常幸運能夠來到msra實習,跟優秀的人合作和學習。

如果說自己的閃光點的話,我覺得我的應該是喜歡涉獵歷史地理方面的東西,這種了解和思考得相對比較多吧。別的方面最多就是,身邊的人都覺得我是個好人吧。

現狀、經驗和計劃

我是信息學院電子工程與信息科學系的。如何選擇這個專業說來話長。最初報考大學的時候,我對IT的了解僅限於高中的時候的VB編程課,也是由於在這個課堂的愉快經歷,我希望大學中學習IT相關專業。招生老師問我知不知道計算機學院和信息學院的區別我都說不出個所以然,於是招生老師說,你選擇信息學院比較好,因為這個學院相對未來選擇較多,進去了解過以後再決定是否學習計算機也不遲,於是我便是信息學院的一名學生了。大二選擇專業時,我已經學習了計算機的一些基本課程,也學習了一些電子電路相關的課程,參加了校內校外多個軟件/硬件相關的比賽,可以說是對研究方向有所了解了。於是我想,相比與電路,我更喜歡控制和信號處理,於是選擇了這個專業。

技能調查表中我的選擇:

目前水平 理想水平 提高手段
語言(偏後端) 3 9 練習,提高代碼量,多涉獵各種算法和領域
軟件測試 2 8 學習和掌握測試工具和方法
需求分析 1 8 分析典型案例,做真實的需求分析
行業洞察力 1 8 多讀paper,多了解行業最新進展,學習行業歷史
團隊協作 4 10 在團隊合作中加強交流,拒絕客氣
理論素養 3 9 在工作的同時思考這樣做在學習過的課程中是否有跡可循,從而在下一步工作時可以期望由此獲得指導

之所以這樣選擇,是基於我目前處於並將長期(3-5年)處於研究生/博士階段,參與和管理大型項目的知識能力事實上我短期內並不會用到,而以我有限的經驗,並不能有理有據地評價和管理自己這種能力。理想水平是指在我對自己未來的工作期望中,我應該達到的水平。

我為何要來上這門課,最基本的原因是沒有這6個學分我沒有辦法畢業。當然我可以劃水,但是我覺得如果在這門課上我認真參與,一定會收獲很大(基於在中科大校內鄧宏平老師軟件工程課上的經驗而來,謝謝他精彩的課程)。羞愧地說,在大三的某個階段我確實是有上課無用的想法的,事實(GPA)證明這是大錯特錯的。上課聽講可以獲得一些在自學中無法獲得的東西,知識和獲取知識的方法都在其中。

關於借鑒與抄襲,我的看法是,在編寫程序和文檔時,有些基礎的東西確實不需要每次都重新搭建,如通用算法的實現和技術文檔的模板,然而如果涉及到的代碼是作者的創新想法/沒有開源/註明引用需咨詢/用途是商業盈利等情況,或是照搬技術文檔的內容,就可以說是抄襲/剽竊。

我對將來的規劃是學生階段專註做研究,畢業後做研究對項目的transfer。非常幸運我在本科階段就能夠來到MSRA這個環境,可以接觸到研究、項目各種方面的大牛,我要利用好一年的時間,學習他們的不同的思維方式和工作方式。

閱讀博客:

進入2012 -- 回顧我走過的編程之路,不要輕易在簡歷上寫我熱愛編程,我熱愛學習

發現大牛之所以是大牛,不是面臨的機遇多麽好,自己的天賦多麽高,就是充分條件了。想要成為大牛,首先要有的是對行業的熱愛和堅持。我曾經讀過一本小說《一個程序員的奮鬥史》(https://book.douban.com/subject/24696924/),裏面主人公的經歷就是作者自己的經歷,他從本科畢業的真·菜鳥一步步走到博客大牛,微軟最有價值專家(MVP),擁有眾多粉絲,沒有他過人的意誌力和在消極環境中不停止提高自我的信念是不可能的。可能大多數人(比如我)現在遠遠不能夠成為大牛,除非我們付出超人的精力、體力和意誌力,當然還必須保持自己對計算機和軟件行業的熱愛與探索欲。幸運的是,年輕的我還有足夠的精力體力意誌力,也相信自己在不短的時間內不會消減對計算機的探索欲。我希望能夠在未來幾年的學習中掌握更多的技術、思想、和方法,也做出自己的探索和實踐,希望能夠不荒廢這幾年,能夠在畢業時在簡歷上有底氣地寫:我熱愛編程和學習。

《構建之法》閱讀疑惑

(1)關於“全棧工程師”

有人說一個人就可以快速成長成為一名全棧工程師,這讓我想起街頭賣藝的單人樂隊(One-man-band),他們什麽都會一些,可以很快地演奏一些曲子。與之對立的,是只研習某一樂器的樂手,你願意花錢聽哪種演奏呢?當一個小孩說長大了要做音樂家,你會讓他走上擔單人樂隊的道路麽?(《構建之法第三章,P53)

這一段似乎表達了所謂“全棧工程師”是如單人樂隊的賣藝人,其技術並不能登堂入室不可能進維也納金色大廳,關於這一點我有點疑惑,正如這一節的標題“專於精的關系”,看起來作者並不看好這種職業發展方向。

當我們談論“全棧工程師”的時候,我們說的究竟是“交響樂作曲家寫各個樂器的樂譜”,還是“演奏家滿場奔走,操作各種樂器”呢?(《構建之法第三章,P53)

個人認為,一個不懂得交響樂團所有樂器的作曲家是寫不出交響樂樂譜的,這裏的不懂得是指,管樂吹不響/弦樂拉不響/鼓敲不響,或是只會把它們乒乒乓乓弄出do re mi,而不能符合音樂主題地讓樂器協調起來。同樣道理,全棧工程師也需要掌握至少理解前端後端、各種平臺、不同的語言,做項目時使用哪種技術並不是根據工程師擅長哪種選擇的,而是綜合考慮各種技術的優劣,並結合工程師的實際能力來決定的,這時如果工程師掌握的技術比較多、學習能力非常強,無疑是有利的,這是我認為的全棧工程師的優勢所在。如果新年聯歡會上一個唱歌的節目臨時需要伴奏,是同事中為了撩妹會彈吉他、跟家人學了手風琴、作為愛好會打鼓和吹口琴的愛好者,還是找業余時間沈浸於練習吹嗩吶並在各種活動中獨奏過的業余演奏家呢?

(2)關於合作的不同階段和技巧(第四章 4.6節)

這一小節以兩人跳舞為例,描述了兩人合作的不同階段和在這之中的一些技巧。書中將兩人合作分成了五個階段:

萌芽階段

磨合階段

規範階段

創造階段

解體階段

然而,我在與人合作中,不論是兩人合作還是團隊合作,總會在磨合階段陷入問題,不知道如何解決。問題在於,我總是在與人合作已經開始以後,仍然只能用“萌芽階段”的客客氣氣的方法對待隊友,不管隊友是帶飛大佬還是消極怠工,因此,我們總是陷入客客氣氣地自己完成自己覺得應該完成的工作,即使互相不滿意也不會認真地討論問題,最多是誰的進度慢道一句歉,而其他人選擇原諒並幫他做了或是放棄掉他沒有實現的部分,最終項目要麽只有一兩個人挑大梁,要麽全崩。但是我不知道應該怎麽在團隊合作中不客氣地提出意見,特別是對方道歉說我錯了但是實際上不改得情況下。

(3)關於PM

《構建之法》第九章介紹了微軟公司的PM職位,書中列出了微軟PM與其他公司的項目經理的區別(P185):

Project Manager Program Manager
是團隊的行政領導,帶領大家在項目中工作 和大家平等工作,推動團隊完成軟件的功能
通常是團隊和外界打交道的唯一代表 一個團隊可以有很多PM
對項目的功能有最後的決定權 和其他團隊成員一起形成決議
管事也管人 管事不管人
不一定做具體工作 一定做具體工作

我讀了《構建之法》第九章中關於微軟的PM職位相關的內容,了解到PM的工作內容和應該具備的素質,然而,我還有一些疑惑,可能因為是微軟內部的人事問題,除了這個職位不是管理崗位以外,我沒有辦法在搜索引擎上得到更多的關於PM崗位設置的信息。我的問題是PM在團隊的人際關系中通常是怎樣的角色,既然是與團隊成員地位平等,那麽PM一般是有經驗和資歷的老人嗎?如果不是,有沒有什麽機制可以保護PM,或者說,是什麽讓團隊成員信任並沒有在做開發和測試的跟自己資歷差不多的PM的決定呢?

(4)“Walkman”和“Walking Man”

索尼公司在大型收錄機領域取得成功之後,其創始人盛田紹夫想進一步讓所有人都能隨時聽到音樂,有了隨身聽的想法。……公司的專家們認為……大眾不會喜歡……最後產品快要上市時,大家要給它取名字,Walkman是最後的候選名字之一。公司請教了語言專家,語言專家語重心長地指出,Walkman是不符合語法的!動詞不能修飾名詞,改成Walking Man才是正解!

值得慶幸的是,盛田紹夫沒有聽專家的建議。Walkman(Walking Man)上市了,…… 開辟了一個市場,引起許多廠商的效仿。

《構建之法》第16章 P348

這裏我有點不太理解,為什麽語言專家的建議不應該被采納。。我覺得他說的很有道理。“Walkman”這個名字裏面蘊含了一些商業和運營的技巧嗎?

(5)關於生態創新

在《構建之法》第16章16.1節中,講了八條創新迷思,其中第三條是

在現實中,好的主意不一定贏

然後舉出了更符合統計規律的鍵盤布局由於與大眾習慣不兼容而無法應用的例子。後來在第六條迷思:

技術的創新是關鍵

中講到,除了技術創新還有很多方面的創新,這之中有一個

生態系統的創新

iPhone/iPod/iTunes客戶端軟件/iTUnes網站在音樂購買/同步/播放整個流程中整合的創新。如果將Apple的產品與同類產品比較,各有千秋,但是把各個環節整合得如此流暢,打造成一個盈利的生態系統,Apple公司遠遠領先其他競爭者。

關於Apple公司成功的生態創新,我覺得很大一部分原因是它在手機市場、MP3市場的影響力。我的疑惑時,如果是一個小型的或是市場影響力有限的企業,想要做生態創新是有可能的嗎?最近國內的小米公司在做智能家居,想要做成生態鏈,然而我使用的一些小產品並沒有讓我感到十分驚艷,只是新奇而已,而那些相比較貴的產品在沒有與小米的主要產品(手機等)捆綁的情況下,有可能能夠像蘋果一樣形成一個排他的生態鏈嗎?

現代軟件工程 第一周博客作業