- 架构基础:从需求到架构
- 尹洪亮编著
- 1391字
- 2024-11-28 18:22:14
1.5 写给程序员同行
作为一个已经工作了10年的“老程序员”,截至2021年已经34岁了,虽然依然混迹在IT行业这个圈子中,但是内心还是有很多的压力。 这些压力来自多个方面,有工作、有家庭、有孩子、有父母。
都说软件行业有35岁的天花板,当然这不是全部事实,但是确实与个人能力息息相关。统计一下阿里巴巴、腾讯、今日头条、百度、美团等各大互联网公司的员工年龄,平均年龄都在26岁左右,很多35岁以上的老员工,由于个人能力原因、公司成本原因,都被所谓的“公司结构优化”给“优化”了。 当然,这与国内整个行业的发展水平有关,短时间内是很难改变的,需要很长一段时间去优化。
作为这个行业的一分子都应该有一些危机感,要尽早规划自己的职业生涯,提升多维度竞争力,增加抵御风险的能力。除了编程能力,还要具有架构设计能力,一步步地走向系统架构师这个更高的目标。
技术的本质是工具,使用的各种编程语言、各种编程框架、软件工具都是解决问题的手段而已。工具本身并不重要,解决问题的思想才更加重要。只有想到才能做到,这是有必然的因果关系的。
一个大型企业级互联网分布式系统,往往需要几百、上千人的研发团队。数十个、几百个子系统或微服务相互协作,面对这样一个庞然大物,我们确实就好像一个“搬砖”的“码农”,很多人认为自己不需要了解整个系统架构,也不关心整个系统能做什么,以及为什么要这样做,把分配给自己的功能做好就足够了。面向需求文档开发、面向设计文档开发、面向百度开发,这些工作方式会对个人的长远发展造成极大的负面影响。
很多程序员就像工厂里流水线上的工人一样,每天做着增删改查,用着相似的框架,写着相似的代码,做着相似的需求,成为一个CRUD BOY。熟练度不断增加,工资也在不断增长,但是自己心里十分清楚,任何一个应届毕业生,工作一年完全可以替代自己的工作。如此下去,2~3年就会面临瓶颈。
为了让自己拿到更高的薪资,往往会选择学习大量的新技术,然而苦恼的是这些新技术在工作中缺乏应用场景,学完了也会很快忘记。很多人大量学习新技术,都是为了临时突击,搞定一些大公司的笔试面试,为跳槽加薪做准备,因为大家都知道“面试造火箭,工作拧螺丝”这个现象。
无论自己技术能力有多强,只要还是一个普通“搬砖”的程序员,都无法摆脱被替代的可能性。始终处于整个食物链的最底层,那时自己可以时时刻刻地感受到那种危机感,工资增长的瓶颈也会很快到来,总会发出一种长江后浪推前浪的感叹。
互联网行业的新人都是站在巨人的肩膀上,后浪拍前浪是必然的结果。例如,10年前还没有这么火爆的人工智能,没有大数据,没有云计算,没有分布式,没有微服务,没有物联网。10年前自己还在写着JSP,用着jQuery和Servlet,安卓(Android)系统版本才1.0,最好的开源手机操作系统还是塞班。
现在的大学生、高中生就可以在互联网上轻松地接触到这些最前沿的技术,学习这些技术,站在一个更高的起点走向社会。虽然自己已经工作了10年,但是在这些新兴技术面前,可能还不如这些学生。
无论是“80”后、“90”后,还是“00”后,每一代程序员都会面临这个问题,技术在不断地进步,后人总会站在前人的肩膀上。随着年龄的增长,不得不面对精力不足、时间不够的尴尬局面,会发现和年轻人拼体力越来越力不从心,每个程序员都应该重视自己的职业规划。增长的不能只是年龄,还应该有多维度的能力。每个人要做的都不是去抢年轻人的饭碗,而是凭借自己的经验,去做更多符合自己年龄和经验的事情。