java 初级、中级、高级工程师有什么区别?

Miranda热果

2017-12-08最佳答案

技术不同,简单的可以理解为:初级中级的只关注代码,编程。高级的就要考虑系统的架构,整体框架。

具体区别如下:

一、初级工程师

1、首先要学习java的基础知识。不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术的理解也是一知半解,学不到根源。

2、做一个java项目在学习完java的基础知识之后,做一个java项目来巩固一下,在项目中会发现很多问题,通过解决问题,加深基础知识的掌握。

3、学习数据库的基础知识和开发应用软件开发离不了数据库,掌握几种流行的数据库:Oracle、SQL、server、MySQL等。

4、JEE基础在这里首先要学习网站基础,包括HTML、DHTML、JavaScript;接着要学习XML,XML JAXP;然后学习JEE基础,包括JEE开发环境,RMI/IIOP、JNDI;最后学习JDBC数据库的应用开发。

5、web开发全面的JEE的web开发知识:Servlet JSP javaBean TagLib,到这里做一个完整的web应用项目开发。

6、EJB开发包含全面的EJB知识:1)EJB入门和无状态会话Bean;2)有状态会话Bean;3)BMP和CMP是实体Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的开发和应用。

7、开源框架的学习学习几种现在流行的开源框架:Struts、Spring、Hibernian、Webwork等。完整的学习这些框架的开发和应用。如果有兴趣还可以学习Ibati框架、AJAX技术和DWR框架的开发和应用。

8、JEE项目综合应用JEE的知识来开发一个完整的应用。

9、面向对象分析与设计java是一种面向对象的语言,所以要深入学习面向对象的分析与设计,另外还要学习UML统一建模语言。

10、接下来就是系统设计与架构这里要学习的是Java设计模式、EJB设计模式、JEE核心设计模式、JEE应用程序框架设计。

11、软件工程软件工程基本理论知识的学习,还有Rup和极限编程。

12、技术研究学习搜索引擎技术:如Lucene等、工作流技术:包含Shark、JBPM等、SOA架构和应用。

13、综合项目实战实现一个企业级的应用。每个阶段在做项目的基础上牢固的掌握应用到的知识,只有在实际的应用中发现问题,加深所学的知识。

二、中级工程师

1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验。

掌握JVM内存分配、JVM垃圾回收;类装载机制; 性能优化; 反射机制;多线程;IO/NIO; 网络编程;常用数据结构和相关算法。

2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式;设计模式;单例模式;工厂模式;代理模式;模板方法模式;责任链模式等。

3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知;开源框架:spring;hibernate。

4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发;关系数据库:oracle;PostgreSQL  缓存系统:Redis(Nosql)缓存系统:Memcached。

5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署、JMX等)、底层中间件:应用服务器:Jetty(Tomcat)、 消息中间件:ActiveMQ、RabbitMQ、事务处理中间件:数据访问中间件:ODBC、工作流中间件:JBPM,分布式技术:缓存系统、消息系统、Restful、热部署、JMX。

6、至少一种Java 应用服务器如tomcat、Jetty。

7、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。

8、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验,分布式:(多节点部署)、高并发、高负载(大数据量)、高稳定、高可用。

9、对配置管理和敏捷研发模式有所了解,配置管理工具:SVN、Github。

10、业务能力:系统升级、双机、部署、容灾、备份恢复、DFX。

11、加分技术:脚本语言:Python,远程调用,精通Internet基本协议(如TCP/IP、HTTP等)内容及相关应用。有一定安全意识并了解常见的安全问题解决方案。熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、nosql、流计算等。

三、高级工程师

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

2、设计模式。其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进?3、XML。现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。4、精通使用一种或两种框架。“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本”。但我这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。

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

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

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

8、站在高度分析问题:这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。

9、工具。您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员去写吧。

Java软件开发工程师级别相关推荐

  1. 招聘:JAVA软件开发工程师

    招聘:java软件开发工程师 本公司所有新创办的创业型小公司. 研发团队6-7个人. 工作地点:厦门软件园二期观日路 现需招聘java软件开发工程师2-3名 要求: 1.有良好的沟通能力.团队合作精神 ...

  2. 我是如何从通信成功转型为 Java 软件开发工程师的?

    十年寒窗苦读,无论是谁,都希望能够拥有一个好的未来,但是在面临职业生涯的抉择时,会有不少人会为曾经的选择而后悔,不过在为时不晚的情况下,大家更多的还是会转型.在本文中,作者将分享其从传统的通信行业融入 ...

  3. java软件开发工程师面试题_Java开发工程师常见面试题01

    Java 基础 1. JDK和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境. JRE:Java Run ...

  4. 字节Java高工面试:java软件开发工程师的市场薪资

    专题1:JavaOOP 1.什么是B/S架构?什么是C/S架构 2.Java都有哪些开发平台? 3.什么是JDK?什么是JRE? 4.Java语言有哪些特点 5.面向对象和面向过程的区别 6.什么是数 ...

  5. Java 并发编程—— Exchanger 应用,java软件开发工程师面试题

    前面已经介绍 SyclicBarrier.CountDownLatch.Semaphore 三个并发编程中的工具类,还剩下最后一个 Exchanger.Exchanger(交换者)是一个用于线程间数据 ...

  6. Java软件开发工程师实习生面试经验分享总结

    原文地址:http://blog.csdn.net/timer_gao/article/details/71175353 说在前面的话 今天收到了自己满意的第一个offer也是第二个offer(第一个 ...

  7. Java组件化开发教程!工信部java软件开发工程师证书

    这些面试题包含哪些内容? 借花献佛!朋友干了5年整的Java面试官,给我分享了一份面试官最爱问的Java面试题这份面试题包含了 19 个模块:Java 基础.容器.多线程.反射.对象拷贝.Java W ...

  8. java软件开发工程师证书考试费用,太完整了!

    1. 消息的可靠性投递 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景. RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式. confirm 确 ...

  9. 我自己的java软件开发职业规划

    为什么要谈职业规划? 很大程度上是因为想在这个行业中走得更长远,走得更文档,也就是要在工作中找到自己的生活,找到自己的方向.一句话总结来就是"以前工作为生活,将来生活是工作!". ...

  10. 学习Java软件开发该从何入手

    21世纪科技飞速发展的时代,软件行业进军国内以来,发展潜力巨大,一点一点的从生活中渗透到企业运行中,Java软件开发无处不在,因此企业对Java软件开发工程师的需求非常大,就目前而言,想要学习Java ...

最新文章

  1. 吊打Magic Leap,微软HoloLens 2不只为炫技
  2. WPF窗口继承实现统一风格的自定义窗口
  3. 数据结构之图:有向图的拓扑排序,Python代码实现——26
  4. junit单体测试(PowerMockito)一
  5. Android fillViewPort属性用法
  6. 数据结构思维 第三章 `ArrayList`
  7. 纯js代码生成可搜索选择下拉列表
  8. fatal error LNK _X
  9. 【R图秀-5】将薪比薪
  10. wdcp安装中的小知识
  11. Volley(五)—— 自定义Request
  12. php date 函数用法,PHP日期时间函数date()使用方法
  13. 软件测试面试——常见的面试问题总结(大全)
  14. 基于java网络版坦克大战游戏
  15. 【maven】Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.
  16. kotlin读取文件算法
  17. 利益交错-HTML5视频标准之争
  18. 台式计算机识别不了u盘,台式机装系统读取不出U盘怎么办?
  19. 在线计算过往日期天数,计算活了多少天
  20. ESP32 学习日志(4)——OTA升级(1)-示例解析

热门文章

  1. 广东工业大学华立学院c语言试题,广东工业大学华立学院考试试卷《高频电子线路》-2015.doc...
  2. 倒车检测线怎么接图解_倒车影像摄像头3根线安装图解 这是倒车影像的电源线...
  3. android中屏幕保护的实现的,Android 屏幕保护程序制做及源码
  4. Flex Builder 破解和注册方法
  5. 强行进入加密QQ空间
  6. 树莓派专用msata硬盘转接板
  7. 高数习题第八章总练习题(上)
  8. gif如何转html,gif动画怎么转视频格式 gif转swf工具
  9. Java 战国大富翁,中国古代八大富翁,比皇帝还有钱!其中三位是历史上公认的商圣...
  10. 计算机键盘练习,电脑键盘指法练习经验分享