1、新手阶段,全面、扎实地掌握语言的基本要素是你的当务之急。当然,除了语言,你还需要了解与编程相关的其他周边知识。
2、工作了几年,整天忙于业务代码,初级工程师很容易困惑下一步的方向在哪里,并且相当多的程序员长期停留在高级新手的阶段。这个阶段,你要试着用问题驱动的方式,多问几个为什么,试着去理解语言背后的实现原理。
3、作为一名中级工程师,你要学会用白盒的视角看待技术,平时在工作中也要多问几个为什么。正所谓,“知其然知其所以然”。
4、你要努力逐步成为团队的核心成员,核心成员意味着能扛事。团队核心往往要能够 Hold 住不同技术领域、切换不同角色,比如架构设计、核心代码开发、紧急线上问题攻关等。
作者:100offer
链接:https://www.zhihu.com/question/48833167/answer/320808062
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1.初级 Java 工程师
这个阶段的候选人一般都刚加入工作,工作时间不超过 3 年,对于这一部分候选人,公司的需求通常是解决一些基础的业务问题。他们会考察应聘者的基本功是否扎实、工作思路开阔。以下是一份典型的初级 Java 工程师的 JD:
- 扎实的基本功
从任职需求上看,面试官对于候选人的期望主要掉现在扎实的计算机理论基础,熟悉面向对象编程,了解常用框架等等。
- 工作思路开阔
能够站在业务的角度去思考问题,是这个阶段的Java工程师应该把握的关键能力。
这个能力在 Java 程序员直观上的表现就是,不会单一地去思考需求,而是会考虑需求背后的目标。从操作层面来看,这些嫩里可以通过多和产品经理沟通交流,在技术交流时尽量从业务角度考虑技术开发。闭门造车并不适用于Java程序员的长期发展。
2.高级 Java 工程师
这个阶段的 Java 程序员不仅要熟悉 Java 语言本身,公司对候选人会有进一步的要求,具体表现在能够快速的进行工作的输出,能够独立负责小系统或者系统群。在这个阶段,公司在考察工作经验和项目的同时,还看中的是你解决问题的思路和方式。
这个阶段的JD要求如下:
- 纵向的技术沉淀
对于技术沉淀的考察主要是从项目经验中来,通过对项目经验的考察过程中,观察候选人是否能够把工作内容转化成自己的技术能力或者系统能力。
在 17 年收获 30+ 个面试邀请的专科生王朋依靠着他在大型项目中的技术积累,在 100offer 平台上收获了包括阿里巴巴、网易等在内的 36 个面试邀请。
- 横向知识面的拓展
除了纵向的技术沉淀外,在这个阶段,作为系统群或者项目的负责人的横向知识面也是非常重要的考核因素。横向的知识面一方面包括技术上的,表现为不仅能够有架构上的整体认识,还能利用技术组件解决一些比较专业的问题。另外还包括业务上的,比如是否能够在解决具体的需求同时,考虑到整体业务线上会涉及的各个环节,提前考虑并且部署这些环节会出现的问题。
3.资深 Java 工程师
先来看这个阶段的 JD 要求:
JD 中除了一系列的 Java 架构、生态体系上的要求外,又增加了「技术发展趋势」、「沟通能力」、「勇于担当」等关键词。这些关键词背后的诉求其实也侧面反映了这个阶段的 Java 程序员需要承担的工作:负责一个业务方向或者业务群。
- 业务角度进行技术规划
除了扎实的技术功底外,能够结合业务方向进行技术规划和有效管理技术团队,保证团队产出成为最重要的两个因素。怎么样可以做到从业务的角度进行技术规划,这里考验的就是你能否发产品经理提出的每一个孤立的点的逻辑和目标系统的建立起来,并且能够在资源有限的情况下,争取到最优的解决方案。
- 技术团队的管理与激励
如何在团队成员有限的情况下,完成需求量大的开发需求;如何能够更好地让团队中的程序员发挥作用,建立有效的沟通反馈机制等等。这些都是作为这个阶段的 Java 程序员或者说是技术经理无法避开的问题。