[计算机] 如何培养编程所需要的逻辑思维?

查看:788 |回复:0 | 2018-5-12 08:45:08

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 柑橘味的香气 于 2018-5-13 17:55 编辑

t01be85f10291350616 (1).jpg
链接:https://www.zhihu.com/question/19831473/answer/64518612
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

很少有人能单单通过所谓“逻辑思维”从复杂问题快速找到抽象的,如果有这样的人,他的经验,工具,方法和直觉通常起到比逻辑思维更重要的作用。写代码需要逻辑思维,但解决复杂问题更需要理解分析,写代码只是解决问题比较靠后的步骤。所以不急着写代码,也不急着找抽象,先试着理解问题本身,而不是下意识地想把问题套进已知的,熟悉或不熟悉的工具,那样是本末倒置的。
多数情况下,只要有一点耐心,理解问题并不难,这个时候既是逻辑推演,更是探索发现。
比如交通灯控制,是一个不那么简单的问题,不急着找模型,也不急着编程,想一想一个交通灯有几种状态,一组交通灯有几种状态,不同的路口的交通灯有几种状态,把具体的例子列出来,你大概会有一个概念:那就是你要写交通灯管理程序本质就是一个状态管理的过程。这个时候还没有得到适合编程的抽象,但你已经积累了对输入和输出的认识,接下来可以写一点简单代码或者伪代码,把各种case的逻辑都单独实现一遍,把各种状态之间的转换的条件和过程勾勒出来,从这里观察他们在数据和流程上有没有共性,有没有可以优化的余地,这样你就慢慢地找到你要的抽象,然后看看你熟悉的工具(比如编程语言)提供了什么样的数据结构和编程范式最适合去实现这样的抽象。
把问题具体化,寻找具体的输入和输出,具体的状态变化。具体化了的问题更容易分解,分解以后的问题更容易分析;先分析再归纳比不分析直接归纳更有操作性,你的“逻辑思维”才能派上用场。
这本书有很多这样的例子
How to Design Programs (online)
z.cn
How to Design Programs: An Introduction to Programming and Computing
Problem Solving 101: A Simple Book for Smart People
这是一个免费的解决编程问题的视频(有交互)教程

2018-5-12 08:45:08  
 赞 赞 2

使用道具 登录

0个回答,把该问题分享到群,邀请大神一起回答。

CG 游戏行业专业问题

综合文库
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表