或许你听到过这样的言论:“编程?那不就是一堆复杂的代码和让人头疼的逻辑吗?”
没错,编程的确与逻辑紧密相关,但它更是一种艺术,一种用精确无歧义的方式表达问题解决方案的艺术,而掌握编程的思维方法和底层运行逻辑才是真正的关键。
学习编程就是学习如何用电脑解决问题。
混网络论坛,总有人表示质疑“码农怎么什么话题都想插一嘴?”其实,程序员的工作,正巧是“理解各行各业的工作,然后把它教给电脑”。
学习编程,学的甚至不是计算机本身;相反,它要求你从声学到视觉暂留、从结构力学到滤波解调……
随便哪行哪业,你都要能够快速抓住重点、然后概括的清楚明白,这才可能命令交给计算机去执行,让CPU代替人工作。
如果连事物发展运行基本的逻辑都理解不了,那么,他人从液体分层原理借来的冒泡算法,从猜测的人脑工作原理偷来的神经网络,又怎么可能理解?
编程要求的,是“从三百五百甚至成千上万个知识点中挑选出最合适的那几个、然后用它们解决你所面对的问题”!
需要说明的是,这种能力并不是那么高不可攀。
事实上,你只需要掌握“与或非”三种逻辑运算,以及三种基本的控制结构——顺序、循环和分支,就已经踏上了编程之路。
与或非:逻辑运算的魅力生活中总是充满了复杂的情况,你需要用更逻辑来分析它们——这就是与或非三种逻辑运算。
与(AND):只有当所有条件都满足时,结果才为真。比如:“你只有同时完成作业和通过考试,才能去看电影。”
或(OR):只要有一个条件满足,结果就为真。比如:“你可以选择吃苹果或者香蕉。”
非(NOT):取反,如果条件为真则结果为假,反之亦然。比如:“如果你没有完成作业,就不能去看电影。”
顺序、循环、分支:编程的三板斧想象一下,你正在给一个孩子写一封信,你会先写开头,然后写正文,最后是结尾。
这就是顺序结构的体现——从头到尾,一步步执行。
在编程中,这种结构体现为代码的从上到下依次执行。
例如:
python
print("亲爱的孩子:")
print("今天过得怎么样?")
print("期待你的回信。")
然后,你会遇到一些需要重复的任务,比如每天做早餐。
这时,你就用到了循环结构——让某个代码块反复执行。
比如:
python
for i in range(7):
print("今天的早餐是鸡蛋和吐司。")
但是,生活总是充满惊喜。
有些情况下,你需要根据一些条件来做决定,比如今天是否下雨来决定是否带伞。
这就是分支结构——根据条件判断执行不同的代码块。
例如:
python
if 天气 == "下雨":
print("记得带伞!")
else:
print("今天是个好天气!")
思考问题的方法要学会分层次思考问题。
你必须学会根据讨论场景,确定哪些细节需要关注、哪些细节可以无视,从而在不同层次使用不同的抽象。
更要学会分领域思考问题。
只有先学会在任意层次看待问题、学会任意缩放每个局部,你才可能“既总揽全局,又深入细节”。
必须梳理自己的知识,把它有机化;然后,才可能得到“总揽全局”的能力,先有了总揽全局的能力,这才能泛化/细化任意局部;而任意局部的细化/泛化能力反过来又能帮你“总揽全局”。
那么,编程设计的底层逻辑又是什么呢?简单来说,编程就是将人类的思想转化为机器可以执行的指令的过程。
这些指令就是代码,而代码的执行过程就是计算机解决问题的过程。
因此,编程的底层逻辑其实就是对现实世界的抽象和模拟。
在编程中,我们需要将现实世界中的问题抽象成计算机可以理解的数据结构和算法,还需要将大问题分解为一系列小问题,然后逐个解决,接着我们需要识别出问题的模式,以便选择最合适的算法和数据结构来解决它。
编程思维十分强调逻辑性和条理性,它要求我们在解决问题能时刻保持清晰的思路和步骤。
我们必须不断地学习和尝试新的方法和技术,以应对不断变化的问题和需求。
换句话说就是,你需要理解各行各业的工作原理,然后将它们转化为计算机可以理解的指令,让计算机来代替人类工作。
所以,编程只是一种生活的艺术,一种用代码来表达你的思想和解决问题的艺术。
可以说,只要你掌握了基本的控制结构和逻辑运算,理解了计算机的底层逻辑,明白构建自己的知识结构,你就已经掌握了这种思维方式的精髓。剩下的,就是不断地实践和探索了,而在生活中学会使用这些思考问题的方式,能让你处理问题的能力变得非常强大。
或许这种思维模式,就是为什么那些类似雷军、刘强东这种编程大佬,能处理事情游刃有余的原因吧。
工作一段时间,回头想想很有体会
简单翻译官,脑补翻译官,高级脑补翻译官