Reload Original PagePrint PageEmail Page

无中生有,举步维艰 - 前路迢迢 - 知乎专栏

这个专栏的第一篇文章,我想从编程学习开始,聊一个经常被忽视的事情:开始一件事,特别是学习某种知识,会遇到的启动问题。

初学编程,到底有多难?这取决于我们对”初学者“的定义。一个正常资质,但是对计算机缺乏了解,甚至有计算机使用经验,只是没有接触过程序基本概念的人,当他第一次上手的时候,都会遇到巨大的困难。

这个困难有多大呢?多年以来,我在 Python 中文社区见过很多提问,包括但不限于:

  • 代码写完了,我该如何运行我的程序?
  • 为什么用word写完了代码,不能执行?
  • 我的代码编辑完,保存在哪里
  • 为什么我的程序文件打开以后是乱码?
  • 为什么我的程序执行结果是乱码?
  • 为什么在别人的电脑上不能运行我写好的程序?

通常,我们心目中的新手问题,起码应该是这样的:

  • 什么是变量?
  • 什么是对象?
  • 在 Python 中如何组织模块和包?
  • 求推荐开发工具
  • ……

虽然,我要承认即使是这些问题,通常在公共社区,也会收到很不友好的回答。这也难怪,如果一个技术社区充斥这种问题,会很难产出高水平的讨论。但是对于初学者,也的确需要一个环境帮助他解决这些问题。

为什么我们会有这样的认知差距呢?或许我们已经忘了最初开始学习计算机时,漫长而盲目的过程?或许你恰恰是哪个天才(这并不奇怪)?

很多事,从零到一的一步,非常之艰难,超过我们的想象。这或许是因为,它需要基于前提,在这些前提准备好之前,我们无法着手行动。而这些前提的准备,往往不是枯燥无趣,就是细碎繁琐。而且,这些事务积累到一定条件之前,无法开展下一步的行动,或者,至少无法有效的行动。就像建立起一个公理体系之前,无法做有效的数学演绎一样。

例如,在学习编程之前,我们应该知道:

  • 如何启动计算机,进入操作系统的使用环境。
  • 编程是书写代码,交给解释器运行,或者交给编译器编译。
  • 通常代码是纯文本文件,那么,什么是纯文本文件,与办公文档、网页文件等有什么不同。应该如何编写,用什么工具软件。
  • 编译出来的程序, 如何运行?为什么它有时要依赖其它的资源?

写下这几条以后,我突然觉得当年学校讲计算机基础还是挺有意义的呀,但是那时候为啥我在睡觉呢?

当然我们那个时候的课程设计还是有些问题的,例如一些纯理论的东西跟操作基础混在一起,组织混乱,课程内容过时,等等,我相信读到这篇文章的很多朋友都有类似的经历,这是另外的问题了,不展开了。

这里感慨一下,这么多年来,我读到的编程书籍,只有蔡学镛老师的《编程ING》详细的解答了各种启动问题,所以即使书中使用了一门比较冷门的语言,我仍然推荐新人读一下这本书。即使以后再也不会用 REBOL 写程序,书中的知识可以帮读者顺利的度过这个启动阶段,以后再学习其它编程语言,都不会再被这些问题困扰。

在编程语言之外,其实一样存在类似的启动阶段。只是在我的生活和工作中,这是一个比较典型,而且会不断遇到的问题,所以才以此为例。在后面的日子里,也许我还会讨论其它领域中的启动问题。

在这篇文章里,我并没有真正的整理和解答那些编程学习中启动问题。首先,我认为前面我提到的《编程ING》中,对这些问题已经做了比较好的阐述,我推荐大家买来阅读一下(真不是收了蔡老师的钱做软广告)。其次,其实完全说清楚这些问题,还是要用掉比较多的篇章,也许后面我会针对各个问题,单独做一些讨论。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::