1. 程式人生 > >作業三:讀《構建之法》1-5章後感

作業三:讀《構建之法》1-5章後感

連接 別人 第一章 說明文檔 沒有 態度 流程 軟件開發 國慶

這個作業的要求來自於:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178


  國慶小長假期間,經過白天的忙碌,晚上的時間,終於能夠靜下心來看看這尚未細讀過的《構建之法》。以下便是我的一點小感想。

第一章 概論

  第一章主要是講述了計算機科學的領域,軟件工程和計算機科學的關系,軟件的特性,軟件工程的定義與組成部分。

  在1.1節中有段話,“我們平時討論程序的種種問題,究竟是在表1-1中的哪一個層次上談論‘程序’呢?我們寫的程序有沒有考慮到類似於這兩起飛行事故級別的問題呢?IT專業的大學畢業生找工作時聲稱:我精通Java,會用C++寫‘Hello World’程序,我懂軟件工程,我花了很多圖,寫了很多文檔,最後得了很高的分數……這些同學是真的懂軟件工程,是一個合格的軟件工程師麽?”毫無疑問,這並不是企業要求的軟件工程師。我們大學生在學校裏面根據學校安排的課程學習完了,完成了答辯,得了個過得去的分數,便以為自己出來找工作也像考試那般容易,可是現實是,工作不是在校學習,人家要的是能做項目的有實際動手能力的畢業生,而不是紙上談兵的書生。在我看來,一份完成良好的項目,比得上簡歷的各種“自誇”。根據學校的課程學習了“軟件工程Ⅰ”,學習了怎麽畫各種圖,可是我們要想成為一名真正的軟件工程師,又該怎麽做呢?

  在1.2.2節中的一句話“希望堵住看了這一節之後,不在糾結‘科學’和‘工程’的問題,而是在不同的學習與工作階段,投入到最適合的項目類型中去”不禁想問:目前最適合我們現階段學習的項目類型是哪一些?

  


第二章 個人技術和流程

  第二章主要是講述了單元測試,回歸測試,效能分析和通過PSP講解個人軟件開發流程。

  在2.4節中,關於如何設計有實際意義的軟件工程作業的問題,文中說到“我們可以把簡單的程序從幾個維度逐步擴展,增加復雜度,引入不同的需求,提高需求的易變性,在這個過程中,鍛煉程序員對各種軟件設計原則、軟件工程原則的理解和應用,軟件的適應性也得到加強。”聽上去好像是挺容易實現的,但是,根據現實情況來說,目前大學生的代碼能力不是很高,很大程度是通過老師,書本,網絡上面的資源來習得。學生真的可以根據不同的需求來對自己的程序進行增刪改操作嗎?再者,需求說明書,說明文檔等的事情,我也覺得我們如果想成為一名軟件工程師就必須掌握,但是我們真的可以做到嗎?對於如何學好軟件工程,我還是不太明白,究竟如何才能成為企業要求的軟件工程師,而不是學習了軟件工程這門課的大學畢業生?

  

  


第三章 軟件工程師的成長

  第三章主要是講述了評價軟件工程師水平的主要方法和軟件工程師的思維誤區。

  在3.3節中,簡述了Emanuel Derman的故事,“回首當年,我(的態度)的確是錯了,任何事情,當你仔細探討,你就會理解它的量和質;當你對一個領域的神韻足夠了解,並開始連接這個領域的表現形式和實現細節的時候,任何一個領域都是會變得引人入勝的。”這是他回顧自己的職業經歷時說的話。我們現在還是大學生階段,人生閱歷不夠豐富,未能做到如Emanuel Derman的深刻見解,在我看來,我們大學生目前所要做的就是保持一顆探索的心,不斷地學習軟件工程。

  我的困惑是:如何才能成長為一個合格的軟件工程師?

  


第四章 兩人合作

  第四章主要講述了兩個人合作編程的不同階段,影響他人的技巧。

  在4.6.2節中說到如何給別人提供容易接受的反饋中提及的“三明治”辦法,通過搜集資料,了解到這是一個對某個人先表揚、再批評、接著再表揚的一種談話方式。在我們的日常中,有的同學說話單刀直入,直擊要害;有的同學說話委婉輾轉,話中有話,毫無疑問這都不是在同一個項目中合作的最佳的交流方式。因為在合作完成同一個項目,難免會出現各種分歧,因此正當的反饋交流是必不可少的。一個人的思維有局限,兩個人的思維有碰撞,正因為有這些碰撞,才使得程序有不同。

  我的困惑是:假如同為合作夥伴的兩個人產生了分歧的時候,是尋找第三人的幫助,還是通過內部的協調解決,哪一種辦法得出的解決方案較好呢?

  


第五章 團隊和流程

  第五章主要是講述了典型的軟件團隊和開發流程及其優缺點。

  在5.2節中,“軟件團隊有各種形式,適用於不同的人員和需求”。每個團隊都有自己的分工合作,團隊中的每個人都有自己的任務。那麽,怎麽才能知道我自己是屬於這一個團隊的哪一部分呢?

  


  

作業三:讀《構建之法》1-5章後感