前面笔者曾经写过一篇关于IT从业者的职业道路文章(见笔者文:IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章)。然后有读者提建议说写写技术方面的路线,所以就有了本文。本文从初学者到思想者的四步方面对IT从业者的技术路线做了阐述(见笔者文:IT从业者的学习规划 - 学习者系列文章开篇),从浅到深的对技术路线需要学习的内容做了叙述,后续会对学习者系列文章进行书写,本文就当做该系列文章的一个版图吧。
对于技术路线,笔者认为,在工作之余,就该自我主动的去学习技术和业务方面的知识。一方面是自我的技术学习,另一方面是项目团队的培训,还有一方面就是公司内部请老师来进行做培训。技术的学习,主要是要有系统的学习,否则就象零碎的东西一样,难得到好的效果。所以,对于IT软件从业者来说,就是要把握好时间,让自己充分的获取知识,以提高自身的能力,从而提高自身的竞争力。下面就对技术路线做描述:
(由于现在基本上是ASP.NET,JAVA,PHP三大阵营,所以本文只给出了相关的资料,对于移动端开发见入门到精通章节)
一、基础
先从基础方面的技术开始吧。软件从业者,刚开始时需要学习基本的内容,这样才能尽快的适应项目环境,然后才能更好的融入项目团队,更好的为项目服务。
1、 HTML。
先从HTML开始进行描述。HTML是一种文本标记语言,也是所有B/S项目的基础内容。到目前为止,HTML在经历了互联网的冲击之后,已经走到了HTML5第五个版本,内容也越来越完善了。作为B/S方向的语言,HTML的简单性、易学性和行业标准性已经表现无疑。所以,对于软件从业者来说,HTML是最基本的需要学习的内容。笔者也曾经简要的对HTML语言做了描述(见文:HTML学习 - IT软件人员学习系列文章)。下面提供学习HTML语言的相关书籍:
2、 CSS。
CSS作为B/S方向的一种重要的渲染HTML的内容知识,其重要性也是不言而喻的。CSS是配合HTML语言的知识,其语法也简单,主要是要记住那些重要的标记。CSS现今已经发展到了CSS3第3版本,功能上也提高了很多。笔者也曾经对CSS内容做了概要描述(见文:CSS学习 - IT软件人员学习系列文章)。下面提供学习CSS语言的相关书籍:
3、 Javascript。
Javascript是一种解释性的语言,它为HTML网页提供了动态交互功能。尤其是AJAX在这些年的发展,Javascript的发展也更加迅速了,同时也被业界更多人所关注,所以就有了好几种的Javascript库,比如下面的jQuery,以及其它的MooTools,Node.js,Protorype,Dojo,ExtJS等等。笔者也曾经对JS内容做了概要描述(见文:Javascript学习 - IT软件人员学习系列文章)。下面提供学习JS语言的相关书籍:
4、 jQuery。
jQuery作为JS的一个最流行的库,其发展还是挺迅速的,目前版本是1.11.3版。jQuery的作用是写得少代码,却能做更多的事情,这个也是笔者喜欢jQuery的原因之一。现在网上已经有很多的关于jQuery的封装的各种插件和类库函数(见笔者前面的文:jQuery扩展插件和拓展函数的写法(匿名函数使用的典型例子)和编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章),这样就很方便读者去进行前端代码的编写了。下面提供学习jQuery库的相关书籍:
5、 Dreamwave。
Dreamwave作为Adobe公司的重量级产品,它的问世给众多的网页编程爱好者以及前端工程师所喜欢。做为三剑客之一(其它两个是FLASH和Firework),Dreamwave在项目中用来做原型还是比较合适的,速度上也很快。不过笔者对Dreamwork不是很熟悉,所以这里介绍就简要些,后续将会对Dreamwave做详细的介绍。下面提供学习Dreamwork的相关书籍:
6、 PhotoShop。
PhotoShop是Adobe公司的一款图片制作处理软件,在经历了这些年的发展之后,PS已经比较成熟了。作为美工所流行使用的软件,PS可谓是实至名归。笔者对PS的熟悉程度不大,后续将会对其操作进一步的描述。下面提供学习PS的相关书籍:
7、 ASP.NET。
ASP.NET作为微软.NET体系里的重要组成部分,得到了微软合作伙伴以及众多的微软编程爱好者的欢迎。ASP.NET在经历了好几个版本的更新之后,其内容也越来越充实了。目前ASP.NET的版本是4.0版,其中增加了不少新的内容,相比2.0版还是有挺大的改进。下面提供学习ASP.NET的相关书籍:
8、 C#。
C#是微软.NET体系里后台代码中的佼佼者,它融合了C语言的语法风格和VB的操作风格。在VB.NET和VC.NET里具有重要的竞争力,也是目前用得最多的.NET后台语言。C#也随着.NET体系的发展而在发展,虽然微软在.NET体系里学习JAVA体系的架构模式,先后推出了相关的比如MVC模式,但是微软在.NET开源问题上没有JAVA那么好,技术社区里开源的项目也不比JAVA多,不过仍然挡不住更多的软件工程师去是用C#。下面提供学习C#的相关书籍:
http://pan.baidu.com/s/1kTzQgRX
密码:2jkk
9、 JAVA。
JAVA是开源业界的一个重要的编程语言,它提供了很多开源的类库等内容。在开源领域,JAVA是众多开源软件和开源项目的开发者和使用者。JAVA因为开源,所以得到了众多编程爱好者的喜爱,同时也是因为开源,JAVA也得到了比较迅速的发展。但是,JAVA在这些年里,变化不是很大,很多公司仍然在使用SSH(Spring,Struct,Hebernate)这个模式来进行开发。当然,这个跟项目大小,规模也有关系。下面提供学习JAVA语言的相关书籍:
http://pan.baidu.com/s/1ntIcXE5
密码:o765
10、 PHP。
PHP是三大阵营(ASP.NET,JAVAEE,PHP)中的一员老将了。其发展也比较得到了众多爱好者的欢迎。不过,按笔者的经验,PHP貌似只是停留在论坛等方面的应用,在企业内部倒是挺少使用到。论坛PHPWind就是一个很好的例子。笔者对PHP的认识也只停留在互联网论坛的应用上,虽然在书籍中有介绍PHP使用在电子商务网站上,但是在目前为止,PHP的发展估计没有ASP.NET和JAVA发展那么迅速。下面提供学习PHP语言的相关书籍:
http://pan.baidu.com/s/1i3pKSPR
密码:k543
二、编码规范
编码规范是学习编程的重要组成部分,也是项目组在开发前做的编码准备。编码规范是一套定义各编程语言编写代码程序的规范内容,在编程领域具有重要作用。笔者建议,在公司级别和项目组级别都要形成一套编码规范体系,用来约束软件工程师编写代码的风格。
1、 C#编码规范。
对于C#来说,它的代码风格与C语言风格类似,所以编程上手很容易。其编码规范在笔者这里也有一套,这里提供下载:
http://pan.baidu.com/s/1gdB3AXd
密码:dv07
2、 JAVA编码规范。
JAVA的语法风格也与C语言类似,与C#也类似,两者只是在部分语义方面不太一样而已。但是JAVA也有自己的一套编程规范,这里提供下载:
http://pan.baidu.com/s/1i3vk2yh
密码:4nuu
3、 SQL SERVER编码规范。
作为微软的重要成员之一,SQL SERVER是一套容易上手的数据库软件。SQL SERVER目前的版本是2014,但是在笔者看来,其变化较大的应该是数据库内部的处理机制和相应的函数库的增加。作为数据库系统,我们在对数据库进行编码的时候,同样也要有一套编码规范。下面提供下载:
http://pan.baidu.com/s/1mgveuCg
密码:i89y
4、 ORACLE编码规范。
ORACLE是甲骨文公司推出的一款非常重要以及效率很高的数据库产品。ORACLE在经历了几个版本的变化之后,更大的按笔者的经验就是往网络方面去靠拢,从9i版本开始,这个i就是internet的意思。这里就能看出甲骨文公司对这款数据库产品的重要程度了。下面提供ORACLE数据库的编码规范下载:
密码:abox
三、入门到精通
现在,有很多的入门到精通的书籍,这类书籍的水平,基本上处于中下。一方面是要照顾到初学者,另一方面要对有一定基础的软件工程师进行学习指导。这类的书籍,说学完之后就精通,这个还是有点牵强。把这类书籍放在这里描述,主要是大家对相关的编程领域的语言和数据库等内容做个介绍,让大家在初学之余能够更快的上手,更快的学习到该书中所描述的内容,更快的提高自身的能力,更快的融入到项目组内,更好的为整个项目服务。入门到精通系列很多都是国人所写,主要针对国内的环境所进行编写的,所以,也就能够更快的适应国内的编程领域的要求。下面对部分入门到精通系列的书籍提供下载:
http://pan.baidu.com/s/1i3y8qFj
密码:qeme
四、数据结构
数据结构是所有编程语言的基础。有说法是:数据结构+算法=程序。可见数据结构的重要性。数据结构不仅仅对编程语言的语法产生了影响,也对编译后的程序有影响,也对程序在内存中的运行有影响。
1、 C#数据结构。
C#数据结构比较简单,因为它的语法是参考C++语言的语法,所以在数据结构上也与C++语言类似,同时也有其自身的特点,比如泛型等等。下面提供C#数据结构的书籍下载:
http://pan.baidu.com/s/1dDCTAKD
密码:kzu8
2、 JAVA数据结构。
JAVA语言的数据结构与C#语言类似,同样的因为它的语法是参考C++语言的语法。JAVA语言的数据结构也有其自身的特点。下面提供JAVA语言数据结构的书籍下载:
http://pan.baidu.com/s/1mg9r5bU
密码:1bub
五、数据库
数据库是所有存储系统的基础。各个数据库有自身的特色,而且它们的数据结构也不近相同,所提供的内置函数也不近相同,象SQL SERVER的处理机制和ORACLE的处理机制也不近相同,这个也是由其存储结构的不同所造成的。
1、 SQL SERVER。
SQL SERVER数据库是一款容易上手的数据库,因为微软的支持和社区软件工程师的推进,SQL SERVER在全球已经有一定的市场份额。作为微软的产品,其最新版本已经到了2014,在网络上能够下载到该产品。笔者在使用SQL SERVER的时候,感受最多的是其用户体验的良好程度,一方面在于微软对该产品开发上的支持,另一方面在于微软对该产品做了大量的市场调查,就跟WINDOWS产品一样,其发展是跟用户的反馈有很大的关系。下面提供SQL SERVER数据库学习的书籍下载:
密码:hets
2、 ORACLE。
ORACLE数据库是甲骨文公司开发出的一套产品,其在全球同样具有很大的市场。在互联网逐渐扩大化之后,ORACLE也顺势推出了9i等基于网络的版本。目前ORACLE的版本最新的是12c。可以说,ORACLE比SQL SERVER的效率和性能要高很多,特别是大数据量的时候。所以,在系统要求数据库负载比较大的情况下,建议使用ORACLE数据库。下面提供ORACLE数据学习的书籍下载:
http://pan.baidu.com/s/1jG1ofcy
密码:76nf
3、 MySQL。
MySQL也是一款效率比较高的数据库。在网络领域,Apache+PHP+MySQL是一款经典组合的软件系统。MySQL的在实际的使用过程中,用户反馈其还是具有一定的效率和性能的。笔者对MySQL的了解也是停留在XAMP组合系统上,也是PHP的经典开发模式,这个从PHP语言的应用上能够看得出来。下面提供MySQL数据库学习的书籍下载:
http://pan.baidu.com/s/1i3s2BHz
密码:8auf
4、 SQLite。
SQLite是一款小巧的基于文件的数据库。它支持.NET系统,应用还是比较广泛的。不过,SQLite数据库在性能和数据结构上有一定的限制,其效率还是比较高的。与微软的ACCESS数据库比起来,SQLite有其自身的特色,根据笔者的经验,还是ACCESS的性能要更高一些。这两款数据库都是基于文件的,不需要额外的安装在主机上,所以其市场占有率还是挺高的。下面提供SQLite学习的书籍下载:
http://pan.baidu.com/s/1sjDRe4P
密码:kdfp
六、UML
UML建模语言是目前流行的建模方面的语言。其发展到今天,离不开众多的软件设计师的要求和建议。UML具有自己的特点,与数据库建模相类似。目前世界上已经有很多公司采用UML建模来进行软件系统的开发。一方面是UML语言的图形化语法比较简单,容易上手,另一方面是UML的广泛应用,促使它的发展比较快速,能够经受住历史的考验。
http://pan.baidu.com/s/1sj1FO5Z
密码:rqs1
1、 Rational Rose。
Rose是IBM公司推出的一款强大的UML建模工具,目前版本是2007。其基于UML语言,提供了众多的组件,能够对复杂的软件系统进行分析和设计,其市场占有程度还是比较大的。笔者使用这款软件不多,更多的是用来查看UML建模的内容。下面提供该工具学习的书籍下载:
http://pan.baidu.com/s/1jGH3hOy
密码:u1mz
2、 Enterprise Architect。
EA是一款来自澳洲的UML建模工具。其小巧程度以及用户体验良好性得到了众多软件工程师的欢迎。当然,它的价格不菲,所以笔者只能使用注册机进行处理了。笔者用这款软件比较多一些,其内置的文件包已经将项目建模的内容进行了定义,能够让用户更快的上手。下面提供EA学习的书籍下载:
http://pan.baidu.com/s/1kTlDa31
密码:1zz8
七、设计模式
在软件工程领域,设计模式是不可或缺的。设计模式是前辈工程师总结下来的一套方法,让我们能够在对软件系统进行设计的时候少走弯路,更好更快更准确更完善的把系统的架构设计做好。
1、 HTML/CSS设计模式。
可能有些读者对HTML/CSS比较了解,但是对于其设计模式可能是第一次听说。这套设计模式是基于HTML/CSS的,应用于网页开发上,让开发者能够快速准确的把网页的结构设计得更好。下面提供学习书籍下载:
http://pan.baidu.com/s/1ntqsAoT
密码:l34q
2、 Javascript设计模式。
JS也是能够使用面向对象方法来进行描述的语言。所以,既然是面向对象的,它也有自己的设计模式。当然,笔者对JS的理解有限,对于其设计模式也是理解有限,这里就不详细描述了。等后期积累的经验后再写在学习者系列文章中吧。下面提供学习书籍下载:
http://pan.baidu.com/s/1eQk1pNc
密码:e76q
3、 C#设计模式
C#设计模式同样是基于C++的,所以其设计模式同样与C++的设计模式相同,只不过是使用C#语言来对设计模式进行描述而已。设计模式在笔者的博客上有转载,具体可以去进行学习。下面提供学习书籍下载:
http://pan.baidu.com/s/1kTAF3Np
密码:p6x6
4、 JAVA设计模式
JAVA设计模式与C#设计模式类似,只不过是使用JAVA语言来进行描述。JAVA设计模式也有自己的特点,同样能够应用于后台代码架构的设计上。下面提供学习书籍下载:
http://pan.baidu.com/s/1jGGNi9S
密码:57l4
八、架构设计
架构设计包括B/S和C/S架构的设计,在笔者的博客中有相关文章进行过描述(见文:VB程序架构分析和Magical平台类库代码分享)。从软件工程师到架构师的过程不是一蹴而就的事情,这个需要不断的学习积累和在工作中去进行实践。到目前为止,笔者对架构师的学习也仅限于一个C#等小圈子里,当然,笔者不是专业的架构设计师,所以对架构设计的描述也仅限于此了。下面提供学习书籍下载:
http://pan.baidu.com/s/1mgKgUmO
密码:025b
九、学习路线图
在IT软件领域,笔者认为,系统化的学习编程内容比零散的学习更能够让项目组成员所接受和更快的得到提高。所以,这里提供了.NET和JAVA的学习路线图(路线图来自网络,本文仅做参考)。
1、.NET学习路线图
先看下图:
从上图能够看出,每个阶段都有需要学习的内容,每个阶段与上一个阶段的交互和耦合性不是很大。第一个阶段,主要从语法方面去进行学习。第二个阶段,开始由数据库入手进行学习。第三阶段,从网络开发方面进行学习。第四阶段,主要从ASP.NET方面进行学习。第五阶段,开始着重与移动端和MVC的学习。
上图是一个概要图,仅做参考。其中需要学习的内容还是很多的。建议大家根据工作需要,从B/S或C/S方向开始着手,逐渐的进行系统学习。当然本文上面的章节已经提供了图中部分内容书籍的介绍,但是由于篇幅有限,暂时介绍到这里。后续如果大家有什么需要了解的,留言给我,我将对相关内容做阐述。
2、JAVA学习路线图
相比C#的学习路线图,从上图中我们能够看出JAVA学习需要时间和耐心。第一阶段,主要从语法入手。无论是JAVA SE还是JAVA EE。第二阶段,从数据库入手进行学习。第三阶段,从网页编程开始学习。第四阶段,也是从网络编程方面进行学习。第五阶段,从移动端开发进行学习。第六阶段,主要专注于企业内部开发方面进行学习。
JAVA学习路线,与C#的学习路线相类似,因为它们的语法都是基于C++语言过来的。所以,在学习上存在共同点。不过,JAVA比C#要学习更多和编写更多的代码。从而,JAVA在编程上所占用的时间就更多了,这个项目经理要根据不同的编程语言来对功能点的划分,以及对项目的时间把控上要注意到。
十、标准定义
这里指的标准是指整个行业领域内的标准的定义,比如HTML语言的语法、语义定义等等,在文《IT从业者的学习规划 - 学习者系列文章开篇》中属于思想者这个境界中的阶段,在整个学习规划领域中是最高等级。这个标准是由众多的精英组成的各种组织进行的描述的定义。其实在项目组中,技术经理就需要对项目语言的编码规范,架构师对项目的架构设计,也是一种标准的定义,只不过这个定义是相对于项目来说的,相当于整个领域标准的子类库一样。下面对标准定义的组织网站提供出来,让大家能够对他们的工作有一定的了解,并且对整个领域的标准有一定的理解。
本文主要从文《IT从业者的学习规划 - 学习者系列文章开篇》中定义的四个阶段入手,由浅入深地描述了各个阶段需要学习的内容。从文中,笔者对IT软件人员的技术路线做了阐述,其中还将要学习的书籍提供了下载,希望能对大家有所帮助(本文主要对B/S和C/S的内容做了描述,对于移动端的描述不是很多,请见谅)。本文作为“IT软件人员学习系列文章”的母版,后续将会继续对“IT软件人员学习系列文章”这个系列进行描述,其实也是对本文的一个扩展的说明吧。本文在上述的说明过程中,有什么不明白的地方,欢迎大家批评指正。
ETC.仅以此文给那些在技术中挣扎的IT软件人员,也希望大家能够系统的进行学习,提高自身的能力水平,同时也提高自身的市场竞争力。