透过现象看本质-IT程序员成长及管理

引子

拜互联网东风,软件工程师这个外行觉得有些奇葩的行业也显得无比巨大,以成都为例,有数千家IT科技公司,10万级的技术工程师,我不知道其他科技类公司是否有如此庞大的体量,这个行业也有典型的“围墙理论”,围墙外的羡慕这个行业的相对的高薪、找工作易、调薪快等优点,围墙内的加班、青春饭、码农、枯燥、危机论、羡慕别人口若悬河、泡妞无数......

作为一个IT行业从业近20年的老兵角度,来分享一下IT工程师的成长之路。

IT行业特性与心得

1.入门难,熟悉易、精通难

软件行业是典型的两难中易的特征,最开始写代码时,一行简单的代码或者配置,你不知道为什么出错, 该怎么改,往往耽误你好几天都解决不了,当你知道为什么出错时,才发现如此简单,正因为入门难,在出现大量的IT培训机构、职业院校的计算机专业、在线培训那么火,其实就是解决入门问题。一旦入门后,遇到纯技术问题,百度一下,都能找到类视的解决方案,应付日常开发没有问题,这也是很多程序员困惑地方,感觉没有意思了,同时要精通一门技术又非常难,在java领域,最简单的apache.common下面的工具包,你如果把所有源代码读一遍,都会发现它庞大的知识覆盖面。何谓精通,并不是在网上demo代码copy下来改改,而是要明白它的原理、思路、开发代码一些具体功能自己能改写(君不见阿里的大部分开源产品都是基于国外第三方开源产品上做的优化)。

2.三十岁危机

非常肯定的说,IT行业绝对存在30岁危机现象的,我和同事或者朋友聊天,大家都有同感,我以我身边朋友为例,以10年为维度,至少有50%人会离开IT行业,这其实也是正常的,按照IT行业规律,3年左右成为一个熟练工人,5年左右要对行业有较深理解,但是不是30岁后就找不到理想工作呢,也不是这样的,其实市场淘汰的是“熟而不精”的人,正规的研发团队需要搭建老中轻相匹配的,团队中有一两个技术、管理精熟者,能极高提升团队的人效,以成都为例,一个7,8年左右的工程师,月薪大概在20K左右,实习生、刚毕业5-7k,3年左右在10-15K,作为管理者他一定会思考人效问题,你到底值不值,符不符合2-8理论中的2,如果你只剩下30岁的婚姻、小孩、老人牵绊,而失去年轻人的创新和闯劲,绝对会被市场淘汰掉,所以我一直劝告工作4-5年的小伙伴,你们一定要思考自己的定位,你和2-3年的年轻人有什么区别,哪些只有你能做,别人不能做的,你的工作是不是大部分都是在做粘贴复制工作,你是不是制定了精通某个专业的学习计划,这些都极大程度决定了你的未来。

3.关于跳槽

IT公司如此之多,大家同学、同事又非常多,消息灵通,频繁跳槽也是这个行业的特性,而且也存在这种现象,同样的能力水平跳不同的公司增加过一两千月收入也很正常,很多小伙伴甚至把跳槽作为主要调薪手段,铁打的营盘流水的兵,这些点可能是跳槽的点:

(1)大公司呆久了,导致技能单一,可考虑跳到小公司去提升一下自己的综合能力

(2)小公司呆久了,跳到大公司去学习一下规划化的流程管理及拉深单向技能栈

(3)当前公司的发展和自己的技术方向不一致,发展空间被堵死,已学不到东西

(4)自己判断公司的产品方向不是向上发展的一个行业

下面三点跳槽不可取:

(1)感觉不受领导重视。如果你领导不是白痴,你一定要多想想为什么不重视你,换公司不能使你变得优秀,优秀的人在任何公司都是优秀的,所以你第一想的是如果做到让领导重视你,让他觉得你对团队很重要,而不是跳槽。

(2)觉得公司问题很多。有人的地方就有问题,没有不存在问题的公司,“钱多活少离家近”只是在理论上存在,如果觉得有问题,就一一罗列出来,哪些是能解决的,哪些是自己引起的,哪些是无法解决的,哪些是自己当前能力认知造成的问题,第一时间去做问题解决和沟通者,而不是抱怨者,我们一定要相信人存在的价值就是去解决问题,我在面试过程中最讨厌面试者说以前公司这个人有问题,那个人有问题,公司是由人组成的,公司的问题就是每个人的问题,也是自己的问题

(3)仅仅为涨薪而跳槽。当然仅仅指1-2千元幅度的涨薪,1-2千幅度长期来说对生活品质提升微乎其微,不应该是跳槽的第一要素。

4.关于选择:大公司、小公司、行业

大公司特点是分工很细,某个知识点要做得很深,讲究流程管理和人员协同,强调制度和规范性(人多),缺点是效率低、扯皮事情多,很多岗位对综合能力要求不高,把一件事情做好即可。

小公司特点是一个人啥子都要会点,产品品质要求要低点(人少),可以锻炼一个人的综合能力,为达成核心目标会妥协一些事情,不会眼高手低。

年轻的时候更着重公司对技能的磨练,做什么产品无所谓,成熟后选择产品所在行业最为重要,如果这个行业是向上的,产品的成功的概率会高很多,仅仅凭工资真的很难改变你的人生轨迹,公司能发展起来而你又是公司的核心骨干,公司的发展红利才能真正改变你的人生轨迹。

一个成熟的工程师,理想状态下都要有大小公司工作的经验,这样既有理论高度又有综合能力,我在面试时基本不考虑5-7年工作经验,还一直在大公司普通职位呆的工程师。

4、专和博

以Java为例,要成为高级工程师,至少要掌握20多个领域的相关技能

以前端为例,web,IOS,安卓,小程序,css js jquery  AngularJS vue react Bootstrap技术千花百门,层出不穷

以管理为例,瀑布、迭代、极限、敏捷,PMP,CMMI,ISO,各种思想交织

以项目协同为例,产品-UI-前端-后端-测试-运维各个岗位如何协同,版本如何管理,质量如何控制。

。。。。

好多小伙伴这个也想学,那个也想学,这个都成了猴子搬包谷,学了东忘了西。

我一位前辈说过一个比较经典的话:“随着工作经验的增长,先做专家,再做杂家”,先要精通一样,类似的知识就会一通百通,按步骤一个个脚印走扎实,切忌不要以为网上看个东西,自己写个demo就认为精通了,一定要仔细专研其本质,摸清其底层逻辑,随着经验的增长,又要成为杂家,知识面要博,因为到了一定程度,你更多承担方向把握和决策的角色,如果你的知识面不博,很可能无法做出很好的判断。

5、一定要熟练一门大语言

互联网的发展,各种开发语言呈出不穷,后端的c,c++,java,前端的js,css,90%的新语言都延伸与此,把基础的学扎实了,其他的上手很快,我学习PHP大概花了2个星期,nodeJs3天,基本上都可以上手,大语言不一样,它有一整套生态体系,有利于我们编程思想的提高,其实开发语言仅仅是一个工具,更重要的是编程思想。我曾经团队以PHP为第一开发语言,当时我想找一名5-7年PHP开发经验的工程师,但花了1个多月都没有找到合适的,面试的人基本上那种培训机构出生,得多且过,没有进取心,思维不开阔,和2-3年工程经验的人没有什么区别,那我为什么要招呢?所以我奉劝目前还在以小语言开发的小伙伴,一定要去专研一门大的基础语言。

6、学习是多么重要

软件开发是个高强度的工作,在北上广能保持朝九晚六、996都是一件奢侈的事情,好多小伙伴抱怨没有时间学习,更不用说总结思考,但学习会使你不断的进步

(1)从工作中学会学习,工作中会积累项目经验,这个是很正常的事情,但遇到哪些技术问题、管理问题,最后怎么解决的,一定要养成记技术笔记的习惯。

(2)大多数工程师的日常是这样的,花2个小时在上下班上,下班后有时间玩一把游戏,睡觉前玩半个小时手机,12点睡觉。

然后埋怨工作太忙,没有时间学习,我的建议是这样的,你把这些碎片化时间抽10分钟出来,看一看自己的技术笔记,过一过工作上的事情,如果你能坚持一年,绝对有你想象不到的进步。

(3)按月制定有目的的学习计划,坚持每周抽半天来集中学习,平常时间碎片化学习

总之,如果你从未为一个技术难题专研到凌晨一两点,技术管理没有为团队管理问题失眠过,我不觉得你成为优秀技术人员的潜质

7.总结和思考是多么的重要

职业院校(培训)机构和985学校的毕业生,如果花一样的时间,后者优秀程度大概率会比前者好,但软件开发明明是一个实践学,为什么有这个差异呢,其实核心原因在于后者更会总结和思考。

现实中不会总结和思考的例子比比皆是。

(1)我的团队用git、禅道、jira、wiki好多年,说出去感觉流行的管理软件都有,很有格的样子

 但我们真正用好了吗? git和svn到底有什么区别?可能小伙伴会说git是分布式的,svn是集中式的,svn一旦崩溃,所有工作将停止,但我工作了这么多年,什么时候svn崩溃到工作无法开展的地步?我们实际工作中其实就是在把git当svn使用,但又多了分布式的中间环节,又何必呢?我们用禅道来管理bug,殊不知禅道本来是项目管理软件,支持瀑布和敏捷两种模式,我们学习敏捷都是纯理论的,有几个人想过用禅道来实现呢?我们用jira仅仅做了过任务管理,我用一个exel管理不就能实现吗,为什么要用jira呢?

我想我的团队小伙伴绝大多数都没有思考过这些问题,那我们能力又如何去精进呢

(2)重复的工作重复做

好多小伙伴觉得编码枯燥无味,因为你每天都重复同样的工作,仅仅是代码的搬运工而已,其实软件是逻辑思维的体现,本身充满美感,很多小伙伴不去思考其中的深层次逻辑。

  • 你至少可以把高重复的代码保存起来,下次拿过来直接用吧
  • 你可以写个代码生成器,生成重复的代码吧
  • 你可以写成通用函数方法或者类,在本项目中反复使用吧
  • 你可以写一个通用组件,共各个项目调用把,这不就是微服务或中台的思路吗

当通过你写的通用组件帮助,实习生都能写出健壮的代码出来,你不是变成架构师了吗? 

总之,不停的总结和思考,这个月比上个月有什么区别,今年和去年有什么区别,我怎么样才能领到更高的薪酬,这样你才会主动进阶的能力,否则只有被动的成长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值