帕累托法则与编程学习
什么是帕累托定律
-
帕累托定律是意大利经济学家帕累发现的,
-
例如:
- 意大利约有80%的土地由20%的人口所有.
- 80%的豌豆产量来自20%的植株等等.
- 世界上20%的人口占有了80%的财富
-
-
也就是说,我们要先把性价比最高的只是学完,这是学习最快的方法
-
如果我们有100%的精力我们可以这样投资
- 在5个方向上投资20%的精力获得80%回报,总回报为400%
- 如果不断的向一个细节投入,且没有带来重大突破(发明发现,商业突破)的话,边际收益是递减的,细枝末节会让人筋疲力竭也几乎没有收益.
-
帕累托定律与学习
人脑无法学完的的编程语言
-
编程语言是十分繁琐的,是无法学完的
-
例如
- 数据库科学这门学科,可以读到博士,但仍然学不完
- 没有人类精通Java,只有GPT-4精通Java,因为Java有上万个内置方法.人类不可能都学到,而且以Java的更新速度目前已经更新到Java 20,单人人脑学习的速度是不可能赶上甲骨文公司对Java的更新速度的.
-
-
现在有了AI,细枝末节让AI处理即可,如果发现知识漏洞,就问一下AI,工科的目标是解决问题,生产产品,用结果说话.
-
因为无法学完,所以我们要划重点,我们要删减掉80%的学习内容,优先学最重要的20%,这最重要的20%就能解决我们遇到的大部分问题,那么我们如何找到最重要的20%呢?
如何找到最重要的20%?
化繁为简,集中精力,反复学习核心知识.获取更多的练习时间.
哪里需要用,而且不会,学哪里:
- 从自己的需求出发,分析自己的业务中需要那些技术,一个编程语言要解决无数的业务问题
- 我们作为个体需要解决的问题并非那么海量那么面面俱到,因此从需求出发,倒推需要学习哪些知识点是一个好方法.
学会提问
使用帕累托法则学习必然要删减跳跃很多次要的知识点,但有时候这些知识点还是有一些小用处的,那怎么解决?如果发现了不会的地方,我们要学会提问
如何提问
- 学会从宏观到微观描述我们需要解决的问题,也就是精确描述bug,这是学程序时最重要的技能之一,排查错误,描述错误,找到自己的知识漏洞,不全自己的知识漏洞.
向谁提问
-
最好的老师是AI
-
只有AI学的最多:
- 因为AI把编程语言相关的几乎所有的公开资料都学会了,甚至背下来了
-
只有AI深入理解编程:
- AI还能从宏观到微观从理论到应用深入理解编程语言,因为这往往是跨学科的,人类不具备这种能力,例如深入了解Java虚拟机就需要了解操作系统,计算机硬件制造,硬件相关驱动,CPP,最后涉及到数学和物理知识,单单说JVM源代码,没有几个人能完全读完,但是AI可以倒背如流也深入理解了,这时候我们问AI,AI可以深入浅出的回答问题,跨学科的,旁征博引的讲解,这是在现有的教育体制的人类难以提供的,因为现有的教育体制,人类的学习是细分学科的,计算机博士的物理学能力很差.
-
只有AI能迅速整理思路提供结构化的内容
- 结构化的内容也就是我写的这种,分点分类的内容,但是人类的分类往往有一些随意和随机性,并不是最终的合格品,人类生产一个合格的结构化的文章要花很长时间,在同样的时间内,AI生产的结构化回答就是比人类的合格率高,结构化好,跨学科解释精准
-
-
找人类提问
-
逮捕网友进行提问
- 淘汰和AI差距过大的,例如响应慢,回复单条语句没有层次和结构,因果关系错乱,知识点错误.
-
找朋友同事同学提问
-
-
查阅人类的过往的回答
- 我们遇到的问题,在网上大多是可以找到答案的,如果在中文环境中找不到答案,我们就去英文环境中检索,毕竟我们学的编程语言都是英文的,大部分程序员都是外国人都用英语.
如何删减要学的内容
我们使用的教程大多是人类编写的,人类的文章充满了啰嗦重复和逻辑不清晰,当然啦,也有很多次要的知识的精讲.因此我们要先选一个好的教程
如何选择好的教程?
-
最推荐的是结构化的文字教程
- 如菜鸟教程,廖雪峰的教程,他们得内容出来的比ChatGPT还早,但是用的是同样的结构化的格式,
- 如果没看过廖雪峰的人看了这个文章会以为这就是AI生成的,但是这是编程届常用的Markdown的格式化写法,参考了东尼博赞的思维导图,现在发展为双链笔记.
-
文字类课程与视频课对比:
- 文字类课程可以反复查阅,跳过次要部分.可以快速复制代码.
- 视频课相对低效,但是会传达更多的信息,例如鼠标的操作.文字很难表示只能截图,如果截图清晰依然比视频高效.
删减到不够学为止
删减到学习微微吃力为止,然后在学习过程中我们补全这些内容.
- 删减过多会让自己举步维艰,毕竟学习要基于之前的基础,删节得当你会发现,当你用到之前需要学的但是你没学过,这时候简单查一下,几分钟就学会了,如果之前系统的学需要学几天,哪些内容也许对别人至关重要,但是对我们也许没有太大的用处.当然可以删除.
从实战中发现要学什么,别学不用的
-
在实战或者模拟演练中发现自己需要学什么,然后再去学
- 要用再学,不用不学.
- 高频使用,就会学很多次,复习很多次,就会深入理解记忆深刻了
- 如果先学不用,很快就忘了.编程就是要解决实际问题的,类似学游泳,多游才游得好,编程本来是没那么多理论的,不可本末倒置,类似学了很多足球理论,但是不上场踢足球.
总结
学习内容划重点
-
自己总结使用的频率
- 优点是适配度高,缺点是慢
- 在实战中总结,例如写一个网站项目,写一个软件,就知道哪些技术常用,那些技术不常用了
-
检索别人总结的
- 优点是快,缺点是适配度低
- 类似童话故事小马过河,有的技术大神经常用的技术,我们也许一辈子也用不到,要找和我们方向类似的人的资料
-
详细描述自己的需求,问AI
- 优点是快,缺点是可解释性差
删减80%内容,深入学习20%
-
类比
- 一辆越野车,把能拆的都拆了,只留下最必要的
- F1赛车没有那么多座位,没有空调,没有后备箱
-
理解
- 想要快速入门,就要精简,80%的东西都是锦上添花,去掉了也能用.先用起来再拓展学习即可.
- 否则就类似小马拉大车,启动不了啊.我们会学的很慢很煎熬很痛苦.小马拉小车,让马快速长大再拉大车是最好的,切不可揠苗助长.