?

ITEEDU

計算機技術體系介紹

2018年,收獲良多,當然不只是計算機領域。2019年準備再梳理一下技術體系,無體系不成方圓。干開發已經5年有余,心中留下諸多遺憾,現在水平高級是有的,也算個水貨架構師。大話空話不要放,多聞闕疑,多見闕殆,好好學習,天天向上。

軟件開發常用工具介紹

工欲善其事,必先利其器。這里介紹的工具是我認為比較好的,經常會用到的。

主要介紹集成開發環境(IDE)、代碼編輯器、版本控制、FTP工具、數據庫管理工具、提高開發效率的工具,還有其它專項開發時用的工具。

現在開始學習開發工具

計算機科學技術基礎知識

計算機科學發展日新月異,新知識層出不窮,有些要溫故而知新,反復回味,有了只要了解就可以,用的時候現學現用。

計算機的基礎知識就是那種值得反復回味的,從小白走到專家,每個階段回看都有不同的發現。

基礎1:計算機體系結構

CPU、內存、硬盤、輸入輸出、程序,能說出計算機怎么啟動,一個程序比如1+1是怎么存儲、怎么執行、怎么顯示可以算是及格吧。

基礎2:匯編語言

其實匯編一般人用的不多,不同平臺指令不同,其匯編語言差異也比較大,但編程的思想是一樣的。

理解匯編對學好C是至關重要的,而C/C++是較高層次技術人員必備技能之一。

這里推薦一個實踐方案,自己寫一個小操作系統,推薦兩本書,按著上面的來基本沒問題:

《30天自制操作系統》:一個日本人寫的,但寫的真的很好。

《自己動手寫操作系統》:這個是中國人寫的。

我在看完《30天自制操作系統》這本書,并實踐了一下后,對計算機結構、匯編、C都有了更深入的認識。

由于是工作后發現的,沒有用多時間更深入透徹的實踐,達到了如指掌一直是心中的遺憾,如有時間一定補上。

基礎3:C語言

想學好C語言還是要真正做些實踐,《30天自制操作系統》是對操作系統的實踐,《python 源碼剖析》是對面向對象語言的實踐。

有了這兩種實踐之后,對C語言的使用將達到很高的境界。對于C語言沒有更深入的實踐一直是心中的遺憾,如有時間一定補上。

基礎4:數據結構&算法

線性結構、樹、圖的各種相關知識,比如結構、相關算法、存儲方式等,算法中排序、查找等。

學完大學的數據結構課本可以看《算法導論》這本書,更有深度。

字符集 | 排序算法 | 常用樹結構和其算法

現在開始學習基礎知識

編程語言

基本學差不多就要學主流語言,話說現在各種語言也是非常多,但為了工作至少要精通一門。

現在主流的JAVA、C++、Python根工作需要精通一門,做WEB開發除了JAVA外還要學javascript。

在學習語言的同時,要學習一下設計模式,了解所學語言如何實現各種設計模式。

函數工編程現在越來越流行,可以學一學scala,這是spark大數據平臺標配開發語言。

另外,了解LISP系列語言將對編程語言有新的認識,這里推薦兩篇文章:

Lisp 的本質-深度好文

Lisp之根源

操作系統

根工作需要,了解或深入LINUX操作系統是必要的。

學習基本的命令和shell編程也是必備的。

想深入挖掘linux系統,推薦讀一下《linux from scratch》手冊,LFS是一種從網上直接下載源碼,從頭編譯LINUX的安裝方式,一個定制linux的教程。

關系型數據庫

關系型數據庫是非學不可的,在學了大學的數據庫原理之后,要會做數據庫設計。

sql調優是必須會的,在理解關系型數據庫原理之后才能做出好的設計,才能對SQL調優提高性能。

如有必要,深入學習一種數據庫是非常有必要的,推薦學mysql。

并發編程與網絡編程

并發與網絡是必備的開發技能,其中并發一般是多線程編程,現在主流語言一般都支持多線程編程了。

網絡編程不只是web開發什么的,那是只http協議下的編程,只是一個用的比較多的領域,TCP/UDP協議的編程也是非常有必要掌握的

網絡在大學有專門的課程,還是比較好學的。并發編程是比較難學的,比較依賴于基礎知識和豐富的設計經驗。

方向選擇

IT行業方向還是比較多的,不同的方向選用的技術偏重點不同。

嵌入式方向:偏重硬件、匯編、操作系統,重點語言是C。

WEB開發:偏重網絡、并發、架構,重點語言是JAVA。

游戲開發:偏重圖形、圖像、動畫、3D相關技術,綜合性比較強。

大數據:大數據運維偏重系統與網絡,大數據開發偏重于平臺使用,數據分析師偏重于模型與算法,重點語言是JAVA與python。

人工智能:偏重于模型與算法,重點語言是JAVA與python。

區塊鏈:2018是區塊鏈寒冬,但區塊鏈技術對社會關系的改造必不可擋,我依然看好這個方向。

應用軟件:這個比較雜,系統、中間件、數據庫、桌面軟件,不好說偏重什么。

這只是根據自己感覺分了下類,游戲和WEB開發比較廣泛但前景一般,大數據還沒大眾化前景還不錯,人工智能在高速發展期前景非常好。

另外,從行業劃分電商、政務、金融等,不同行業前景也不一樣,金融當然是比較有前景的。

架構技能

架構要掌握常見的中間件,如消息隊列、緩存、負載等。

主流的如Nginx、Redis,JAVA消息隊列ActiveMQ、kafka等。

這里保留以前整理的內容,另外推薦一本書,《大型網站技術架構_核心原理與案例分析》-李智慧,這是對WEB架構寫的比較好的一本書。

軟件架構師的職責:理解系統的業務需求,制定系統的整體框架(包括:技術框架和業務框架);對系統框架相關技術和業務進行培訓。解決系統開發、運行中出現的各種問題。

  • 掌握基本的架構設計理論:了解“4+1視圖”模型
  • 掌握架構的分層觀點(三層設計)。
  • 了解常見架構視圖類型(要能按照“消費者、視角、元素、關系”四要素對具體架構視圖進行說明)。
  • 了解業界通用的架構設計的方法并能夠清楚描述架構設計成果。
  • 安全設計、性能設計、算法設計。

4+1視圖 | 負載均衡學習筆記

現在開始學習軟件架構師技術

專題技術

很多小眾領域也是非常有價值的,在能力經驗豐富之后這將是一個學習的重點,如密碼術。

開始學習專題技術

?

体彩25选5走势图