最近大环境不好已是路人皆知的事情,行业里人心惶惶,老员工担心裁员、不敢跳槽,年轻人找不到就业机会,近期和不少朋友聊过,分享下自己的见解,希望对大家有所帮助。
在程序员的职业发展道路上需要不断的打怪升级,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监。职场如棋局,一退一进都是谋略,尤其是大厂,看似有完善的晋升规则,实则非常不易,在这不断打怪升级的过程中,拼的不仅是技术能力,还要有个好人缘。
2008年,我进了上海一家某五百强互联网企业,从一线小码农,一路升级做了技术主管。在精英云集的团队里,每一次晋升都不容易,身处的每个职业阶段都有可能被更年轻的小朋友取代。
在程序员这一职业中并不明显。
我一个朋友:
他年底从斗鱼被动离开后,休息了一段时间,陆续面试大疆,平安,oppo, 百度,头条。从今年3月面到8月一直效果不佳,甚至有点怀疑自己。
他说:“最近压力很大,失业半年了,房贷还要还,娃还要照顾。深圳的公司本来不是很多,开得起价格的也就那么几家。但是招聘要求也高,除了背景,学历,还对年龄有要求。深圳的公司大部分处在业务成熟期,很多项目只需要维护和干活的人,稍微30岁以上的就没太多竞争力了,后来面了平安价格没谈拢,Oppo offer拿了,百度最后一面没了下文,头条直接简历没过”。
单靠经验和技术生存是不太行的。技术能力随着程序员年龄的增长,并不能加分多少。
一个技术好又受欢迎的程序员在职场里能在公司获得更多的资源和发展空间,以应对不断出现的裁员风波和“中年危机”。
那么程序员要怎么做才能成为公司更受欢迎的人呢?
“结合我的经历,并请教了身边几位顺利度过‘中年危机’的优秀人才,这些身居各企业CTO或技术总监要职的朋友们,不约而同的提出了相似的建议,经总结如以下七点:”
1、良好沟通
做一个牛逼的程序猿,其实可以不用怎么讲话,用牛逼的代码和运行结果去碾压别人即可。但如果你想做程序猿的leader,还继续保持这么高冷的姿态可不行,沟通无疑是管理的基础。
一个程序猿想升职,想做管理,必然需要证明自己拥有不错的沟通能力。跟高层领导要资源,跟产品经理撕逼,跟测试部门搞好关系,跟设计妹子开开玩笑,跟程序猿搞基,不会沟通显然是不行的,最好是亦庄亦谐,荤素兼备。
这里不展开讲如何拥有良好的沟通技巧。只说几点:1. 沟通的意愿最重要,只要你愿意主动沟通,事情总会向好的方面发展。2. 沟通要真诚,不要套路。3. 口才不行,你可以多用写,写还有个好处就是留有证据,方便以后撕逼。
2、迷恋技术,不断学习。
程序员这个职业和律师,医生,运营等职业不同,它要求从业人员更好的新技术学习能力,反而对于从业人员的经验要求不高。
从程序语言来说,2000年初JAVA才刚刚起来,不到10几年的时间已经代替C++成为使用最多的技术语言。而GO,Groovy,Python等后起之秀也快速发展,大有替代Java之势。
这就要求这个行业的从业人员需要具备快速的技术学习能力。如果你是一个技术狂人,能够快速的学习新的技术语言,并对枯燥的IT技术甘之如饴,那么持续沿着技术这条路走下去也是一种选择。毕竟每一个行业,总需要能够钻研最底层技术的人。
3、学会承担责任
常在河边走,哪有不湿鞋。代码写多了,挖坑是必然的。面对爆出来的Bug,面对领导的责备,没什么好说的,自己惹的,自己clean up。
放更长远来看,谁都会出错,不管你是程序猿,还是程序猿的leader,甚至是高管,总会被爆出问题。这时候是各种借口推诿,还是大大方方承认,并且用最快的速度处理干净?我认为正确的处理方式是后者,这不单单是能力问题,更多的是人品问题。
当你有朝一日当了leader,你手下犯了事,你也得大大方方站出来“我把关不严,责任我担”,绝不是把手下推出去了事(放你身上可能是小事,放他身上可能就得开除了),回过头再关起门内部处理。只有这样,你的手下才会服你,才会有人为你拼命干活。
4、注重细节,代码易于阅读
代码首先是给人看的,不同意的,先去找个烂尾项目的代码读上一个星期再回来。
代码要给自己看,也要给开发团队的成员看,还要给同行评审,还要给后续维护的程序员看。
所以,一定要易读。
代码是否易读,和变量命名、函数命名、模块划分、注释、缩进等都有很大关系。
如果你半个月之后就看不懂当时写的代码,那肯定是不易读的,趁早改掉它。另外我还有一个体会,不要写太巧妙太聪明的代码,他们一定是不易阅读和维护的。
5、少点抱怨
假如你能在生活和工作中不抱怨,那自然是极好的,不但自己可以更有效地处理各种问题,还能向别人传递正能量,带动别人一起向积极的方向前进。
很多程序员会有“这个架构很烂”、“那个代码很烂”、“烦死了”、“测试啥都不懂”、“产品整天乱改需求”之类的抱怨,这些不但抱怨无济于事,还可能磨损、破坏相互之间的关系。
抱怨是最无用最消极最消耗能量的事儿,于事无补不说,还会慢慢地把自己变成嘴上说的那个形象。
减少抱怨,皆大欢喜。
6、技术牛逼却为人谦和
相当一部分人会因为自己在某方面具有优势而看轻比自己差的人,遇事颐指气使或出言不逊,这绝不是好的习惯。
仰人鼻息、被人看不起、被呼来喝去……都是非常糟糕的体验,很难说有人会因为你这样对待他而喜欢你。
即便有非一般的人物能够表面不动声色或维持好颜色,内心也早已把你骂得狗血淋头了。
不同技术水平的人,不同职位的人,在人格上都是平等的。我们要了解并践行这一点,谦和待人,与人为善。
7、自成体系
有一套自己的学习体系很重要,零碎的学习真正意义上是学不到多少有用的东西的,当然知识体系主要是提供思路,还是要根据自己工作经验所结合才能更加好的提升,在这我也推荐一套IT届大佬“全栈架构师马士兵大佬”花费很长时间针对Java程序员所整理出来的一套课程体系,后面也有大佬讲的一些面试、职业规划、架构进阶的精讲视频分享给大家免费学习
知识体系图可以关注后私信我免费领取高清的哦
JavaEE高级框架
Maven
分布式储存
高级开发
高并发系统架构
搜索引擎+数据分析
分布式缓存
消息列队
微服务
安全加密
分布式集群
源码解析+虚拟化容器+项目掌控
一套系统性的体系图可以理清你的思路,清楚的知道自己要学习的什么,对你的规划也有一定的帮助,面试资料、架构视频(大厂面试、职业规划)、架构书籍