关于编程语言的抽象学习经验
以前学编程的时候,刚开始就是抱着书啃,那么厚的书,学着学着不是忘了这里就是忘了那里,就是无法把知识串起来,有一天在网上找问题的时候看到一个词:抽象化。有时候抽象也可以叫做宏观。
我慢慢发现,实际上我们可以把各种知识都抽象起来看待,例如想要学习或者使用一个新知识,可以先从宏观层面观察了解它有什么作用,或者简单的说它能实现什么功能。当需要改进或者希望自己能更得心应手地去使用它的时候,此时再往更微观的角度去了解它的原理细节。当需要使用它的时候再跳回到宏观层面,把它当作一个能实现什么功能的工具看待即可。把不同的知识当作不同的工具,我们使用不同工具的功能,来实现我们想要的结果,有点像拼积木
在我看来不同的编程语言,它们的内核都是处理数据(输入或输出数据),根据数据结果去执行特定操作(逻辑操作)。因此可以把编程语言的学习分解成下图。
细节层面就是不同编程语言会有不同的语法,例如想进行一个逻辑判断,在C和C++中可以使用if-else语句,而其他编程语言就需要使用其他的写法,但它们的功能是一样的,都是为了完成逻辑判断。更细节的层面,不同语言会有不同特点,也就是各自会有长处短处(例如上手难度),这个就需要去网上看看别人对不同编程语言的介绍了,选择适合实现自己目的的语言即可。
知识可以抽象化看待,再举一个电子类的焊接知识,例如我要在电路板上焊接一个元件,焊接这种知识从宏观层面上看,可以这样看:
1、焊接是什么?把两个物体粘在一起
2、电路板和元件可以直接黏在一起吗?不可以。那需要用什么介质?焊锡丝
3、如何使用焊锡丝?用加热工具,如电烙铁、热风枪
好了,从宏观层面看焊接这个知识就是这么简单。当你思考得更全面的时候,你就会自然去想得更多,也就进入了微观层面,例如
1、元件焊好之后如何检查元件工作是否正常?
首先我们要知道元件工作的动力来源是什么?是电能。那么电路板是如何给元件供电?电流从电路板的输入电源端,通过电路板上的导线,再通过金属焊盘给元件供电,因此我们要先检查元件和焊盘的连接是否正常,也就是检查焊接质量,即焊接得牢不牢固(也就是人们常说的是否有虚焊、漏焊、短路)。当物理层面的连接正常了,然后就检查它的供电是否正常(例如输入电压、纹波电压是否正常)等细节问题
2、为什么要用焊锡丝这种介质?我们需要可以导电的介质,然后介质的熔点不会太高(加热设备就不需要很复杂),也不会太低(在夏天这种高温天气下不会自然融掉),最好还能在常温下自然凝固(这样就不需要专门的降温设备了)
3、芯片太小,我的手指头太粗抓得不牢固怎么办,也就是需要使用夹具(例如镊子、真空吸枪)
当进入微观层面之后就会遇到更多问题,也可以训练自己思考事情更加全面。学累的时候,或者碰到困境的时候,不妨跳回到宏观层面重新审视一遍眼前的这个知识,也许会有另外的思路