一晃研究生畢業參加工做也已經八、9年,這些年搞過嵌入式、web開發、移動應用、IT諮詢、項目集成,零零種種到現在也不知是好事仍是壞事。今天幾個項目進度不錯,上線的版本問題竟然尚未問題反饋,真是XX都笑歪了。抽下午的時間把本身這些年的技術梳理出來,能力有限,只算是羅列一些點吧(固然只要我列出的,多少是我我的在實際項目中接觸過的),但願能給不論是新入行,仍是試圖作轉型的從業者帶來一些幫助。前端
大體分爲四類,詳見思惟導圖:web
工程方法領域的積累,其實不只僅包括軟件產品的開發,它對硬件類,集成類項目都有指導意義。我我的理解這部分的第一個難點就是對需求的描述,從表面上看你須要積累的是如何用用例圖、時序圖、狀態機等方式去描述需求,造成需求規格,從內在看,關鍵在於從不一樣的角度理解需求,好比站在用戶角度,和站在產品提供的功能角度,這個粒度是不同的,須要抽象和總結。sql
另一個點是功能性和非功能性(可能不一樣的公司會有不一樣的表述方式),非功能性從可用、可靠、可測試、可服務等角度,看系統須要額外增長的需求,用戶一般只能從功能角度講,最多談到性能。這部分是很是靠積累的,甚至應該建議在部門或公司層面積累,造成相似checklist的指導傳承下去。數據庫
這裏我也單獨提到了軟件的設計,主要是理解什麼是結構化的設計(好比單片機軟件)和OO的設計,設計模式我以爲能夠理解成是一種優秀實踐,多看多用就好。編程
這個方向主要針對集成類項目,可能軟件研發或互聯網的人員會接觸比較少,大可能是諸如智慧園區、智慧醫療、平安城市等項目。在這種項目裏軟件只是其中一部分,還包括機房、網絡、專業設備等。這個領域技術層面的積累主要是兩方面,一方面是共性的產品,好比機房裏用什麼服務器、磁盤陣列、防火牆;網絡的一些專網、內部VLAN的劃分,經常使用的好比視頻監控、門禁的產品等;後端
另一方面就是深刻具體業務了,這塊大多屬於售前或諮詢的領域,是個越老越吃香的活,固然也沒那麼好轉行業的,靠項目慢慢熬,直到有一天連客戶會問你這塊建議怎麼搞、要搞那些的時候,你就牛了。設計模式
這裏包括集成類項目 和 研發類項目的管理;研發管理根據經常使用的流程能夠分爲敏捷和瀑布,這方面做爲管理者,重要的是要理解它的各個節點,好比敏捷,各個迭代到底要達成什麼樣的要求;好比瀑布,何時算需求轉設計,何時算設計轉開發,何時算開發轉測試,你要能在這些關鍵的里程碑進行管控並基線化;緩存
另一方面就是對優秀實踐的引入,舉幾個例子,比如持續集成、站立會議、代碼檢視、測試驅動開發、結對編程等等,你要能根據團隊的實際狀況則優而行、量力而行。 服務器
我只因此把項目管理放在一塊兒,是由於從質量、成本、進度等領域看,項目管理是共同的,但集成項目須要額外在多點要求,好比合同、招投標、驗收等等。網絡
研發領域梳理我主要針對開發者,分爲嵌入式、移動和web三類;(PC端開發暫時不羅列在裏面,感受如今作的人不多了吧:雲計算和大數據考慮其火爆程度,單獨羅列出來)
順帶要提的是數據庫,我認爲如今的主流仍是關係型數據庫,nosql應該是利用其特殊的存儲方式在某些領域給與補充,所以對nosql咱們更多要關注到底用在什麼場景,是真正有價值 的;
PS:
一、我我的參加工做後一直是偏軟件的,所以也是隻能站在這個角度看技術全景,固然也必定有很大的侷限性,但願各位指正;
二、原本想分領域描述,忽然發現工做量不小啊,先把思惟導圖放上來,具體的文字描述有時間逐步補充吧:)