为什么你不应该在工作中寻求个人的进步
从老板角度
如果尝试站在老板的角度思考,老板招聘人员是为了完成业务目标,而不是为了让员工能有技术上的进步。
引自文章:不要自称为程序员
企业最关心的(或者说唯一在乎的)事情,就是增加收入、降低成本。
企业实际上需要的不是程序员,而是能够帮助它们增加收入、降低成本的人。
企业雇佣你,是为了让你帮它们完成某个可以增加收入、降低成本的项目,而不是为了让你追求个人的软件成就。
从个人角度
当你在说想从工作中获得进步时,这个所谓的进步其实是很模糊的。
我在实习的时候就陷入了这个误区当中。
至于为啥我要在实习一个月后跑路,当然不是因为什么资本压榨,相反,该司的待遇还是挺好的(我属于是一分钟班没加过),单纯就是我觉得学不到东西。也不能说啥都没学到吧,不过在技术方面确实没啥提升(倒是在摸鱼的时候把 Redis 1.0 版本的源码看懂了)。
我在实习时也有过希望,能通过被分配到的任务获得一些技术上的成长。但现在马后炮来看,这个所谓的“技术成长”其实是很模糊的目标。是学会使用新的框架,还是学会新的代码重构技巧,或者是增强读代码的能力?其实我心里是没有明确的目标的。反倒是“倒是在摸鱼的时候把 Redis 1.0 版本的源码看懂了”,这样来看在摸鱼时的收获还更多些。
之前有和朋友讨论过这个问题,当时我还没有完全把这个问题想明白,朋友说“如果这样的话,那不就成了工作机器了吗?”我一时也不知该如何反驳。但后来慢慢又有些明白了。
关键在于主动和被动
我想到,个人成长的关键还是在于自己的主动。事实上,可能从大学时期之后,个人就很难被动地获得成长了。
我在实习时就希望能够通过被分配到的任务被动地获得成长,但是公司的角度来说,给员工专门分配任务让其获得成长其实是得不偿失的。一方面,公司不是培训机构,公司的目的是产生利润而不是让员工成长;另一方面,就国内的就业环境来说,多数人都很难在同一家公司待很久,员工成长给公司带来的效益并不高。
因此,要在工作之后寻求个人的成长就需要个人的主动了。在被分配到有价值的任务时要抓紧机会努力做好,比如:
新人加入一个开发团队时,要干五件事。前面四件事是了解技术架构、了解开发流程、补强基础知识、从微小的改善入手(比如关掉几个 issue)。这些都是常识,但是第五件事,很多新人都没意识到,你应该要去做,而且完全有能力做,那就是 你要为团队写文档 。
我自己的体会是,写文档对一个人的锻炼是很大的。(1)可以熟悉项目;(2)可以提高表达能力;(3)可以提高技术能力,因为只有理解了代码才能表达出来,文档越清晰,就代表思路越清晰;(4)可以提高个人影响力,文档写得越好,看的人就越多。久而久之,你就会成为项目的代言人,别人有问题就会来找你。
如果初入行业,又被分配到写文档类的任务,可以多花些时间,比如尝试把文档写得更易懂。
又比如在摸鱼时可以做些更能使自己获得成长的事,比如我就在实习摸鱼时读了不少 Redis 的源码😊。