课程分类

课程介绍
课程目录
用户评论
课程介绍
课程目录
用户评论

你将获得

  • 掌握某些知识点
  • 学会某些技巧(或思路)

教学服务

  • icon

    1v1专属答疑服务

  • icon

    BAT专家面试辅导

讲师介绍

  • 哈工大(威海)老师,主讲《计算思维与信息基础》《高级语言程序设计II》等课程

  • 课程详情

    首先说明作者的写作动机。

    目前在市场上,介绍C++的书籍多如牛毛,翻开那些书籍,里面的内容大同小异,鲜有体现作者思想的奇异之作。另一方面,作为语言的学习者,又很难找到一本贴切的书籍,带领他们快速直接地进入语言的情境,节省他们学习的时间,同时深刻地点出语言的重点。

    首先要确立学习的姿态:是初学者还是老手儿。初学者的问题是,对语言一无所知,学习的过程经常会出现茫然不知所措,就像来到一个陌生的地方,对一切都不熟悉。作为讲授者,最理想的情况不是高高在上,而是与学习者保持相对较近的距离,让他们能够看得到、摸得着,彼此之间相互理解。这做起来很难,就像一个成年人与孩子做游戏,必须降低自己的姿态,再高明的幼儿教师,也不可能像真正的幼儿那样,得到其他幼儿的欢迎,模仿的不如真实的。已经过了学习的阶段,如何把自己想象成一个初学者?这正是在这本书的写作过程中我想得较多的一个问题,我会尽力这样做。

    如果这本书不考虑这点,就有可能成为学习者的负担和垃圾,还可能成为障碍和毒药,长久以来,大多数的编程高手在这方面的付出是有限的,然而,学习者却迫切需要正确的指导,让他们快速而简捷地步入编程者和行列。正是出于这样的考虑,我在这方面决定付出一定的精力,把在语言方面的长期积累做一下总结,奉献给当初和我一样的学习者们。

    推而广之,不管是什么类型的著作,都应该具备这样的姿态,这是所有作者都应该具备的道德,和他们在写作过程中的努力方向。

    目的是迅速开始编程,编写实际的程序,而不是在学完了全部或者部分内容后才开始编程,就像为了登山而进行大量的准备一样,过程往往是枯燥的和意义不明确的,这不是最佳的学习过程。对于登山来说,如果缺乏必要的准备和培训,有可能在实际的过程中带来危险。而编程则不同,大胆而盲目的尝试,通常情况下不会产生任何风险,因此,从编程开始而不是从学习开始,对于语言的学习尤为重要,也是缩短学习过程的比较好的,也许是唯一的途径。

    所有的例子都体现基础的功能。

    一种功能在明确被需要时再去阐述,而不是考虑到它可能被需要,或者假设在某种场合下被需要。这样就保证了这种功能被介绍的前提是它确实有用,而不仅是单纯介绍它的用法,这正是目前在所有领域所异型的大部分学习的弊端:当我们学习的时候,不了解它的实际需要。

    没上高原就不必考虑高原反应,考虑了也没用,因为没有切身的体验。

    在没有特殊说明的情况下,本书中的用法和习惯,大多数是作者推荐的,而那些没有涉及的用法和习惯,一般情况下是作者不推荐的。

    使用简单的命名规则,用一个字母表示一个变量或者是一个函数,而不是用一个单词或者一长串单词的组合,就像在数学课上我们所接触的普通变量那样。这样做的好处是直观和容易理解,因为对于母语不是英语的普通学习者而言,使用英文单词作为符号往往带来理解上的困难,最直接的困难是容易把单词和语言本身使用的一些符号(保留字)相混淆。

    就目前来看,命名规则并没有形成统一的共识,比如软件的版本号、产品的型号,大部分按照厂家的内部规则,从而给普通用户在理解上造成麻烦。这种情况还将持续一段时间,然后在将来的某个时候,在所有的厂家之间达成一致,形成全球化的公用标准,例如,统一将软件的版本号与以布的日期联系在一起。

    本书中对所有的例子进行全局编号,以便于在其他地方引用和说明,在书的附录中对所有的例子进行索引,读者可以根据索引方便地找到所需的实例。

    本书的大部分内容和例子中,不考虑语言本身的具体实现机制,这样将简化对程序的认识和学习,把使用语言编程和编写语言本身区别开来。

    本书绝对不是一本语言的手册,它不是从语言本身出发,而是从实际的项目开发出发来讨论所有的问题,极力把语言视为一种工具。

    《学习的方法》

    像宠物一样被保护着穿越一条封锁线,必定对封锁线一无所知,换一种场合,在没有人保护的情况下,则很难穿越那条封锁线。这引出了一个概念,叫做“独立工作的能力”,我更愿意称之为“单兵作战的能力”。这种能力一定是在不断的试错或者碰壁的情况下建立起来的,最终成功了,通过了那条封锁线,这种成功更加透彻,建立在常规的大部分的失败基础上,比直接被保护着通过封锁线要有价值100倍。

    工具的概念所表达的含义是,使用它,而不问它的来历,我们只是使用一把锤子,而不去过多关心它的材料与制造工艺,这对于普通的使用者来说甚为重要,否则的话,就会阻碍他们方便快捷地使用工具,这一点应该也是工具制造者的初衷。一个优秀的汽车制造厂商,总是希望普通用户可以简单地使用车辆,而不去过多关心制造过程和详细结构。

    本书的章节安排没有严格的顺序,读者可以根据自己的水平自己选择学习的内容。

    希望多年以后,这本书仍能成为一本特别的著作。

    让初学者和高手,都可以从中得到好处。

    我对高手的定义有两点:能够自主学习,并且知道应该学习哪些内容。