《構建之法》第一次做業

這個做業屬於哪一個課程 課程連接
這個做業要求在哪裏 做業要求的連接
我在這個課程的目標是 學習系統分析與設計的能力,包括開發模型、代碼規範等
這個做業在哪一個具體方面幫助我實現目標 軟件工程專業能力提高
我本身的博客 夏小樹的博客園

1、我的的自我介紹

一個愛刷B站和知乎的人,體育愛好羽毛球,不怎麼看流行小說(除了《三體》和《龍族》),對日漫還沒入坑但元旦想去日本旅個遊。仰慕各類大佬,目前在樂程團隊「划水」。html

2、閱讀與思考

1.回想一下你初入大學時你對所在專業的暢想,
  • 當初你是如何作出選擇你所在專業的決定的?
    其實我原本是經管院的經濟學專業,可是做爲一名理工直男看到那一堆要背的東西就頭大,轉個專業的強烈想法打敗了懼怕禿頭和找不到女友的恐懼,如今感受遇到一羣強者仍是很開心的。另外,當時沒有什麼特別的暢想,由於對這個專業不是很瞭解,只知道經管院總喜歡找計科院作網站,作APP。git

  • 你認爲過去一(兩)年中接觸到的課程是否符合你對你本身所在專業的期待,爲何?
    我是轉專業的,C語言自學的,這個入門級的基礎就不說了。後來的數學課以及專業課數據結構與算法、離散數學、程序設計範式等課程也使我受益不淺,打紮實了基礎。因此整體來講過去這一年半接觸的課程仍是很符合個人期待的。github

  • 你以爲你所在的專業是你喜歡的領域嗎,它是你擅長的領域嗎?
    雖然相對軟件工程專業,我以爲我更喜歡大數據,不過這也不影響我到底將來往哪一個方向走。我以爲本科期間專業之間區分度還不是太大,都是在打基礎,無論走哪一個方向,都是可讓咱們走的更遠。算法

  • 未來你會選擇從事和你專業相關的工做嗎?是的話給出你想去的城市、公司和崗位,否的話給出緣由
    會的,不過應該不會是去作網站、APP了,可能偏向於大數據、通訊等(對這兩個方向有點好奇)。
    想去的城市包括杭州(有個故人在那裏)、成都(喜歡這個城市)或者深圳(據說來了就是深圳人)等,想去的公司那必然是華爲了,崗位應該是算法崗。數據庫

2.對照前人們走過的路和描述將來發展,如今的你
  • 自我感受你已經具有的專業知識、技能、能力有哪些?已經寫過的代碼量是多少?描述你作的最複雜的項目/做業。
    已經具有的專業知識、技能、能力大多仍是一些基礎能力,好比C\C++和Python基礎,數學,數據結構算法和一些機器學習的算法。
    已經寫過的代碼量不是特別清楚,由於不怎麼作工程項目,之前刷的算法題累計卻是有一點代碼量。前先後後大概在3~4萬吧。
    作過最複雜的項目是一個關於石油的機器學習算法研究。安全

  • 離成爲一個合格的本科畢業生,在專業知識、技能、能力上還差距哪些?
    計算機網絡,操做系統,數據庫等專業知識目前還沒掌握。同時對一些我感興趣的領域如大數據、通訊等知識還不夠了解。服務器

3.目前是一我的生選擇的十字路口,考研、工做、考公、出國,不一樣的選擇在大三就有不一樣的努力方向。而不管考研仍是工做的每條路徑,也有許多不一樣的分支
  • 對照以上你閱讀的前人們的經歷,你的選擇是什麼?
    考研
  • 在這種選擇下,你認爲你相比其餘同窗來講有何優點,有何劣勢?
    優點:學術層面接觸到的要高一些,並且能學到本身最感興趣的領域知識
    劣勢:少工做幾年,實戰經驗未積累
  • 針對你的選擇,你給本身的大三設定的規劃安排是什麼?
    大三上繼續學習專業課
    大三下準備考研
  • 你對於實現本身的夢想已經作了或者計劃作什麼樣的準備?
    養好精神,逐步回到正常的做息,減小對電子產品的依賴

3、疑惑問題

  1. 第四章兩人合做。書上68頁
    提到註釋使用的字符應該只用ASCII字符,不然會影響程序的可移植性,這裏我不是很懂,一是移植性,二是爲什麼使用ASCII字符。想起以前在使用GBK編碼後去其餘平臺會出現亂碼,提倡只使用utf-8字符集,這二者有什麼關係或者衝突麼?
  2. 第四章兩人合做。書上69頁
    4.3.2小標題,認爲函數最好有單一的出口,爲了達到這一目的,可使用goto語句,但是以前咱們接收到的思想是goto語句破壞了程序結構,使程序可讀性變差,儘可能不要有goto語句。如何權衡?
  3. 第八章需求分析。書上155~156頁
    在談到作用戶調研時使用的焦點小組方法,提到討論者對於他們不熟悉的事物(如全新市場,顛覆式的創新)不能表達有價值的想法,那麼該如何作需求調研呢?用相似事物誘導討論者麼,那這又是另外一個弱點——討論者容易受到主持人有意或無心的影響。因此,該如何作呢?
  4. 第六章敏捷流程。書上117頁
    提到Scrum Master不是一個官,而是一個沒有行政權力的溝通者,還要在團隊中作具體的工做,那麼這個Scrum Master究竟是一個什麼樣的角色,技術力壓衆人的大牛麼?在團隊中是否還須要負什麼重要責任呢?
  5. 第十一章軟件設計與實現。書上226頁
    ERD的小標題彷佛有點小問題,ERD應該翻譯爲「實體聯繫圖」而不是「實體關係圖」,已獲得數據庫原理及應用老師證明。

4、瞭解和調查源程序版本管理工具

1.Git

Git一個開源的分佈式版本控制系統,能夠有效、高速地處理從很小到很是大的項目版本管理,是爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
(1)優勢:網絡

  • 適合分佈式開發,強調個體
  • 公共服務器壓力和數據量都不會太大
  • 速度快、靈活
  • 任意兩個開發者之間能夠很容易的解決衝突
  • 可本地離散使用

(2)缺點數據結構

  • 中文文檔較少。
  • 項目保密性差
2.SVN

SVN是一個開放源代碼的版本控制系統,經過採用分支管理系統的高效管理,簡而言之就是用於多我的共同開發同一個項目,實現共享資源,實現最終集中式的管理。
(1)優勢:機器學習

  • 管理方便,邏輯明確,操做簡單,上手快。
  • 易於管理,集中式服務器更能保證安全性。
  • 代碼一致性很是高。
  • 有良好的目錄級權限控制系統。

(2)缺點

  • 對服務器性能要求高,數據庫體量大。
  • 必須聯網,必須鏈接服務器
  • 不適合開源開發。
  • 分支的管控方式不靈活
3.Github:

Github是一個集成了git的服務。它能夠以網頁或者客戶端的形式,幫助用戶把git本地的數據提交到遠程的服務器裏。一樣的服務還有git oschina,git 京東,git csdn。這些服務都是免費的。
(1)優勢:

  • 能夠互相吸收經驗,借鑑別人的代碼

(2)缺點:

  • 對中文不夠友好
  • 公開代碼才免費,創建私人倉庫須要交錢
相關文章
相關標籤/搜索