个人技术成长与发展

一、走出校园


光阴似箭,转眼毕业已快两年,如今回想一下从毕业到现在的这段时间,经历了很多人和事,自认为已经从一个职场小白成长为一个合格的软件研发工程师,想将这2年内的所思所想,分享出来。
毕业前一个月,阴差阳错被卖摄像头的巨头解约,而后匆忙签了一个Offer,入职一家小公司从事后端开发,开启了我的技术成长之旅,现在回想起来,当时也是因祸得福,没去成心仪的公司,却也因此真正找到了自己的发展方向。虽然在学校里开过相关课程,但是当时也只是为了应对考试,学习的很浅,因此在后端方面的技术基础不是很扎实,于是开始重新夯实基础,在半年时间内完成《编程思想》、《JAVA核心技术卷一》、《JAVA核心技术卷二》、《SQL基础教程》的学习,个人认为如果能把以上书单看完,并将对应的代码例子理解透及基本上机实践过,勉强可以算是JAVA后端技术入门了。一般校招进公司的时候都会安排导师,接下来就是跟着导师进入公司项目,积累企业级项目开发经验。如果遇到一个技术水平高而又愿意教的导师,会是一件人生幸事,我很荣幸遇到了,我的导师是一个典型的技术专家,虽然已从前公司离职,但是真的非常感激我的导师,他教会了我很多,当然更多的是技术的学习方向。师傅领进门,修行靠个人,导师再厉害,也不可能亲力亲为,所以更多的是作为指路人,而脚下的路还是需要自己走和摸索。

二、技术进阶


在达到入门级别之后,只能说明达到了初级开发的水平,这还远远不够的,后端技术领域博大进深,还需要更上一层楼,比如开始接触高并发程序设计,举个极端点的例子,2019年淘宝双11能够扛住订单峰值54.4万笔/秒的并发量,其中涉及的技术复杂,如分布式架构、微服务、大数据处理、容器技术、NGINX、服务治理等,其中的每一个分领域都值得深入研究。因此,在完成以上学习的基础上,应该开始进阶学习了。我的学习书单是《实战JAVA高并发程序设计》、《深入理解java虚拟机第二版》。在看前一本书时,如果是带着自己的思考看的,就会有很多疑问,如JAVA为什么能在服务器开发领域那么强大?JAVA程序是怎么运行的?带着这些问题去学习后一本书时,这些疑惑或迎刃而解,给人醍醐灌顶之感。不过,现在回过来看,我觉得先看第二本,再看第一本会更好一点,因为在理解了JVM和JAVA程序运行机制后,再去涉猎高并发开发领域,会更加轻松。这就好比你带着地图走路,比先自己摸索走完再去看地图为啥那么走更加有效率。我认为《实战JAVA高并发程序设计》和《深入理解java虚拟机第二版》这两书涉及的是JAVA核心技术及核心原理,只看一遍是很难理解透彻的,我认为可以经常拿出来翻看,回味,相信会有新发现及新思考。
当然,在完成以上学习后,可别认为自己的技术很牛逼了,如果只是单单依靠JAVA技术是建立不了那么强大的后端技术生态体系的,整个后端技术体系还涉及到框架、缓存、数据库、消息中间件等,后端技术是最能体现互联网技术改造实体经济的方向。具体相关的书籍有很多,这里就只推荐自己看过的几本,框架方面,《Spring实战》、《Spring源码深度解析》、《SpringBoot实战》;缓存方面,《Redis实战》、《Redis设计与实现》;数据库方面,推荐《MySQL必知必会》,在大多数场景下够用了;消息中间件目前接触的更多是RabbitMQ,入门推荐《RabbitMQ实战》,进阶推荐《深入RabbitMQ》。后端技术涉及范围很广,除了在公司实际业务中多积累经验,提高自己的工程能力、业务能力、执行力外,同时也要关注核心技术,技术迭代更新很快,各种新技术、新框架层出不穷,保持学习的敏锐度,要有危机感,保持空杯心态,促进技术栈的迭代更新,从而不断延伸个人的能力,这其中最重要、最核心的是计算机科学基础要扎实,如数据结构、算法、计算机网络、操作系统、设计模式等知识,这些是互联网技术发展的根基,是硬技能,以上基础过硬,再综合利用多种技术、框架等开发面向高并发、高可用、高性能业务场景的系统时就能变得游刃有余。
之前有个面我的阿里大佬说过这样的话,毕业前五年以内,还是需要立足业务场景,夯实基础,提高技术水平,在经过五年左右的历练后,一般都达到了高级工程师的水平,这之后就要在某一技术领域深耕,扩大技术影响力,成为技术专家。而后,再横向扩展自己的发展方向,提高自己抵御中年危机的能力。

三、发展个人软实力


除了硬技能,我认为要成为一名优秀的软件开发工程师,软技能也必不可少,包括沟通、协作、时间管理、团队管理等方面。外界对于程序员的印象十分鲜明,高智商、低情商、宅,既没有衣品又没有情趣,不善与人交流沟通,生活单调乏味,单身率高,我认为这都是因为软技能的缺失,当然,这不是绝对的,比如我身边有很多从事研发的同学和同事中,就有网球小王子,有游泳健将,有紧跟时尚潮流的,有玩音乐的,也有特别会撩妹的,甚至还有撸代码里面我认为写诗最好的,他们都有有趣的灵魂,我本身兴趣广泛,尤其喜欢户外运动。在提高自身技术水平的同时,提高自身软实力也非常重要,当然并不是因为要别人改变对自己的刻板认识而去改变,而是为了自身的发展空间更广阔而去提升自身软技能。这方面,有个人非常值得学习,他就是今日头条创始人张一鸣,在毕业后的两年时间里,从职场小白成长为技术主管,同时在自身软技能建设上也卓有成效,他具备极强的时间管理理念和自我管理能力,从未停止过学习,他像驯服算法一样调试自己,让自己变得越发强大,不断提升软实力,他推崇及践行的延迟满足感,使其成为走向成功的巨大动力,而大多数人更多的是想方设法提前满足感,这是发自人心深处的贪婪,而他洞悉了人性的这些弱点,进而针对这些弱点推出产品,这些产品迎合了人们对于满足感的追求,事实证明他推出的产品都成为爆款,如今日头条、抖音等,核心思想都是极大地满足人们的需求,让人们依赖上它,甚至上瘾。大众被推荐算法支配,因为它比你自己更懂你,后者为张一鸣带来了巨大的商业利益,最终成就了字节跳动,成长为互联网行业的新巨头,也成就了张一鸣。当然,并不是每个人都能成为张一鸣,但是我们可以去努力提高软实力。这里我极力推荐《非暴力沟通》和《人性的弱点》。前者教我们该如何与他人交流沟通,后者让人意识到弱点,并尽力去克服,但是并不是仅仅通过两本书就能提高了,它需要长期投入时间与精力。
我之所以这么看重软技能的建设,是因为目前国内互联网行业的现状是普遍存在着程序员中年危机,35岁以上变相裁员的现象屡见不鲜,而很多研发人员又潜意识地把自己的职业发展通道变窄,自以为从事开发,就要技术路线一条道走到黑,成为资深开发,再到技术总监,最后到CTO,这其实是一种错误的想法,作为研发工程师,如果真的是出于热爱,那么一直走技术路线没问题,成为顶尖级的技术专家,但是如果仅仅考虑职业发展方向,则大可不必,应该把眼界打开,不仅可以走技术路线,也可以考虑产品、管理、运营等,甚至可以转行和创业。作为技术开发人员,一般都具备深厚的技术底蕴,而且也有一定的资金与人脉积累,如果有机会,很容易技术变现,这就需要研发工程师具备一定的商业洞察力,抓住机会,创造商业价值,进而实现人生价值,甚至财务自由。具备一定的商业洞察力是阿里P7的硬性评定标准之一,我们每一个开发工程师,都应该以此为标准,去刻意培养商业洞察力。而能够做到这一切的前提,是需要除了技术以外的软技能做支撑,所以作为研发人员,我们应该要尽早培养自己的软技能,这是一个漫长的过程。

四、拥有一个健康的身体


最后,我还认为非常重要的一点是在重视提高技术与软技能的同时,也千万别忘了要有一个强健的体魄,这次疫情中的无双国士–钟南山,家喻户晓,钟院士80多岁高龄,之所以依旧能保持高强度工作,奋战在疫情前线,离不开其强健的体魄做支撑,他强健的身体给国人留下了深刻印象,而这离不开他几十年如一日的坚持身体锻炼。互联网行业996、007十分常见,长时间久坐与熬夜赶进度,开发人员的身体状况普遍堪忧,绝大多数处于亚健康状态,更有甚者,猝死也时常出现在大众视野,听我的建议,无论多忙,都一定定期抽出一点时间进行锻炼,如果条件充裕,与三两好友相约办张健身卡,相互扶持,去健身房虐肌,坚持3个月,会有惊喜;再不济,定期在家附近跑步或者买个瑜伽垫,回家后,跟着KEEP做运动。以我自身为例,大学期间,和几个好友结伴去撸铁,整整持续3年,期间相互鼓励,虽然谈不上肌肉发达,却也有健壮的身体,更重要的是养成了一种健康的生活习惯。毕业后,由于一个人去健身房难以坚持,但是习惯已成自然,所以就隔天在家跟着KEEP做运动,也会不定期去跑步、爬山和骑行。总之,始终让自己的身体保持活力。
身体和灵魂总有一样需要在路上,我一直在践行,希望与奋斗在互联网行业的研发工程师共勉。

你可能感兴趣的:(技术成长)