几个星期后,我们将直接从大学开始为Java程序员教授C++速成课程.他们对C或C++的经验很少或根本没有.
本课程以前的版本只有1或2个半天课程,涵盖的主题包括:
新的语言特征,例如
标题与实现
指针和参考
内存管理
运算符重载
模板
标准库,例如
C库头
基本的iostreams
基本STL
使用库(标题,链接)
他们将使用Linux,所以
基本的Linux控制台命令
gcc以及如何解释其错误消息
Makefile和autotools
基本调试器命令
他们询问的任何话题
在课程中,每个人使用新引入的功能单独编写,编译,运行和调试简单程序.这是最好的学习方式吗?
您认为哪些主题最重要?
应添加或删除哪些主题?
哪些主题在短时间内无法充分涵盖?
我只能再次指向Stroustrup并宣讲:不要教C子集!这很重要,但不适合初学者!C++足够复杂,标准库类,特别是STL,比C++的C子集更加重要,并且(至少表面上)更容易理解.
顺便说一句,指针和堆内存分配也是如此.当然,只有在教过STL容器之后,它们才是重要的.
新生必须掌握的另一个重要概念是不同编译单元的概念,一个定义规则(因为如果您不知道它将无法解密错误消息)和标题.这实际上是一个很大的障碍,必须在早期被破坏.
除语言功能外,最重要的是如何理解C++编译器以及如何获得帮助.在我的经验中获得帮助(即知道如何搜索正确的信息)是必须要学习的关于C++的最重要的事情.
我过去对这种教学方式有很好的经验.
/编辑:如果您碰巧认识任何德语,请查看http://madrat.net/coding/cpp/skript,这是我的一门课程中使用的非常简短的介绍的一部分.
如果他们来自Java世界,他们习惯于垃圾收集.因此,我可能会花一点时间谈论智能(引用计数)指针,以及它们与垃圾收集的比较.