020-29815005
预约专线时间:09:00-23:59

一名优秀Java开发工程师的成长之路

新闻来源:优漫教育 日期:2021-07-03
在服务领域,Java语言是最受欢迎和广泛应用的编程语言,从各大公司的招聘信息来看,Java开发对人才的需求也最大。
  下面是网易高级开发工程师/网易云数据库产品负责人郭忆。有8年的Java平台开发工作,有丰富的Java服务端开发经验。本文中,他将讲述一位合格的Java开发工程师的成长过程。

  身为刚进入Java行业的新同学,不管是大学毕业的大学生,还是即将升职的在职人员,都面临以下许多困惑。

  将Java学习过程划分为五个阶段:理论阶段、开发阶段、应用阶段、深入阶段。

  一、理论性阶段

  探讨Java知识点之前,我想先向同学们介绍一些Java语言自身的特征、生态系统和应用场景,以帮助我们更好地理解语言本身。

  1、我们从Java语言本身的实现机制谈起Java语言的一些特性:

  Java是一种面向对象的编程语言,它封装、继承、多态这些特性使Java语言适合于大型软件系统的研发。

  2、跨平台:这是Java最重要的功能之一,由于有了虚拟机的支持,Java代码可以在任何操作系统中无缝运行,无需重新编译;

  透明度存储管理:做C/C++同学们最头痛的事是内存泄漏,因为Java的虚拟机会自动收回不再使用的内存空间,程序员不必显式地回收它。

  3、性能:性能一直是Java最大的缺点之一,但在java6之后,随着JVM虚拟机编译优化技术的不断发展,垃圾收集算法的不断优化,Java的性能已经可以满足绝大多数系统的需求,甚至在对性能要求很高的底层系统中也可以看到Java的身影。

  学习理论阶段,从Java基本语法开始,首先要学习变量声明、条件判断、循环、函数的书写等。另外,还要了解一些网络相关的基础知识,比如http协议,Web应用的BS体系结构。对于Java应用系统,数据库是必不可少的持久组件,学习理论阶段需要学习SQL语法。

  


Java培训班


  二、发展阶段。

  理解了理论阶段之后,你应该已经对Java有所了解了。您需要在开发阶段掌握一些技巧,以用于日常实践的Java项目开发。

  1、工欲善其事,必先利其器,因此,首先要熟练掌握Java通用开发工具和开发环境。

  Maven是一款Java夹包管理软件,它可以帮助开发者解决Java夹包之间的依赖关系和版本管理。

  Git作为代码仓库管理软件,可以帮助我们实现版本、分支代码管理。

  Ecplise是目前Java中最常用的开发环境,它集成了Maven、Git这些常用的插件。

  2、在知识学习方面,要掌握面向对象的相关知识,如类和对象的定义方法,如何实现对象的继承,如何根据接口实现多态等;Java容器也是开发频繁的,包括List、Set、Map等,而且,对每个容器的实现机制和应用场景有更好的理解。Web方面,同学们需要掌握Servlet编程,包括Servltconfig编写、context;数据库方面,同学们需要掌握JDBC,能够实现基于JDBC的数据库增、减、改、查。

      注意编程规范:同学从代码学习开始,就注意编程规范,如变量名定义规则,函数名定义规则,培养良好的编程习惯。



  三、进阶阶段

  有了基本开发技巧,进阶阶段主要是在典型的真实业务场景中进行,这锻炼了开发者提高开发效率和解决实际问题的能力。要建立网络,掌握有关Cookies和Session的相关知识,转发、重定向、过滤、监听;在数据库方面,要知道如何使用数据库连接池、为什么要使用数据库连接池、数据库死锁、数据库SQL注入等等概念。

  了解诸如mybatis、Spting之类的Java应用框架,在Java语言中可以帮助我们更有效地构建Java工程。学习框架时,不仅要了解框架开发方法,还要注意框架本身的设计思想,这对开发人员提高他们的代码架构能力是非常有益的。

  在接下来的步骤中应该注意:

  1、正视问题:Java知识丰富,以问题为导向,作为切入点,可以提高Java学习的效率;

  2、特定场景下的需求解决:每种模式都有典型的应用场景,结合实际的应用场景来分析和解决问题;

  3、使用google:作为程序员,遇到未知问题很正常,利用好google、社区、论坛是关键;

  4、绩效的持续改进和优化:在进阶阶段,同学应具备基本的绩效调整能力,注重绩效管理;



  四、实用阶段。

  电脑编程是一个非常注重实战的领域,在Java学习过程中,一定要有一个实战项目,帮助大家巩固之前的学习成果,这对后续公司的实际业务有很大的帮助。您可以借助一些云平台,熟悉部署的环境构建流程。本文介绍了Docker的相关技术,微服务是目前系统设计中比较流行的体系结构,借助Docker的快速部署、服务发现、服务编排等特点,可以快速实现系统的快速发布与扩展。

  在实践的执行阶段,应该着重于以下问题:

  1、文档编写:编写详细设计文档是程序员必须掌握的技能之一,了解设计文档的格式,并编写说明。

  2、设计模式:同学们在实际操作中,在编写代码时要注意设计模式,尽量提高代码的可读性、可重复使用性。

  3、边界条件的检验与处理:在实际开发过程中,大多数系统中出现的问题集中于对边界条件的检查与处理,学生在实际开发过程中,应引起注意。