本文出自 中华石杉老师的<为什么有些程序员明明很努力,但是却回报很低,收益很小,工资始终上不去> 视频,我本人辛辛苦苦用键盘将中华石杉老师说的话都打字打出来了,方便各位包括我自己也去好好的学习.
我见过很多程序员,他可能早上在学习,中午也学习,晚上也学习,一天学很长时间,只要不工作,一直就在学习,放假也不出去玩什么的,但是为什么他工资却始终上不去?
他可能感觉他学了很多,但是一面试,他三年可能也就是10多K, 或者5年就20多K, 这类人,我总结了一下,他是不太会学习的, 怎么说呢,首先第一点就是他是做业务开发的,但是他学习的东西过多的专注于特别底层的源码. 比如说JVM源码,Linux内核这些,其实这些你是可以看的,但是没必要一直揪着不放,首先你要弄清楚,你是做业务开发的,你不是Linux内核开发工程师,你也不是JVM开发工程师.或者说你也不是MySQL Redis 开发工程师.
比如说MySQL源码,你看了MySQL源码你是为了什么,你是为了面试出彩还是为了解决公司问题, 如果你是为了解决公司问题,你是DBA或者做公司数据库相关开发的开发工程师,那么Ok,MySQL的源码那你就必须得看了, 面试这些岗位也肯定会问,这些是必备项,那么你肯定要会. 但是大多数程序员都是业务开发的,也有少部分是做中间件开发的,可能是搞基础架构的.这一部分人,其实看MySQL的源码,或者看Redis源码或者Linux源码这些其实收益是很低的. 很多人问我为什么平时周末都要出去玩,因为我是比较爱玩的,平时周末不加班我是喜欢出去玩的,我周末出去玩,明显感觉我的学习效率稍稍比其他程序员学习效率高呢,因为我对我自己是有一个明确的认知的. 因为我也是做业务开发的,我也做过大数据开发,中间件开发,但是这些东西都是上层的东西,比如说你做网关,或者公司内部RPC中间件,或者限流,或者等等等… 这些东西其实都是上层的东西.你去看底层的东西,使劲看,其实收益是很低的, 尤其是说.很多人所在的公司比较小,是外包公司这些等等,这些公司基本都是用开源的技术,你连上层的中间件都开发都接触不到,那么你去看这些底层的东西,使劲看其实收益是很低的. 我建议大家,如果你是做业务开发的,我建议你先把上层的东西先学明白了,当然大学学的那些计算机基础的东西这些东西,你是一定要会的,如果你不会的话,你要去学学,但是不建议你当大头去学.比如说你一天学12个小时,你八个小时都在看这些东西. 剩下的四个小时,你去看你现在用的到的东西, 这样我是不建议的, 首先,学习一来说是很枯燥的.也很费脑子的东西,其次是你先把你用得到的这些学明白了,你去跳槽一个好的公司你不仅仅可以平时休息时候学习可以学习到一些新的知识,包括你在工作中也可以学习到新的知识,这是毋庸置疑的. 你可能有些大公司的程序员可能技术不怎么样,但是他在大公司待了几年之后,他却有那种在小公司出来的程序员没有的一些东西.就是在大公司学的东西,公司内部人员分享的学习资料或者公司的RPC啊或者一些等等技术文档等等,包括你平时和领导沟通啊,有什么不会的去问啊,都可以学到东西.相反你在小公司的话,你学的东西的几率就是很小的. 可能说一百个小公司就有几家你的领导是从大公司出来,然后去小公司养老的这些,或者高薪挖过去的.这样的很少. 大部分的小公司领导都是在小公司待的时间很长了,可能他在公司边做技术边做管理,技术也很不咋地.
所以我要说一下学生,你重点还是打基础,我见过一些学生跟我说,感觉学校学的东西没什么用,这里的话,我上学的时候就是做过一些开发,我当时就觉得学校学的东西没什么用.学校教的是什么牛马玩意.学了有啥用啊. 但是自从工作了一年之后我发现学校学的东西其实是非常有用的,但是可能学校老师可能就照着PPT在那里念, 或者这个老师技术也很一般,讲不明白的那种,或者是技术特别老了,或者是讲课不太好的那种,就是啥样的都用,所以就给你感觉学习很枯燥,学完了没什么用. 但是我自从上了一年班之后,我发现其实上学的时候学的东西是很有用的,比如说我做调优的工作,工作之后我发现这些东西其实是非常的有用的.所以说如果你是学生的话,不要过分的追逐新技术,基础打好了,技术都是互通的. 你学哪个技术都是很快的,包括你看什么源码,都是很轻松的. 所以你是学生的话,你先要给学校的东西学好. 第二点就是有些人表面在学习,你看他非常的努力,其实他可能就是说看一些视频什么的看了一遍没什么印象,就继续看下一个了,或者就是看了一个视频可能有某个地方没弄明白,那不行,必须死活弄明白. 就是有一个是走马观花似的看,还一个就是学了一个技术但是某方面没弄明白,他就必须死扣明白.就是什么时候明白什么时候位置. 上面两种人学习效率是非常的低的,然后还有第三种就是我看一个东西没看明白,我使劲读,读个十多遍不行然后读二十遍,什么时候明白为止什么时候拉倒, 还有一种人是这种人,我看一个东西,讲完某个技术我觉得挺不错,我就看他讲的,但是我读下来,没读懂,然后就还要继续读,我读了两三遍之后我还是读不懂,其实这样的话,就可能是有两点,第一个就是写文章的人没写明白,导致你没懂,第二种情况就是他写的地方有些默认是觉得读者是会的,但是大部分读者可能不会,这也导致有人读着读着读几遍没读明白,这样其实也是很浪费时间的. 我一般的话,我看一个文章,我看不明白了,我可能就是找类似的文章我再接着看,我看其他人写的怎么样,可能有些人这部分就比别人写的好,我给这部分读完了之后,然后剩下的部分可能不如另外一个人写的好,那么剩下的我就去读另外一个人的. 这样下来我其实是给知识点已经打通了,我相对来说我读两遍我我把两篇文章写的精髓我全都学会了,但是如果你在一篇文章上使劲,你读两遍反而还什么都没读明白,你这样的话,效率就太低了. 这也就是导致很多人学习看起来很努力,但是学了一年出去面试,工资就涨了二三千,这其实我觉得如果跳槽只是涨两三千,那真是白瞎了你一年的努力了,尤其是工作初期,你一年 两年 三年工作经验的人,你学一年再跳槽工资涨幅是比较大的,因为你工作年限比较少的话,你工作工资普遍也不是很高,你的薪资涨幅其实是比较大的,尤其是你上家工资比较低的时候, 虽然说你下家公司会卡你上家公司的工资,但是涨肯定不是只涨两千块钱,如果你一年学的比较不错的话,不可能只是涨了两三千那么点的.
所以说,这就是我说的就是 为什么有些程序员明明很努力,但是却回报很低,收益很小,工资始终上不去.
我上面说的这些人不是不让你去看了,我的意思是你要分工明确,比如说你八个小时, 你三个小时看一些底层的东西,然后剩下的五个小时你一直去看上层的东西,那么OK,你这收益其实是很大的.如果你八个小时只是学习上层的东西,你也是比较枯燥的.你的收益相对来说还是会比较低的. 你去合理的去分工一下, 你的收益是比较大的.你不仅仅学习了底层的这些东西,其次你的工作当中你用的这些东西,你用的还是非常的熟练,你面试的话,这些一问全知道,才能把可能会出现场景给想到. 比如说我之前看一个平台的直播面试,大厂面试官其实普遍都是问你场景题,你答上来了,或者就着你的简历的项目,那就会涉及到高并发情况下,比如说抖音快手网红直播这些高并发情况下你这些怎么设计,然后这个比如说过年快手的弹幕系统是怎么设计的, 礼物系统是怎么设计的. 你多研究这些的收益比你一股劲钻底层的收益来得快,
当然你是搞Linux内核开发MySQL开发的话等等, 你肯定是Linux内核啊,MySQL啊这些源码都要必须看的. 因为你的侧重点就是这些,你肯定必须要看的.上面我说的这些东西就不适用你了.毕竟你不是开发公司业务的工程师.
|