当前位置:   article > 正文

程序人生(二)在这个信息爆炸的时代程序员怎么去学习_code程序人生

code程序人生


新的一年要开始了,你一定长进了不少,但还在自责自己学习的不够多。让我来猜猜,这一年里面,你可能学习了:

  • 数据结构与算法
  • 操作系统底层原理
  • Spring底层源码执行路径
  • 你学习了许多篇极客时间,掘金小册,付费课程等
  • 等等等等

学习了这么多东西,你用上了多少,或者你在一些地方,强行使用不该使用的技术,这个可比不使用任何先进技术,危害大得多。

网络上的知识纷繁复杂、千奇百怪,良莠不齐,在这样一个知识可以随意戳取,网络上什么都可以学习到的时代,相比之下最宝贵的,反而成为了你有限的时间和生命,相比于学习什么知识,你需要做的是克制自己不去学什么在这个年末,我想跟你聊聊新的一年该怎么学习。

众所周知的坑,可以不学

一、操作系统底层源码

我想除非你去华为从事操作系统相关的工作,否则不要去过度深入的了解操作系统底层,于你自己无益,而且会浪费掉大把宝贵的时间,关于操作系统,你能了解一些cpu指令操作、时间片轮转大概的道理就行了。

二、数学知识

有一些程序员觉得,数学和编码有很大的关系,学好数学对编程有很大的好处,否则怎么面试都在考算法呢。

其实程序数据中的算法,跟数学不能说毫无关系,但是你学到初衷毕业的数学知识也够用了,算法中很多是思维方式,而不是数学知识,你在编程中很难遇到一个业务,让你自己使用一套极度复杂的数学原理。

可以不去学习数学知识,有兴趣的话,把leetcode的题型刷一遍就可以了,这个不用我提醒,你在面试之前一定会刷leetcode。但我个人觉得,面试完就不要再去刷leetcode了

三、编译原理

有一些程序员在知道代码运行后,想去深究代码是什么运行的,就开始去研究编译原理,其实编译原理是一门很深的学问,如果你不是从事相关工作的,你穷尽所有努力可能也就是知道一个皮毛,而且就算你精通了编译原理,参与过java的程序编译工作,对你把自己的业务做好也没有任何增益。

四、喜欢把学习的知识强加于业务

我看到很多程序员,喜欢学习,但是为了巩固自己学习的知识,喜欢把自己学到的东西强加到业务上,拿到锤子,眼中满是钉子。这是我最想提醒了一类程序员,因为他们用心努力,积极进取,但是用错了方式,如果能让他们看到这篇文章后,转变思维方式,这篇文章也算有了一点小小的作用。

如果你醉心于学习新知识,而这些知识可能未必适用你的业务,那么你就会错失适配你的业务的最佳适配技术,此所谓把时间精力用错了地方。

在你的工作中,应该采用反向思考方式,当下或者后续迭代的业务中,可能会用到什么技术,然后去学习之。

五、不要向往大公司

我想有很多技术人员很向往大公司,认为大公司里面,技术栈复杂,可以学习高并发、高可用等等一些实践。

首先,大公司也是分事业部的,事业部下面也是各个部门,可能它的业务体量还不如你们公司的
其次,有人觉得大公司,平台大,工资高,有人看到脉脉上,阿里,腾讯,字节动辄百万的薪资,心动不已,其实也要业务发展的好才行,而大公司那样好的业务,也是十不存一,而且不会把好处轮到一个新人,你放心,进去你就知道后悔,围城一般
最后,就算是学技术,其实很多小公司的人,远胜大公司,我这么多年的职业生涯中,一个有接近百人的研发团队的公司,里面的技术水平其实就不比大公司差了,而且这样的公司机会更多,大公司看似好,其实都是他们的公关人事等人特意宣传,故意引诱你的,真实情况并不一样,不管你是刚毕业还是职场老鸟,小公司其实不比大公司差。

六、不要面向面试学习

其实,面试考的东西都是八股文,算法,找工作的时候背一背刷刷题就行了,平时工作中做这些事情,叫做舍本逐末。再不济,花钱报个班,现在阿里P7都是报班批量培养了。P8以上算是业务老板,不是培养技术培养的出来的。面向面试去学习的人,我也是见过及其多的,以此勉励,避免误入歧途。

知道不学什么,才有更多时间学习需要的知识

在这样一个信息爆炸的时代,知道自己不要去学什么,才有时间去思考自己要去学什么。

一、学习业务相关的技术

其实,你面向面试去学习,都是去学一些八股文,刷一些算法,未必实用,而你既然在一家公司了,就算这家公司没有达到你的标准,怎么才能把事情做好,在任何公司都是一样的,如果你钻研的知识,既有水平又能在业务中使用,这是你在任何公司都应该去锻炼的能力,而那些拿着锤子到处找钉子的开发者,是最末流的,我曾经属于最末流,但早已跳出,希望你也能。

二、做一个有产品思维的人(product-minded engineer)

曾经的我认为研发就应该全力研究技术,尽量让技术满足产品的要求就好了,其实不然:

  • 产品的需求,可能用另外的技术也可以实现,而且大大节省研发工作量
  • 产品一般不懂技术,不知道你使用一样技术的工作量
  • 一个方案可能有多重实现方式,但是在实现细节上哪个和当前业务更匹配,是需要和产品研究的

三、做一个善于沟通的人

有一些人觉得,技术人员只要专心做技术就行了,其实只有好的沟通才能成事,不要害怕,走出来,勇敢去说话:

  • 与上级沟通,可以让上级及时知道项目进展,有误风险
  • 与下级沟通,可以让下级知道你们的目标,达成统一战线
  • 与产品沟通,可以做出来更加有产品思维的技术实现,促进业务迭代
  • 与测试沟通,可以让测试人员知道测试的关键点,要注意的事项,防止线上出问题
  • 与有能力者沟通,用别人的能力来帮助你,让你的事情更容易达成
  • 与其他研发沟通,及时了解研发配合难点,找到解决方案

要做一个合格的程序员,沟通能力一定要好,埋头苦干,成不了事。

总结

关于新的一年寄语,我跟你分享了你不应该去学什么,这样你才有更多的精力专注于自己要去学什么:
不要只专注于硬实力,做程序员,到一定阶段后拼的其实是软实力
我说的可能不是完全对,你可以在博文下面留下你的意见和建议,我们一起探讨学习。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/505446
推荐阅读
相关标签
  

闽ICP备14008679号