一个java高级工程师的进阶之路

宏观方面一、 JAVA。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您 对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必自己费太多的脑经 了。

二、设计模式。

其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进?

三、XML。

现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。

四、精通使用一种或两种框架。

像在《如何成为java初级程序员》中提到的那样,“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本”。但我这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。

五、熟悉主流数据库。

其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。所以为了更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出身,您还需要补充一些数据库原理方面的知识。

六、精通一种或两种WEBServer。

尽管我再《如何成为java初级程序员》里讲过它,我还是要强调您要精通一种或两种。因为作为JAVA工程师,特别时想成为高级JAVA工程师的您,您不可避免地要部署您的项目到WebServer上,而且只有当您精通一种WebServer,您才可能最大限度地使用它的资源,这往往可以节省很多时间和精力。

七、UML。

我知道您肯定想成为高级工程师,因此您有必要了解或熟练或精通UML,这取决于您有多大决心想成为高级工程师和项目经理。在比较正规的开发团队中,UML是讨论项目的交流工具,您要想做一个软件工程师,您至少要能看懂,您要想做高级工程师,您要能通过它来描述您对项目的理解,尽管这不是必须,但却很重要。

八、站在高度分析问题:

这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。 九、工具。与在《如何成为java初级程序员》里提到的不同,您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员去写吧

微观方面

1. Core Java部分这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下:a. 面向对象编程思想(封装继承多态接口)b. 字符串处理c. java.lang包,java.util包等常用包d. java异常处理

2. Java高级部分a. Java I/O流b. Java多线程技术c. Java网络编程d. Java Swing后两项可以了解即可,如果项目需要可以深入研究

3.前端基本技能

HTML + CSS网页开发

JavaScript

Jquery

浏览器兼容性 CSS hack(了解)

熟练使用JSP + Servlet进行开发

MVC设计模式,原理,以及相关框架,如Struts

SSH框架

缓存技术 session & cookie

熟练使用一种以上Java开发工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

熟练使用XMLJDOM w3c.dom SAX

Java设计模式工厂模式,单例模式

Java反射机制反射的各种用法

了解或熟悉 C, C++, .NET

熟悉JDK的配置,环境变量

数据库oracle必学,其他最好了解一种以上(mysql,sql server,access==)oracle:视图,索引,存储过程,触发器,游标,包,常用函数

数据库原理事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案

JDBC,连接池

Ajax,反向Ajax

HTTP协议,request 和 response的原理,HTTP status(了解常用的),Https原理

熟悉Linux基本命令,使用过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项目

了解windows系统批处理脚本bat

了解HTML5,最好学习过

熟悉一种JS框架,如Prototype

J2EE原理 熟悉一种以上web容器如Tomcat,JBoss,websphere,weblogic

熟悉ant或maven

熟悉一门脚本语言,如python ,ruby

了解php/ asp

了解ftp协议及原理

熟练使用Junit测试,熟悉Mockito等测试工具

熟悉javac,javadoc,native,native2ascii等常用命令

熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究过一些的算法。

了解Flex(不学也没关系)

了解敏捷开发模式

工作流workflow至少用过一种,如OSworkflow,了解原理

使用过VPN了解其原理

熟悉jstl表达式和el表达式

熟悉webservice,WSDL,SOAP

图片处理,如图片上传,预览,限制大小等

版本控制工具,CVS VSS SVN

JSON技术,JSON+AJAX

分页技术,最好自己实现过不仅仅是用过要知道原理

Java Mail

Java读写txt,excel,JXL技术

JVM原理,JVM内存管理,GC,Java堆栈池

熟练使用下面的工具:office办公软件,word,excel,ppt等plsql,sqldevelop 数据库开发工具outlook大公司都用ue编辑器浏览器控制台,调试SHH/PUTTY 远程

UML建模工具Rational Rose等

使用log4j

使用过开放Api如百度,腾讯街景,新浪微博等

页面静态化技术(伪静态页面)

报表技术,使用过报表制作工具,如水晶易表。

定时任务,如Spring batch ,学会自定义batch任务(不适用第三方工具)

了解uuid

b/s 和 c/s架构

正则表达式

了解jndi jms

ERP

UNICODE编码,乱码解决

开源网络编辑器,如ckEditor

二进制原理

使用过,了解过开源论坛框架,如discuzz

GWT,Closure框架

了解大数据,云计算

搜索引擎搜索技术

软件工程,项目管理

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

一个java高级工程师的进阶之路

一、 JAVA。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程...

481
来自专栏Java Edge

设计模式实战 - 中介者模式

以终端销售商(以服务最终客户为目标的企业,如超市)为例,采购部门要采购IBM的电脑,它根据以下两个要素来决定采购数量。

714
来自专栏魏琼东

WinForm/MIS项目开发之中按钮级权限实践

一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

2956
来自专栏知晓程序

工作一团糟?快用这个小程序,好好整理你的任务

以前,我们通常把待办事项记录在便利贴上,来防止遗忘。可是,便利贴不能让我们随时随地查看,也不方便和其他人共享。

492
来自专栏java达人

为什么又要造一个叫 Latke 的轮子

欢迎投稿 黑客派作品 框架 使用框架的好处很多,它规范了我们的开发方式,减少了出错的可能性,让我们可以更快地完成开发目标,后续维护也可以有章可循;使用框架的弊...

1825
来自专栏Golang语言社区

求取一份极致的简单:全链路跟踪中间件探索之路

公司内部的业务系统有近千个,基本上很少有比较孤立的;尤其外部系统,即便用户在页面上一个很普通的操作,后台也需要少则几个多则几十个服务协同完成。以前我们定位调用链...

1001
来自专栏大内老A

WCF技术剖析(卷1)之前言

第一次邂逅WCF是在微软举办的一场关于Windows Vista技术推广培训上,时间大概是2005年10月份,当时对WCF可谓是一见钟情。如果读者也像我一样,之...

1799
来自专栏coding

程序员如何优雅使用mac

在折腾windows和linux一段时间内,饱经各种摧残的我,虽然掌握了一些不为人知的黑科技,终于对此感到厌倦,转投mac阵营。入手了2017款的Apple M...

1202
来自专栏有趣的Python

2018.8.21重磅更新!!!: FunpySpiderSearch-ElasticSearch or Mysql 搜索引擎全面更新!!!

2018.08.21 最新可用Scrapy1.5.1爬取数据 + ElasticSearch6.3.2 存储数据并提供对外Restful Api + Djang...

953
来自专栏DevOps时代的专栏

软件测试金字塔

? “测试金字塔”是一个隐喻,它告诉我们将软件测试分成不同颗粒度的桶,也给出了我们应该在这些组中进行多少次测试的想法。尽管测试金字塔的概念已经存在了一段时间,...

3475

扫码关注云+社区