前面筆者曾經寫過一篇關於IT從業者的職業道路文章(見筆者文:IT從業者的職業道路(從程序員到部門經理) - 項目管理系列文章)。而後有讀者提建議說寫寫技術方面的路線,因此就有了本文。本文從初學者到思想者的四步方面對IT從業者的技術路線作了闡述(見筆者文:IT從業者的學習規劃 - 學習者系列文章開篇),從淺到深的對技術路線須要學習的內容作了敘述,後續會對學習者系列文章進行書寫,本文就當作該系列文章的一個版圖吧。javascript
對於技術路線,筆者認爲,在工做之餘,就該自我主動的去學習技術和業務方面的知識。一方面是自個人技術學習,另外一方面是項目團隊的培訓,還有一方面就是公司內部請老師來進行作培訓。技術的學習,主要是要有系統的學習,不然就象零碎的東西同樣,可貴到好的效果。因此,對於IT軟件從業者來講,就是要把握好時間,讓本身充分的獲取知識,以提升自身的能力,從而提升自身的競爭力。下面就對技術路線作描述:css
(因爲如今基本上是ASP.NET,JAVA,PHP三大陣營,因此本文只給出了相關的資料,對於移動端開發見入門到精通章節)
1、基礎前端
先從基礎方面的技術開始吧。軟件從業者,剛開始時須要學習基本的內容,這樣才能儘快的適應項目環境,而後才能更好的融入項目團隊,更好的爲項目服務。java
一、 HTML。jquery
先從HTML開始進行描述。HTML是一種文本標記語言,也是全部B/S項目的基礎內容。到目前爲止,HTML在經歷了互聯網的衝擊以後,已經走到了HTML5第五個版本,內容也愈來愈完善了。做爲B/S方向的語言,HTML的簡單性、易學性和行業標準性已經表現無疑。因此,對於軟件從業者來講,HTML是最基本的須要學習的內容。筆者也曾經簡要的對HTML語言作了描述(見文:HTML學習 - IT軟件人員學習系列文章 )。下面提供學習HTML語言的相關書籍:css3
5日學會動態HTML HTML5開發技術 HTML5參考手冊 HTML5從入門到精通
二、 CSS。程序員
CSS做爲B/S方向的一種重要的渲染HTML的內容知識,其重要性也是不言而喻的。CSS是配合HTML語言的知識,其語法也簡單,主要是要記住那些重要的標記。CSS現今已經發展到了CSS3第3版本,功能上也提升了不少。筆者也曾經對CSS內容作了概要描述(見文:CSS學習 - IT軟件人員學習系列文章 )。下面提供學習CSS語言的相關書籍:web
CSS層疊樣式表 CSS經典教程 css3參考手冊 DIV+CSS 網頁佈局經常使用基礎知識 HTML與CSS入門經典第七版 css樣式表中文手冊
三、 Javascript。算法
Javascript是一種解釋性的語言,它爲HTML網頁提供了動態交互功能。尤爲是AJAX在這些年的發展,Javascript的發展也更加迅速了,同時也被業界更多人所關注,因此就有了好幾種的Javascript庫,好比下面的jQuery,以及其它的MooTools,Node.js,Protorype,Dojo,ExtJS等等。筆者也曾經對JS內容作了概要描述(見文:Javascript學習 - IT軟件人員學習系列文章)。下面提供學習JS語言的相關書籍:數據庫
1500個前端開發經常使用JavaScript特效 JavaScript chm Javascript的OOP編程PPT JavaScript各類效果封裝 JavaScript權威指南中文第4版 javascript入門教程(8章齊全版) javaScript語句大全2015 VS2010_Javascript插件2015 精通JavaScript2015 悟透JavaScript2015
四、 jQuery。
jQuery做爲JS的一個最流行的庫,其發展仍是挺迅速的,目前版本是1.11.3版。jQuery的做用是寫得少代碼,卻能作更多的事情,這個也是筆者喜歡jQuery的緣由之一。如今網上已經有不少的關於jQuery的封裝的各類插件和類庫函數(見筆者前面的文:jQuery擴展插件和拓展函數的寫法(匿名函數使用的典型例子) 和編寫Javascript類庫(jQuery版) - 進階者系列 - 學習者系列文章),這樣就很方便讀者去進行前端代碼的編寫了。下面提供學習jQuery庫的相關書籍:
jQuery基礎教程]第2版 jquery基礎教程中文版2015 jQuery權威指南 精心爲jQuery初學者整理的實例代碼集 鋒利的jQuery
五、 Dreamwave。
Dreamwave做爲Adobe公司的重量級產品,它的問世給衆多的網頁編程愛好者以及前端工程師所喜歡。作爲三劍客之一(其它兩個是FLASH和Firework),Dreamwave在項目中用來作原型仍是比較合適的,速度上也很快。不過筆者對Dreamwork不是很熟悉,因此這裏介紹就簡要些,後續將會對Dreamwave作詳細的介紹。下面提供學習Dreamwork的相關書籍:
Dreamweaver.CS5中文版標準教程
六、 PhotoShop。
PhotoShop是Adobe公司的一款圖片製做處理軟件,在經歷了這些年的發展以後,PS已經比較成熟了。做爲美工所流行使用的軟件,PS可謂是實至名歸。筆者對PS的熟悉程度不大,後續將會對其操做進一步的描述。下面提供學習PS的相關書籍:
中文版Photoshop.CS6徹底自學教程
七、 ASP.NET。
ASP.NET做爲微軟.NET體系裏的重要組成部分,獲得了微軟合做夥伴以及衆多的微軟編程愛好者的歡迎。ASP.NET在經歷了好幾個版本的更新以後,其內容也愈來愈充實了。目前ASP.NET的版本是4.0版,其中增長了很多新的內容,相比2.0版仍是有挺大的改進。下面提供學習ASP.NET的相關書籍:
ASP.NET編程寶典(C#)十年典藏版
ASP.NET_MVC代碼生成器
ASP.net4.0從入門到精通
Asp.Net知識錦
asp.net深刻編程
ASP.NET基礎教程C#案例版
asp.net 2.0 數據庫入門經典
徹底手冊:asp.net 2.0網絡開發詳解
asp.net 2.0動態網站開發教程
asp.net web服務高級編程
asp.net程序設計教程
asp.net技術內幕
asp.net數據庫開發實用工程案例精選
八、 C#。
C#是微軟.NET體系裏後臺代碼中的佼佼者,它融合了C語言的語法風格和VB的操做風格。在VB.NET和VC.NET裏具備重要的競爭力,也是目前用得最多的.NET後臺語言。C#也隨着.NET體系的發展而在發展,雖然微軟在.NET體系裏學習JAVA體系的架構模式,前後推出了相關的好比MVC模式,可是微軟在.NET開源問題上沒有JAVA那麼好,技術社區裏開源的項目也不比JAVA多,不過仍然擋不住更多的軟件工程師去是用C#。下面提供學習C#的相關書籍:
c#多線程socket框架
改善C#程序的50種方法 c#API大全 C#教程 C#複合控件開發技術 C#控件開發 C#語言規範版本4.0 C#程序開發範例寶典
C#網絡核心編程
http://pan.baidu.com/s/1kTzQgRX 密碼:2jkk
九、 JAVA。
JAVA是開源業界的一個重要的編程語言,它提供了不少開源的類庫等內容。在開源領域,JAVA是衆多開源軟件和開源項目的開發者和使用者。JAVA由於開源,因此獲得了衆多編程愛好者的喜好,同時也是由於開源,JAVA也獲得了比較迅速的發展。可是,JAVA在這些年裏,變化不是很大,不少公司仍然在使用SSH(Spring,Struct,Hebernate)這個模式來進行開發。固然,這個跟項目大小,規模也有關係。下面提供學習JAVA語言的相關書籍:
http://pan.baidu.com/s/1ntIcXE5 密碼:o765
十、 PHP。
PHP是三大陣營(ASP.NET,JAVAEE,PHP)中的一員老將了。其發展也比較獲得了衆多愛好者的歡迎。不過,按筆者的經驗,PHP貌似只是停留在論壇等方面的應用,在企業內部卻是挺少使用到。論壇PHPWind就是一個很好的例子。筆者對PHP的認識也只停留在互聯網論壇的應用上,雖然在書籍中有介紹PHP使用在電子商務網站上,可是在目前爲止,PHP的發展估計沒有ASP.NET和JAVA發展那麼迅速。下面提供學習PHP語言的相關書籍:
http://pan.baidu.com/s/1i3pKSPR 密碼:k543
2、編碼規範
編碼規範是學習編程的重要組成部分,也是項目組在開發前作的編碼準備。編碼規範是一套定義各編程語言編寫代碼程序的規範內容,在編程領域具備重要做用。筆者建議,在公司級別和項目組級別都要造成一套編碼規範體系,用來約束軟件工程師編寫代碼的風格。
一、 C#編碼規範。
對於C#來講,它的代碼風格與C語言風格相似,因此編程上手很容易。其編碼規範在筆者這裏也有一套,這裏提供下載:
http://pan.baidu.com/s/1gdB3AXd 密碼:dv07
二、 JAVA編碼規範。
JAVA的語法風格也與C語言相似,與C#也相似,二者只是在部分語義方面不太同樣而已。可是JAVA也有本身的一套編程規範,這裏提供下載:
http://pan.baidu.com/s/1i3vk2yh 密碼:4nuu
三、 SQL SERVER編碼規範。
做爲微軟的重要成員之一,SQL SERVER是一套容易上手的數據庫軟件。SQL SERVER目前的版本是2014,可是在筆者看來,其變化較大的應該是數據庫內部的處理機制和相應的函數庫的增長。做爲數據庫系統,咱們在對數據庫進行編碼的時候,一樣也要有一套編碼規範。下面提供下載:
http://pan.baidu.com/s/1mgveuCg 密碼:i89y
四、 ORACLE編碼規範。
ORACLE是甲骨文公司推出的一款很是重要以及效率很高的數據庫產品。ORACLE在經歷了幾個版本的變化以後,更大的按筆者的經驗就是往網絡方面去靠攏,從9i版本開始,這個i就是internet的意思。這裏就能看出甲骨文公司對這款數據庫產品的重要程度了。下面提供ORACLE數據庫的編碼規範下載:
http://pan.baidu.com/s/14SlLc 密碼:abox
3、入門到精通
如今,有不少的入門到精通的書籍,這類書籍的水平,基本上處於中下。一方面是要照顧到初學者,另外一方面要對有必定基礎的軟件工程師進行學習指導。這類的書籍,說學完以後就精通,這個仍是有點牽強。把這類書籍放在這裏描述,主要是你們對相關的編程領域的語言和數據庫等內容作個介紹,讓你們在初學之餘可以更快的上手,更快的學習到該書中所描述的內容,更快的提升自身的能力,更快的融入到項目組內,更好的爲整個項目服務。入門到精通系列不少都是國人所寫,主要針對國內的環境所進行編寫的,因此,也就可以更快的適應國內的編程領域的要求。下面對部分入門到精通系列的書籍提供下載:
http://pan.baidu.com/s/1i3y8qFj 密碼:qeme
4、數據結構
數據結構是全部編程語言的基礎。有說法是:數據結構+算法=程序。可見數據結構的重要性。數據結構不只僅對編程語言的語法產生了影響,也對編譯後的程序有影響,也對程序在內存中的運行有影響。
一、 C#數據結構。
C#數據結構比較簡單,由於它的語法是參考C++語言的語法,因此在數據結構上也與C++語言相似,同時也有其自身的特色,好比泛型等等。下面提供C#數據結構的書籍下載:
http://pan.baidu.com/s/1dDCTAKD 密碼:kzu8
二、 JAVA數據結構。
JAVA語言的數據結構與C#語言相似,一樣的由於它的語法是參考C++語言的語法。JAVA語言的數據結構也有其自身的特色。下面提供JAVA語言數據結構的書籍下載:
http://pan.baidu.com/s/1mg9r5bU 密碼:1bub
5、數據庫
數據庫是全部存儲系統的基礎。各個數據庫有自身的特點,並且它們的數據結構也不近相同,所提供的內置函數也不近相同,象SQL SERVER的處理機制和ORACLE的處理機制也不近相同,這個也是由其存儲結構的不一樣所形成的。
一、 SQL SERVER。
SQL SERVER數據庫是一款容易上手的數據庫,由於微軟的支持和社區軟件工程師的推動,SQL SERVER在全球已經有必定的市場份額。做爲微軟的產品,其最新版本已經到了2014,在網絡上可以下載到該產品。筆者在使用SQL SERVER的時候,感覺最多的是其用戶體驗的良好程度,一方面在於微軟對該產品開發上的支持,另外一方面在於微軟對該產品作了大量的市場調查,就跟WINDOWS產品同樣,其發展是跟用戶的反饋有很大的關係。下面提供SQL SERVER數據庫學習的書籍下載:
http://pan.baidu.com/s/1uIObW 密碼:hets
二、 ORACLE。
ORACLE數據庫是甲骨文公司開發出的一套產品,其在全球一樣具備很大的市場。在互聯網逐漸擴大化以後,ORACLE也順勢推出了9i等基於網絡的版本。目前ORACLE的版本最新的是12c。能夠說,ORACLE比SQL SERVER的效率和性能要高不少,特別是大數據量的時候。因此,在系統要求數據庫負載比較大的狀況下,建議使用ORACLE數據庫。下面提供ORACLE數據學習的書籍下載:
http://pan.baidu.com/s/1jG1ofcy 密碼:76nf
三、 MySQL。
MySQL也是一款效率比較高的數據庫。在網絡領域,Apache+PHP+MySQL是一款經典組合的軟件系統。MySQL的在實際的使用過程當中,用戶反饋其仍是具備必定的效率和性能的。筆者對MySQL的瞭解也是停留在XAMP組合系統上,也是PHP的經典開發模式,這個從PHP語言的應用上可以看得出來。下面提供MySQL數據庫學習的書籍下載:
http://pan.baidu.com/s/1i3s2BHz 密碼:8auf
四、 SQLite。
SQLite是一款小巧的基於文件的數據庫。它支持.NET系統,應用仍是比較普遍的。不過,SQLite數據庫在性能和數據結構上有必定的限制,其效率仍是比較高的。與微軟的ACCESS數據庫比起來,SQLite有其自身的特點,根據筆者的經驗,仍是ACCESS的性能要更高一些。這兩款數據庫都是基於文件的,不須要額外的安裝在主機上,因此其市場佔有率仍是挺高的。下面提供SQLite學習的書籍下載:
http://pan.baidu.com/s/1sjDRe4P 密碼:kdfp
6、UML
UML建模語言是目前流行的建模方面的語言。其發展到今天,離不開衆多的軟件設計師的要求和建議。UML具備本身的特色,與數據庫建模相相似。目前世界上已經有不少公司採用UML建模來進行軟件系統的開發。一方面是UML語言的圖形化語法比較簡單,容易上手,另外一方面是UML的普遍應用,促使它的發展比較快速,可以經受住歷史的考驗。
http://pan.baidu.com/s/1sj1FO5Z
密碼:rqs1
一、 Rational Rose。
Rose是IBM公司推出的一款強大的UML建模工具,目前版本是2007。其基於UML語言,提供了衆多的組件,可以對複雜的軟件系統進行分析和設計,其市場佔有程度仍是比較大的。筆者使用這款軟件很少,更多的是用來查看UML建模的內容。下面提供該工具學習的書籍下載:
http://pan.baidu.com/s/1jGH3hOy 密碼:u1mz
二、 Enterprise Architect。
EA是一款來自澳洲的UML建模工具。其小巧程度以及用戶體驗良好性獲得了衆多軟件工程師的歡迎。固然,它的價格不菲,因此筆者只能使用註冊機進行處理了。筆者用這款軟件比較多一些,其內置的文件包已經將項目建模的內容進行了定義,可以讓用戶更快的上手。下面提供EA學習的書籍下載:
http://pan.baidu.com/s/1kTlDa31 密碼:1zz8
7、設計模式
在軟件工程領域,設計模式是不可或缺的。設計模式是前輩工程師總結下來的一套方法,讓咱們可以在對軟件系統進行設計的時候少走彎路,更好更快更準確更完善的把系統的架構設計作好。
一、 HTML/CSS設計模式。
可能有些讀者對HTML/CSS比較瞭解,可是對於其設計模式多是第一次據說。這套設計模式是基於HTML/CSS的,應用於網頁開發上,讓開發者可以快速準確的把網頁的結構設計得更好。下面提供學習書籍下載:
http://pan.baidu.com/s/1ntqsAoT 密碼:l34q
二、 Javascript設計模式。
JS也是可以使用面向對象方法來進行描述的語言。因此,既然是面向對象的,它也有本身的設計模式。固然,筆者對JS的理解有限,對於其設計模式也是理解有限,這裏就不詳細描述了。等後期積累的經驗後再寫在學習者系列文章中吧。下面提供學習書籍下載:
http://pan.baidu.com/s/1eQk1pNc 密碼:e76q
三、 C#設計模式
C#設計模式一樣是基於C++的,因此其設計模式一樣與C++的設計模式相同,只不過是使用C#語言來對設計模式進行描述而已。設計模式在筆者的博客上有轉載,具體能夠去進行學習。下面提供學習書籍下載:
http://pan.baidu.com/s/1kTAF3Np 密碼:p6x6
四、 JAVA設計模式
JAVA設計模式與C#設計模式相似,只不過是使用JAVA語言來進行描述。JAVA設計模式也有本身的特色,一樣可以應用於後臺代碼架構的設計上。下面提供學習書籍下載:
http://pan.baidu.com/s/1jGGNi9S 密碼:57l4
8、架構設計
架構設計包括B/S和C/S架構的設計,在筆者的博客中有相關文章進行過描述(見文:VB程序架構分析和Magical平臺類庫代碼分享 )。從軟件工程師到架構師的過程不是一蹴而就的事情,這個須要不斷的學習積累和在工做中去進行實踐。到目前爲止,筆者對架構師的學習也僅限於一個C#等小圈子裏,固然,筆者不是專業的架構設計師,因此對架構設計的描述也僅限於此了。下面提供學習書籍下載:
http://pan.baidu.com/s/1mgKgUmO 密碼:025b
9、學習路線圖
在IT軟件領域,筆者認爲,系統化的學習編程內容比零散的學習更可以讓項目組成員所接受和更快的獲得提升。因此,這裏提供了.NET和JAVA的學習路線圖(路線圖來自網絡,本文僅作參考)。
一、.NET學習路線圖
先看下圖:
從上圖可以看出,每一個階段都有須要學習的內容,每一個階段與上一個階段的交互和耦合性不是很大。第一個階段,主要從語法方面去進行學習。第二個階段,開始由數據庫入手進行學習。第三階段,從網絡開發方面進行學習。第四階段,主要從ASP.NET方面進行學習。第五階段,開始着重與移動端和MVC的學習。
上圖是一個概要圖,僅作參考。其中須要學習的內容仍是不少的。建議你們根據工做須要,從B/S或C/S方向開始着手,逐漸的進行系統學習。固然本文上面的章節已經提供了圖中部份內容書籍的介紹,可是因爲篇幅有限,暫時介紹到這裏。後續若是你們有什麼須要瞭解的,留言給我,我將對相關內容作闡述。
二、JAVA學習路線圖
相比C#的學習路線圖,從上圖中咱們可以看出JAVA學習須要時間和耐心。第一階段,主要從語法入手。不管是JAVA SE仍是JAVA EE。第二階段,從數據庫入手進行學習。第三階段,從網頁編程開始學習。第四階段,也是從網絡編程方面進行學習。第五階段,從移動端開發進行學習。第六階段,主要專一於企業內部開發方面進行學習。
JAVA學習路線,與C#的學習路線相相似,由於它們的語法都是基於C++語言過來的。因此,在學習上存在共同點。不過,JAVA比C#要學習更多和編寫更多的代碼。從而,JAVA在編程上所佔用的時間就更多了,這個項目經理要根據不一樣的編程語言來對功能點的劃分,以及對項目的時間把控上要注意到。
10、標準定義
這裏指的標準是指整個行業領域內的標準的定義,好比HTML語言的語法、語義定義等等,在文《IT從業者的學習規劃 - 學習者系列文章開篇 》中屬於思想者這個境界中的階段,在整個學習規劃領域中是最高等級。這個標準是由衆多的精英組成的各類組織進行的描述的定義。其實在項目組中,技術經理就須要對項目語言的編碼規範,架構師對項目的架構設計,也是一種標準的定義,只不過這個定義是相對於項目來講的,至關於整個領域標準的子類庫同樣。下面對標準定義的組織網站提供出來,讓你們可以對他們的工做有必定的瞭解,而且對整個領域的標準有必定的理解。
本文主要從文《IT從業者的學習規劃 - 學習者系列文章開篇》中定義的四個階段入手,由淺入深地描述了各個階段須要學習的內容。從文中,筆者對IT軟件人員的技術路線作了闡述,其中還將要學習的書籍提供了下載,但願能對你們有所幫助(本文主要對B/S和C/S的內容作了描述,對於移動端的描述不是不少,請見諒)。本文做爲「IT軟件人員學習系列文章」的母版,後續將會繼續對「IT軟件人員學習系列文章」這個系列進行描述,其實也是對本文的一個擴展的說明吧。本文在上述的說明過程當中,有什麼不明白的地方,歡迎你們批評指正。
ETC.僅以此文給那些在技術中掙扎的IT軟件人員,也但願你們可以系統的進行學習,提升自身的能力水平,同時也提升自身的市場競爭力。