程序员思维看世界
作者:互联网
很多人学编程学不下去有一条很重要的原因,欠缺程序员思维。程序员思维就是将客事物数字化的能力。
程序员思维具体怎么理解呢?请大家看下面这张动图。
动图显示的是机械手臂打保龄球,效果是不是很震撼?具体怎么做到的呢?让我们先回想一下自己是怎么打保龄球的?
- 手拿保龄球估算重量。
- 眼看目标估算距离。
- 手用合适的力量、角度,发球!
那么机械手臂是怎么打保龄球的呢?其实和人也差不多,抽象的解释如下:
- 拿起保龄球测量大小、重量(直径n毫米,重量w克)。
- 摄像头测量目标计算距离(距离h毫米)。
- 计算发球需要的角度和力度(计算出角度x,力量y),机械手臂旋转保龄球,符合发球角度x和力度y时释放机械臂发球。
以上就是计算机打保龄球的过程。人打保龄球凭的是感觉和经验,这一次发球一个没中,太左边了,下次右边点;哎,这下太右边了,下次再左边点。计算机打保龄球依靠的是客观事物抽象化、数字化,即打保龄球需要考虑球的重量w、大小n、距离h这3个属性,然后通过α 公式推导计算出角度x、力量y来发球。
在计算机打保龄球这件事上程序员应该做哪些事呢?
- 首先评估客户提的需求打保龄球需要考虑哪些属性,例如大小、重量、距离。
- 编写合适的代码,将客户提供的属性通过程序处理,输出客户需求的数据角度、力度。
- 验证不同的属性属性n、w、h是否都能计算出正确结果x、y,若结果不正确则回到第一步排查是是否有应该额外的属性没有考虑(例如风也会影响打保龄球,那么需要添加考虑属性风),第一步验证无误后再回到第二步检验程序、算法是否有bug。
- 通过验证后再完善输入、输出接口、界面,提交客户。
通过以上案例介绍,望能帮助到一些学编程很迷茫的同学。编程时要学会程序员思维方式,遇到需求时问自己三个问题:
- 属性,需要考虑哪些属性?
- 拆分,需求可以拆分成哪些步骤来完成?
- 算法,通过什么合适的算法将输入的属性得出需求的结果?
最后还有一句话,计算机的实质就是输入、运算、输出。
标签:思维,世界,角度,程序员,发球,保龄球,属性 来源: https://www.cnblogs.com/fz17/p/13630815.html