程序员这个职业需要有较强的自学能力,有不少程序员都是通过自学完成编程语言的学习,由于程序开发领域变化比较快,通常在工作过程中也要不断学习新的内容。
自学编程需要有一个比较合理的学习计划,而且在学习到一定阶段之后要通过实际项目来提升自己的编程能力,毕竟学习和应用还是有一定的差距,往往学习过程中的实验都比较简单,而真正开发项目则要复杂的多,需要考虑的内容也比较多。
自学编程多久能达到独立完成功能组件开发的程度呢?这个因人而异,这里以Java语言为例进行一个详细的分析。
基础语法
这部分的学习往往是比较困难的,编程语言大部分都是先难后易,在理解了基本语法之后,剩下的内容大部分通过实验都能够理解。
Java的基础部分学习第一步是面向对象概念的理解,包括类、对象、属性和方法,理解面向对象的编程过程:类的设计、对象的创建、方法的调用。以及在此基础上进一步理解封装、继承以及多态的概念。
另外在基础部分还要学习异常处理、IO流、集合、图形界面、多线程以及网络编程基础,这些内容也需要一定的时间才能消化掌握,多线程是一个重点和难点。
通常来说掌握这部分内容需要1至3个月的时间,主要取决于每天的学习时间以及理解能力。
这部分的学习如果有人指导一下会有很大帮助,毕竟很多问题在理解上还是有一定难度。
数据库开发
数据库开发是Java学习的一个重要组成部分。这部分内容包含数据库和Java操作数据库两个部分,一个是学习数据库管理系统怎么使用,另一个内容就是如何通过Java代码来操作数据库,也就是JDBC。
通常先选择一个数据库产品作为学习的入口,推荐学习MySql数据库,使用方便功能强大,目前很多互联网产品都使用MySql数据库,而且MySql数据库与Java同属Oracle公司。这部分的学习包括数据库的建库、建表、增删改查、存储过程编写等重要内容,这部分内容的学习通常要2到4周的时间。
在掌握数据库的使用之后,下一步要学习如何使用JDBC。JDBC是Java操作数据库的一个标准API,基本步骤包括:驱动程序加载、连接对象创建、容器创建、执行Sql语句、返回结果、关闭资源。
数据库开发还涉及到一系列的优化,比如通过使用PreparedStatement来预处理sql语句,通过ConnectionPool来池化Connection对象,通过CallableStatement来完成存储过程的调用等等。
另外还要学习一下如何使用DAO框架来模块化Java操作数据库的结构,DAO包括四个大的部分:Entity Class、接口、实现类、工厂类,关于DAO的具体实现可以参考我之前在头条上写的文章,这里就不详细描述了。
通常这部分内容的学习需要2到4周能掌握。
Web开发
学习Java通常都是要进行Web开发,所以学习Web开发是学习Java的重要环节。
这部分内容有三个大部分:前端学习、后端学习、框架学习。
前端内容包括HTML、CSS以及JavaScript,这部分内容虽然不需要深入掌握,但是作为Java Web开发的程序员也是应该掌握的,因为前端后端本身并不分家,只是在开发过程中我们有时候会按照角色进行任务划分。这部分内容虽然并不复杂,但是内容非常多,需要做大量的实验,通常需要4到8周的时间。
后端学习有三个大内容:Servlet、JSP和JavaBean,以及如何使用MVC框架进行Web开发。关于这部的内容细节可以看一下我之前写的文章,里面详细描述了各个技术的规范。这部分内容的学习通常需要2到4周的学习时间。
框架部分的学习也是比较重要的,使用框架能快速完成项目开发。目前使用比较多的是Spring框架,这个框架还是很有必要学习的,其他框架可以在开发期间边用边学。
这部分的学习通常需要2到4周的时间。
在掌握以上内容之后,下一步就需要进行项目开发实习了,这个阶段要参加到一个软件团队中,现在的软件开发已经不是一个人单打独斗的时代了,现在的软件项目开发都需要一个成熟的开发团队来保证进度和质量。而且在团队开发过程中能通过交流不断提高,这就是团队开发能保持高效的一个基本原因。实习时间通常在3到6个月左右,至少要参与完成一个完整项目的开发过程。
最后一点建议,个人承接各种外包还是有一定风险的,由于没有团队,在质量把控上还是有较大的漏洞,用咱们老话说就是:没有金刚钻别揽瓷器活。