這個做業屬於哪一個課程 | <課程的連接> |
---|---|
這個做業要求在哪裏 | <做業要求的連接> |
我在這個課程的目標是 | 學會現代軟件開發的總體流程,深刻理解軟件工程學並與實踐相結合 |
這個做業在哪一個具體方面幫助我實現目標 | 書中理論,做業明確目標,寫博客總結,造成輸出,重點掌握 |
而後學着學着,就各類向斜,背斜,斷層什麼的,各類背,各類概念。我就思考,這不是我要走的路,那我要走什麼路呢,或許在我高考後填的第一志願適合我——軟件工程。來,請看:
html
對嘛,這纔是咱們嘛,我就喜歡這樣,坐着動動手指是吧。俗話說得好:「咱們的指尖擁有改變世界的力量」。不開玩笑,的確如此,近十年來,多少萬程序員奉獻了他們的頭髮,來使咱們的生活變得更加智能。寫着東西就停不下來,上面吹了這麼多了,大家確定也看累了,下面說說實際的,既然做爲一個科班出生的程序員,那必須得要有掌握的一兩門技術嘛。git
當初我爲何會選這個專業呢,前面也提到了,我是轉專業學生,其實在高考畢業就填了這個專業,只不過被調劑了。至於爲何,我以爲首先是我表哥對個人影響吧,讓我在高中就接觸到過軟件,當時他用C語言編寫了一個貪吃蛇遊戲,我就以爲挺好的,而後就產生了興趣,想着本身可否也作一個出來。還有就是後面網頁的流行,不少地方都會用到瀏覽器,我就想着若是本身也能作一個網站那該多好,應該是一個自豪的事情(當時人工智能和大數據尚未這麼火)。
後來就是在原來專業中感受到一天到晚摸索石頭沒啥意思,還有就是對本身之後發展的疑問。我之後就像這樣每天玩玩兒石頭了嗎,或者是常常到大山裏面去找石頭,而後常年常常出差,工做幾個月回家幾個月的生活?照看不了家人,不,這不是我想要的,因而考慮轉專業,正好對軟件有些興趣,而後社會上也比較火,就業什麼的,工資及之後的發展都還不錯,因而就選擇了這個專業。程序員
在過去的兩年大學生活中,這些課程在我學的時候,我以爲是不太符合的。就拿大一的數據結構來講,在我當時的想法中,別人已經實現了的東西,咱們只須要拿來用就能夠了,沒有必要深刻去研究它。再來到大一暑假所學的英語及概念實習(也就是C#),我決定那個英語據說沒什麼意思,爲何不直接給咱們上專業英語呢,這或許對咱們之後的發展更好。概念實習,當時跟着老師作了一個紅色天空遊戲,也就是小時候玩兒的飛機大戰,當時頗有興趣,可是回過頭來,不過只是跟着老師將老師的代碼本身手動的敲了出來而已,仍是同樣沒學到什麼,反正第一學年就在抱怨中度過了。到了第二學年,我開始了給本身選定了一個方向,無論學校學什麼,本身先學好那一個方向,先掌握熟練運用一門語言再說,因而我就奮力學習Java,在落後了衆多團隊大佬一年的時間,我只有花更多的時間努力學習。就在學了Java以後,我對計算機軟件又有了新的認識,也能夠說是對大一沒有認真學專業的一種後悔吧,後面才意識到數據結構及算法是至關重要的。因此說按如今的我來講,我接觸到的課程是徹底符合我對專業的期待,包括如今這門課,我相信在學完整個課程後,我會收穫到不少東西。github
前面也已經提到過,目前我比較喜歡Java後端方向還有大數據領域。軟件專業,所涵蓋的領域實在是太廣,我感興趣的領域天然也就是軟件範疇的領域。同時,大學注重基礎,萬丈高樓平地起就是這個道理。相信你們都聽過厚積薄發這個詞,我堅信大學裏所學的東西會爲我之後的發展打下堅實的基礎。web
之後必然是會選擇從事軟件行業工做的,主要是想去深圳或者就在成都吧,想去的公司確定是bat了,可是目前實力確定不夠,只能再努力了,崗位就是後端工程師。算法
我以爲具有的專業知識其實挺少的,主要是集中在編碼上面,學過C/C#/Java,數據結構,而後還了解了Python,matlab等。對總體的軟件開發流程,以及軟件整個過程還不夠了解,實際代碼量也沒多少,估計可能也就一千多行吧。最複雜的項目,說出來可能都不太好意思。就是在今年參加互聯網+比賽作的一個跨境電商比賽項目。
引入全球化與智能化商品交易平臺模式,設計知足廠商和B2C銷售者實施跨境商品借賣銷售的系統。對多種用戶分配不一樣權限來實現對訂單的操做,還有對於生廠商的海外倉的管理,以及對各類經銷商之間的關係。對不一樣用戶的調貨系統的註冊審覈、登陸、信息分析、信息派送、彙總發佈、交易成功等。還有就是實現了企業之間的分單模式,能夠分單企業,分單供應商,分單產商。最後還作了一個小論壇,主要是爲了讓全球用戶在論壇上實現交流溝通。後端
首先,我以爲應該是找出咱們和培訓機構,或者職業院校出來的學生的區別。他們出來編碼能力通常比咱們強,那咱們的優點是什麼,咱們能夠找到本科所學的東西是他們沒有的,我以爲這是首要的。那如何提高這些知識呢,那就是要把理論專業課學好,就比如這門課現代軟件構建之法,以及計算機系統基礎,計算機網絡基礎,操做系統,軟件需求分析,軟件體系結構,軟件項目管理等,這是做爲一個科班出生的程序員的基本知識。其次,在編碼能力上還有很大的差距,我認爲在畢業前要有1萬行代碼纔算合格。瀏覽器
在閱讀了前人們的經歷,再加上本身的思考,大一浪費了一年的時間,還有想去的bat,我以爲考研多是目前最好的選擇。服務器
考研的話,我以爲優點多是本身數學和專業課學得還比較好。劣勢就是本身一直偏科英語,還有就是還須要比其餘同窗多花幾年在學校裏讀書,本身的工做經驗確定比不過工做了的同窗。網絡
在近幾年的考研熱中,特別是計算機,複試刷下去了不少人,我以爲大三在上學期的時候我就多敲代碼,多作項目,把代碼量給弄上去,而後大三下開始準備考研以及算法數據結構基礎之類的學習,避免在複試的時候被刷。
加入了新開的一個實驗室,能夠和研究生學長們一塊兒交流技術,而且在作項目中增長本身的代碼量,向1萬行看齊。各類技術書籍,高級及底層實現以及準備好,計劃着9610的工做狀態度過大三。
第三章(53頁)做者談到職業發展之考級之路。
做者談到了些許什麼國家認證,機構認證之類的專業技術資格證書。
疑問:因爲我在網上,知乎,CSDN等各大平臺上了解到,前人說的大可能是計算機類的專業考證沒有用。通常有經驗的不用證書,有證書的大多沒經驗,拿證書還不如多花點時間鍛鍊下技術。然而網上的各類考證官網又極力說考證考級的各類好處,書中也是雙面的簡單的介紹了一下,那麼這些證對咱們職業發展是真的有好處嗎?仍是隻是浪費時間考取無用的證書呢?
第三章(52頁)專與精的關係
做者談到街頭賣藝的單人樂隊,一我的能夠會多種樂器,而與之對立的是隻研究一種樂器的樂手。很明顯表達前專後精,比如全棧工程師與運維工程師運維不一樣的模塊。
疑問:如今互聯網公司成兩種形式,先後端分離或者就是前面提到的全棧工程師。據我瞭解Python和PHP作全棧工程師仍是比較不錯的,那爲何就成了街頭賣藝了呢? 的確術業有專攻,可是爲何如今社會上都須要會多項技能的人呢?就好比你技術強而後管理上又有建樹,又或技術+英語,技術+文檔撰寫能力,公司豈不是更應該喜歡花更少的錢來請人作相同的事情嗎?
第八章(151)軟件需求之用戶需求
文中提到人們爲了解決現實社會和生活中的各類問題,要求助於軟件,須要替用戶想到他們的需求。
疑問:在開發軟件時,咱們如何去正確的找準市場定位與分析客戶的需求?這類問題書中提到的軟件尋找需求,但是用戶是多變的,如何能保證精準呢,是不是用到當下流行的大數據技術,還有當用戶信息量不夠時,是否是就作不到精準定位?在沒有這一技術時,是否是沒法定位到用戶的需求,產品就只能不斷的修改?
第十三章(277)各類測試方法
書中提到單元測試,構建驗證測試,驗收測試,搜索式的測試,迴歸測試,夥伴測試等等。那麼問題來了
疑問:咱們如何更好地進行軟件的測試,而且要下降測試成本,即可以對各類可能會發生的狀況進行測試,雖然上述各類測試方法,那怎麼找到一些潛在的難以發現的bug,而且提升測試效率?常常聽老師說,沒有完美的軟件,只有更好的軟件,合格的軟件,那麼軟件須要經過什麼樣的測試才能算合格?
第十六章(370)創新和做坊
做坊很容易被新技術拋下,落後的絕技也就沒有多大用處了,想開做坊的人,有些有能力的做坊,每每能找到合適的渠道和空間,實現本身的價值。
疑問:在當下這個時代,人們不談「做坊」了,如今的「雲」,「大數據」,「人工智能」,和「創新」纔是討論的熱點。如今國家響應着新技術的發展,開設了大數據專業,人工智能等專業,那是否軟件工程就變成了前面提到人們不談了的「做坊」?如今的軟件工程面臨着什麼樣的難題,軟件工程在新興專業以及新興技術下將如何繼續發展?又或者說軟件工程的下一個變革的方向將會在那一部分?
俗話說,三分手藝,七分傢伙,手藝好還要傢伙妙,拳頭再硬也比不上錘子。孔夫子也說 「 工欲善其事,必先利其器。」可見,利器之重要性,那麼咱們就來看看目前流行的源程序版本管理軟件和項目管理軟件。
Git 是一個開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。
Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Git 與經常使用的版本控制工具 CVS, Subversion 等不一樣,它採用了分佈式版本庫的方式,沒必要服務器端軟件支持。
Git是目前世界上最早進的分佈式版本控制系統。
Github是一個代碼託管平臺和開發者社區,開發者能夠在Github上建立本身的開源項目並與其餘開發者協做編碼。創業公司能夠用它來託管軟件項目,開源項目能夠免費託管,私有項目需付費。GitHub能夠託管各類git庫,並提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不一樣,GitHub的獨特賣點在於從另一個項目進行分支的簡易性。爲一個項目貢獻代碼很是簡單:首先點擊項目站點的「fork」的按鈕,而後將代碼檢出並將修改加入到剛纔分出的代碼庫中,最後經過內建的「pull request」機制向項目負責人申請代碼合併。已經有人將GitHub稱爲代碼玩家的MySpace。在這裏我又要打個廣告了,本人github:https://github.com/ordinaryload 歡迎前來打擾。
TFS是一個應用軟件生命週期管理(ALM)軟件,是一個軟件研發平臺產品,其功能覆蓋了軟件研發過程當中的全部環節(包括源代碼管理)和全部角色。
Mercurial與通常傳統的版本控制系統的最大區別在於分佈式的概念。所謂分佈式,就是指沒有一個所謂的集中的中心(central)庫,這個庫通常由svn server(svn),vss administrator(vss)控制,而Mercurial就沒有這樣的一個庫,因此使用版本控制的時候甚至都不須要一個administrator和server,本地直接建庫,直接就使用,任何一個庫均可以做爲中心庫,每一個庫在Mercurial看來都是平等的。
----------------------------------------------------------紙上得來終覺淺,絕知此事要躬行---------------------------------------------------------