一、前言
15年某个计算机方面还可以的学校毕业以后,开启了漫长的工作生涯。从初期的迷茫,惊恐,到如今的相对成熟,还是有很多过程的,今天跟大家分享一下自己的成长之路
二、惊恐期
15年7月刚入职的时候,非常慌,为什么,因为项目代码基本看不懂哇,那时候还要写点前端(主要是事件),我印象比较深的是use strict,不知道什么是严格模式。
后端代码吧,标准的ssm,但是公司自己包装了一层service(跟现在的mybatisplus差不多),理解不了啊,不知道怎么调用的。只是能模仿别人写好的功能,比如列表,添加啥的,照葫芦画瓢。但是,不理解为什么那么写就能实现效果,万一出点问题,排查改起来还是很吃力
三、思考成长
为了解决代码看不明白不理解的问题,把大学时候学的理论课重新学了一遍,包括数据结构、计算机网络、操作系统、计算机组成原理(这个学起来还是那么难),虽然很多地方还是看不懂,但是比起大学时候,还是掌握了很多。
后面又重新看了一遍thinking in Java,比第一次看时理解多了不少。还有一些其他的书籍,比如图解http,spring源码解析(这个印象一般,不如自己debug看)
那个时候脸皮也厚,老板是个技术出身的,离得比较近,基本上每天都要厚着脸皮去问几个问题,有个问题我现在都还记得,反射不是突破了private的限制,为什么有这个东西,跟private的理念不符合啊。慢慢的,随着各方面的积累,综合能力也慢慢上来了
四、项目管理
由于受到老板赏识,工作1年以后,就开始带项目了,总的来说,就是各种事情都要接触,服务器部署,项目沟通,代码指导,啥都要干。忙归忙,但是成长也快,认识的人也多。了解了一些商业流程,比如项目怎么谈下来的,交付了以后要不要维护等等。也第一次认识到权力的用处(虽然不大,但是确实有用,这个有点敏感,这里不展开说)
但是技术上成长变慢了很多,写的代码也少了。很多新的东西只能自己研究,而且受限于环境,高并发啥的接触不到。慢慢的有了跑路的想法(单独觉得有技术才能活下去,其实这个观点不对)
五、跑路进厂
刚毕业的时候,压根没想到以后有能力进大厂。工作3年半4年不到跑路了,面了6家收到5个offer,23-32k不等。最大的感觉是,大厂没有想象的那么难,问题偏基础理解,也不是某个问题答不出来就pass,但是基础一定要好,不然很多细节讲不出来,比如让你手写个缓存,大概思路你要能说清楚,LRU算法要能说明白吧,虽然不用写。更多的还是对于思考能力的考验,自己写的功能怎么设计的,瓶颈在哪,优化方向是啥。
进厂以后,其实跟想象的差别挺大的,并不是多努力技术提升,钱就会多,比如绩效这个东西,新人第一年基本都是背的,领导就是一句新人进来第一年都是这样,规矩(确实是规矩了,同年进去的1个人也是一样的)。开发啥的规范了很多,但是每个人就干一块活,拧螺丝就是这么来的,很多东西反而接触不到了。但是大佬也是多,比如dba,数据库的技术真不是一般的开发可以碰瓷的,测试也不是那种只会点点页面的了。福利待遇比之前略好,但是涨幅不是很明显。没成长性了,干了也爬不上去,论资排辈,干得好但是部门绩效不行,一样升职加薪机会少。而且太卷了,事情干完下班不会觉得你效率高,只会觉得你工作不饱和。这方面来看,弊端挺明显。
六、架构思维
20年的时候,再次跑路,岗位是架构师。初期时候,主要工作还是偏项目管理,任务分配指导。后来熟悉以后重心就变成架构选型,调研分析,比如消息通知,用哪种mq,对c端和b端要用什么,oss选什么,数据库选什么,核心理念就是怎么选型让项目能稳定,成本又相对较低(比如内存,cpu,同样的量能部署跑更多的应用)。同时关注业务层架构,能统一抽出来的进行整合,比如打印,可以抽单独的系统。
这一阶段,要考虑的不光是技术本身,也要考虑实际的成本,业务方向之类的东西,广度比单纯的开发要求高不少。
七、简单总结
工作不光看能力,也看机遇,不要死磕技术,还是要学一点其他的东西,积累人脉,经验。有好机会就抓住,不一定非要大厂,大厂爬不上去不如中型企业做个中层领导。技术好不一定能让你多赚钱,但是保证你饿不死,搞技术的技术不说好不能太差,学习能力是关键。