最近一位同学对编程忽然来了兴趣, 想小试一把, 作为朋友的我, 当然乐意做一把向导。
我: 你想学哪一门语言呢?
同学: 数据处理类的P语言吧。
我: P? 语言? 等等, 你是不是指Python?
同学: 别人不是说这个可以做数据处理么。
我: 奥, 明白了,你指的应该是Python无疑了, 用来做出具处理的确非常方便, 那就搞Python吧, 我先帮你搞一下开发环境(省略安装文件, 编辑器下载过程)。 好了, 现在可以尝试Python了。
同学: 这个程序到底是怎么回事, 在哪写?
我: 就在这个编辑器里写程序就行, 当然也可以直接交互方式体验一下(于是cmd打开命令窗口, 输入python, 进入交互界面), 输入 1 + 1, 接着显示 2.
同学: 奥, 我知道1 + 1 = 2, 你这有什么用呢?
我: 什么用? 1 + 1 = 2, 显示程序正常运行了。
同学: 程序就是这样, 整个窗口? 没有窗口怎么办?
我: 没有窗口可以把这个程序写到文件里, 然后执行文件就行(创建hello.py), 输入print "hello world", 命令行窗口执行python hello.py, 窗口输出“hello world”;
同学: 我知道这个hello world, 问题是这个有什么意义呢?你这个能干什么?
我: 这个不能干什么, 这是检测程序是否正常运行, 以及作为编程语言的一个基本的特性。就好比你盖房子, 总得需要基本的钢筋水泥,需要场地, 需要设计图纸等, 这个print就是扮演你构建大厦的一个类似钉子的角色
同学: 可是你这个1 + 1 只能在你自己打开的这个窗口上显示, 能在这上面显示么(指着屏幕浏览器的一个区域)
我: 不可以, 不过可以借助其他的形式展示到浏览器上。
同学: 我之前学VB, 可以看到拖动按钮, 点点点, 就可以整一个计算器一样的东西, 你这个为什么就不行呢?
我: 当然也是可以实现的, 不过不是简单的点点点, 借助python实现在浏览器上点点点得出计算的结果, 需要搭建服务器, 返回点点点的界面, 然后提供计算接口或者借助纯前端的方式实现, 也就是在浏览器上自己计算(打开chrome调试面板, 1 + 1 = 2)
同学: 这有什么用呢?
我: 这是最基本的特性, 能完成的功能当然是有限的, 那我给你举个简单的例子吧, 比如要对1到10十个数字进行求平均数, 这个有意义, 代码
var sum = 0;
for(var i = 0; i < 11; i++) {
sum += i;
}
console.log(sum);
(控制台显示55), 你看这比一个一个加来的快得多了。
同学: 奥, 明白了, 程序果然强大!
我: 这只是程序能够实现的中国功能中的一个非常小的甚至算不上功能的功能。
同学: 这个东西用P语言也能写?
我: 当然, 主要是计算机语言, 都可以实现循环累加功能的, 事实上真实生活中很少有直接让你做算术这养的问题的, 更多的情况是给你一个问题, 你需要把问题抽象成模型, 然后使用计算机语言编写程序, 完成模型的计算, 最终给出答案(翻开leetcode), 你看这里有很多问题, 你需要用程序去解决它, 具体用什么语言, 无所谓的。
同学: 奥, 明白了, 这么看计算机程序本身没有什么意义啊, 都是你赋予它意义,我之前总是想搞明白, 你写这个程序有什么意义, 现在以看程序本身没有意义, 就是一个工具, 用来解决问题的。
我: (你明白了, 我还没有明白你明白了什么啊。。。。。。)
总结: 对于一个平时不接触程序的人来讲, 对程序有很多程序员无法理解的疑问, 当你试图去理解他们的疑问并解答疑问的时候, 发现用最简单的语言解释程序到底是怎么回事, 有什么意义, 远没有想象的那么轻松。
我现在依然不确定同学是否明白我说的解答。也有可能他借助我的解释, 解决了他自己的疑问。
网友评论