当前位置:职场发展 > 如何高效学习技术

如何高效学习技术

  • 发布:2023-10-05 19:15

  • 要学什么
    • 基础与应用
    • 广度和深度
    • 哲学
    • 英语
  • 如何学习
    • 知识体系
    • 克服健忘
    • 碎片时间
  • 使用它
    • 技术分享
    • 造一个轮子

我们相信,努力学习一定会有回报,但方法不当,既身心疲惫,又没有切实的回报。高中时,我的同桌是一位漂亮的女同学。她的物理成绩很差。尽管她学习很努力,但成绩却总是不理想。为了巩固纯洁和同学的关系,我仔细辅导她物理,发现她不知道题目是什么。我们的教科书和试题都是围绕考试大纲展开的。当你看到一个问题时,你应该首先思考它所检验的定理和公式。
很多朋友每天都看技术文章,第二天却全忘了。在工作中,你的领导和同事认可你的沟通和技术能力,但跳槽面试却常常碰壁。面试官询问技术方案。他心里明明知道,可当他用嘴说出来的时候,第一句话和最后一句话却不相符。面试官又问底层算法。你说你见过但忘记了。他不在乎你是否看过。如果你不能回答,你将得零分。就像男女约会时,男人只要说话随意,就能吸引女孩。但男人却很紧张。平时他能言善道,但关键时刻却支吾其词。女孩一定是觉得他不够优秀。人生充满了许多考试,有形的和无形的,而每次考试你只有一次机会。
工作五年、十年,别人都成了架构师,我却还在基层工作。是什么原因?导致你在职场上无法成功晋升的原因有很多。无法继续学习、学习成绩不佳、未能通过心仪公司的面试一定是非常重要的原因。
将自己想象成一台计算机,它既有输入又有输出。使用输出强制输入。

要学什么

基础知识和应用

    近年来诞生了很多新技术,比如最时髦的AI(还处于弱智阶段)。数学的基础是我初中时接触过的概率论和数理统计。高楼拔地而起,不要被新工具或中间件蒙蔽双眼,盲目追求新事物、追求速度。基础知识是一切技术的基石,在未来很长一段时间内不会改变。应该花足够的时间来巩固基础。
以数据结构和算法为例,请阅读Java的BitSet源代码。里面有很多移位操作。如果你很好地掌握了移位操作,那么阅读这个源代码就不会有问题。 Java同步工具AQS使用的是双向链表。如果你对链表的了解不够,你肯定不会理解它的原理。各大互联网公司都喜欢测试算法,必须精通算法才能通过面试。
以Java工程师应该掌握的知识为例,我们按照重要性顺序排列了六个梯度:

  • 第一梯度:计算机组成原理、数据结构与算法、网络通信原理、操作系统原理;
  • 第二梯度:Java基础知识、JVM内存模型和GC算法、JVM性能调优、JDK工具、设计模式;
  • 第三个梯度:Spring系列、Mybatis、Dubbo等主流框架的应用和原理;
  • 第四个梯度:MySQL(包括SQL编程)、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper等数据库或中间件的应用和原理;
  • 第五梯度:CAP理论、BASE理论、Paxos和Raft算法等分布式理论;
  • 第六梯度:集装箱化、大数据、AI、区块链等前沿技术理论;

有同学认为第五个渐变应该移到第一个渐变。事实上,很多小公司的日常活动也像古天乐一样平庸,离大规模的分布式架构还很远。在学习框架和中间件的时候,掌握分布理论会更好。

广度和深度

  很多企业在招聘JD时,并没有对技术人员设定年龄门槛,而是会加上一句“具有与年龄相称的知识广度和深度”。多宽才算宽,多深才算深?这是一个非常主观的话题,这里不予讨论。
如何变得更广、更深? 突破收入上升瓶颈,发现自己真正的兴趣
大多数人只是公司的普通员工,收入增长的瓶颈是升职加薪。很多IT公司都会对技术人员进行评级。如果你的等级不高,那就按照晋级规定努力升级吧。如果你在一家收入一般、发展前景不明确的小公司,准备大公司面试是最好的学习过程。在这些过程中,你必然会学到更多的知识,变得更广、更深。
个人兴趣是进步的动力之一,许多知名的开源项目都源于作者的兴趣。个人兴趣不仅限于技术领域,还可以是其他学科。我有一个喜欢山地骑行的朋友,经常给一些有关骑行话题的自媒体投稿。久而久之,他就能写出好文章了。我相信他也能写出很好的技术文档。

哲学

  哲学不是一门自命不凡的学科,它的现实意义是解决问题。年轻人如何泡妞?三天花开,人人跪拜。为什么这些类型的例程总是成功?礼物满足了女人的物欲,公开求爱满足了女人的虚荣心,迎合了她的欲望。食堂送菜的阿姨的手越来越抖,辣子鸡丁变成了麻辣香辣鸡丁。为什么?食堂需要控制成本,直接涨价会引起公愤。
科学中的哲学一般是指研究事物发展的规律并总结出最终的解决办法。软件行业有很多哲学著作,比如《人月神话》。例如,当软件系统遇到性能问题时,尝试以下两种理念来提高性能:

  • 以空间换时间:例如引入缓存消耗额外的存储来提高响应速度。
  • 以时间换空间:比如对大文件进行分段处理,然后对分段处理后的结果进行汇总。

要设计一个健壮且高可用的系统,尽量从三个方面考虑问题:

  • 存储:数据会丢失吗?如何解决数据一致性。
  • 计算:计算如何扩容,应用是否允许增加节点?
  • 传输:如果网络中断或拥塞怎么办。

从无数的失败或成功经验中,我们总结出高度概括的计划,以便下一步做得更好。

英语

英语是重要的基础。学好英语与掌握编程同样重要。很多知名博客只是将英文翻译成中文,只是知识的搬运工。如果你的英语足够好,请直接阅读主要来源,以避免其他人翻译中的谬误。

如果纯粹用于日常技术工作,则无需练习英语口语,只需提高文档阅读能力即可。首先,你需要突破词汇障碍,至少达到六级5500词汇水平。其次,你必须掌握专业英语词汇。推荐使用机械工业出版社的《计算机专业英语》书。最后,坚持阅读高质量的技术文档,这样才能用英语表达自己的技术意图。 Spring的技术文档是很好的学习材料。如果你到处寻找各种英文文献,往往只是收集而不阅读。

如何学习

知识体系

  系统的知识比分散的知识更容易记忆和理解。这就像一部好的电视剧,只有环环相扣的情节才能吸引观众。建议大家用思维导图罗列知识点,构建系统结构,如下图:

克服健忘

高中是我们知识的顶峰。每周都有小测试,每个月都有大测试。海量的教材和地狱般的强化记忆的重复练习。复习是对抗遗忘的唯一方法。大脑的遗忘是有规律的,先是很快,然后慢慢地。一天之后,原来的知识只剩下25%,甚至更低。随着时间的推移,遗忘速度减慢,遗忘量减少。

时间间隔 内存容量
刚看完 100%
20分钟后 60%
1小时后 40%
1天后 30%
2天后 27%

每个人的遗忘程度不同。建议第二天复习前一天的内容,7天后复习这段时间的所有内容。

碎片时间

  很多朋友利用业余时间学习,比如在公交车上看公众号的通知。事实上,我们都高估了自己抵抗干扰的能力。如果我们处于嘈杂的环境中,我们的注意力很容易被打断,记忆力也会很低。碎片时间适合学习简单、孤立的知识点,比如链表的定义和实现。
学习复杂的知识需要很长一段连续的时间。图书馆是一个气氛安静的好地方。把手机放在一边,忽略QQ和微信。最好看纸质书,花一整天的时间阅读。一些城市已经出现了付费自习室,提供小隔间、茶水等,也是非常不错的选择。

使用它

技术分享

    从下图中我们可以看出,教别人是保留知识率最高的方式。

  准备PPT和演讲内容,与同事分享技术。不仅复习知识,还练习口才。我曾经有一个同事,说话又快又急,还用了很多流行语,比如“对了,不是这样吗?”别人常常听不清楚,但他并不介意。领导多次要求他分享自己的技术。可想而知,观众的反应让他充分认识到自己的缺点。
继续写技术博客,不要在意你写的东西在互联网上已经被重复了数千次。只有自己去做了,才会发现眼高手低。要使文章读起来流畅、清晰,需要煞费苦心的删除和编辑。写作是对大脑的长期考验。如果你想不到,你肯定写不出。如果你想不清楚,你肯定写不好。

造一个轮子

我们常说不要重新发明轮子。为了开发效率,你不必造轮子,但你必须有造轮子的能力。优秀的开源项目的作者通常都具有极高的工程能力。他们从项目的实际需求出发,用代码实现通用的解决方案。造轮子的目的一是巩固编程知识,二是磨练工程能力。

建议搭建一个简单的MQ,会用到通信协议、设计模式、队列等很多知识。在造轮子的过程中,你要阅读大量的技术资料或者博客。这就是以输出强制输入

相关文章