慢慢地发现身边叫我潘哥的越来越多,自己经验和见识没涨多少,年龄倒涨了不少。本文是对我前5年工作的经验总结,我会先写工作前三年时的状态和跳槽的心路过程,再写三到五年的阶段。一是发现有些记忆模糊想记录下,二是希望对下一波年轻人有所帮助。
工作第一年
我毕业于中国计量大学电子专业,在校时跟着老师在实验室干了两年活,虽然没干出什么东西,但也写过一些单片机代码,比没写过代码的同学找工作有不小优势。面试了五家单位的软件开发职位,收到4个offer,挑选了薪资最高的一家芯片公司上班。
你们用过CRT显示器吗? 好吧,这一点就暴露年龄了。我是2008年3月3日入职,公司规模不算大(估计150人吧),那时候公司内实行传帮带的传统,每个新员工指定一个师傅。我的职位是软件工程师,做的是芯片SDK的应用开发。
记得刚开始拿到有1000多个源代码文件的项目代码时,我内心是崩溃的,在实验室里写的单片机代码最多也就10个源文件搞定,那会心里有点担心自己是否能在试用期内上手工作,刚开始真的超级认真的看代码做笔记,几乎每天加班。经过3个月的实习+6个月的试用后,顺利转正,努力没白费。
转正正好是年底放假前,这个时候得知一起来的有一位同事没能顺利转正,有些同情。他就坐在我对面,我们的办公隔断很矮,平时交流也多,感觉他的工作态度应该没有问题,但他有个习惯,他不懂的问题或者代码,喜欢让别人坐在他位置上直接帮他解决,而不是听取别人的指导后自己解决,当然代码上也没有突出的表现,最好导致没能转正。这让我明白了企业是一个以盈利为目的的组织,不像学校是为了培养学生,不管你多不上进。
工作第二年
慢慢的,工作开始上手,可以独立的处理bug,也可以写一些模块了,工作特别有激情。技术上还是持续的写C语言的应用代码,自己绝大部分时间都花在了工作上,现在想想那个时候非常单纯,对自己的职业也很乐观,做好自己的本职工作就好。记得第一次接到领导说让我出差客户那里解决问题,我还有点激动,我是我们同时进来第一个出差的,一方面是领导的认可;另一方面自己终于成长到对公司有贡献了。这一年的工作,让自己从一个学生转变成一个合格的员工。感谢公司这个平台。
工作第三年
我的技术还是一直专注C语言应用开发,因为电子专业没有操作系统、软件工程等软件课程,自己也感觉到操作系统的重要性,就在博库书城买了900多页的《Linux内核完全剖析》《数据结构和算法分析》。但是由于没能管理好自己的时间,买回来的几本书基本看了第一章后开始成为家里的摆设。手头的工作还是日复一日的重复着,但渐渐地开始厌倦,开始抱怨公司的制度,开始觉得自己怀才不遇,并自以为到达了上升瓶颈。再加上陆续有同事离职,以及同学圈、朋友圈中各种跳槽高薪消息的刺激,让我蠢蠢欲动。另外还记得第一次猎头电话我,小挺激动了下,突然感觉自己身价暴涨,都有人来挖了。
年中开始,我陆续投递了一些简历出去,也慢慢地收到一些面试通知。和两年前面试5加收到4个offer完全相反,这次面试了5家几乎全军覆没,要不面试就没过,要不薪资太低接受不了,让我备受打击。当时还没有知乎、微信公众号等靠谱的咨询渠道(有需要可以咨询我),能咨询的就是身边的朋友。但当时这些自认为不太光彩的事情也不好意思开口,即使开口也可能得不到有用的答案,想想还是要靠自己。回到家自己仔细分析了这几次面试的过程。对于工作几年的开发人员,除了考察基础的编程和解决问题的能力外,对系统、驱动、算法等加分项目也有考察。
看看自己这几项几乎0分。大学毕业时,我比一般的同学多一些编程经验,但2年后,我不如绝大多数开发人员,我只是C语言理解和编程能力进步了,公司所在的行业经验积累了,但一个比较封闭的行业经验在其他公司没有价值。也算想明白了为什么自己目前的状态。那我到底是继续留在原来岗位修炼内功还是坚定跳槽呢?
当时固执地认为工作内容会占据自己大部分的时间,期望还是能找到一个工作内容涉及更广的职位,当然薪水也有要求。经过几个月有针对性的突击准备,最后结果还算可以。收到几个offer,挑选了一家极具挑战的公司,一家在杭州新成立研发中心,在一个小区租的房子办公,我作为五名核心员工之一加入这个新成立的研发部,因为人少所以从应用到系统全部要做,比较符合我的预期。2011年3月底办理离职手续,在第一家公司加上实习期三年整时间。
前三年的主要收获
在现在看来,这三年工作中,将自己大部分可用的时间都献给了工作,没有做职业规划。想起大学快毕业时,老师再三强调职业规划,刚进入公司时,人力也有宣贯职业规划,但我那时认为自己懂了,现在看却完全不同的感受。但这没有捷径,只有自己学会分析自己,摸索正确的方法规划自己的未来。
技术规划上,我建议规划一年左右的时间,一年后对比计划,也许会看到惊喜。另外对于时间管理,一定要合理安排,但并不是说工作应付即可,多花时间学习,所有的技术都要服务于工作才会产生价值,在工作之余安排好时间提升能力,提升能力后再回馈公司,为公司做的贡献,之后公司会在你下一年度的薪资中体现你的价值,这是一个双赢的过程。
接下来写写我在第二家公司供职两年多的经历;这次跳槽除了薪资涨了60%,在这个过程中也收获了自己技术不足的意外发现。
工作第四年
虽然有一些行业内的经验,但在这样一个没有一点技术积累,也没有人才积累的新环境中,心里未免有些担心。在我入职后,技术总监准备了一整套不能运行的代码,需要我去集成替换现在外包产品。在接下来的两年里,我的主要精力都花在了这个上面。
总监给我的这套代码比我前一家公司的框架要好一些,需要解决的问题也要复杂一些。按照设计要在同一套代码中支持多个硬件平台、支持多个客户的需求、支持不同的菜单。经过一个月熟悉代码后,发现代码中有很多设计思想,有明确的UI层、中间层、驱动适配层,能做到切换不同的平台或者不同的UI菜单,业务功能原生的稳定,因为不需要去修改业务层的任何代码。
整个业务架构中很好的运用了状态机编程的思想,将一些看起来复杂的业务逻辑整理抽象成一个一个状态机,虽然全部使用C语言编写,但写出了对象的感觉,再一次佩服设计者,让我从中吸收了不少设计思想。这一年在新的环境中一头扎进了这套我看过最好的代码中,让我对优秀代码设计有了一些新的认识。因此,看到认为比自己写的好的代码,不要吝啬自己的时间,去搞清楚代码设计的每一个细节。
工作第五年
公司虽然人少,但每个人分工挺明确,经过一年的培养,去年的应届生开始能够独立工作,这让我的工作轻松了些。小公司对职位任命也是说来就来,我都记不清具体什么时间被任命为研发部副经理,但在小公司没那么多管理事务,技术决策也都有正牌经理决策完了,我也不太在乎具体职位,但当出现和正牌经理一些不同想法时,当发现研发流程需要修改时,你没有职位,沟通上比较费力,这个时候我的内心对职位才有了一点渴望。
后来技术总监离职,公司招募了一位行业内比较有经验的技术总监,并带了三位行业内比我有经验的同事到我们公司,对我们团队实力提升不少。再后来研发部经理离职后,总监首先和我沟通了研发部经理职位,问我是否有意愿任职,我当时毫不犹豫地给了肯定答案,当然这个问题在研发部经理离职时我就思考过这个问题,我是靠在公司的资历上位的,但我的目的是为了能够让我的一些技术想法能够更好的落实。
记得在研发部经理的位置上,和产品部员工,包括产品部经理有过激烈的争论。在一些流程执行上要求严格,被同事戏称完美主义,和测试团队也有过一些争论。这些点滴让我成长了很多。公司里会吵架或者发火的人并不一定是坏人,但在发火前需要想清楚自己在做什么,并且能控制住整个事态。
作为经理不仅要对技术负责,也是整个部门对外的接口。随之而来的花在技术之外的时间开始变多,比如客户产品技术沟通、第三方库联系、其他部门对接。特别明显的变化是电话变多了,在我刚上位那几个月,每个月手机话费在300左右。这也让我重新考虑我是否合适在这样一个职位上,我也开始想方法梳理公司业务,制定一些流程和规范,让更多的人合理享有权利和责任。在之后公司经营上的问题,出现拖欠工资和奖金推迟发放等等情况,导致研发内部员工很不稳定。综合考虑后我又再次走上了求职之路。
这次找工作比上次顺利,面试过程中表现的一些状态得到认可,让我感到心安。开始并没有盲目地投递简历,首先筛选出少量几家目标公司,然后少量投递了几家非目标公司,陆续面试了几家公司练练手。找到感觉后投递目标公司,有目标和有准的情况下,面试了两家目标公司,都愿意录取,选了薪资高但还是降薪的情况下到新公司上班。两年时间,研发中心五名核心人员全部离职,所以说只有高薪也留不住人。
后两年的主要收获
-
技术上看了一套设计很好的代码,业务抽象整合的很到位、层次分的清晰。研究好东西是最快成长方式之一;
-
开始真正的关注团队,关注每个人在团队中的角色。合理安排和引导,在满足团队需要的前提下尽量按照个人发展期望安排工作,让团队成员更愿意学习,让团队更快速的提升战斗力;
-
担任经理后体会到流程和项目管理的重要性,有幸设计和实施了研发部门内的一些规范和流程。总结梳理公司业务,流程覆盖现有所有业务,让流程离开任何人都可以正常地自转。
本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-09-12