关于编程的思考

随笔

Posted by jiang on June 29, 2020

编程将会越来越普及

  • 曾经在上海工作时一位同事说:编程将会越来越普及。映像很深,因为当时我刚从事这方面的工作,甚至都没有思考过这类跳出编程以外的问题。除去教育普及、市场需求,单从程序来看,大部分情况下,编程并不是需要很高门槛的一个职业。
  • 程序程序,就是一套遵循了计算机语言规范的动作流程,抛开很多专业术语,说白了,跟下一碗青菜鸡蛋面没什么区别。所以这是一份大部分人都可以从事的工作只要你怎么知道做一碗青菜鸡蛋面。
  • 只是现实情况下有很多门槛,围城外的人没有这个机会,这并不是的原因,当然你也可以以求职者没有满足门槛为由认为是人原因。同样围城里面的人也没必要自有所持,我们只是机会的宠儿。以开放、开源的历史看,更多的人参与会让一个行业变得更好,会让一个软件变得更强。

Hello World代表了编程的所有

  • hello world程序一般是被一个函数或者方法包裹,我们会有一个类似于print的输出,然后一个return。
  • 我们可以看到,除了被调用函数或者模块、库,一段程序需要一个入口即一个开始执行的地方,C里面就是main函数。
  • 可以看到我们调用了语言内置的类似于print的函数,这种函数我们也可以自定义,这也相当于数学里面的复合函数,即函数套函数,当然数学里的函数和程序函数是有区别的,但也可以看出些影子。
  • 我们也可以看到通过标准输出我们得到一个hello world的打印,这个就相当于资源操作与处理。
  • 然后我们可以看到return语句返回给了调用者,这里是调用者是系统,告诉它函数执行完毕。
  • 扩展看来这只是一个从上到下执行的顺序流,如果需要并行我们可以通过一些其它的办法来执行多个类似的程序。
  • 除去高阶的语言特性,其它复杂的库或者模块也是在这些基础上做出来的。

Bug与测试是指引程序走向期望之地的面包屑

  • 什么是Bug?程序不能按照程序员预想的过程得到预想的结果都可以叫Bug。
  • 一般Bug分两种,一种是细节性Bug,比如==写成了=,相当于做菜忘了放盐。一种是技术性Bug,比如错误的方法调用,相当于做菜火候不够或者盐放多了。新手容易两种都犯,老手更容易犯细节性Bug。Bug的存在佐证了过分的追求完美是一种错误,人并不完美而且总会犯错。同时也引出了测试的重要性,测试的一个目的就是发现bug。一般测试不通过的程序肯定有Bug,测试通过的程序却不代表没有隐藏的Bug。
  • 我的观点是,尽量编写测试用例,特别是正式的项目,不要盲目自信,如果你写了一段自己都不懂的程序怎么能期望计算机会懂?计算机内的客观世界还是很公正的。你并不着急需要去做什么,保持一定的自我怀疑,写几个简单的测试用例,使你的程序更健壮,降低将来返工的概率。为什么不呢?就像做菜拿不准的时候先尝一下汤的味道那样。

如何做一道青菜鸡蛋面

  • 那么问题来了,如何做一道青菜鸡蛋面?
  • 首先要锅放油煎鸡蛋,煎好后盛碗
  • 锅加水加青菜,煮沸后放面条
  • 沸腾2-3分钟后捞起放盐与煎好的鸡蛋搅拌
  • 如果看起来像那么回事,还可以吃,那么你也可以编程了,恭喜~
  • 这其实是一篇打着编程旗号教做菜的文章,没想到吧!