热门标签 | 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 语言到底有多神奇的朋友,值得阅读一下这本书,这是一本另类的,有趣的编程教材。它解答了我的一个疑问:
  
  我们到底是怎么学会写程序的?那个过程,有没有可能简单一点?简单到即使不是理工、宅男,仅仅是想学习一下“写程序”,体验一下这个乐趣,解决一些问题的人,也能学会?
  
  这本书给了我们肯定的答案。



推荐阅读
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 本文讨论了在使用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社区 版权所有