关于java:两年滴滴和头条的后端开发经验字字都是肺腑之言

10次阅读

共计 7038 个字符,预计需要花费 18 分钟才能阅读完成。

先简略交代一下背景吧,某不出名 985 的本硕,17 年毕业退出滴滴,过后找工作时候也是在牛客这里跟大家一起奋战的。

往年下半年跳槽到了头条,始终从事后端研发相干的工作。之前没有实习经验,算是两年半的工作教训吧。

这两年半之间实现了一次降职,换了一家公司,有过开心满足的时光,也有过迷茫挣扎的日子,不过还算顺利地从一只职场小菜鸟转变为了一名资深划水员。

在这个过程中,总结出了一些还算实用的划水教训,有些是本人领悟到的,有些是跟他人交换学到的,在这里跟大家分享一下。

学会深刻思考,总结积淀

我想说的第一条就是要学会深刻思考,总结积淀,这是我感觉最重要也是最有意义的一件事。

先来说深刻思考。在程序员这个圈子里,常能听到一些舆论:我这个工作一点技术含量都没有,每天就 CRUD,再写写 if-else,这 TM 能让我学到什么货色?抛开一部分调侃和戏谑的论调不谈,这可能的确是一部分同学的实在想法,至多已经的我,就这么认为过。起初随着工作教训的积攒,加上和一些高 level 的同学交换探讨之后,我发现这个想法其实是十分谬误的。之所以呈现没什么可学的这样的认识,基本上是思维懈怠的后果。任何一件看起来很不起眼的小事,只有进行深刻思考,略微纵向挖深或者横向拓宽一下,都是足以让人沉浸的常识陆地。

举一个例子。某次有个同学跟我说,这周有个服务 OOM 了,查了一周发现有个中央 defer 写的有问题,改了几行代码上线修复了,周报都没法写。可能大家也遇到过这样的场景,还算是有肯定的代表性。其实就查 bug 这件事来说,是一个发现问题,排查问题,解决问题的过程,蕴含了触发、定位、复现、根因、修复、复盘等诸多步骤,花了一周来做这件事,肯定有一直尝试与纠错的过程,这外面其实就有很多思考的空间。比如说定位,如何放大范畴的?走了哪些弯路?用了哪些剖析工具?比如说根因,能够钻研的点起码有 linux 的 OOM,k8s 的 OOM,go 的内存治理,defer 机制,函数闭包的原理等等。如果这些真的都不波及,依然花了一周工夫做这件事,那复盘应该会有很多思考,提出来几十个 WHY 没问题吧 …

再来说下总结积淀。这个我感觉也是大多数程序员比拟欠缺的中央,只顾埋头干活,能够把一件事做的很好。然而简直从来不做形象总结,以至于工作好几年了,所把握的常识还是零星的几点,不成体系,不仅容易忘记,而且造成本人视线比拟窄,看问题比拟局限。适时地做一些总结积淀是很重要的,这是一个从术到道的过程,会让本人看问题的角度更广,档次更高。遇到同类型的问题,能够依照总结好的方法论,系统化、层次化地推动和解决。

还是举一个例子。做后盾服务,明天优化了 1G 内存,今天优化了 50% 的读写耗时,是不是能够做一下性能优化的总结?比如说在应用层,能够治理服务对接的利用方,梳理他们拜访的合理性;在架构层,能够做缓存、预处理、读写拆散、异步、并行等等;在代码层,能够做的事件更多了,资源池化、对象复用、无锁化设计、大 key 拆分、提早解决、编码压缩、gc 调优还有各种语言相干的高性能实际 … 等下次再遇到须要性能优化的场景,一整套思路立马就能套用过去了,剩下的就是工具和实操的事儿了。

还有的同学说了,我就每天跟 PM 撕撕逼,做做需要,也不做性能优化啊。先不探讨是否能够搞性能优化,单就做业务需要来讲,也有能够总结的中央。比如说,如何做零碎建设?系统核心能力,零碎边界,零碎瓶颈,服务分层拆分,服务治理这些问题有思考过吗?每天跟 PM 探讨需要,那作为技术同学该如何造就产品思维,疏导产品走向,如何做到架构后行于业务,这些问题也是能够思考和总结的吧。就想一下,连贯手保护他人烂代码这种蛋疼的事件,都能让 Martin Fowler 整进去一套重构实践,还显得那么高大上,咱们的确也没啥必要对本人的工作不可一世 …

所以说学习和成长是一个自驱的过程,如果感觉没什么可学的,大概率并不是真的没什么可学的,而是因为本人太懒了,不仅是口头上太懒了,思维上也太懒了。

能够多写技术文章,多分享,强制本人去思考和总结,毕竟如果文章深度不够,大家也不好意思公开分享。

踊跃学习,放弃技术激情

最近两年在互联网圈里广泛传播的一种焦虑论叫做 35 岁程序员景象,粗心是说程序员这个行业干到 35 岁就根本等着被裁员了。不可否认,互联网行业在这一点上的确不如公务员等体制内职业。然而这个问题里 35 岁程序员并不是相对生理意义上的 35 岁,应该是指那些工作十几年和工作两三年没什么太大区别的程序员。前面的工作根本是在吃老本,没有被动学习与充电,35 岁和 25 岁差不多,而且没有了 25 岁时对学习成长的渴望,反而添了家庭生存的诸多琐事,薪资要求往往也较高,在企业看来这的确是没什么竞争力。

而如果咱们踊跃学习,放弃技术能力、常识储备与工作年限成正比,这到了 35 岁哪还有什么焦虑呢,这样的大牛我感觉应该也是各大公司抢着要吧?然而学习这件事,其实是一个反人类的过程,这就须要咱们强制本人跳出本人的劳碌区,被动学习,放弃技术激情。在滴滴时有一句话大略是,被动跳出本人的舒服区,感到挣扎与压力的时候,往往是黎明前的光明,那才是成长最快的时候。相同如果感觉本人每天都过得很劳碌,工作只是在混时长,那可能真的是温水煮青蛙了。

刚毕业的这段时间,往往闲暇工夫还比拟多,正是努力学习技术的好时候。借助这段时间夯实根底,造就出良好的学习习惯,放弃踊跃的学习态度,应该是受害一生的。至于如何高效率学习,网上有很多大牛写这样的帖子,到了公司后内网也能找到很多这样的分享,我就不多谈了。

能够退出学习小组和技术社区,公司内和公司外的都能够,关注前沿技术。

被动承当,及时交换反馈

前两条还是从集体的角度登程来说的,心愿大家能够晋升集体能力,放弃外围竞争力,但从公司角度来讲,公司招聘员工入职,最重要的是让员工发明出业务价值,为公司服务。尽管对于校招生个别都会有肯定的造就体系,但实际上公司的确没有帮忙咱们成长的任务。而在能为公司办成事,发明价值这一点上,我感觉最重要的两个字就是被动,被动承当工作,被动沟通交流,被动推动我的项目停顿,被动协调资源,被动向上反馈,被动发明影响力等等。我当初刚入职的时候,根本就是 leader 给调配什么工作就把本职工作做好,而后就干本人的事了,简直从来不被动去跟他人交换或者被动去思考些能帮忙我的项目倒退的点子。自认为把本职工作保质保量实现就行了,起初发现这么做其实是十分不够的,这只是最根本的要求。而有些同学的做法则是 leader 只须要同步一下最近要做什么方向,上面的一系列事件根本不须要 leader 操心了,这样的同学我是 leader 我也喜爱啊。入职后常常会听到的一个词叫 owner 意识,大略就是这个意思吧。

在这个过程中,另外很重要的一点就是及时向上沟通反馈。我的项目停顿不顺利,遇到什么问题,及时跟 leader 同步,技术计划拿捏不准能够跟 leader 探讨,一些资源协调不了能够找 leader 帮忙,不要有太多顾虑,认为这些会太麻烦,leader 其实就是干这个事的。。如果我的项目停顿比较顺利,的确也不须要 leader 染指,那也须要及时把我的项目的进度,获得的收益及时反馈,本人有什么想法也提出来探讨,问问 leader 对以后停顿的倡议,还有哪些地方须要改良,打消信息误差。做这些事一方面是正当利用 leader 的各种资源,另一方面也能够让 leader 理解到本人的工作量,对我的项目整体有所把控,毕竟 leader 也有 leader,也是要汇报的。可能算是大家比拟恶感的向上治理吧,有内味了,这个其实我也做得不好。然而最根本的一点,不要接了一个工作闷着头干活甚至与世隔绝了,一个月了也没跟 leader 同步过,想着憋个大招之类的,那根本凉凉。

肯定要被动,能够先从强制本人在各种公开场合发言开始,有问题或想法及时 one-one

除了以上几点,还有一些小点我感觉也是比拟重要的,列在上面

第一件事建设信赖

无论是校招还是社招,刚入职的第一件事是十分重要的,间接决定了 leader 和共事对本人的第一印象。入职后要做的第一件事肯定要做好,最起码的要顺利完成而且不能出线上事变。这件事的目标就是为了建设信赖,让团队感觉本人起码是靠谱的。如果这件事做得比拟好,前面一路都会比较顺利。如果这件事就搞杂了,可能有的 leader 还会给第二次机会,再搞不好,前面就很难了,这一条对于社招来说更为重要。

而刚入职,公司技术栈不纯熟,业务繁冗很难理清什么脉络,压力的确比拟大。这时候一方面须要本人投入更多的精力,另一方面要多跟组内的同学交换,不懂就问。最有效率的学习形式,我感觉不是什么看书啊学习视频啊,而是间接去找对应的人聊,让他人讲一遍本人根本就全懂了,这效率比看文档看代码快多了,不仅省去了过滤无用信息的过程,还理解到了业务的演变历史。当然,这须要肯定的沟通技巧,毕竟共事们也都很忙。

脸皮要厚一点,多找人聊,疾速融入,最禁忌有问题也不说,本人把本人孤立起来。

超出预期

超出预期这个词的内涵范畴很广,比方 leader 让去做个值周,解答用户群里大家的问题,后果不仅解答了大家的问题,还收集了这些问题进行分类,进而做了一个智能问答机器人解放了值周的人力,这能够算超出预期。比方 leader 让给经营做一个小工具,后果建设了一系列的工具甚至倒退成了一个平台,成为了一个残缺的我的项目,这也算超出预期。超出预期要求咱们有把事件做大的能力,也就是想到了 leader 没想到的中央,并且发明了理论价值,拿到了业务收益。这个能力其实也比拟重要,在工作中发现,有的人能把一个小盘子越做越大,而有的人恰好反之,那么那些有创新能力,常常超出预期的同学倒退空间显然就更大一点。

这块其实比拟看集体能力,临时没想到什么太好的捷径,多想一步吧。

体系化思考,系统化建设

这句话是降职时候总结进去的,粗心就是做零碎建设要有全局视线,不要局限于某一个小点,应该有良好的布局能力和清晰的演进蓝图。比方,明天加了一个监控,今天加一个报警,这些事不应该成为一个个孤岛,而是属于稳定性建设一期其中的一小步。这一期稳定性建设要做的工作是报警配置和监控梳理,包含机器监控、系统监控、业务监控、数据监控等,预期能拿到 XXX 的收益。这个工作还有后续的 roadmap,稳定性建设二期要做容量布局,接入压测,三期要做降级演练,多活容灾,四期要做 … 给人的感觉就是这个人思考十分全面,办事有体系有布局。

平时踊跃总结积淀,多跟他人交换,造成方法论。

晋升本人的软素质能力

这里的软素质能力其实想说的就是 PPT、沟通、表白、工夫治理、设计、文档等方面的能力。说实话,我感觉我过后能降职就是因为 PPT 做的好了一点 … 可能大家平时对这些能力都不怎么关注,以前我也不器重,感觉比较简单,用时候间接上就行了,但事实可能并不像设想得那样简略。比方降职时候 PPT+ 演讲 + 问难这个工作,其实有很多细节的思考在外面,内容如何选取,排版怎么设计,怎么疏导听众的情绪,如何答复评委的问题等等。降职时候我见过很多同学 PPT 内容编排横七竖八,演讲过程也不晦涩天然,尽管的确做了很多理论工作,但在表白上欠缺了很多,属于会做不会说,如果再遇到不理解理论状况的外部门评委,吃亏是能够预感的。

公司内网个别都会有一些软素质培训课程,能够找一些场合刻意训练。

以上都是这些分享还都算比拟伟光正,然而社会吧也不全是那么美妙的。。上面这些内容有负能量偏向,三观特地正的同学以及观感不适者倡议跳过。

拍马屁是真的香

拍马屁这货色入职前我是很恶感的,我最后想退出互联网公司的起因就是感觉互联网公司的人之常情没那么多,事实证明,我错了 … 入职前几天,部门群里大 leader 发了一条音讯,前面几十条带着大拇指的音讯立马跟上,学习了,点赞,真不错,优良,那局面,说是红旗招展锣鼓喧天鞭炮齐鸣一点也不过分。除了惊叹大家超强的信息接管能力和处理速度外,更进一步我还发现,连拍马屁都是有队形的,一级部门 leader 发消息,几个二级部门 leader 跟上,前面各组长跟上,最初是大家的狂欢,让我一度狐疑拍马屁的速度就决定了职业生涯的发展前景(没错,当初我曾经不狐疑了)。

坦诚地说,我到当初也没习惯在群里拍马屁,但也不恶感了,能够说把这个事当成一乐了。倒不是说我没有那个口才和能力(事实上也不须要什么口才,大家都简略间接),在某些场合,为沉闷氛围的须要,我也能小嘴儿抹了蜜,甚至能把古诗文彩虹屁给 leader 安顿上。而是我发现我的直属 leader 也不怎么在群里拍马屁,所以我外表上不公开拍马屁其实属于暗地里事实上投合了 leader 的爱好 …

然而拍马屁这个事只有把握好度,整体来说还是香的,最多是没用,至多不会有什么害处嘛。大家能力都差不多,每一次在群里拍马屁的机会就是一次露脸的机会,按某个共事的说法,这就叫打造集体技术影响力 …

想舔就舔,不想舔也没必要酸他人,Respect Greatness。

永不缺席的撕逼甩锅实战 ‌ 有人的中央,就有江湖。尽管搞技术的大多城府也不深,但撕逼甩锅邀功抢活这些闹心的事儿根本也不会缺席,甚至我还见到过公开群发邮件撕逼的 … 这部分话题波及到一些敏感信息就不多说了,而且咱们低职级的遇到这些事儿的机会也不会太多。只是给大家提个醒,在工作的时候迟早都会吃到这方面的瓜,到时候留个心眼。

略微留神一下,咱不会去欺侮他人,但也不能轻易让他人给欺侮了。

不要被画饼蒙蔽了双眼

说实话,我集体是比拟恶感灌鸡汤、打鸡血、谈幻想、讲奋斗这一类行为的,9102 年都快过完了,这一套 * 治还在大行其道,真不知道是该可笑还是可悲。当然,这些词自身并没有什么问题,然而这些货色应该是自驱的,而不应该成为外界的一种强 push。『我必须努力奋斗』这个句式我感觉是失常的,然而『你必须努力奋斗』这种话多少感觉有点诡异,努力奋斗所以让公司的股东们发家致富?尤其在钱没给够的状况下,这些行为无异于耍流氓。咱们须要对 leader 的这些画饼操作放弃苏醒的认知,理性分析,作出决策。比方感觉钱没给够(或者职级太低,同理)的时候,可能有以下几种状况:

•leader 并没有留神到你薪资较低这一事实•leader 晓得这个事实,然而不晓得你有多强烈的涨薪需要•leader 晓得你有涨薪的需要,但他感觉你能力还不够•eader 晓得你有涨薪的需要,能力也够,然而他不想给你涨•leader 想给你涨,也向上反馈和争取了,然而没有资源

这时候咱们须要做的是向上反馈,跟 leader 沟通确认。如果是 1 和 2,那么通过沟通能够打消信息误差。如果是 3,须要分状况探讨。如果是 4 和 5,曾经能够思考撤退了。对于这些事儿,也没必要埋怨,埋怨解决不了任何问题。咱们要做的就是致力晋升好集体能力,放弃集体竞争力,等一个适合的机会,跳槽就完事了。

时刻筹备着,技术在手就没什么可怕的,哪天干得不爽了间接跳槽。

学会包装

这一条说白了就是,要会吹。忘了从哪儿看到的了,能说、会写、善做是对职场人的三大要求。能说是很重要的,能说能力要来我的项目,拉来资源,招来人。同样一件事,不同的人能说进去齐全不一样的成果。比方我做了个小工具上线了,我就只能说进去根本事实,而让 leader 形容一下,这就成了,打造了 XXX 的工具抓手,改良了 XXX 的残缺生态,造成了 XXX 的业务闭环。老哥,我服了,硬币全给你还不行嘛。据我的察看,每个互联网公司都有这么几个词,抓手、生态、闭环、拉齐、梳理、迭代、owner 意识等等等等,咱们须要做的就是熟读并背诵全文,啊不,是牢记并纯熟应用。

这是对事件的包装,对人的包装也是一样的,尤其是在降职和面试这样的应试型场合,特点是流程短一锤子买卖,包装显得尤为重要。降职和面试这里就不开展说了,这外面的道和术太多了。。上面的场景提炼自面试过程中和某公司面试官的谈话,大家能够感受一下:

咱们背地是一个四五百亿美金的市场 …

我负责过每天千亿级别访问量的零碎 …

工作两年能达到这个水平挺不错的 …

贵司技术气氛挺好的,业务发展前景也很广大 …

啊,彼此彼此 …

嗯,久仰久仰 …

人生如戏,全靠演技。

能够多看 leader 的 PPT,多听老板的向上汇报和宣讲会。

抉择和致力哪个更重要?

这还用问么,当然是抉择。在完满的抉择背后,致力显得一文不值,我有个多年没分割的高中同学往年曾经在时代广场敲钟了 … 然而这样的案例太少了,做出完满抉择的随机老本太高,不确定性太大。对于大多数刚毕业的同学,对行业的判断力还不够成熟,对本身能力和守业难度把握得也不够精准,此时拉几个人去守业,显得危险太高。我感觉更为稳当的一条路是,先退出规模稍大一点的公司,找一个好 leader,抱好大腿,晋升本人的集体能力。好平台加上大腿,再加上个人努力,这个腾飞速度曾经能够了。等前面积攒了肯定人脉和资金,深刻理解了市场和需要,对本人有信念了,能够再去思考守业的事。

原本还想分享一些生存方面的故事,发现曾经这么长了,那就先这样叭。下面写的一些总结和倡议我本人做的也不是很好,还须要持续加油,和大家共勉。另外,其中某些观点,因为集体视角的局限性也不保障是普适和正确的,可能再工作几年这些观点也会产生扭转,欢送大家跟我交换~(甩锅胜利)

最初祝大家都能找到心仪的工作,高兴工作,幸福生活,广阔天地,庸庸碌碌。

作者 | syntax_error
起源 | https://www.nowcoder.com/disc…

正文完
 0