這個作業屬于哪個課程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2
這個作業要求在哪裡:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706
我在這個課程的目标是:
搞清楚軟體工程是什麼,其原理是什麼,有哪些軟體開發的方法,怎樣快速高效的開發高品質軟體。還有就是學習團隊合作開發軟體。
這個作業在哪個具體方面幫助我實作目标:本次作業主要是通過讓我們做一些閱讀來思考自己應該怎樣對待這門課程以及對待以後的學習道路,讓我對這個課程有個大體的了解,掌握一些好的學習方法。
作業正文:
一.建立部落格并介紹自己
1、部落格位址:https://www.cnblogs.com/lfq4588/
2、自我介紹:
優秀這個詞語可能和我一點關系都沒有,這一學期已經是大二的第二個學期了,但是我學到的東西少的可憐,也就是自己渾渾噩噩的過了将近兩個學年。由于懶惰我放棄過很多能夠接觸新知識的機會,幸好自己還不算特别笨,要不然就真的是一文不值了。我的知識面非常的狹窄,無數次告誡自己要努力,但是最後效果都不太好。現在面臨着時間的流逝,自己有一些覺悟,開始努力學習知識以此來豐富自己,我正努力的控制自己不要懶惰并且有信心一直堅持下去(其實這也是在找回自己,自從上了大學自己就完全變了變得懶惰,是以我要找回自己,會努力的自己),好在現在還有時間給我重新拾回自己。我是一個不太善于表達自己的想法的人,其實有時候有很多東西道理我都有一定的看法,但是我說不出來。課外對體育競技(各類體育項目包括電競)和時事新聞(比如國家大事和國際新聞)比較關注,沒事的時候也喜歡出去運動運動。
二.閱讀與思考
(1)回想一下你初入大學時對軟體工程專業的暢想
- 當初你是如何做出選擇軟體工程專業的決定的?
- 當時填報志願的時候因為的眼睛有輕度色弱有很多專業都是受限的,在剩下的專業裡邊軟體工程這一專業貌似是比較适合我自己的專業,是以就決定選擇了它。
- 你認為過去兩年中接觸到的課程是否符合你對軟體工程專業的期待,為什麼?
- 符合,填報專業的時候我大緻了解過這個專業以及大學的學習,而我學習的這些課程也大緻與我了解到的相符合。
- 你覺得軟體工程是你喜歡的領域嗎,它是你擅長的領域嗎?
- 它是不是我擅長的領域我不知道,但是從我接觸這個專業開始我就一直喜歡這個專業。
- 将來你會選擇從事軟體開發相關的工作嗎?是的話給出你想去的城市、公司和崗位,否的話給出原因
- 會。我沒有特别想去的城市,對我來說在哪兒工作都一樣。也沒有特别想去的公司,對于我來說到時候能給到我與我自身價值相當的薪水的公司我都可以。我從大一上學期過後就一直想成為一個系統程式員,雖然說這要求很高。
(2)即将大三的你,對照前人們走過的路和描述未來發展,現在的你
- 自我感覺你已經具備的專業知識、技能、能力有哪些?已經寫過的代碼量是多少?
- 目前具備的知識有資料結構、資料庫的簡單應用、C/C++和C#程式設計語言、對彙編語言也有所了解,代碼量可能有價值的隻有七八千行吧,主要是寫一些小的C/C++程式。
- 離成為一個合格的軟體工程專業大學畢業生,在專業知識、技能、能力上還差距哪些?
- 差的東西還挺多,像計算機系統、網絡技術、設計模式、軟體工程原理與方法、作業系統知識、和一些進階語言比如C/C++和java這種重要語言的熟練應用等等,自己的專業學習能力也還很弱有待提高,自己的算法設計能力以及數學邏輯能力也有需哦不足。
(3)大三是一個人生選擇的十字路口,考研、工作、考公、出國,不同的選擇在大三就有不同的努力方向。而無論考研還是工作的每條路徑,也有許多不同的分支。
- 對照以上你閱讀的前人們的經曆,你的選擇是什麼?
- 考研
- 在這種選擇下,你認為你相比其他同學來說有何優勢,有何劣勢?
- 優勢就是我已經下定決心,人是逼出來的;劣勢就是個人的能力相對差一些。
- 針對你的選擇,你給自己的大三設定的規劃安排是什麼?
- 首先惡補英語,然後就是準備考研。同時要将自己喜歡的C/C++熟悉掌握,還有就是學習有關作業系統的知識。
三.提有品質的問題
-
快速看完整部教材,列出你仍然不懂的5到10個問題,釋出在你的個人部落格上。注明是哪一章哪一節。要有觀點、有證據或分析。字數不是直接的考核标準,但是要求篇幅長到能把觀點表述清楚。
(如何提出有價值的問題? 請看這個文章:http://www.cnblogs.com/rocedu/p/5167941.html,以及在網際網路時代如何提問題。 還有這些要點:
- 在每個問題後面,請說明哪一章節的什麼内容引起了你的提問,提供一些上下文。
- 列出一些事例或資料,支援你的提問 。
-
說說你提問題的原因,你說因為自己的假設和書中的不同而提問,還是不懂書中的術語,還是對推理過程有疑問,還是書中的描述和你的經驗(直接經驗或間接經驗)沖突?
一個模闆可以是這樣:
我看了這一段文字(引用文字),有這個問題(提出問題)。我查了資料,有這些說法(引用說法),根據我的實踐,我得到這些經驗(描述自己的經驗)。 但是我還是不太懂,我的困惑是(說明困惑)。
【或者】我反對作者的觀點(提出作者的觀點,自己的觀點,以及理由)。
d. 大學生應該能寫出自己的思考, 而不是摘抄書本内容。
e. 提示:程式設計經驗不多的同學,建議看16章 “創新”, 提出自己的問題。)
1、教材第一章開始1.1舉例,第三個例子,說一個程式員剛上班的時候覺得以前同僚寫的代碼很垃圾,想推倒重寫,然後一個老員工告訴他現在的代碼就是去年新員工憤怒推倒重建的結果,這個例子讓我想起了我在CSDN部落格上讀過的一篇文章(連結https://blog.csdn.net/csdnnews/article/details/87899185),我就有個問題:我應該怎樣正确看待并對待别人的代碼?有時候我覺得寫得很差的代碼但它卻值得我學習。
2、教材第一章1.2.1講軟體的特殊性說到易變性時,有正确地修改軟體是一件很困難的事,就隻是提了一句正确的修改軟體,但是他沒有具體說怎樣正确的修改軟體,是以我就想問一下正确的修改軟體是有什麼标準的方法,還是就是純粹靠個人能力?還有這裡的正确又是一個什麼樣的很标準?
3、教材第五章講了很多種軟體團隊的模式,有主治醫師模式、明星模式、社群模式、業餘劇團模式、秘密團隊模式、特工團隊模式、交響樂有團隊模式、爵士樂模式、功能團隊模式、官僚模式等等,這些模式各有特點。有個問題就是對于我們這種還處于學習階段、對自己的能力認識模糊的地人來說,在團隊項目中我們該如何分工?弄不好就很有可能成為“一個學生幹活,其餘學生打醬油”這種情況,我們要避免這種情況發生,要把握一個什麼樣的度?還有就是怎樣能準确的人知道自己的能力然後擔任能夠做到的職務或者工作量?
4、教材第十四章14.1軟體品質,書上有“軟體品質=程式品質+軟降工程品質”,其中軟體工程品質要“好”、“快”、“便宜”,都說便宜沒好貨、慢工出細活,但這裡要求又快、又好、又便宜。那這裡的品質得好标準又是什麼?教材前面内容有講到很多提高軟體品質的方法,想軟體過程模型這些東西是有提到怎樣又快又好的開發軟體,但是我看到這兒依然對于這個高品質的軟體這個高品質的然是很模糊。
5、教材第十六章16.1.8說創新者就是冒險家,我不認同這個說法,在軟體工程裡邊想創新不簡單,但也不能把這裡的創新等同于冒險啊,一個想創新的人他肯定對目前已有的一些技術已經很來接甚至精通了,他覺得有更好的方法來代替這些東西,如果他創新失敗就不代表說他會失去什麼啊,有的也隻是能更深刻的再了解一下這個東西。這不是冒險,這是走在前面,是先驅。
四.了解和調查源程式版本管理工具
上網調查一下目前流行的源程式版本管理軟體和項目管理軟體都有哪些,列舉至少三個或以上的版本管理軟體各有什麼優缺點? (提示:搜尋一下Microsoft TFS、Git、Mercurial、GitHub、Bitbucket、Trac、Bugzilla、Rational,Apple XCode)
Microsoft TFS:
優點:
任務版上可以将需求、項目進度都一覽無餘,對于小團隊而言,比甘特圖更有用
能夠與和VS 無縫接合
缺點:
個人成本上的消耗相對來說要大一些。
TFS通過複雜的看似功能強大配置管理,将聯機看做是整個項目周期的常态,這在實際使用中造成極大的不便。
整個系統是用 asp 實作的,用浏覽器通路相當慢
Github:
優點:
基于web,允許使用Git的源代碼管理功能
開源程式更容易被别人看到
github的公開項目免費的
github 不斷在修改增進界面
缺點:
不适合新手
Mercuriall:
優點:
操作快速
簡單容易上手
界面好看
缺點:
分支管理不靈活
是基于Python的,是以導緻跨平台使用不友善