聊聊如何才能高效学习?

简介: 近些年诞生了许多新技术,比如最时髦的 AI(目前还在智障阶段),数学基础是初中就接触过的概率统计。万丈高楼从地起,不要被新工具或者中间件迷住双眼,一味地追新求快。基础知识是所有技术的基石,在未来很长的时间都不会变化,应该花费足够的时间巩固基础。

前言

一茶一饭当思来之不易,半丝半缕恒念物力维艰。

                                                                              ---袁老千古

微信图片_20220416174212.png

前两天有读者在微信上问我,计算机都应该学哪些东西?到底广度好还是深度好?如何构建自己的知识体系?这些问题我想你不管是刚毕业,还是工作一段时间可能都会遇到这些问题,那么针对这个问题,我想下面这篇文章能够给你一个完整的答案。

微信图片_20220416174215.png

学什么

基础与应用

近些年诞生了许多新技术,比如最时髦的 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 公司会对技术人员有个评级,如果你的评级不高,那就依照晋级章程努力升级。如果你在一个小公司,收入一般,发展前景不明,准备大厂的面试就是最好的学习过程。在这些过程中,你必然学习更多知识,变得更广更深。

个人兴趣是前进的动力之一,许多知名开源项目都源于作者的兴趣。个人兴趣并不局限技术领域,可以是其他学科。我有个朋友喜欢玩山地自行车,还给一些做自行车话题的自媒体投稿。久而久之,居然能够写一手好文章了,我相信他也能写好技术文档。

哲学

哲学不是故作高深的学科,它的现实意义就是解决问题。年轻小伙是怎么泡妞的?三天两头花不断,大庭广众跪求爱。这类套路为什么总是能成功呢?礼物满足女人的物欲,当众求爱满足女人的虚荣心,投其所好。食堂大妈打菜的手越来越抖,辣子鸡丁变成辣子辣丁,为什么呢?食堂要控制成本,直接提价会惹众怒。

科学上的哲学,一般指研究事物发展的规律,归纳终极的解决方案。软件行业充满哲学味道的作品非常多,比如《人月神话》。举个例子,当软件系统遇到性能问题,尝试下面两种哲学思想提升性能

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

设计稳健高可用的系统,尝试从三个方面考虑问题:

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

从无数的失败或者成功的经验中,总结出高度概括性的方案,让我们下一步做的更好。

英语

英语是极为重要的基础,学好英语与掌握编程语言一样重要。且不说外企对英语的要求,许多知名博客就是把英文翻译成中文,充当知识的搬运工。如果英语足够好,直接阅读一手英语资料,避免他人翻译存在的谬误。

怎么学

知识体系

体系化的知识比零散的更容易记忆和理解,这正如一部好的电视剧,剧情环环相扣才能吸引观众。建议大家使用思维导图罗列知识点,构建体系结构,如下图所示:

微信图片_20220416174221.png

克服遗忘

高中是我们知识的巅峰时刻,每周小考每月大考,教辅资料堆成山,地狱式的反复操练强化记忆。复习是对抗遗忘的唯一办法。大脑的遗忘是有规律的,先快后慢。一天后,学到的知识只剩下原来的 25%,甚至更低。随着时间的推移,遗忘的速度减慢,遗忘的数量也就减少。

微信图片_20220416174225.png

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

碎片时间

不少朋友利用碎片时间学习,比如在公交上看公众号的推送。其实我们都高估了自己的抗干扰能力,如果处在嘈杂的环境,注意力容易被打断,记忆留存度也很低。碎片时间适合学习简单孤立的知识点,比如链表的定义与实现。

学习复杂的知识,需要大段的连续时间。图书馆是个好地方,安静氛围好。手机放一边,不要理会 QQ 微信,最好阅读纸质书,泡上一整天。有些城市出现了付费自习室,提供格子间、茶水等等,也是非常好的选择。

用起来

技术分享

从下面这张图我们可以看到,教授他人是知识留存率最高的方式。

微信图片_20220416174229.png

准备 PPT 和演讲内容,给同事来一场技术分享。不光复习知识,还锻炼口才。曾经有个同事说话又快又急,口头禅也多,比如对吧、是不是,别人经常听不清,但是他本人不以为然。领导让他做了几次技术分享,听众的反应可想而知,他才彻底认清缺点。

坚持写技术博客,别在意你写的东西在网上已经重复千百遍。当自己动手的时候,才会意识到眼高手低。让文章读起来流畅清晰,需要呕心沥血的删改。写作是对大脑的长期考验,想不到肯定写不出,想不清楚肯定写不清楚。

造个轮子

我们经常说不要重复造轮子。为了开发效率,可以不造轮子,但是必须具备造轮子的能力。建议造一个简单的MQ,你能用到通信协议、设计模式、队列等许多知识。在造轮子的过程中,你会频繁的翻阅各种手册或者博客,这就是用输出倒逼输入

相关文章
|
3月前
怎么背记理论知识高效
怎么背记理论知识高效
43 1
|
13天前
|
分布式计算 并行计算 大数据
Python编程中的高效数据处理技巧
Python编程中的高效数据处理技巧
33 0
|
5月前
|
存储 算法 安全
用C++打造极致高效的框架:技术探索与实践
本文探讨了如何使用C++构建高性能框架。C++凭借其高性能、灵活性和跨平台性成为框架开发的理想选择。关键技术和实践包括:内存管理优化(如智能指针和自定义内存池)、并发编程(利用C++的并发工具)、模板与泛型编程以提高代码复用性,以及性能分析和优化。在实践中,应注意代码简洁性、遵循最佳实践、错误处理和充分测试。随着技术发展,不断提升对框架性能的要求,持续学习是提升C++框架开发能力的关键。
115 1
|
6月前
|
人工智能 监控 Windows
推荐5个高效工具,希望对你有帮助
每次发现实用的小工具,都会有种小小的成就感,这也是我喜欢收集和分享高效工具的原因。
94 0
|
6月前
|
Unix Linux Shell
分享5款简单而高效的小工具
在这个繁忙的时代,简单而高效的工具成为生活和工作中的宝贵助手。以下是五款小巧而实用的小工具,或许正是你所需的生活小搭档。
75 0
|
机器学习/深度学习 人工智能 JavaScript
简单又好用得高效工具分享
简单又好用得高效工具分享
希望大家通过正确的方法高效学习。
希望大家通过正确的方法高效学习。
|
安全
高效的学习方法
高效的学习方法
100 0
|
资源调度 前端开发 JavaScript
使用PlopJs让开发变得更高效
使用PlopJs让开发变得更高效
306 0
使用PlopJs让开发变得更高效