<做業要求的連接>https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706算法
<課程目標>但願經過本課程更加了解軟件工程,清楚軟件開發所需的技能和流程,成爲一名合格的軟件開發師。數據庫
在思考做業的問題後,我更加清晰地認識到本身能力上的不足,以及明確本身的將來規劃,有利於調整本身的心態和作好充足的知識儲備,通讀完《構建之法》後,我改變了一些本身之前對軟件工程錯誤的認識,明白一個軟件的開發不只僅是靠編程技術,還須要需求分析、測試、協做等等,這都爲之後良好的軟件開發打下了基礎。編程
一.創建博客並介紹本身後端
1.個人博客:https://www.cnblogs.com/joanna1220/服務器
2.我的介紹:大學後才接觸編程,因此對編程十分陌生,即便通過一年多的學習,我對編程的認識仍沒有提升多少,雖然本身編程技術薄弱,但我以爲本身比較喜歡階段性自我反思,在反問本身的同時瞭解到自身的不足再加以改進,是一個喜歡對本身進行規劃的人,這也是一個可使本身變得更加優秀的優點。反思和總結的習慣應該是從高中三年繁重的學習生活中獲得的最寶貴的財富,以前富有壓力的環境促使本身學會進步,不斷吸取新的知識和技能。工具
二.閱讀與思考學習
(1)回想一下你初入大學時對軟件工程專業的暢想測試
報考大學志願時,我根本沒有考慮過計算機類的專業,可是在大一上學期,忽然接觸到計算機編程併產生了必定的興趣,促使我選擇轉到軟件工程專業。spa
大多選擇軟件工程的同窗最初確定都但願本身經過課程學習後能夠作出一個「東西」,或者能解決更多的計算機或軟件的問題,但事實上,若是隻經過課堂的學習是沒法達到本身原有的目標,學校的課程重視基礎和引導,甚至有些內容並非如今市面通用的、應用最廣的東西,但不能否認再新潮的語言仍是其餘工具等都是在原有基礎上創新的,因此打好基礎十分重要。設計
若是從軟件的使用來講,我以爲軟件工程是一門很實用的學科,當作出一個成品時的成就感是使人很是愉悅的;雖然本身的編程能力不太出色,但軟件工程包含許多方面,我相信總會找到一個本身擅長的領域。
但願本身能夠留在成都,去到騰訊學習和發展,至於崗位可能會選擇Web開發相關。
(2)即將大三的你,對照前人們走過的路和描述將來發展,如今的你
雖然已經學習一年多,但本身仍只會一點點編程,知道一點簡單的算法;沒有統計過本身的代碼量但估計不超過一萬。
首先專業知識不夠紮實,沒法利用所學的知識解決問題,其次實際操做時間太少,致使對程序調試和工具使用不熟悉,此外本身沒有團隊合做的經驗,沒有按照完整的流程去嘗試開發一個項目。
(3)大三是一我的生選擇的十字路口,考研、工做、考公、出國,不一樣的選擇在大三就有不一樣的努力方向。而不管考研仍是工做的每條路徑,也有許多不一樣的分支。
每一個人的人生規劃和目標不盡相同,雖然前輩們經過各類途徑都取得了成功,但對於我而言,我暫時選擇畢業後工做。
直接工做跟考研相比,首先是文憑差別,可能對於選擇某些公司的職位會受到限制,其次經過考研你能夠選擇更加優秀的學校和導師,提高本身的專業技能;一樣直接工做的好處是能夠積累兩年的實戰經驗,畢竟解決實際問題和書本上理論有很大的差距。
若是選擇不考研,在大三上學期,我會夯實專業基礎,擴展閱讀相關書籍,將知識吃透,而且也會注重實際操做與理論知識相結合,積極參加計算機相關競賽積累經驗;下學期,我會大體肯定本身的就業方向,爲暑期實習和大四招聘作準備。
三.提有質量的問題
1.在第二章第二節效能分析中,雖然提到兩種分析方法:抽樣和代碼注入,但對於如何代碼注入我仍然不太明白書中的例子,在上網查閱代碼注入後發現其不只僅用於效能分析還應用於許多方面,但同時這種方法也存在許大隱患。可是如何在效能分析中正確地使用代碼注入呢?
2.雖然在第六章敏捷流程中,詳細地介紹了敏捷開發的原則、過程和經驗,但對於如何實際地進行敏捷開發,仍然是一個模糊的概念,Scrum Master 的職責和做用到底具體是什麼?如何挑選Scrum Master呢?
經過上網查閱相關資料,我進一步瞭解敏捷開發強調簡單、適應變化、能持續性發展,快速反饋、高質量工做等,一個團隊的Scrum Master不是一個發號施令的領導,而是一個教練,幫助團隊中的每一個人理解和擁抱Scrum的價值觀、原則和實踐,抱着爲你們服務的心態,主動去承擔某種責任,或者是主動去作某件事情,幫助團隊解決管理問題,解決紛爭,讓團隊專一於價值交付。
3.在第十一章中提到須要每日構建以及每日構建的重要性,但什麼是每日構建?什麼是構建系統?構建到底須要作哪些事情呢?
據360百科解釋,每日構建就是指把一個軟件項目的全部的最新的代碼從配置庫中取出,而後從頭進行編譯,連接和運行,每日構建另外一個重要功能就是驗證軟件中各模塊關係是否正確,也可稱爲"每日集成"。而構建系統是用來從源代碼生成用戶可使用的目標的自動化工具。目標能夠包括庫、可執行文件、或者生成的腳本等等。
4.在第十一章中也提到實戰中的源代碼管理,,其中出現許多陌生的詞彙,好比文件的鎖定、簽入簽出文件、修改的原子性等,對於以前課程的要求確實沒有源代碼管理的概念,因此對於這一模塊,本身徹底陌生,以及如何實際進行源代碼的管理仍不清楚。
5.對於代碼複審和測試,我以前都沒有清晰的瞭解,而在讀徹底書後,我明白首先測試在代碼複審以前,測試按照設計的方法、目的、時機和做用又分爲不少不一樣的模塊,根據具體的程序使用不一樣的測試方法,在軟件開發過程當中測試佔有舉足輕重的做用。平時的學習中,本身好像根本沒有代碼複審過,最多在程序報錯後讓同伴幫忙找錯,但着根本稱不上代碼複審,代碼複審的前提是程序經過編譯,而且被測試過,在此過程當中,開發者必須回答複審者的所有問題並負責這些問題獲得滿意的解釋,最後雙方達到一致。
四.瞭解和調查源程序版本管理工具
1.Github
優勢:能夠做爲一個版本控制系統和協做工具,用它來發布工做;支持多人共同完成一個項目;代碼不須要保存在本地或者服務器;適用代碼跟蹤
缺點:可能不是捕捉創意過程和記錄創意點子的最佳工具;不是最好的設計跟蹤工具
2.Microsoft TFS
優勢:不只僅支持源代碼管理,還能夠實現需求分析,測試等功能
缺點:真正應用全部功能的公司和團隊不多,大部分都只是用源代碼管理
3.Bugzilla
優勢:強大的檢索功能,強大的後端數據庫支持,豐富多樣的配置設定
缺點:安裝麻煩,只能管理缺陷
(以上各管理工具優缺點參考百度)