‹  返回课程

第1章《启蒙》. 开始

课文
阅读量:374
技术范畴
通过常见的学习行为对比,指出作者认为的,什么样的人适合学习编程。
课前导言
从文中对比两类人时,每一种行为的背后是什么?
第1章《启蒙》. 开始
我们都需要从某个地方开始

学习编程很难。

这行业的技术结构是这样的——

相对不变的知识都挺难搞的。比如计算机原理、操作系统原理、编译原理等,比如网络协议、算法演绎等,再比如逻辑思维、设计模式等等。相对容易搞定的知识都挺大坨的。一堆一堆,典型的“知识爆炸”,然而编程语言各立山头,各种工具层出不穷,专业术语更是像天天上的星星一样多,初学者想搞清重 点,难。

 

因此,可以做这样一个比喻:你今天晚上说,“我要学习编程”,次日一醒突然发现自己生活在沙漠里,每一颗沙粒都是知识点,你需要在这当中淘出金子,于是你淘啊 淘啊,终于淘到了几颗发光的东西,然而坚韧的你还是淘不不下去了,为什么? 因为好渴。那么,水在哪里? 在地下800米深处。

看来,开工之前最好能找到前人(也许是先烈)留下的“寻宝图”才好。可是这一行挑书不仅是智力活,还是体力活。市场此类书籍不但汗牛充栋,而且良莠不齐,就说你现在手上拿着的这本书,是好是坏谁知道呢?

说到买书,在这行想靠一本书就完现“从入门到精通”,那真是妄言。肯定要买好多本的。你是想花大钱买本正版,还是要昧着良心看盗版,前者让自己变穷,后者让别人破产,怎么选择? 好一个艰难的决定。

学习编程很难,如果你想要学习的编程语言偏偏又是 C++ ,那就更难了。你刚大声说我要学习 C++ ,边上就会有一众人摇头叹气;此时你又不小心露出一本中国人写的教材,一众人这下向要拍案而起了!

作为作者,我希望《白话 C++》能够陪伴 C++ 初学者教材至少730天的路途,或者更远一点,直到你找到更合适的伙伴。因此我在努力保留必须的知识点的前提下, 将书写得更加通俗易懂,但也要在此小心翼翼地发问:

“你真的要学习 C++ 吗?”

如果你犹豫了,请合上书页,把书轻轻地放回书架,就当什么也没有发生。有时放手也是一种选择。

咦? 你居然还在看! 那就是说,你已知学习 C++ 的艰难但还是要坚持。接着, 寻找盗版书籍的,出门左拐复印店,目送您的背影渐行渐远,我的心情你懂的。

其他的人们———啊不,居然就只剩下你一个? 君请随我右转,进得一小屋,屋内有一魔镜煜煜生辉,镜里有一个“人”,这是一个具有借助本书学习 C++ 基础条件的人,一个幻影人,让我们一起看着他

  • 一桌一椅一PC,装的是 Windows 10,有宽带。(反面:“真的不能用小霸王学习机?Windows XP 总行吧?”);
  • 书中提到网站“第2学堂”,虽无网址,但他打开Firefox,轻唤“谷哥”,不在;于是改呼“度娘”,很快在浏览第2学堂。(反面:我对网站没什么兴趣,但我想上网“人肉”作者的三围数据……)
  • 书中又说要下载某开源软件,他上了网站,找到“download”的链接,书中又提到要“Nightly builds”版本,他找到了链接,在下载的过程中,顺手用在线辞典翻译了这个“Nightly builds“。(反面:我不懂英语,身为堂堂正正的联合国五大常任理事国之一的国民,学习编程为什么要用外文软件?)
  • 又不知什么原因,他打开系统某个文件夹熟练地将一堆文件移动到另一个地方。“是移动而非复制…… ”他自言自语,并认真地做了确认。(反面: “秘书啊,过来一下……”)
  • 他在文件夹中,按下 Ctrl-F 热键,找到某个扩展名为 .exe 或 .dll 的文件,右键点击快速地做了些什么操作……他细细地查看文件属性,嘟囔了一句 我明明刚刚修改了它啊?”(反面:“Ctrl-F?没有这个键啊?”)
  • 有人问他:你的机器和操作系统是32位的还是64位?他要么是知道,要么开始上网查相关信息。(反面:“最讨厌这些满嘴专业术语就爱装的人了”)
  • 放下电话,他小心翼翼地打开 C 盘,找到 Windows目录,把书中要求的某个文件复制过去。这时电脑提示他有权限问题,他愉快地做出了决定。(反面:“这么危险的操作,不玩了!”)
  • 他从电脑前站了起来,转头、扭腰、压腿;还打了个简短的电话,电话交流中满是问候,看得出他很关心电话另一头的人。(反面:“我一坐六小时,没事。”)
  • “请在 Windows控制台进入该目录……”,书中就这么说了,可是“控制台”是什么东西?又如何切换目录?他理解一本讲编程的书无法事事从基础讲起,所以默默在搜索资料,他有了答案,试着按下“小旗键”同时按R键,再输入cmd……然后他在学习Windows控制台的常用的命令。(反面:“什么破书,一件小事都说不清楚!”)
  • 他知道“Ctrl+Alt+Delete”组合键的作用,如果不知,此时他正在试。此后他很有兴致地和任务管理器打交道。(反面:这有意思吗?我只是想学习写代码啊!)
  • 他用全部的指头熟练地在键盘上输入,那些用两个甚至一个指头敲字的人, 那不是他,那不是他。(反面:“真正的高手不都是只用一个指头操作吗?”)
  • 邻居家的电脑越跑越慢,他过去帮忙了。查看磁盘或内存大小,借助工具杀毒除木马、优化升级系统,女汉子会做的事,他当然也会…… 反正看清了,他不是那种碰到问题就眨巴着一双大眼充无辜的人(小眼睛也不行)。(反面: “隔壁的女生又不漂亮!”)
  • 他发了封电子邮件。他有QQ、微信,他加入或关注了许多和编程有关的群或圈子。(反面:“我什么都不懂,在里面说不上话,我不去。”)
  • 他为了有更多的时间学编程,就假装不是很爱玩游戏。(反面:“不玩游戏?那是男人吗?我写代码5分钟,玩游戏5小时。”)
  • 他偶尔听到“动态库”这个词,于是上网查了查,到 System32 目录下搜了搜,一堆文件让他若有所思,其实他还是不懂。( 反面:我有个学某某语言的兄弟,他也不懂啊! 为什么要我懂这么多!”)
  • 他学习书中做屏幕保护的应用例子,终于做出来了,有一点兴奋。费了好长时间加入自己的创意,并把程序安装到父母的电脑上。第二天他接到老妈的电话,问他电脑屏幕上显示着:“爸妈,我爱你们”是不是因为中毒了? (反面::“我学编程是为赚大钱的!别扯这些小资情调行吗?”)
  • 他听说过 Linux,也了解“opensource”。当看到书中文字:“Code::Blocks是一套跨系统的、开源的、免费的 C++ 集成开发环境”时,他可能还不知什么是“Code::Blocks”,也不懂什么叫“C++ 集成开发环境”,但他会觉得中间那三个“的 ”确实有些吸引人。(反面:扯淡吧?除了“有钱的”,别的能有什么吸引力?)
  • 他中学英语没有全部还给老师。当学习上遇到不懂而又必须懂的英语单词或句子时,他会去查安装在电脑上的电子辞典。当我说“In”是输入,“Out”是输出时,他觉得自然。(反面:“我还是再找找,我一定能找到纯汉字编程……”)
  • 他有点数学基础。可以是初中的、高中的或大学的…… 反正在这本书里,高中的数学知识都碰不上。(反面:“我数学太差,所以我肯定学不好编程……买这书,又冲动了……”)
  • 他在生活中不笨,不是骗子经常光临的对象;也不经常扮演那种自己把自己丢在大街上的角色。还有,或许他并不喜欢多说话,但在别人眼里他却是个讲逻辑的人。(反面:“老师,我不笨,快点开始教学吧,我着急写一个计算大奖特码的程序呢。”)
  • 最后,他有信心、恒心、耐心、细心。无论如何,他能坚持做完第二章里面的那些琐碎的“准备工作”(当然,如果因为国外网站下载太慢,请上 第2学堂 d2school.com 注册后,可下载书中的所需的软件包)。(反面:“太TM烦了,程序员这种高端人士为什么需要干这么多杂活?”)
  • 他……(反面:“呸!!学个编程给我开这么多条件!!!作者你失心疯了吧?你以为你是谁啊?不就是个20年的谢顶了的老码农吗?我要退书!)”

魔镜的光慢慢暗淡,舞台的追光打在你的头发茂密的顶上,你沉默不语,安静得像一座雕像大卫……半天,你开口说话了: “我长这么大,还真头一回看到这么啰里八嗦的书”。 “那么,你现在还想成为一名 C++ 程序员吗?” “书都买了,然后还让你给强行签名了,你还想让我怎么着?”

再往下的学习,就让我们以 C++程序员的全新角度看待眼前这台计算机。听说C++程序员的眼光自带X射线效果,用它看计算机,会看到什么呢?

课后补充

下一节: 什么是计算机

一部《红楼梦》,据说经学家看见“易”,道学家看见“淫”,才子看见“缠绵”,革命者看见“排满”,流言家看见宫闱秘事……我在读三年级时翻开《红楼梦》,看到是一堆的繁体字。如果现在我以程序员的眼光去“重逛”大观园,会看到什么样的红楼呢?我不知道,还是来说一说计算机的事吧。

(另外,以上那段有关红楼的话,真是鲁迅说的,为什么总有人说是我编的?)