热门标签 | 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编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • ANSI
    ANSI是什么编码?用Notepad创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII ... [详细]
  • mysql和php的关系理解(php技术和mysql怎么结合)
    本文目录一览:1、apachephpmysql他们是什么关系 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • BashShell作为Linux的指定合作伙伴我们已经再熟悉不过了,使用Bash可以快速编写简单的脚本方便我们的日常比如善用vim,awk和sed三剑客,也可以创建十分复杂的逻辑, ... [详细]
  • Haskell学习笔记:探索函数式编程之美
    使用教材:《learnyouaHaskell》,中文1-8章戳我准备工作。编译器&调试器:安装HaskellPlatform, ... [详细]
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社区 版权所有