轮带逛 轮子哥带你学 C++

 

《CS 212:面向对象程序设计 C++》在经过长达四个月的开发和测试之后,终于在今天,亮相了。...

《CS 212:面向对象程序设计 C++》在经过长达四个月的开发和测试之后,终于亮相啦!

这门课是由 Microsoft Office 核心工程师陈梓瀚(轮子哥)跟我们合作编写的。


为什么选择这门课

蛤?你确定你真的要问这个问题吗——“轮子哥带你学C++”这件事情难道不就是最大的理由吗?

嘛,先不开玩笑——严肃地说,这门课程,拥有以下的几个显著的优点:

真正意义上地以《C++ Primer》为蓝本,基于现代  C++ 构建,教你学会如何书写优雅、高效而健壮的 C++代码

许多类似的课程都会在参考书目里写上《C++ Primer》,但是实际上课程的内容,基本上只有 C++ 最为“简单”的部分,几乎全都是 C++98/03 的传统内容,对于现代 C++ 基本上没有提及。大家在“学会”了 C++ 之后往往会觉得“其实 C++ 也没那么难啊”,然而实际使用的时候写出的代码往往漏洞百出,到处都是 bug。
典型 C 风格代码


究其原因,一方面是因为 C++98/03 还是太“C style”了,很多地方都没有填坑——所以你必须要充分地了解语言的方方面面才能确保不出问题;而另一方面则是因为,尽管这些课程在参考书目里写上了《C++ Primer》,但是在课程安排上却并没有像《C++ Primer》那样与时俱进,仍然从旧标准中的 C feature 开始介绍——这就导致了很多初学者遇到各种莫名其妙的问题,学习热情遭到打击甚至裹足不前。

合理的学习顺序,应该是先从现代 C++ 的部分开始介绍,然后再来由易到难地介绍那些传统的C风格特性。这,也正是这门课程的特点:它真的是基于《C++ Primer》而构造,致力于介绍一个现代 C++(C++11和C++14)的子集——可以替代绝大多数常用的 C 语言 feature。对于经验不足的程序员来说,使用现代 C++ 特性写出的代码,相比使用 C-feature 写出的代码,通常可以变得更加优雅、高效而健壮。
相同功能的现代 C++ 代码


● 形象讲解 C++ 的特性,克服“从入门到放弃”

借助计蒜客平台提供的一系列教学工具,这门课程将会生动而形象地展示诸如右值引用构造等C++底层特性,化抽象为形象,帮助大家充分地对这些特性进行理解,结合代码实践实现正确而灵活的运用。

尽管这门课程不能完全取代《C++ Primer》,但是对于大部分学生来说,这门课程可以显著降低学习《C++ Primer》的难度,帮助大家彻底克服“从入门到放弃”的窘境。
● 伴随式编程,将学习效率提高到最高

大家注意到了吗?我之前说的是,轮子哥是这门课的“作者”而不是“讲师”——没错,我们的课程不是 MOOC,没有视频。因为看视频太耗费时间了,而且学习效果极其可疑。我们的教学形式,除了基本的阅读和选择题之外,最为主要的就是伴随式编程课了:你可以想象,有一个虚拟的“轮子哥”在手把手地教你一句一句地写代码。
俗话说“好记性不如烂笔头”——计算机科学的理论属于知识,而编程则属于技能。既然是技能,那就需要用动手的方式来学习——在学习编程的所有方法中,没有什么比自己亲自敲一遍代码更快捷更高效了。计蒜客为你提供了一个随时随地都可以直接开始写代码的,方便快捷的平台——如果你在学习中遇到问题,可以直接去问答区提问,所有问题都会在 24 小时之内得到友善而实用的回答。

● 从工程实践出发,真正学会如何使用面向对象的编程思想和设计模式构建程序

“面向对象”不光是语言特性,同样也是一种极其重要的编程方法论——然而过去的大量课程中,都是指浅尝辄止地教同学如何使用相关语法,装模作样地定义几个类就完事了。这样一来,学生往往是经过一段时间的学习之后,还是不知道该怎么设计类。

而这门课程,将利用大量的示例代码,用程序实际执行的过程,教会大家如何正确地设计类。除此之外,这门课程还会对面向对象设计模式进行初步的介绍,并向大家演示如何应用设计模式。为了巩固这些内容,这门课程还提供了多个精心设计的,规模庞大的编程题和工程题,让大家在实际的项目中,亲身体会到为什么要这么设计类,为什么要应用设计模式。
● 通过对 C++ 的学习和训练,提升自己的“内功”,成为一名真正的工程师

C++ 是一个语言联邦,它博大精深,收放自如,包含多个编程范式却又完全不会阻止你使用其中的任何一个部分。作为一个想保持自我发展的程序员,在工作的过程中保持不断的学习是相当重要的——事实上随着项目和雇主的变更,大部分程序员在其一生中都需要学习所有流行的语言,所以学习语言更多的只是哪个先哪个后的区别。
在这门课程中,你所学习到的知识,训练到的技能,都是普适性的——哪怕你今后不从事 C++ 开发相关工作,你在这门课程中的收获,仍然会伴随你的职业生涯,让你终生受用。

在刚刚接到轮子哥发来的大纲的时候,我实在是懵逼了一会儿——因为课程内容的安排已经完全超过了我的认知范围,一时间我竟意识不到这门课程究竟应该处在一个什么地位。

现在,回顾整个成品,我终于可以给这门课程一个最终的定性:

大家都知道,现实中的美国高校,并没有纯粹的编程课——而在我看来,如果美国顶尖高校的课程安排里,有《ObjectOrientedProgramming》这样一门课的话,那么这门课,大概应该就是长这个样子吧……

这门课程适合哪些学生

总而言之,这是一门面向初学者的C++高级编程课程——它的定位跟《C++ Primer》类似:如果你已经会用其他语言编程的话,那么它可以教会你用 C++,但如果你是初学者,或者编程基础不够强的话,那么这门课的学习过程中你会非常难受。

因此,我们推荐大家至少学过一种编程语言(如果是 JAVA、C 或者“旧式的”C++ 的话那就更好了),并且至少完整地学过一遍数据结构。大家可以直接在计蒜客上学习《CS 112 C++ 程序设计》和《CS 261 数据结构》。

课程定价

这门课程以按时间方式进行计费,有多种标准可以选择,目前折扣如下:

● 按周计费每周需要 140 元人民币

● 包月一个月 190 元

● 包季度(三个月)480 元

● 终身可用共 600 元

根据我们的评估,在投入足够时间的情况下,扎实地学完整门课程需要大约三个月——另外,当你完成这门课程(获得足够的总分)之后,计费将会终止,课程内容将会对你永久开放。大家可以量力而行,自行选择对应套餐……
点击阅读原文 查看课程介绍





    关注 计蒜客


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册