程序员怎么尽快学会某项技术,达到应付面试水平?(1)

等你对思维导图了然于胸,并且有了一定深度之后,就去面试吧,很大可能会把面试官忽悠住,以为你是个隐藏王者。我靠这个方法硬生生把Redis从零学到了源码级,蚂蚁金服的面试官都被我忽悠瘸了。

晶体记忆是个什么鬼?我的感觉就是一个知识体系已经被大脑完全吸收并且压缩成一个结晶。处于这种状态时你会觉得这个知识体系就那么大一点,但你真的去扩展回忆时,会发现里面的内容真特么多,而且都是已掌握的。


Update 1:此方法不一定适合所有人

打铁还需自身硬,用这种速成方法首先你得有不错的基础,否则在研究面试题解法这一步你就坚持不下来,因为看不懂原理。靠死记硬背永远都过不了面试。

保留好这些知识图谱,它们都是你的财富。找到工作后也最好每天抽一个分支出来复习,在深冬冰封之际,我等食物链底层的码农要时刻保持武器的锋利,自己足够强悍才能抵御风险

此方法具有普适性,我正在用这个方法学习金融知识,效果还不错。


Update 2: 关于小黄鸭学习法

在第三步中,我们需要复述思维导图的内容,以达到透彻理解的目的,这其实就是小黄鸭学习法。

简而言之就是把知识讲解给别人,比如一只玩具小黄鸭。。。检验自己是否完全理解一个知识的最好方式就是教会一只小黄鸭。

这个方法是有神经学依据的。据我所知,人脑非常善于为不合理的事情找一个合理的解释,也就是所谓的脑补

具体研究过程可以去看一些裂脑人的实验记录,当右脑出现负面情绪时,左脑并不知道发生了什么(因为左右脑的信息交换通道被切断),但最终左脑会脑补出一个“合理”的解释,并相信那就是事实,然而这个解释实际上是错误的。

因此当你学会了一个知识点之后,你的大脑会产生“朕已完全学会”这样的假象。

然而当你尝试给别人讲解该知识点时,就会发现其实还有很多解释不通的地方,这种情况基本上100%会出现。

另外,在编程实践中,用这种方法可以快速排查故障,快速弄懂复杂的代码等等。

打个比方,如果你看不懂一段代码背后的业务逻辑或实现细节,那么可以试着用几句话来精确描述这段代码的功能和实现手段。如果能做到这一点,说明你已经懂了。

不要以为这是多此一举,人脑不可能在任何时候都保持清醒。在实际开发中,我们的大脑并不会用自然语言来处理代码,而是直接进行逻辑和抽象思维。这就产生了很多脑补,你对代码的理解很有可能是错误的,想必很多人都经常遇到。

这个方法看起来有点蠢,实际上非常有用。


Update 3: 关于结构化思维

玩知乎快6年,好不容易有了个千赞的答案,就再说点干货。

之前我们使用了结构化思维的一些手段(思维导图),但这仅仅是冰山一角。对于程序员来说,具备良好的结构化思维习惯会显著提高生产力,它的作用比小黄鸭学习法还要大,我已经在自己身上验证过多次。

大家可以自行在知乎搜索“结构化思维”来进行深入学习,有很多优秀的答案。接下来我只说说自己常用的几种思维方式以及在编程中的实施。


5W1H法

这个方法会的人比较多,这里主要介绍一下在编程实践中怎么进行5W1H分析。遇到一个问题或需求,按照以下步骤分析:

  1. 写一个列表,每一项分别为What, Why, Where, When, Who, How

  2. What:简短的用几句话精准的描述出问题的内核是什么,需求的本质是什么。这是总体纲领,确保你在后续的工作中不会走偏。

  3. Why:用一两句话描述为什么要做这件事。这可以确保你做的事情有意义,并且目标是正确的。

  4. Where:在空间维度上静态的分析问题。宏观上,问题涉及到哪些组件;微观上,该问题涉及到哪些关键的类、方法、配置等等。原则上你可以把任何与空间有关的因素都扔进这个篮子里,分析的越全面越好。

  5. When:在时间维度上动态的分析问题。宏观上,组件之间怎么互相通讯;微观上,上述的代码何时被触发等等。原则上你可以把任何与时间有关的因素都扔进这个篮子,同样分析的越全面越好。Where和when常常会有重叠的因素,这个不要紧,随便你放哪里都行。

  6. Who:在人物关系这个维度上分析问题。一般这一步比较直观,列举出问题涉及到的人、人与人之间的关系以及每个人的职责即可。这样你遇到事情就能够找到正确的人。

  7. How:用一个列表来描述怎么完成这件事。这一步其实是一个总结,把前面五个维度的因素综合到一起,来找出一个优质省力的解决方案,然后按照解决方案来实施即可。

5W1H思维法最大的好处就是强制你去进行多个维度的全面思考。就像我之前说的,我们的大脑很喜欢脑补,如果不能明确的一条一条去分析,我们的大脑就会进行各种跳跃性的思维,最终遗漏了很多因素。在稍微复杂的项目里,你可能连需求的内核是什么都弄不清楚,别问我是怎么知道的。


链路法

我自己总结的一个方法,对程序进行线性的因果分析。无论是单线程、多线程还是复杂的系统,用静态眼光来看,程序都是线性的,这是此方法的依据。具体步骤:

  1. 组成链路

遇到一个问题或需求时,先用5W1H法进行多维度分析,再把Where篮子里的因素按照When因素来粗略排序,一个一个链接起来。如果你对自己的工作足够了解,这一步应该会比较快。

2. 分析链路

按照你遇到问题的类型来进行不同的分析:

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-qOBd6y19-1714736602081)]

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值