热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打开神秘编程世界的大门

从2000年毕业,我做这行已经超过十二年了。最初接触计算机程序,还是DOS下的QBASIC,那已经离现在有接近二十年了。最初,
从 2000 年毕业,我做这行已经超过十二年了。最初接触计算机程序,还是 DOS 下的 QBASIC ,那已经离现在有接近二十年了。最初,我只是会照猫画虎,按照老师的程序抄个素数数列,或者打印个三角形什么的。初步理解程序的结构和意义,要等到读大学以后了。那个时候在老师的鼓励下,自己买书学习 Delphi ,才开始慢慢了解一些程序语言的知识。能够自己设计和开发出有点用途的程序,则要等到工作以后,在实战中一边做一边学。
  回头看看,这条路竟然是意外的漫长。用了至少有七八年,而其中有好几年,完全就是在很低阶的知识层面上独自摸索。
  
  当然,对于很多天资聪明,又肯用功的同行,这个过程要短的多。就我身边朋友的经历,有不少人是仅仅靠大学四年的学习,就完成了从零基础到出类拔萃的过程。
  
  大概因为我特别的愚钝,加上后来做过半年的培训讲师。感觉对那个徘徊的过程记忆特别深刻。有时候就想,能不能为我这样完全没有基础的人,设计一些非常非常容易上手的基础教程呢?
  
  所以后来我尝试写过《Emacs 零基础教程》、《Python 零基础教程》等文章,在企业内部和互联网上跟同行分享。但是总的来说,并不成功,其中之一的问题是,对于一个完全没有基础的学习者,有太多在老手看来已经天经地义的知识,需要学习和熟悉。要在一份教程里解释各种基础知识,其实是一个非常庞大艰巨的任务。回头看过来,我自己都有点不可思议,这些问题,当初我也曾经遇到过?我如何弄懂它们的?用了多长时间?
  
  举个例子,在 Python 中文社区,我见到过的新手问题:
  
   - 为什么用 word 保存的代码不能执行?
   - 不明白文本的编码和字符串的编码是什么意思,有什么关系?
   - 如何在解释器中执行代码文件(或系统命令)?
   - 为什么代码文件拿到别人的机器上不能运行?
  
  蔡学镛老师的《编程ING》就是这样一本书,它耐心的解答了以上的这些基础问题,以及,传授了那些真正的编程需要的知识。如:
  
   - 什么是编程语言?
   - 什么是变量?
   - 变量的类型是什么?
   - 基础的程序逻辑——顺序、选择、循环等
   - 语境(即 Context,常见的译法是“上下文”,但是我认为“语境”这个译法要好的多)
   - 函数
   - 模块
  
  书里用了一种很不常见的编程语言,REBOL——这大概会吓跑不少读者。《程序员》的老读者应该有印象,蔡学镛老师几年前就开始发表一系列的文章,介绍这门语言。今天这本书,可以说是蔡老师的厚积薄发之作。在书中,使用这样一门“小”语言作为教学工,进一步降低了学习门槛。
  
  比起最初我用来打印三角形的那个还需要写行号的 Basic ,REBOL 倒也不失是一个实用的小工具,例如书中 43 页,就有一个用十几行 REBOL 代码写成的十六进制阅读器。可不是每一本入门书,都能在前50页教到这个程度。
  
  说到这个,这本书有个很了不起的地方。它每一页,都有一半以上的内容是图解——好吧,这大概又要吓跑不少追求“文字量”的朋友。每一个知识点,都彩色的图例非常认真清楚的解释出来。相信常做幻灯的朋友都知道,好的图示,工作量比同样篇幅的文字更大。
  
  正是依靠这样不厌其烦的详细解说,我相信这本书真的可以在三百多页的篇幅内,教会读者编程的基础知识,让读者可以用 REBOL 写出简单可用的东西,并且也具备进一步学习其它语言的能力。这可是三百多个详细的图解,等于是有一位老师手把手的教学生读书写字。我这十几年的学习和工作生涯中,读过不少专业教材,有些写的深入浅出,有些写的丰富翔实。但是能有耐心把所有初学入门的知识一点一点掰碎了教给读者的,确实仅此一家,别无分号。
  
  在这份耐心面前,这本书可能给读这的顾虑,例如 REBOL 语言是不是太冷门,学了以后没有机会用什么的,真的不重要了。我们这代人,还有几个用当年的小海龟(LOGO)工作?还有多少人在用那个需要写行号的 BASIC ?我们都成为了所谓的“业内人士”,但是不应该忘记当初起步的过程。感谢有作者还记得当初的不容易,并且致力于帮今天的学习者,找到那种简单而有乐趣的学习过程。
  
  零基础的编程学习者、想要教这样的学习者写程序的朋友,想要了解一下蔡老师多次推荐的 REBOL 语言到底有多神奇的朋友,值得阅读一下这本书,这是一本另类的,有趣的编程教材。它解答了我的一个疑问:
  
  我们到底是怎么学会写程序的?那个过程,有没有可能简单一点?简单到即使不是理工、宅男,仅仅是想学习一下“写程序”,体验一下这个乐趣,解决一些问题的人,也能学会?
  
  这本书给了我们肯定的答案。



推荐阅读
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 本文详细介绍了如何将 Python 3.6.3 程序转换为 Windows 可执行文件(.exe),并解决了使用 py2exe 和 cx_Freeze 时遇到的问题。推荐使用 PyInstaller 进行打包,提供完整的安装和打包步骤。 ... [详细]
  • 在 openSUSE Tumbleweed 系统上搭建 51 单片机开发环境并进行编程实践。首先,通过 `sudo zypper in emacs` 命令安装文本编辑器 Emacs。接着,使用 `sudo zypper in sdcc` 安装 SDCC 编译器。最后,利用 `wget` 下载 sdcflash Python 脚本,以便于单片机的烧录和调试。此外,还介绍了如何配置开发环境,确保各组件协同工作,提高开发效率。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 本文详细介绍了Python中函数的基本概念,包括函数的定义与调用、文档注释、参数传递(形参与实参)、返回值以及函数嵌套。通过具体示例和解释,帮助读者掌握函数在编程中的应用。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • 在本教程中,我们将深入探讨如何使用 Python 构建游戏的主程序模块。通过逐步实现各个关键组件,最终完成一个功能完善的游戏界面。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • Python实现斐波那契数列的方法与优化
    本文详细介绍了如何在Python中编写斐波那契数列,并探讨了不同的实现方法及其性能优化。通过递归、迭代和公式法,读者可以了解每种方法的优缺点,并选择最适合自己的实现方式。 ... [详细]
  • Python数据分析入门指南:全面了解Python在数据科学中的应用 ... [详细]
  • https:www.hollischuang.comarchives74 对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
author-avatar
勇士8853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有