(五) 入门篇
俗话说"师傅领进门,修行靠个人",所以说只要入门了,后面学习起来是很快的,而且比较容易.那么学习Java应该如何入门呢?
首先要理解面向对象的概念,这个很重要.但也不是说必须完全理解概念才能去学Java.而是先接触Java的基础知识,如类、属性、方法等.然后在学习的过程中理解面向对象的概念.
在大概理解了面向对象的概念后,这时你应该学会了一些Java的语法和一些API的使用.这时需要继续深入地去学习这些.同时要养成自己良好的编码习惯,Java有自己对包名、类名、方法名等的命名规范.这个时候要尝试按照规范写代码,同时甩掉以前写代码时养成的不良习惯.
在熟悉了常用的API及语法后要去学习I/O和流(Stream)以及多线程编程和网络编程.I/O和输入输出流,要熟练掌握.而在这个阶段暂时不需要深入了解多线程编程和网络编程.
在系列基础完成之后就需要去接触下数据库和JDBC,对于数据库不需要深入了解,能够创建表、查询表数据即可.然后尝试使用JDBC连接数据库,并对数据库中的数据做CURD操作.
在学习Java初期,我建议大家使用文本编辑器来写代码,一是有助于记忆Java中的一些关键字和常用类及方法,二是可以熟悉Java的常用命令.在使用了一段时间的文本编辑器后就可以使用IDE来开发了,使用IDE将使你写代码写得更快,也不容易出错.
基础是很重要的,虽然简单,但是也马虎不得.这里推荐几本书《Thinking in Java》、《Java 8编程参考官方教程》.
(六) 中级篇
入门后就可以选择主攻方向了,几个方向在职业篇中已有介绍.通讯开发方向其实在这个时候就可以转了,但是还是建议学习下Java中级的内容,这些内容也有助于你今后在通讯开发的路上走得更容易.因为我是主攻Web方向,所以这里我们只讨论Web方向.
在这个阶段你接触的知识面将更广,在学习Web开发之前首先需要学习HTML和CSS,然后再学习JS以及jQuery.在有一定基础之后就可以开始学习JSP和Servlet了,重点学习下JSP的内置对象及EL表达式,并试着去做一些页面.然后学习下Ajax,要能够熟练的使用JSON和XML来做数据交互.
以上内容学习完之后Java的基础部分就算是基本掌握了,下面就该学习一些框架了.建议先从Spring学起,Spring将成为你今后开发项目的核心框架.Spring也是现在项目中最常用的框架.可以深入的学习,试着去理解Spring的一些实现原理,这将有助于你更好的使用Spring.
学完Spring之后可以学习下ORM框架,比如Hibernate和MyBatis,这些相对于Spring来说要简单的多.主要学习与Spring的整合和Spring中的事务管理.一定要深入的了解数据库事务,这将对你今后的项目开发非常有帮助.
最后我们来说控制层的学习,这里我建议大家重点学习SpringMVC.因为SpringMVC是目前使用最为广泛的控制层,而且简单易学,已经有了要替代Struts的趋势了.但是Struts还是要学习下,毕竟还有一些公司在用,这将为你找工作加大一点筹码.
在学习这些内容的过程中一定要学习下代码管理工具SVN和Git,目前SVN在企业中用的较多,而开源社区一般都是用的Git.
这部分的学习建议大家通过视频教程来学习,同时多去技术论坛和博客平台看看,比如国内的CSDN、cnblogs等网站.
有了JSP基础和掌握了框架的使用后就可以出去找工作了,在工作过程中这些知识你将掌握的更加牢固.也可能在工作过程中会遇到你没有学过的技术,不要怕,有了之前的基础你将很快掌握这些新的技术,加入工作的第一年将是你进步最快的一年.
而加入工作之后你可能也不会有太多的时间来学习,这时候要约束好自己.不要忘了学习,学习是最好的进步方式.
(七) 高级篇
当我们参加了工作之后,开始接触更多的技术.如果有机会就多学习些技术,不求精通,但求会用,并且知道这项技术能够解决什么问题.开始在项目中参与设计文档的编写.能够为自己的项目选择合适的框架,并且能用自己学到的技术去解决项目中遇到的难题.
这时候根据项目和公司的差异用的技术也不尽相同,但是日志框架、项目构建、单元测试、缓存、集群、负责均衡、SOAP等是一定要掌握的.这些是在大型项目中比较常用的技术.然后可以根据自己的兴趣及业余时间去学习自己感兴趣的技术.
(八) 架构师之路
成为一名架构师一直是我的目标.一名优秀的架构师首先一定是一名卓越的程序员,架构设计不应仅仅是理论,它应当是在实践中产生的经验和结果.架构师也要有灵敏的嗅觉,能够看清未来技术的发展方向,应当避免在项目中使用已过时的技术或没有社区支持的技术.
作为一名架构师要掌握以下技能:
1.SOA:在微服务横行的年代,这项本领是必不可少的.
2.设计模式:这将有助于你设计出更加优雅的程序.
(九) 程序员的区别
同样是程序员,初级、中级与高级的区别在哪里呢?
初级程序员就是传说中的码农,依靠复制粘贴、比葫芦画瓢的方式完成代码的编写,通常一个方法几百行代码,恨不得一个类将所有的功能都实现,不考虑程序设计原则,也不考虑程序的执行效率,不考虑SQL注入的问题,更不去想如何能让我的程序质量更好,他们的目的仅仅是我的程序能够运行.很多程序员都会经历这个阶段,而这个阶段是最容易养成毛病的阶段.但是有的程序员很快就摆脱了这个阶段,也有很多程序员停留在这个阶段很长时间,哪怕是掌握了更多的技术,但是这个阶段形成的思维模式却没有改变,养成的毛病也没有改掉.
我们就能听到这样的声音"这是哪个写的代码,写的太乱了,还没有注释"、"我去!这代码完全不敢动啊,逻辑太混乱了,牵一发而动全身啊".这些基本上都是初级程序员写的代码.中级程序员更喜欢优雅的代码,而自己写出优雅的代码,封装、继承、抽象运用自如,能够独立完成系统中模块的开发.
高级程序员能够完成系统的设计,能够使用已掌握的技能解决问题.并且能够考虑到系统的扩展性、安全性、稳定性等问题.
至于架构师吗,首先要具备中大型项目的总体规划和设计经验,通常架构师考虑的要比高级程序员更多,有时需要考虑到项目的成本、工期、部署环境甚至一些商业因素等,不仅仅是技术上的问题.其次架构师同样需要有很好的沟通能力,一是与客户的沟通,二是与团队内部纯技术的沟通.
很多程序员都止步于中级级别,靠一手SSH技术行天下,而身处初级时养成的毛病仍然存在,有的甚至已经工作5年却一直是这样,可塑性极差,由于工作时间长也学会了一手掩盖问题的好本事,这类人毫不客气的说就是项目的祸害.也有一些人达到中级或高级级别后厌倦了编码,从而转做需求分析、产品经理或项目经理,在国内做技术确实也很难拿到高工资,这也是很多技术人员转型的原因.而我依然坚持我的技术之路,既然选择了就要坚定的走下去.
更多烟台达内培训相关资讯,请扫描下方二维码