程序人生在这个信息爆炸的时代程序员怎么去学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序人生在这个信息爆炸的时代程序员怎么去学习相关的知识,希望对你有一定的参考价值。
目录
- 众所周知的坑,可以不学
- 一、操作系统底层源码
- 二、数学知识
- 三、编译原理
- 四、喜欢把学习的知识强加于业务
- 五、不要向往大公司
- 六、不要面向面试学习
- 知道不学什么,才有更多时间学习需要的知识
- 一、学习业务相关的技术
- 二、做一个有产品思维的人(product-minded engineer)
- 三、做一个善于沟通的人
- 总结
新的一年要开始了,你一定长进了不少,但还在自责自己学习的不够多。让我来猜猜,这一年里面,你可能学习了:
- 数据结构与算法
- 操作系统底层原理
- Spring底层源码执行路径
- 你学习了许多篇极客时间,掘金小册,付费课程等
- 等等等等
学习了这么多东西,你用上了多少,或者你在一些地方,强行使用不该使用的技术,这个可比不使用任何先进技术,危害大得多。
网络上的知识纷繁复杂、千奇百怪,良莠不齐,在这样一个知识可以随意戳取,网络上什么都可以学习到的时代,相比之下最宝贵的,反而成为了你有限的时间和生命,相比于学习什么知识,你需要做的是克制自己不去学什么在这个年末,我想跟你聊聊新的一年该怎么学习。
众所周知的坑,可以不学
一、操作系统底层源码
我想除非你去华为从事操作系统相关的工作,否则不要去过度深入的了解操作系统底层,于你自己无益,而且会浪费掉大把宝贵的时间,关于操作系统,你能了解一些cpu指令操作、时间片轮转大概的道理就行了。
二、数学知识
有一些程序员觉得,数学和编码有很大的关系,学好数学对编程有很大的好处,否则怎么面试都在考算法呢。
其实程序数据中的算法,跟数学不能说毫无关系,但是你学到初衷毕业的数学知识也够用了,算法中很多是思维方式,而不是数学知识,你在编程中很难遇到一个业务,让你自己使用一套极度复杂的数学原理。
可以不去学习数学知识,有兴趣的话,把leetcode的题型刷一遍就可以了,这个不用我提醒,你在面试之前一定会刷leetcode。但我个人觉得,面试完就不要再去刷leetcode了
三、编译原理
有一些程序员在知道代码运行后,想去深究代码是什么运行的,就开始去研究编译原理,其实编译原理是一门很深的学问,如果你不是从事相关工作的,你穷尽所有努力可能也就是知道一个皮毛,而且就算你精通了编译原理,参与过java的程序编译工作,对你把自己的业务做好也没有任何增益。
四、喜欢把学习的知识强加于业务
我看到很多程序员,喜欢学习,但是为了巩固自己学习的知识,喜欢把自己学到的东西强加到业务上,拿到锤子,眼中满是钉子。这是我最想提醒了一类程序员,因为他们用心努力,积极进取,但是用错了方式,如果能让他们看到这篇文章后,转变思维方式,这篇文章也算有了一点小小的作用。
如果你醉心于学习新知识,而这些知识可能未必适用你的业务,那么你就会错失适配你的业务的最佳适配技术,此所谓把时间精力用错了地方。
在你的工作中,应该采用反向思考方式,当下或者后续迭代的业务中,可能会用到什么技术,然后去学习之。
五、不要向往大公司
我想有很多技术人员很向往大公司,认为大公司里面,技术栈复杂,可以学习高并发、高可用等等一些实践。
首先,大公司也是分事业部的,事业部下面也是各个部门,可能它的业务体量还不如你们公司的
其次,有人觉得大公司,平台大,工资高,有人看到脉脉上,阿里,腾讯,字节动辄百万的薪资,心动不已,其实也要业务发展的好才行,而大公司那样好的业务,也是十不存一,而且不会把好处轮到一个新人,你放心,进去你就知道后悔,围城一般
最后,就算是学技术,其实很多小公司的人,远胜大公司,我这么多年的职业生涯中,一个有接近百人的研发团队的公司,里面的技术水平其实就不比大公司差了,而且这样的公司机会更多,大公司看似好,其实都是他们的公关人事等人特意宣传,故意引诱你的,真实情况并不一样,不管你是刚毕业还是职场老鸟,小公司其实不比大公司差。
六、不要面向面试学习
其实,面试考的东西都是八股文,算法,找工作的时候背一背刷刷题就行了,平时工作中做这些事情,叫做舍本逐末。再不济,花钱报个班,现在阿里P7都是报班批量培养了。P8以上算是业务老板,不是培养技术培养的出来的。面向面试去学习的人,我也是见过及其多的,以此勉励,避免误入歧途。
知道不学什么,才有更多时间学习需要的知识
在这样一个信息爆炸的时代,知道自己不要去学什么,才有时间去思考自己要去学什么。
一、学习业务相关的技术
其实,你面向面试去学习,都是去学一些八股文,刷一些算法,未必实用,而你既然在一家公司了,就算这家公司没有达到你的标准,怎么才能把事情做好,在任何公司都是一样的,如果你钻研的知识,既有水平又能在业务中使用,这是你在任何公司都应该去锻炼的能力,而那些拿着锤子到处找钉子的开发者,是最末流的,我曾经属于最末流,但早已跳出,希望你也能。
二、做一个有产品思维的人(product-minded engineer)
曾经的我认为研发就应该全力研究技术,尽量让技术满足产品的要求就好了,其实不然:
- 产品的需求,可能用另外的技术也可以实现,而且大大节省研发工作量
- 产品一般不懂技术,不知道你使用一样技术的工作量
- 一个方案可能有多重实现方式,但是在实现细节上哪个和当前业务更匹配,是需要和产品研究的
三、做一个善于沟通的人
有一些人觉得,技术人员只要专心做技术就行了,其实只有好的沟通才能成事,不要害怕,走出来,勇敢去说话:
- 与上级沟通,可以让上级及时知道项目进展,有误风险
- 与下级沟通,可以让下级知道你们的目标,达成统一战线
- 与产品沟通,可以做出来更加有产品思维的技术实现,促进业务迭代
- 与测试沟通,可以让测试人员知道测试的关键点,要注意的事项,防止线上出问题
- 与有能力者沟通,用别人的能力来帮助你,让你的事情更容易达成
- 与其他研发沟通,及时了解研发配合难点,找到解决方案
要做一个合格的程序员,沟通能力一定要好,埋头苦干,成不了事。
总结
关于新的一年寄语,我跟你分享了你不应该去学什么,这样你才有更多的精力专注于自己要去学什么:
不要只专注于硬实力,做程序员,到一定阶段后拼的其实是软实力
我说的可能不是完全对,你可以在博文下面留下你的意见和建议,我们一起探讨学习。
以上是关于程序人生在这个信息爆炸的时代程序员怎么去学习的主要内容,如果未能解决你的问题,请参考以下文章
项目零贰号 | 蜂蜜笔记:打通玩乐与学习,在信息爆炸的时代帮你轻松做减法#SANDBOX#
“知识越多越反动”这句话是错误的,我还要说培根的“知识就力量”这句话也是有时代局限的(在今天信息爆炸的时代,信息和技能永远在过时的道路上)