3年经验程序员患上了「大厂通病」,十年阿里架构大佬教你这样做

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

3 年经验的大厂程序员,是 HR 眼中的香饽饽,本应在招聘市场上受到追捧,然而,最近我发现一名履历不错的程序员,跳槽时未能通过技术面,此反常结果令我感到疑惑。

在与他交谈后,我又与多名相似履历的程序员进行沟通,发现不少 3 年工作经验的大厂程序员,会因技术瓶颈陷入职业困境中。

观察数名程序员所陈述的焦虑表现无非是:失去了主动学习的热情,不再刻苦钻研技术,长时间消息闭塞,对新技术、新领域不了解。

他们处在自信与焦虑的挣扎点,一方面对现有工作得心应手,另一方面又找不到技术和职场的突破口。当程序员们技术处在瓶颈期时,自然会恐慌:无论资本处在狂热还是寒冬,无法成长的人,注定是竞争中的牺牲品。

我认为,他们患上了「大厂通病」。

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

大厂通病:3 年时遇见技术瓶颈

技术瓶颈的外在表现,往往源于内因。根据候选人们的表述,无法提升的内因如下:

扫描二维码关注公众号,回复: 6171136 查看本文章

1)成为熟练工种后,不再尝试挑战

2)大厂加班过多导致缺乏个人思考时间

3)精力过于分散,无法集中精力做编程

然而,细究所谓「大厂通病」,我们难以认同这些「内因」,它们更像是借口,也形成悖论:熟练工种会认为工作无压力,真正觉得工作轻松的人,会常无效加班、精力易分散吗?

让我们分别分析「内因」背后的「借口」是什么。

借口一 : 成为熟练工种后,不再尝试挑战

很多出现技术瓶颈的大厂程序员表示:他们技术提升最快速都在工作第一年,会花费大量时间钻研与学习。理由无非有二:1. 刚毕业具有冲劲和好奇心 2. 工作对于新人难度大,会在磨练中成长。

当技能逐渐熟练,解决工作内容显得得心应手时,他们会失去好奇心,失去压迫感,从而满足现状:放低自身要求,认为编程技术在满足开发软件需求情况下,编出来就行,如果要达到更苛刻标准,纯看上司要求,或自身兴趣,无奈他们已然没了兴趣。

拆穿借口:熟练是伪装外皮,无危机感、无上升意识是本质。他们最大问题在于:技术仍停留在一两年前,没有所谓 3 年工作经验,错将重复性操作当作技能经验。

借口二 :大厂加班过多导致缺乏个人思考时间

一名 4 年工作经验的 Java 候选人,正在 小编 看机会,如今有份 A 厂的 offer 摆在他面前,leader 虽认可他的技术基础能力和业务理解能力,但仍在观望中,offer 还未给到我们的候选人,深究原因,令人深思——

A 厂目前在布局大数据,需要大量人才,在缺少 Scala 工程师的前提下,A 厂会需要 Java 工程师来做大数据工作。该候选人表示:首先,这与他现在做的 SDN 开发有太大出入,其次,他虽然有 4 年 Java 经验,但大厂通常爱加班,导致他几乎没有个人时间,从而渐渐失去了解新领域、新技术的精力和兴趣,对于大数据崛起也只是略有耳闻。

认为加班使得个人成长停滞不前的人不止他一个人,骇人听闻的996、周末轮班工作等制度,会让他们精力过多被消耗,对待工作稍显应付,回到家中也无暇思考。

拆穿借口:不关注外界信息和加班多无必然联系,并且,问题在于,他们自身成长速度完全取决于其工作内容的强度和难度,当工龄久了,工作只有加班强度,没有技术难度,成长便会停滞。

借口三 :精力过于分散,无法集中精力做编程

某 F 轮后 O2O 大厂的 Java 候选人,正在准备寻求新机会,问他为何选择离开前景大好的公司时,他和我们描述了两个原因。

第一,该公司盈利重点处在转型期,餐饮、金融、物流都打算发力,战略转型使得各部门资源都不足,打法显得混乱,甚至有争夺资源产生内耗的现象。身为基层技术 leader 的他,渐渐感觉精力过于消耗。

第二,新任领导的管理风格更让他不满,作为中间层的技术管理,大部分时间和精力都浪费在了上下级的沟通中,至于技术,很早以前就处于停滞不前的状态了。

不止他一人有以上烦恼,3 年工作经验的程序员,不会再只做编程,还会参与到软件设计、项目管理、与用户或领导沟通中,精力难以集中。如果遇上公司转型期或动荡期,更会分身乏力,导致无论是主动学习还是钻研技术上,都失去热情。

拆穿借口:不需要沟通的技术人员根本不存在,合理利用精力用于沟通,是用技术解决问题的快捷方式之一。

我并不是否认以上三点「大厂通病」不存在,的确是多数3年工作经验大厂程序员的共有困惑,但是,撕下借口的伪装,从逼迫自己改变开始,才是正解。

如何解决「大厂通病」所带来的技术瓶颈?

扔掉借口从改变环境做起,跳槽 or 转岗?无论怎么选,都是逼迫自己改变的开始,陷在悖论中倒不如去打破僵局,打破的方法,我从以下两点来深究。

1. 熟练工?加班多?是你太舒适了

我近期重点跟进了一名架构师候选人,他6年工作经验、跳槽前年薪64万、持15万股票,纵观他职业发展路径,除去第一家公司,后三家公司皆为大厂,他在3年工作经验时,未遇见所谓的「大厂通病」,更没有技术瓶颈。

首先,来看该候选人在 3 年经验的工作内容:

1)承担工作为数据团队前端开发(各种 js 编写,熟悉 jquery,extjs 等常用框架及原生 js)

2)报表工具制作(主要适用技术是 extjs / finereport / jfreechart)

3)日常分析任务(mapreduce / hive)

4)调度系统的维护和某项目开发(前端+后端 jsp+struts2+hbase+redis+mysql+hadoop)

5)分析团队的定时任务的管理

对 3 年工作经验的程序员来说,以上工作并不轻松。他在接受 小编采访时表明,他会先注重个人的输入,每日阅读两小时技术书籍,每周都研究源码,之后,他更看重他的有效工作,即具有创造性的输出,重复性代码是不会带来实际性成长。

在他发现开始做大量重复性代码、无法通过工作内容上升技术时,他选择了跳槽。

跳槽后,他在中间件团队工作,中间件是独立系统软件,分布式应用软件能借助该软件在不同技术间共享资源,他认为那是他「创造性输出」的最好时机,他负责了基础组件开发,主要是可靠消息系统 qmq 和异步 redis 客户端,参与研发任务调度系统,做了类鹰眼的 trace 系统、dubbo 服务化工程、监控系统等。

通过他的案例,能够察觉:实践始终是源于理论又高于理论的,不难发现,所谓「熟练工」、「加班多」仅是个人借口,要做的,是远离舒适区,逼迫自己成长。

首先,请发挥主观能动性,做出改变。我给出以下两点建议——

1)多次检阅基础知识,将有效技能掌握牢固,把各类基础知识串联成完整体系。技术不可满足现状,懂得把编程技术从功能实现转向软件构架、参数化设计等高阶方面,在共享、通用、标准化方面有所建树。

2)当你觉得自己了不起时,多看源码,多研究源码,不少所谓 3 年经验的程序员,根本没达到熟练程度,研究源码,会发现太多不足。Java 学得精深的人,可以横向去了解 Scala,看看Java 有哪些局限;或者纵向的去深入钻研底层的 JVM,如果在学习新技能时感到吃力,你便知:你并未了解自己,你实力仍处于普通阶段。

如果你缺乏自制力,再考虑换离环境。回想你为何初入职场时能快速提升?是因为新手期的你确实在技术上缺乏太多,所以愿意在工作中快速学习。同理,当你转岗或跳槽后,会面临新的挑战,从而逼迫自身成长。

2.精力被分散?你得先弄清楚技术究竟是干嘛的

技术是用来解决问题的。很多大厂程序员都认为唯有技术才是实力的体现,这是很大的误区。当你不懂与同事沟通、不懂如何推进工作,你磨练的技术也解决不了问题。

编程技术只占到工作能力的 40%,客观分析自己劣势所在,有时并不是外界分散了你的精力,导致无法专心技术,而是自身根本没有理解技术和工作的关系。

首先,从主观上解决沟通所带来的精力分散问题。

1)时间管理。沟通是有技巧的,学会分配沟通时间,无论是与上司、同事、下级还是用户,都在沟通前预约好沟通时间,在不是真正紧急的情况下,他人打断你的工作思路,你可以合理表示拒绝,选择预约其它时间交流。

2)表达清楚更重要。《计算机程序的结构与解释》一书说:程序写出来是给人看的,附带能在机器上运行。写代码其实是书面沟通的另一种表现方式。技术成长到一定程度,多数人都会到达无法增长的天花板区域,决定初级程序员和优秀程序员的关键点,不是他们会多少类编程语言,也不是他们 C++、Go、PHP 用得更厉害,而是表达清楚想法,让他人协助他高质量完成工作内容,通过思路完整的技术文档,让其他程序员能读懂,通过逻辑清晰的沟通,让产品、设计也能够接受,不必让代码重新再写一遍。

附赠一句卡耐基的名言:一个人的成功,约有 15% 取决于知识和技能,85% 取决于沟通——发表自己意见的能力和激发他人热忱的能力。

其次,如果完全是外界的原因,你的选择依旧是:换环境。

当公司不能让你的能力提升时,离开是好的选择,优秀的公司自然会让员工也随之提升,实现个人价值,才会进一步实现共同价值。

换环境无非是转岗或者跳槽。如果你在公司内部转岗,会给你带来技术广度,在工作中主动吸收新技能的知识。选择跳槽则有两个可能性:1.换领域,依旧是增加广度。2.同一领域,增强工作压力,这是深度的体现。

我给出一点建议:同一领域下的深耕经营,会有更远发展,即便是细分领域,也不会影响你在技术上的知识广度。

小编说

「大厂通病」给程序员所带来的技术瓶颈必然存在,但面对问题时,更多人是拿所谓「通病」当挡箭牌,缺乏主观能动性。

如果做不到主动改变,那么,患了「大厂通病」的程序员们,你该考虑考虑转岗或跳槽,逼迫自己成长,也是一剂良药。

如何突破瓶颈期呢?

以精神、体力透支为代价无法走的长远。你拼不过小年轻的,也没必要比这个,拼体力你没有优势,优秀老码农的价值,不仅在于技术深度,更突出体现在技术组合/选型上。搞过的东西多了,有创造力的人会形成直觉。解决某些问题,用什么办法好,什么技术组合起来最合适,直觉上就有了主张。甚至还能用别人想不到的角度去处理需求,这种能力很珍贵的,也很有价值。

不断巩固自己的知识体系

中国Java程序员的数量已经超过了100万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。为了帮助大家少走弯路,我总结出一个Java程序员的工作2-5年成长路线图。

1.应用框架专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

2.工程化管理专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

3.搜索引擎专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

4.微服务架构专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

5.性能优化专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

6.高并发分布式专题

java程序员工作后遇到瓶颈怎么办?十年架构大佬教你这样做

为了让学习变得轻松、高效,今天给大家免费分享一套阿里架构师传授的一套教学资源。帮助大家在成为架构师的道路上披荆斩棘。

这套视频课程详细讲解了(Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构)等这些成为架构师必备的内容!

而且还把框架需要用到的各种程序进行了打包,根据基础视频可以让你轻松搭建分布式框架环境,像在企业生产环境一样进行学习和实践。

欢迎Java工程师朋友们加入Java架构开发:809389099免费获取价值18000的架构教程

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

猜你喜欢

转载自blog.csdn.net/Java__world/article/details/89961277