经历了2018年末的阵痛,大家都积攒着一股暗劲蠢蠢欲动。

3月初即将迎来2019年互联网行业换工作的大潮,技术工程师的升级换位对于一家互联网公司来说无疑是命脉般的存在——技术强则公司强!

如何做一个抢手的技术工程师呢? 按部就班996、完成项目、清理Bug、储备技能,这些就够了吗?

我邀请到新浪资深架构师张雷,相信他数十年经验也许能给正在找工作的你一些启发。

嘉宾介绍

个人介绍

张雷,2013年加入新浪微博,作为核心技术成员参与了微博服务化、混合云等多个重点项目,是Weibo开源RPC框架Motan的技术负责人,同时也负责Weibo的Service Mesh方案的研发与推广, 专注于高可用架构及服务中间件开发方向,主要技术栈是Java、Golang。

同时,他也是新浪微博平台的技术评审官,负责对新员工的转正评审工作,对技术人才的选拔及考核颇有心得。小到大学校招,再到工作2-3年的研发工程师,再到资深系统架构师都经常需要他把关面试。

以下为专访内容整理

北城码农:您面试过很多候选人,平时也经常帮助工程师同事答疑解惑,他们一般都会向您请教哪些问题呢?

张雷:一些工作时间较短的同事会找我咨询一些求职和工作相关的问题,遇到的比较多的有3类:

■第一类:面试总失败,找不到合适的工作怎么办?

很多面试的失败,不是因为技术能力不行,而是给出的回答并不是面试官想要的。面试是有目的性的考察,同样也需要有目的性的进行准备,知招拆招。这就需要你对这个公司整体的业务、还有你面试的业务有很深的了解,同时也需要针对个人之前的工作经历,进行相应的匹配,给出面试官他想要的答案。(Tips:会说话很重要,也是大多数工程师欠缺的)

■第二类:没有方向感,不知道自己应该如何提高自己怎么办?

很多刚参加工作的同事经常问这个。问题本质很简单——如何由学校的被动学习,转变成职场中的主动学习。

这里有个小经验,给自己准备一个Todo的列表,把工作中遇到的不了解的,感兴趣的内容,先记录在Todo列表中,有了空闲的时间,就从Todo列表中挑选一个跟目前工作方向最接近的,或者自己最感兴趣的、或者是自己职业规划中需要掌握的内容,进行学习。

■第三类:我这个工作任务没什么技术含量,我不愿意做,该怎么办?

其实一个技术人,不太可能上来就直接进行核心项目的核心业务开发,一般都会有一段磨合期。通过在小任务中的表现,来逐渐获得领导的认可,进而逐渐获得核心项目的研发机会。

另外,并不是小的任务就没有技术挑战,如果可以在任务场景中多一些思考,仍然可以从中有所收获。不能眼高手低,从一开始就纠结选什么项目,往往容易丢了西瓜捡了芝麻。

北城码农:2013年的微博还是个非常新颖的互联网社交模式,在您自己的职业生涯中,有没有遇到过当时觉得棘手的问题,是如何克服的呢?

张雷:我在微博工作了6年多时间,从一个普通程序员到技术专家,也经历了很多变动。我认为一个技术人的成长,始终面临着这3个问题:

■问题一:面临有挑战的任务和项目

开发工程师有自己的OKR,一般都是按部就班的完成自己的任务,但难免会临时插入重要且紧急的需求,或者接到难度较高、很有挑战性、需要自己探索的任务,很多技术人没法平衡这种压力,会把自己搞的很烦躁,甚至一怒之下冲动辞职。

我在微博也经历了很多重要的项目,大小不一,但最难、印象最深的就是做一个跨语言服务化的项目,这个项目不是一个新业务的研发,而是一个需要配合不同语言体系,不同架构的业务的中间件方案研发。这个任务最大的困难就是业界没有合适的方案进行参考,需要根据微博自身的需求、自身的业务特点,进行探索、研发、演进,一开始整个团队都很难推动开展。

但很快我们就进行了任务的拆分和细化,在这个项目中,我们从最根本的业务需求出发,设计各种方案,快速试错,逐渐演变成,与业界服务化最新趋势Service Mesh思路不谋而合,我们设计的Weibo Mesh成为了Service Mesh方向上为数不多的大规模应用方案之一。

困难就是机会,面对突如其来的任务和挑战,合理的调整自己的心态,相信问题总是可以解决的,将自己的模块做到极致,也需要和团队打好配合随时补位。

■问题二:组织架构的变动

现在的互联网节奏飞快,可能项目做了一段时间就被毙掉,在外人看来的高薪且稳定的技术人也要面临裁员和转岗的变动,2018年年底也看到了很多工程师被裁员的新闻。这种非主观意愿的变动,很容易让人难以接受进而对自己能力产生质疑。

我也曾经历过这种变动,当时加入到微博主要是负责支付相关的业务,后来因为组织调整和方向的变动,进行了调岗,当时的心态就比较波动,一是觉得业务不熟悉自己可能无法开展工作,二是心理上有一定落差担心与人沟通变得复杂。

年轻的时候心态调整是很难的,不过我觉得失落肯定是没用的,积极的在找解决办法。当时我快速了解新的工作,学习相关的领域知识,努力打造自己的技术品牌形象,也最终和这个团队融入的很好,得到了大家的认可。

经此调整,我发现工程师的立足根本永远是技术能力,无论是熟悉的领域或是不熟悉的领域,都需要能快速适应。我觉得面对这种问题,最重要的是提升自己的技术能力,不要将技术能力与业务绑定,也不要自怨自艾沉迷在颓废失落的情绪之中。

■问题三:机会的错失和争取

之前的两点主要和日常工作相关,但整个技术人的职业生涯发展,都面临着机会的错失和争取。我发现大部分技术人都深知要努力提升自己的技术,相信只要技术好就能走天下的理论。但升职加薪的机会来临时,他们却往往抓不住。这个机会可能是一次职级调整的述职,也可能是一次换工作的面试.....

我在刚毕业1年半的时候,错失过一次人人网的入职机会,当时的人人网还是鼎盛时期,是个金饭碗。面试失败的原因可以归结为2点:

1、忽略了面试前基础知识的复习,从投简历到面试只有一天时间,基本等同于裸面;

2、对面试的职位没有提前沟通,面试到2面时,才发现不是自己喜欢的岗位,然后又调换了另外一个部门的面试官,这两个问题导致了最后的面试失败。

后来我面试新浪微博时,吸取了失败的经验,进行了充足的准备。对面试的工作岗位也进行了详细的了解,当时面试的支付相关的岗位,我还专门在简历中突出了自己的做过支付的相关经历,顺利拿到了Offer,从而为自己之后的发展铺好了路。

北城码农:刚刚您提到了一些个人的经历,您认为一个技术工程师在工作中,或者晋升中面临的最大的挑战是什么呢?

张雷:每个工程师在职业生涯中都可能会遇到一些迷茫和挑战,例如职业生涯中的平台期(技术没有获得明显提升)、职业的转型期等。

在我看来,一个最大的挑战是:很多工程师在工作时,没有从业务角度进行思考,甚至有时仅盲目的按照研发任务进行开发,虽然工作量很大,但在晋升时实际收获却并不理想,自己心里也会委屈。

技术工程师的晋升,其实最主要的是看重工作成果。这种成果一定要由量变引发了质变,比如你为了提高大家的开发效率,开发了一个公用平台,节省了很多时间;或者你研发的东西,解决了公司的一个技术难点,这些比埋头苦干不计结果更有用。仅仅做常规的工作,很难让别人看到你。要想成功晋级,我给大家4个建议:

1、从业务角度、产品角度思考问题,思考如何能在业务角度更好的为公司产生价值

2、目的性要明确,随时做好进度规划

3、工作或阶段性任务完成时,要及时做总结,既有助于发现不足日后进行改进,也有利于后续晋升答辩时提前准备内容

4、在工作中要尽量树立起自身的技术品牌。例如言出必行、技术问题排查与分享等

北城码农:请您对0-5年经验的技术开发工程师,分别给一些职场发展的建议吧!

张雷:对于不同工作经验的技术人,工作的能力要求和个人的发展要求是不同的,我把它划分成3个阶段:

大学生/应届生

求职:基础知识的掌握和逻辑思维的培养最重要。实习经历是非常重要的加分项,如果没有实习经历,可以自己进行一些小项目的开发或阅读经典框架的源码。

职场:工作前1、2年切记心浮气躁,先打好基础,注意知识广度的培养,保持对新技术的好奇心。

3年左右经验

求职:基础知识是重点考察对象,对于知识的了解深度、项目、架构的理解是非常重要的加分项。

职场:需要多一些主动思考,培养自我学习能力,要有意识的加强锻炼团队协作、跨团队沟通、项目设计等能力

5年左右经验

求职:项目经历的考察是重中之重,对问题的解决方案、架构设计都会有较高的要求

职场:这个阶段最重要的是树立起自己的技术品牌。要经常思考业务或项目中存在什么样的问题(不仅仅是技术方面的问题),如何解决,解决后的收益是什么。对于管理能力要进行有意识的加强

我们应该在不同时期应该培养不同的能力,才能在机会来临的时候更有底气。

北城码农:3月份肯定是招聘的旺季,可以给换工作的朋友一些求职建议嘛?

张雷:建议大家在面试前简单对即将面试的公司业务和岗位职责做一些功课。有针对性的准备,才能事半功倍。临时抱佛脚的成功几率肯定是不高的,因为技术能力不是一朝一夕之功,更多的是要坚持学习。

学习首先你要有个框架,就像书的目录一样,先梗概后细节,在自己的脑海里建立一套知识体系,再一块一块的填满。在如何争取到好的机会这方面,我也将自己多年的面试经验,梳理出成套的面试方法论,结合拉勾的面试大数据,形成体系化的Java面试课程,给大家共享一些面试的知识点和技巧。感兴趣的伙伴可以点击查看点此跳转了解

专访 | 新浪架构师:0-5年Java工程师的职业规划如何做?的更多相关文章

  1. paip.java 架构师之路以及java高级技术

    paip.java 架构师之路以及java高级技术 1.    Annotation 设计模式... 概念满天飞.ORM,IOC,AOP. Validator lambda4j memcache. 对 ...

  2. 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  3. 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)

    对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...

  4. 前端架构师亲述:前端工程师成长之路的 N 问 及 回答

    问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度. 1. 前端开发 问题 大佬,能分享下学习路径么,感觉天天忙着开发业务,但是能力好像没有太大提升,不知道该怎么充实自己 ...

  5. Java架构师之路:JAVA程序员必看的15本书

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  6. 新浪安装weiphp2.0的方法

    请安装此网页的方法来安装: https://coding.net/u/idoubi666/p/weiphp-sae/git

  7. 菜鸟要做架构师(二)——java性能优化之for循环

    完成同样的功能,用不同的代码来实现,性能上可能会有比较大的差别,所以对于一些性能敏感的模块来说,对代码进行一定的优化还是很有必要的.今天就来说一下java代码优化的事情,今天主要聊一下对于for(wh ...

  8. 阿里Java架构师分享自己的成长经历,教你如何快速成长为架构师

    架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环.当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程.对于大部分的软件开发人员来 ...

  9. 架构师Jack专访:全面认识软件测试架构师

    ◇ 测试架构师的职责 测试的职业通道基本是管理线和技术线两条路. 管理线主要的职责:更多是项目管理和资源管理. 技术线主要的职责:更多是技术管理和业务知识. 软件测试架构师更多就是技术线的带头人.管理 ...

随机推荐

  1. mysql驱动问题

    Unknown initial character set index '255' received from server. Initial client character 解决方法 驱动版本不对 ...

  2. 关于jQuery的append方法不能多次添加同一个DOM元素的解决方法

    资料来自:https://segmentfault.com/q/1010000007677851?_ea=1419689 append()方法在jQuery中是使用appendChild()实现的,实 ...

  3. 在无向图中找最短桥(tarjan)

    题目:hdu 4738 题目意思:  曹操有N个岛,这些岛用M座桥连接起来 每座桥有士兵把守(也可能没有) 周瑜想让这N个岛不连通,但只能炸掉一座桥 并且炸掉一座桥需要派出不小于守桥士兵数的人去 解题 ...

  4. redis对list进行的相关操作

    redis对list类型进行的相关操作以及如何在python使用 redis对list类型操作的命令: 命令 语法 概述 返回值 Redis Blpop 命令 BLPOP key1 [key2 ] t ...

  5. BUAA面向对象设计与构造——第二单元总结

    BUAA面向对象设计与构造——第二单元总结 第一阶段:单部傻瓜电梯的调度 第二阶段:单部可捎带电梯的调度 (由于我第一次写的作业就是可捎带模式,第二次只是增加了负数楼层,修改了一部分参数,因此一起总结 ...

  6. 【转载】JAVA基础复习与总结<三> Object类的常用方法

    Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类.这里主要总结Object类中的三个常用方法:toString().equ ...

  7. [BZOJ1047][HAOI2007]理想的正方形(RMQ+DP)

    题意 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 思路 RMQ求 再DP 代码 #include<cstdio> #i ...

  8. 错误提示:Dynamic Performance Tables not accessible, Automatic Statistics Disabled for this session You can disable statistics in the preference menu,or obtanin select priviliges on the v$session,v$sess

    1.错误提示:Dynamic Performance Tables not accessible, Automatic Statistics Disabled for this session You ...

  9. 【高并发架构】Redis特点及构件模型

    数据结构 redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作.如果需要缓存能够支持更复杂的结构和操作, redis 会是不错的选择. redis 主要有以下几种数据 ...

  10. node koa2 玩起来都是中间件啊

    玩的我想吐 !!! 整理下常用的中间件吧! 先列在这有空把这些中间件的使用技巧也写出来分享一下koa-router 路由中间件koa-bodyparser   POST数据处理的中间件koa-stri ...