01 | 职业未来发展
1. 职业晋升通道
这里用图1表示JAVA从业者的职位晋升过程
图1 技术人员晋升通道从图1可以看出在经历1~3年从工程师晋升到高级工程师后,有两个方向可以选择;一个是走技术方向,另一个是走管理方向,先分别讨论如下。
1.1 技术方向
重点培养自己以下3种能力:
(1) 技术攻坚能力
(2) 架构设计
(3) 专业知识
需要做到疑难问题的排查、大型项目的功能拆分、技术品牌的塑造等;具体工作有原理实现、注重框架能力的培养;更深一层的还有大规模高并发场景,高可用可扩展措施和方案,业务的抽象和架构能力,分布式服务设计原则的理解等。
1.2 管理方向
重点培养自己以下3种能力:
(1) 团队管理
(2) 项目管理
(3) 沟通协作
偏重于团队把控,需要让团队形成技术战斗力,利用一切资源推进项目,让团队完成作战目标。另外做好团 队内和跨团队的沟通协作也是很重要的一块
* 需要重点说明一下,这两个方向没有明显边界,也就是说做管理的不会远离架构设计,做技术专家也需要带队,二者的区分在于侧重点不同,前者更偏向于技术架构而后者更偏向于管理项目推进。
PS:在面试被问及相关问题时,可参考如下例子:
答:从过往的经验来看,我对项目的整体规划、管理推进,在任务推进协调沟通方面有过突出的表现,所以我的职业规划是成为一名优秀的技术经理,并以管理方向为发展目标。
(这样答,面试官可能会对你的相关经历产生兴趣。)
2. 常见技术级别划分
职级 | 工作年限 | B(百度) | A(阿里) | T(腾讯) | 备注 |
---|---|---|---|---|---|
工程师 | 1~3年 | 多为校招内部晋升,较少为社招 | |||
高级工程师 | 2~5年 | T4 | P5 | T2-2 | 技术主力,公司看重此级别人才的培养与成长 |
资深工程师 | 3~6年 | T5 | P6 | T2-3 | 技术主力,公司看重此级别人才的培养与成长 |
技术专家 | 4~8年 | T6 | P7 | T3-1 | 一般需要5年从业经验以上 |
高级技术专家 | 5~10年 | T7 | P8 | T3-3 | 一般需要5年从业经验以上 |
3.如何选择公司和岗位
在换工作时,应聘公司有多个技术岗位,需要都投吗?手里有多个offer,如何进行决策?应当选钱多的还是大平台、福利待遇好的?
一般来说可从以下几个维度进行考虑
(1) 公司规模大小
- 大厂适合镀金,提高身价
(2) 业务线或团队的重要程度
- 核心业务适合长期稳定的发展,在核心团队对自身能力和经验提升得较快;
- 边缘业务有因公司战略调整而被裁掉的风险。
综合这两点来说,大公司核心业务竞争压力大,小公司边缘业务应尽量避免;对于工作1~3年的推荐去小公司核心业务,因为职业生涯前期需要更多的基础知识历练场景。
(3) 个人条件的匹配程度
- 首先需要对自身条件进行评估,评估因素应包含岗位要求、业务方向、自身能力兴趣经验,匹配度与面试成功率成正比,匹配度越高将越利于以后个人的职业发展。
- 总结就是:优先选择核心业务和与自己条件匹配度高的岗位。
4.面试流程
具体面试流程参见图2。
图2 技术人员面试流程图- 前置面试需要确定是否有笔试、电话面试、上机编程等,同时需要沟通好相关细节,如电话面试时间,上机编程是否需要自带电脑等等(现多为邮件发送笔试地址,用浏览器即可);
- 技术一面为正式面试的开始,有1~2位面试官,以考察基础知识与实际应用能力为主,时长一小时左右;可能要求手写小算法,如排序、字符串处理等;
- 技术二面仍以技术为主,侧重于考察技术深度,比如项目经历、架构能力、算法等。面试时长一小时左右,可能要求画出项目的架构图或交互流程图等,并对项目存在的问题和改进方案进行询问;(规模较小的公司到二面就结束了)
- 技术三面注重考察项目经历和架构设计,还会设计到职业规划、职业兴趣,技术视野等方面的问题,以架构能力、技术敏感度和发展潜力为主;(少部分公司存在技术四面,如Tencent在较高岗位的面试中,存在跨部门的交叉面试,面试内容与技术三面内容基本相同)
- 人事面一般考察个人发展规划,上家公司离职原因,价值观,薪资待遇等,如果特别期望进入该公司,不可因为1~2k导致因小失大,因为工作前期以积累为主,三年后谈待遇也不迟。
-
上级领导面为公司级高管面试,这种非技术面视情况而定,一般为1~2面。可能简单询问工作经历,对公司的看法,对行业的看法,未来规划等,一般无原则性错误均可顺利通过。
总结:(1)面试前询问时候有电话面试、笔试、上机等前置面试等;(2)技术一面二面偏重实际工作能力,技术二面三面偏重架构能力和发展能力;(3)二面与三面通常决定入职后的职位级别,也就直接对应着与HR谈薪资的底气了,应当好好表现。
面试前的准备工作对面试能否成功起着关键作用,面试成功的三个重要因素:能力、心态、沟通。所以面试前应该做好哪些准备工作?
能力
(1)了解应聘公司及岗位信息
(2)系统复习基础知识
(3)对负责过的项目进行提炼,从架构方面重新梳理总结项目经历
(4)对经典框架原理、使用场景和实现方式进行学习
(5)对常考考点进行专项突击,阅读常考考点源码
(6)对业务方面进行有针对性的加分准备,比如面试中间件方向岗位,可以突出自己有存储中间件的开发经历,有过链路协议设计经历等。
心态
(1)面试前多渠道搜集面试公司岗位所属团队平均福利等资料信息,增加信心;
(2)当面临压力面试时,需要多给予自己心里暗示,控制情绪;
沟通
(1)提前准备一个简单有特色的自我介绍,主要描述自己的技术特长和职业优势,禁忌谈及兴趣爱好星座等不重要内容;
(2)关于不会的问题,应主动坦白并提出自己的解题思路,不然容易造成冷场;另外也可以选择询问面试官能够换个问题;
(3)当没有听明白面试官的问题时,不要着急作答,应及时沟通确认问题;
(4)注意面试细节,如面试微表情,面试过程中应尽量不要皱眉、控制坐姿和手势、注意语速、表达逻辑清晰观点明确,不要随意打断面试官,表现出谦虚有礼的面试态度等。另外可以观察面试官的反应,如果TA在简历上奋笔疾书,说明你提供的信息有用;如果停下来很长时间不写了,应提醒自己是否跑题;若面试官表现出不耐烦或深呼吸,应注意自己是否领会了面试官的考察意图,可以再次询问。
面试考察点一般分为硬技能和软实力
(1)硬技能:基础知识的掌握、过往的项目经验、系统架构的设计能力、对不同框架工具的综合应用能力;
(2)软实力:逻辑思维的灵活与否、沟通表达协作能力、项目管理推进能力、新技术学习思考能力、培养潜力;
不同职级面试考察的区别
(1)初/中级工程师
首先是能完成分配的研发任务,面试官就偏重于基础知识掌握、逻辑思维的灵活性、有无培养潜力;其次是过往项目经历与学习思考能力;出于对工作年限的考虑,对架构能力、管理推进、沟通协作能力不作过高要求;
(2)高级工程师
一般需要独立完成功能模块或是子项目的设计与开发,比初/中级工程师对项目经验、学习思考、架构能力、管理推进、沟通协作能力有更高要求,特别是项目经验与学习思考能力;
(3)技术专家
在高级工程师的要求上,对项目架构、项目经验、管理推进、协作沟通能力有相当高要求,能够独立负责一个项目,做好项目架构,完成功能模块的拆解和任务分配,推进团队内外部的事务,协调资源管理进度,带领团队完成任务目标。
提示:软实力突出会对技术工程师的职业生涯大大加分!
硬技能学习的四大部分
详情参见图3