2

一些学习经验分享

 2 years ago
source link: https://cuiqingcai.com/36053.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

利用好搜索引擎

互联网时代,我们面临的是知识爆炸而不是知识匮乏。网上有很多很多好的学习资源,比如一些学习文档、疑难问题解决方案,很多都可以在网上搜到。

虽然网上有这些内容,但不同的搜索方法和用不同的搜索引擎搜到的结果就大不一样。

比如说,我们平时遇到了一些编程相关的问题,在谷歌中用英文搜索的结果在绝大多数情况下都会比在百度用中文搜索的结果好。比如说前者的结果通常就会是一些官方文档说明,而后者大多都是一些中文版 CSDN 博客,谁更前沿、更权威高下立判了。

我是做技术相关的,所以对于一些技术内容,我个人是非常建议首选谷歌英文搜索的,多数情况下能够更快更好地解决问题。

多看一手资料

我们知道,现在网上很多框架、工具,其都会配一个官方文档,比如 Python 的某个工具库、Vue 的的某个脚手架等等,同时很多源码也会在 GitHub 上公开。

我们如果要进行学习这些内容的话,我个人推荐尽量多去查询一些一手的资料,比如一些入门使用方法,可以尽量去看官方文档的一些 Get Started 部分;比如一些疑难 Issues,可以去 GitHub Issues 区搜索下关键词。

当然有的同学会说,官方文档都是些英文的,我看不懂啊,所以通常都会去搜索一些博客文章来看,比如一些中文博客的教程。可以是可以,也的确有一些优秀的博主能写出一些不错的文章,但毕竟还是少,而且这永远都不是一手资料,多数情况下,博客的文章也会有一些实效性的问题或者难免会出现一些错误。

所以,我个人还是推荐尽量去看一手资料。但一手的资料通常英文居多,但还是建议大家能够尽量地适应去读英文文档,如果能够做到的话,我们获取知识的能力会继续上一个台阶。

时间管理和分类

每个人的精力都是有限的,一些工作和其他的琐事可以说是无穷无尽的。

所以,在做一些工作和学习的事情的时候,我们需要去区分优先级和重要程度,也就是能够合理地管理好自己要做的事情。

我个人会用一个清单软件(我用的滴答清单)来记录我所有需要做的事情,然后会给每个事情进行分类,比如说我会划分工作、学习、私人、购物、电影等等各种分类,然后每个任务都会指定好优先级和过期事件。指定好了之后,清单软件有一些功能可以给我筛选出来哪些是紧急重要,哪些是不紧急重要,哪些是紧急不重要等等的事情,然后我会有选择地去做对应的事情。比如说我会把大量的时间花在重要的事情上,不紧急不重要的可以看看能否尽量规避或者找人代做,总之不同的类型需要有不同的应对方案。

另外还有一些习惯养成类的事情,比如说定期的学习计划、定期的健身、定期的冥想、定期的跑步,也可以列入到个人的事件规划中。我通常以打卡的形式记录在清单软件中,每天都会有定期提醒,这样做完之后我就会打一次卡,看着越来越满的打卡记录,会感觉比较有成就感,大家也可以来试试。

要有一个短期目标

我们有时候做事的时候,脑子里知道很多长远的目标是什么。比如说,我长远计划里面有一个事情是要做一个网站系统,这是一个大目标,同时也有一个长远计划是要学习精通一门编程语言,这也是一个大目标。很多大目标都在我们的潜意识里面存留着。

现在问一个问题,虽然这些大的目标都在我们脑海里,但有没有一个时间,自己突然闲下来或者临时没有事的时候,却不知道这个空闲的时间去做什么?

如果有,那很可能就是因为没有短期目标。因为这个目标在我们的脑海中太大了,根本无法落实到执行的地步,所以我们需要做的事就是把一些目标进行拆解,拆解到什么地步呢?拆解到能够想到就能立马开始做的地步,这就是一些短期目标。

比如说,我们要学习一门课,我们可以给自己列个计划,比如哪天可以看哪个视频,或者一篇文章,这是知道了就能立马去做的事情。

所以,有了这个短期目标,我们能够更好地落实到执行上,这也是能够有效延缓拖延的方法。

不要完美主义

在做一些事情的时候,我们不要过分地追求完美主义。不是说不好,是因为这样很容易消磨我们的精力和耐心。

比如说,我们学习背单词吧,比如每天的计划是 20 个单词,好第一天背了 20 个,然后接着第二天的时候发现前 20 个单词没有背过,然后就接着背前 20 个单词,然后第三天的时候发现第一天和第二天的 40 个还是记得不牢固,然后就觉得好难,最后就放弃了,这就是因为过分追求完美主义导致的问题。

学习并不是非 0 即 1 的,我们如果能够学会 20%、60%、80% 也是一个不错的进步。

所以,我们不要执着于完美主义,非要做到 100% 不可,这样会把自己的精力和耐心慢慢消磨,直到放弃。

不是所有教材都适合每个人

并不是所有权威教材都是适合每个人的,要去寻找适合自己的学习方式。

市面上其实有很多所谓的权威教材或者网红教材,但这些教材并不是万能的,众口是很难调的,因为每个人的基础、水平都是不同的。

比如说一本书里面在前面的章节写了一些基础的环境配置和基础知识,有些人就会觉得非常友好,会觉得非常实用,但有些人就会觉得非常啰嗦,没有重点。比如说有人在学习一个框架和库的时候就喜欢看视频学习,因为这样能够看到具体的操作流程,但有些人就会觉得看视频学习非常浪费时间,而且知识点不好找,还是看官方文档或看书更方便。

这些学习方法和偏好没有绝对的对与不对,我们也不用非要跟风去购买和学习某个特定的教材和学习形式,适合自己的才是最好的。

多进行总结和记录

这个是非常非常非常重要的,在学习的过程中把学习笔记记录下来是一个非常好而且有效的学习习惯。

好处有这么以下几点:

  • 自己的学习笔记是对自己学习过程的梳理和总结,梳理和总结的过程就是一个学习复盘的过程,能够加深自己对知识点的印象。
  • 方便复习会看,好记性不如烂笔头。写下来之后,如果我们想要对某个知识点进行复习,是非常容易的,因为文章的整体思路本身就是自己的,要捡起来也非常容易。
  • 如果我们能够把学习内容整理发表出去,大家也可以对文章进行阅读和评论,在讨论的过程中可以有更多思维火花的碰撞,说不定能有更深入的了解。
  • 能够帮助更多的人,因为我们遇到的问题通常也是别人遇到的,如果能够帮助更多的人,心里肯定也是很有成就感的。

学习要有深有浅

学习一个知识点,我们也是需要有深浅的控制的,也是需要评估一些学习时间和成本的。

比如一个知识点,我们可以给它划分成三个层级,第一层级是会用即可,第二层级是熟练运用,第三层是深刻理解并改写。

在我们日常的工作中,由于不同技术栈和项目的需要,对一些知识的需求也会不一样,比如一些核心的技术,我们就需要深入理解并改写。比如说假如我是做 Scrapy 爬虫的,那对于 Scrapy 框架我就需要做到第三个层次,即深入理解并能改写;对于一些较高频的工具,比如 argparse,那我们就需要做到熟练运用;但对于一些低频且比较边角的知识点,我们只要花最少的时间知道它最基本的用法就好了,因为可能我们就是用到了它的最基本的用法解决了一个边角问题,所以没必要花太多时间在上面。

所以,对于一些学习内容,我们要能够分清楚这个知识点应该学到什么地步,然后采取对应的学习方案。

我们在学习的时候要尽量避免一些路径依赖的问题。

比如说,一位同学要学习 Python 机器学习相关内容,Python 机器学习的基础是一些 Python 和数学相关的内容,那他就非要把 Python 和数学的知识先全部研究透,比如说把所有的 Python 基础全学一遍、把所有的高等数学、统计学的知识全都学一遍,然后再回过头来学习 Python 机器学习,结果学习的时候发现很多 Python 基础和数学基础都用不到,然后久而久之,用不到的 Python 基础和数学基础就慢慢忘记了,而且 Python 机器学习的学习周期也被大大拉长。

这个例子中出现的就是路径依赖问题,我们其实没必要非要把所有的依赖项都完美一个个地彻底解决了再来学习对应的知识,知识点都是有关联的,我们在学习的时候可以以最终的结果为导向。

比如说,我今天要学 Python 机器学习,比如一个分类算法的实现,那我就把 Python 的模型定义、类定义、方法定义学会,同时研究好数学中的分类算法的思路,那就可以去学习 Python 机器学习了,这样整体效果也会更快更好,同时学习到的知识也能够用得上,且紧密关联。

学习优秀的源码

很多很多优秀的编程思路和方法其实都隐藏在一些优秀的源代码库里面。

比如说,学习爬虫,Scrapy 框架为什么能够做到这么好的扩展性?比如说,学习网站开发,Vue 为什么能够吸引这么多开发者学习?这其中都是有一定原因的,这些优秀的框架也是有它们的过人之处的,另外一些优秀的源码里面通常质量也会很高。

所以,我们如果能够多去阅读一些优秀的框架或库的源码,能够学到很多有用的编程思路和技巧的,如果能够把这些思路和知识运用到自己的工作和项目中,那一定会大有帮助。

实践很重要

这个就不用多说了,光说不练,等于白搭。

对于我们做技术的来说,如果我们只是干巴巴地阅读一些官方文档和教程,而不去实际编写一些代码运行的话,收获是很少的。

一般来说,如果我们学习一些框架和库的时候,如果能够跟着把一些样例敲下来,真的能够理解深入很多。通常,阅读的时候我们不会发现问题,但一但一点点跟着敲下来,把代码运行起来,我们会发现很多潜在的问题,而且会对问题的认识更加深刻。

还有就是,遇到问题的时候,我们也需要多去实践和探索,如果不是十分紧急,我们可以尽量去尝试去搜索问题的解决方案,去 debug,去找 root cause,这样我们就能对某个问题有更加深刻的认识,同时自己解决问题的能力也会大大提高。

是的,做一件事或者学习一个知识,一个非常非常重要的要素就是有恒心,即坚持。

贵有恒,何必三更起五更睡。

是的,做成一件事一个很大的拦路虎就是半途而废、三天打鱼两天晒网,这样很容易做着做着就没有下文了,然后就再也没有然后了,很多很多的事情就是因为这个而失败了。

贵有恒,坚持下来,做好计划,一件事,如果我们能够坚持做下来,一天天慢慢积累,其威力是无穷的。

更多精彩内容,请关注我的公众号「进击的 Coder」和「崔庆才丨静觅」。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK