年龄大了学Java是爱好还是转型?
一、前言
35岁,好像年龄也不小了,工作也有十年多了,一直搞编程,也已经做过几年研发管理。较多使用的是Delphi语言,对这门语言曾经一度的情有独钟。那是我十年前的一个选择,当时Delphi还很火,业界流传着一句话:“聪明的程序员选择Delphi",那个时候确实很喜欢Delphi,通过它我领悟了面向对象思想、设计模式等等。最喜欢这门语言的原因是它的开发环境带着源代码,有机会去一窥大师们的编程之境;另外一个原因是那个时候网络上Delphi的资源很多,比如第三方控件、比如大富翁论坛(已经停止维护)、盒子(现在还经常访问)。
曾经喜欢了Delphi那么多年,但可惜的是,事实摆在眼前,10几年沧桑变化,Delphi逐步走向了没落。最直接的表象就是:网络上讨论Delphi的越来越少,关于Delphi的新书也开始变得零落,大学校园和培训机构根本不开这门课程,现在的很多程序员好像都不再知道有Delphi的存在,就业机会也在变得越来越少。当然,在Windows下的桌面程序开发中,利器还是Delphi莫属。但Delphi在网络开发方面并不擅长,曾经出现过的Delphi.Net也如昙花一现,迅速被历史淹没。如果靠Delphi去工作,还是没问题的,可是在这个网络时代中,当你发现在网络中找不到你想要的资源,不能站在巨人的肩膀上的时候,会感到一种孤独和迷茫,这应该是大境所驱。
今天,面对2013年的世界,当我走在马路上,穿行在地铁里。看到一个个抱着手机入迷的人们。突然感到互联网大时代真的就这样来到了身边。涌上来的是一阵惆怅,这么多年,一直从事桌面应用的开发,并没有特别近的和互联网打交道,终于在这一天,感到自己快落伍了。也许和我有同感的人大有人在。
曾经选择的很多,曾经错过的也很多,面对今天这样的一个互联网时代,是选择无视,还是为了爱好、为了事业继续去追寻技术,享受快乐?是个问题!近来也在关注Android,突然发现Delphi的优点它都具备,更重要的是,Java语言是为网络而生,先天就具备跨平台的优势,网上的资源非常丰富,有足够的空间供程序员们去发展。
当然,选择从头学习,需要很大的决心和勇气。也许这个过程会很长,也许用这么长的时间去做其他的事情更值得。不过人生也正因为未知,和在未知中寻求平衡而快乐。最终审视后,发现,我喜欢java,喜欢android,它深深的吸引着我。好像一个潘多拉魔盒,在等着我去开启。所以下定决心,去学习Java,一边工作,一边学习。”八小时之外,决定了你的未来“,就见证这句话。
今天是一个起点,当然这不意味着放弃过去。前面的路一定会很辛苦,但我选择了,就要去执行(Just Do It)。
做什么事情光有执行力也不行,还要有计划,就让我们看看业界内公认的Java职业规划是什么样子的?
二、Java职业化之路
下面是Java程序的职业发展之路,就让我沿着这条路走下去:
Java程序员
Java,设计非常精巧的语言。学习Java,须从Java开发环境开始,到Java语法,再到Java的核心API。
- Java开发入门:Java开发环境的安装与使用,包括JDK命令、EclipseIDE、Linux下Java程序的开发和部署等。
- Java语法基础:基于JDK和Eclipse环境,进行Java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。
- Java核心API:基于JDK提供的类库,掌握三大核心功能:
A.Java核心编程:包括Java编程的两大核心功能——Java输入/输出流和多线程,以及常用的辅助类库——实体类、集 合类、正则表达式、XML和属性文件。
B.Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI库SWT和Jface;
C. Java网路编程:Applet组件编程,Socket编程,NIO非阻塞Socket编程、RMI和CORBA分布式开发。 - Java高级特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高级特性,包括反射、泛型、注释,以及java高级特性——自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入等。
JavaEE初级软件工程师
JSF框架开发技术
配置文件(页面导航、后台Bean)、JSF组件库(JSF EL语言、HTML标签、事件处理、)、JSF核心库(格式转换、输入验证、国际化)
Javaweb核心开发技术
开发环境(Eclipse、Linux)
三大组件(JSP、JavaBean、Servlet)
扩展技术(EL、JSTL、Taglib)
网页开发技术
HTML、XML、CSS、JavaScript、AJAX
数据库设计技术
SQL、MySql、Oracle、SQLServer、JDBC
Web服务器(Tomcat/Jetty/Resin/JBossWeb)
JavaWeb核心技术:
JavaWeb项目开发的全过程可以分解为:
网页开发+数据库设计——>JavaWeb项目开发,其中,javaWeb由6项基本技术组成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是将这6种技术进行有机结合的技术框架:
JavaEE中级软件工程师
四种经典架构SSH1、SSI1、SSH2、SSI2
Struts1表现层框架
入门配置、核心组件、标签库、国际化、数据检验、数据库开发、Sitemesh集成、集成Hibernate/iBATIS
Struts2表现层框架
入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS
Spring业务层框架
入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发
Hibernate持久层框架
MySQL、Oracle、SQLServer iBATIS持久层框架
MySQL、Oracle、SQLServer
Web服务器(Tomcat/Jetty/Resin/JBossWeb)
Java高级软件工程师
javaWeb开源技术与框架
工作流、规则引擎搜索引擎、缓存引擎 、任务调度、身份认证报表服务、系统测试、集群、负载平衡、故障转移
JavaWeb分布式开发技术
JTA(Java事物管理)
JAAS(Java验证和授权服务)
JNDI(Java命名和目录服务)
JavaMail(Java邮件服务)
JMS(java信息服务)
WebService(web服务)
JCA(java连接体系)
JMS(java管理体系)
应用服务器(JBossAS/WebLogic/WebSphere)
JavaEE系统架构师
面向云架构(COA)
COA、SaaS、网格计算、集群计算、分布式计算、云计算
面向资源架构(ROA)
ROA、RESI
面向web服务架构(SOA)
WebService、SOA、SCA、ESB、OSGI、EAI
Java设计模式
创建式模式:抽象工厂/建造者/工厂方法/原型/单例
构造型模式:适配器/桥接/组合/装饰/外观/享元/代理
行为型模式:责任链/命令/解释器/迭代子/中介者/备忘录/观察者/状态/策略/模板方法/访问者
Java与UML建模
对象图、用例图、组件图、部署图、序列图、交互图、活动图、正向工程与逆向工程
CTO首席技术官
发展战略
技术总监
团队提升
团队建设
项目管理
产品管理