编程初学者最该学的不是语法,而是这3种解决问题的思维方式
编程初学者最该学的不是语法,而是这3种解决问题的思维方式
很多人学编程陷入一个误区,花大量时间背语法背API,但遇到一个没见过的需求就完全不知道从何下手。编程的通用思维方式才是最重要的,把思维方式练好了,语言只是工具。
拆解思维——把大问题变成小问题
编程的核心能力是把一个复杂问题拆解成一系列简单问题的能力。一个大功能看起来很吓人,但拆成一个一个的小函数,每个小函数只做一件事,整体难度就大幅降低了。
想要写一个电商网站的购物车功能,新手会觉得很复杂。但用拆解思维来看,购物车其实可以分成几个部分。展示商品列表,加入购物车按钮更新购物车数据,结算页面计算总价生成订单,库存检查确认商品还有货。每一个部分拆出来都是一个独立的小功能。
写代码的顺序也是先写最核心的小功能,测试通过之后再把它和其他功能组合起来。不要试图一次性写完整个大功能再测试,那样出了bug根本不知道问题在哪。小步快跑逐个击破才是编程的常态。
抽象思维——找到问题的共性
高级程序员和新手最大的区别是抽象能力。新手看到三个不同的页面会写三段重复的代码,高级程序员会提取出共同的模式写一个可以复用的组件或函数。
抽象思维在编程中的应用无处不在。组件化开发把页面中重复出现的UI元素提取成独立组件。封装函数把重复的逻辑代码提取成函数。设计模式则是更高级的抽象,比如观察者模式状态管理模式,它们是对常见问题的通用解决方案。
提升抽象能力的方法很简单。每次写完代码之后回头看看,有没有重复的代码可以合并,有没有可以提取成函数或组件的部分。养成重构的习惯后你的抽象能力会自然提升。
调试思维——把bug变成学习机会
遇到bug就慌是新手最常见的表现。调试思维就是系统性地缩小问题范围直到找到根因的思考方式。
科学调试的四步流程是:第一步看清楚错误信息,大多数错误信息里都包含了问题的位置和原因。第二步复现问题,稳定复现才能稳定解决。第三步二分法定位,把代码一分为二测试,哪一半出错了就在那一半里面继续二分。第四步修复并验证,改完代码后确认问题不再出现。
搜索能力也是编程思维的一部分
程序员日常工作中百分之三十的时间在搜索。遇到问题先尝试搜索而不是问同事或AI。好的搜索能力能帮你快速定位解决方案。
搜索的技巧包括用英文搜索比中文更精准,加上具体的错误关键词去掉无关的信息,在Stack Overflow这样的专业社区搜索。找不到答案的时候换个关键词重新搜索。
写在最后
语法会忘记API会更新框架会过时,但解决问题的思维方式永远不会过时。拆解思维帮你把大问题变小,抽象思维让你写更少的代码做更多的事,调试思维让你在遇到bug时不慌不忙。这三种思维方式学会了,不管你用什么语言用什么框架,都能写出高质量的代码。