[2021年12月31日] 今天得到了19年开发老兵的感悟/职场的认知,你必须要看一看了

前言:

儒猿技术窝团队老兵,  年末的一番阅读

个人介绍🚀

      大家好,算上今年已经在软件开发行业工作了19年了,算是一个IT老兵。我做过程序员、架构师、项目经理、产品经理,在惠普中国服务了9年,现在在一家创业公司担任技术负责人的角色。同时,我还是51CTO 特约作者,社区编辑,写作和翻译过50篇技术文章,全网50万阅读量以上,也出版过一本书籍。每当公司有新人进入的时候都会问我程序员这条路应该如何走,我也只能提供只言片语供其参考,今天就借这次跨年的机会把一些想法形成文字分享给大家。

🔕行业与平台:🔕


   刚刚跨入职场需要选择好要发展的行业和平台。由于软件开发工作需要应用到具体的行业上,无论是互联网、金融、交通、教育,都需要选择一个好的行业作为赛道。选择行业有多么重要,我是深有体会毕业后的5-10年就能够看出来,之前和我水平差不多的同学从事的金融行业,现在和我的工资相差2倍不止,这个必须承认有些行业就是赚钱容易。

怎么选择正确的行业,这个需要扩展知识面了,新闻、国内动态、国际动态、十四五规划这些都需要关注,为此我还订阅了一本第一财经,每个月硬着头皮翻一遍。选择行业以后再就是选择好的城市,能够去北上广深一线城市的大厂就尽量去,毕竟那边资源多,投资的力度大,你发展的机会也会更多。
接着就是选择这个行业中对应的公司,这个就是奋斗的平台了,平台的好坏决定了你以后的发展和人脉。就拿我来说吧2002年毕业,2008年加入惠普,那个时候加入外企是潮流,就好像现在加入互联网大厂一样。再进入惠普之前都是做的几十个人的小项目,进入惠普之后参与的是200多人的大项目,分成10多个团队分布在全世界4个地方,大家都是线上办公。大公司有很好的企业文化和响应的流程制度,让你知道如何做正确的事,如何正确的做事。同时,好的公司一定聚集了一些优秀的人才,跟着他们养成好的工作和学习习惯将让你受益匪浅。
我现在还记得我之前的经理很喜欢学习,每周都会找我聊天,一般都会问我最近读了什么书,研究了什么新技术。刚开始的时候,我脑袋空空什么都说不上来,后来为了应付他的询问,我主动去读一些书,逼着自己向他看齐。在惠普的9年的日子,不仅开阔了眼界、增长了知识也积累了人脉,后来创业的伙伴基本都出自惠普,能和这么多优秀的人合作也是我的荣幸。

🚀搬砖还是磨练?🚀

      新人在职业生涯的前三年主要是磨练生存技能,也就是吃饭的本事。通常来说刚刚进入公司,不会让你从是架构设计等高难度工作,基本都是在固定的框架中做“完形填空”的事情,系统框架和数据库都有人设计好了,你去了就进行实施。这个阶段需要沉下心来把工作中所需的技术做好,并且了解公司的业务这样会让你工作起来更加得心应手,同时会为你后面打下基础。技术和业务员熟悉了做的东西又快又好,领导和同事都会看在眼里,此时会获得更多的机会做更多的事情。
此处就有人会问了:“这样我的事情不是更多了?”我曾经也是这么想的,制作领导分配的事情,事情做完了也尽量不和领导汇报,等问的时候再告知已经完成了。久而久之,领导也知道了我的小心思,一些有挑战性的工作也不安排给我了,要知道在职场初期70% 的能力成长都是在工作中积累起来的,在学校或者网络上面学习的知识只有应用到实际工作中才是你自己的,你会发现有的人学了很多课程,懂得很多道理,但是只要做具体的事情就不行,就是缺乏了实践的环节。
当意识到这个问题之后,我改变以往的态度,工作抢着做,认真做。记得当时做美国大陆航空的项目,我负责货物飞机货物装载的模块开发,其中有一块功能是从原来大机(mainframe)系统中移植出来的,这东西大家都没有玩过所以都不愿意做,我主动拿下这个难啃的骨头。基本每个周末都会到公司加班,一边读大机的代码一边做Java代码的移植,刚开始觉得非常困难,后来坚持了两个月,居然被我搞出来了,同事和领导都对我刮目相看。后来很多类似的技术问题都会找到我,并且获得了去美国参加培训的机会。
话说回来,作为基层员工的主要工作就是干活的能力要强,即便是你要跳槽,对方公司也是要能干活的人。有个小故事我现在还记得,之前我们项目有两个程序员有小矛盾,后来升级成水火不融的关系,到了有你没我的地步,在最后决定去留的时候,项目经理果断选择了那个能干活的,将另外一个劝退了。一句话:干就完了,机会都是在工作中做出来的。

☀️学习建议:☀️


一谈到学习,大家可能会想到听某某大神的课程,加入某某培训班,在我进入行业的那个时代(2002)年这类学习资源是不多的,这也是我非常羡慕现在的开发者,他们有取之不尽用之不竭的学习资源。不过我始终认为最好的学习还是来自于工作,将工作中遇到的问题解决并且内化成自己的知识点是最快捷和最廉价的学习方式。
我刚进入职场的时候大量从是CRUD的工作,也就是使用某某工具去实现某某功能,底层的原理和架构的搭建不是重点,稍微了解一下就行了。如果遇到问题一般会通过百度的方式搜索,虽然这种方式比较快捷,但是下次出现问题的时候还是不知道如何解决。对重复出现的问题有一种似曾相识的感觉,依旧习惯用百度的方式快速解决,因为这样是最快的方式。也就是这样贪快图方便,导致很长一段时间我的技术没有丝毫的基本,我还沉浸在能够快速完成任务的快乐中。
直到后面公司要我接受另外一个项目,需要自主去设计一些组件从而使用用户的特殊需求,我才感觉力不从心,实际上这些组件在我之前的项目中就已经有了,我只是使用从来就没有对其进行深入的研究,现在轮到自己写了,瞬间麻了爪子。
从那以后我非常注意知识点的搜集,平时遇到好的模块组件都会记录下来,并分析其实现过程,放到自己的代码库中以备不时之需。每个知识点的记录和强化这个过程是漫长的,尽管当时不知道知识点之间的关系,但是一段时间过后发现它们之间的联系,并且将知识点串连成线,这样的线多了就形成了网、形成了面。这个也就是技术大牛在和你聊某一个技术点的时候可以谈到几个相关的技术点,并且能够指出它们之间的相同或者不同之处的原因,这是长期积累的过程。
所以,请认真对待工作中的问题,并且不断对这些内化的知识点进行梳理和关联,形成自己的东西,最好定期回顾知识点。

🌿这里分享一下我回顾知识点的方式: 🌿


首先,尽量通过官网、书籍、权威论坛的方式了解知识点,之后用自己的话描述你对这个知识点的理解
然后,围绕这个知识点举出2-3个实用的场景,以及具体实施的方式
最后,提出你对这个知识点不同的看法或疑惑。
第1点是理解的过程,第2点是知道如何应用,第3点内化成自己的观点。
这里建议大家可以将技术观点变成博客的形式进行输入,帮助自己整理知识点的同时,也强化了对技术的理解。只是看别人的文章和视频是无法提高的,这个也是很多人的误区,以为看了大牛的视频或者文章就和别人一样了,别人的知识如果不内化,那么就不是你的知识。
写作博客就是一种很好的知识内化的方式,我最开始的时候就是记录每次遇到的问题以及解决方案,然后通过500-1000字的文章记录下来。每天6点起床利用1小时阅读最新的技术文章,然后自拟题目写下与之相关的技术观点,不懂的地方就在网上查,每天晚上睡觉前再用一个小时时间总结当天遇到的问题,形成复盘记录。这个习惯我一直坚持了多年,慢慢从写博客到网站的特约作者,最后还出版了自己的技术书籍。现在我会看这段经历好像不可思议,但是就是通过每天一点点努力达成的。

🌽摸鱼时刻:🌽


如果说工作中积累的经验是课内知识的话,那么摸鱼时刻就是在积累课外知识了。经过一段时间的磨练对技术和业务都趋于成熟,程序开发、debug、发布都得心应手,也知道如何与产品经理、项目经理、测试人员打交道了。此时再用已经掌握的技术写已知的业务难度已经不大了,简单说很难有进步了。有些程序员此时会享受安逸的摸鱼时刻,每天按时完成任务逛逛论坛,早早就可以下班了。其实这就是危险的征兆,如果觉得工作没有挑战的时候,就是能力停止提升的时候,随着你的工资越高年龄越大,能力没有随之增长就有被替代的风险,这也就是常说的35岁程序员的危机感。
记得我在工作的第五个年头,感觉自己技术和业务上已经很牛B了,当时惠普正好在找人,于是就去面试了。自信满满的我被面试官问的哑口无言,被问到JVM、设计模式等问题的时候,我才发现我的脑袋空空,这些东西也就是听说过,在实际工作中根本就很少用到。痛定思痛,后来的一段时间我基本每天都在刷面试题,对着23设计模式画UML图,然后再跟着敲代码,把公司的架构用设计模式进行重写,为的就是加深印象。买了几本面试宝典,再从网上找了一些大厂的面试资料不停的看,找时间会把重要的题目划重点甚至背诵。由于惠普是外企对英语也有要求,当时英语已经丢了好多年了,没有办法找了本大学英语每天早上读,然后就是把自己的简历翻译过来反复背诵。就这样搞了差不多2个月,重新申请惠普面试(和上次面试的部门不同),结果如愿以偿面试通过了。
这段经历让我现在都记忆犹新,后来我自己总结,当你入新的舒适区,千万不要在这里停留太久,你需要在这个舒适区的边缘进行扩展,提升架构方面的能力,让你站在更高的层面去看待软件卡发。关于舒适区的扩展注意7/3原则,也就是进行扩展的时候70%的知识是在现有舒适区已经掌握的,另外30%你是不知道的需要学些的。这样在扩展的时候是有动力的,如果反过来 70% 是从来不知道的知识,30%是已经掌握的知识,会带来挫败感,不利于继续成长。
我之前书籍选择上会选择一些老外写的经典图书,但是有些算法类书籍读起来特别困难,几度都放弃了。这就是违反了7/3原则,后来从一些比较入手的数据开始读,慢慢建立一些系统架构的概念以后,再去肯一些大部头就容易多了。这里建议大家阅读数据结构、计算组成原理、编译原理、软件工程方面的基础书籍,这对后面继续提升有很大帮助。

⛄️敢问路在何方?⛄️


经常有人问我,程序员的职业道路如何走?专业能力和综合能力哪个重要?
对于程序员的职业道路如何走下去,我思考良久无法给出标准答案,但是如果想一直走下去,有一点是需要长期保持的,就是终生成长。程序员需要通过工作和学习不断磨练自己的能力,针对不同的业务环境提出不同的方案。我把这个成长过程描述为:学习->挑战->反馈->复盘 的四个步骤,不断循环这个过程不断提升自身的能力。
工作的前3-5年专业能力最重要,那是我们安生立命的根本,同时专业能力让我们在公司和行业中拥有更多的话语权,同时也有更多的晋升机会。5-10年以后,需要培养综合能力,包括:组织、管理、演讲、沟通等能力,因为这个时候专业能力的成熟会把你引向技术管理和项目管理岗位,说白了就是要带人干活了,上面这些能力是不能少的。10年以上会进入更高层次的管理岗位,或者自己创业,建议获取更加广泛的行业知识和能力,例如商业、领导力、财务、公司治理、战略等方面的知识和能力。同时,还要培养第二技能,这个第二技能可以围绕你的专业或者感兴趣的事情展开,例如:写作、制作教学视频、授课等等。第二技能也是反脆弱的根本所在。

写在最后🚀
    时间和篇幅有限,有很多工作的经验和学习的技巧无法给大家一一说明,如果说觉得上面的文字略显冗长的话,我这里将其整理为一句话:选好赛道、磨练能力、持续学习、终身成长。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值