C 之父给的C 学习路线图(C 赠书)
查看文章尾部参与赠书活动
C++难学,这几乎是一个共识!这是由它的设计机制和要解决的主要问题决定的。相比Python、Java、Go、C等当下流行的编程语言,C++的学习门槛更高,而且进阶的难度也更大。当然,如果与Rust和WASM等新星相比,C++的学习难度可能并不算大。
既然学习C++有相当的难度,那么有没有好的学习方式和方法推荐呢?学习编程语言,好比拜师学艺,跟随语言之父这样的开山立派的宗师学习,自然事半功倍。所以,要学C++,就应该师从C++语言之父Bjarne Stroustrup。
图 C++之父Bjarne Stroustrup
Stroustrup是科学界明星人物,曾获《财富》杂志“美国12位最年轻的科学家”称号,以及BYTE杂志“近20年来计算机工业最具影响力的20人”称号。他的学术造诣也极高,是美国工程院院士、IEEE会士、ACM会士,曾获Sigma Xi(科学研究协会)的William Procter奖(首位获得此奖的计算机科学家)。他对教育行业的贡献也极大,曾担任德州农工大学首席教授,为剑桥大学、哥伦比亚大学、普林斯顿大学等知名学府教育事业做出重要贡献。他的几本著作被翻译成20多种编程语言,是剑桥大学、哥伦比亚大学、普林斯顿大学、德州农工大学、上海交通大学等全球大量知名学府的核心教材。
为了帮助我更好地学习和使用C++,Stroustrup为我们创建了一个丰富的C++元宇宙(C++之父的C++元宇宙)。这个元宇宙为C++教学者和学习者提供了丰富的方法和素材,其中最核心的就是他的4本享誉全球的著作。
(1)《C++程序设计语言(原书第4版)》
这本书从C++语言设计者的角度讲解了专业C++程序员需要的每个语言特性和标准库组件,并解析了它们的设计初衷、原理和制约因素,是数百万C++程序员学完后推崇备至的C++语言学习宝典。
(2)《C++程序设计:原理与实践(原书第2版)》
这本书专注于C++程序设计技术、实践和技巧,而非C++语言本身,是一本能让你学到基本的实用编程技术(包括支持这种技术的编程思想和语言工具)的最简单书籍,能帮助你理解并编写复杂的程序。它会教你编写“有用的程序”,而非“玩具程序”,帮助你实现从“工匠”(码农)到“艺术家”的升华。
(3)《C++语言导学(原书第2版)》
这本书是为有其他编程语言经验(如Java)快速了解C++量身定做的,它覆盖了C++大多数语言特性和标准库组件,但只是概览,能带你在3个小时内认识完整的C++及其背后的设计思想。写作手法、内容结构、示例选取都推陈出新,不枯燥,不教条;文字虽少,内容却丰富,直指关键。
根据这4本著作的不同内容和特性,Stroustrup为不同水平和背景的C++程序员和教师制定4个路线图,能帮助大家学到最正宗的C++知识,而且能少走弯路。
路线图1:如果我没有编程经验,也没有C++语言基础,我该怎么学?
推荐你先系统学习《C++程序设计语言(原书第4版)》,然后深入学习《C++程序设计:原理与实践(原书第2版)》。
路线图2:如果我有C++语言基础,想写出工程级C++代码,我该怎么学?
推荐你先深入学习《C++程序设计:原理与实践(原书第2版)》,然后再系统学习《C++程序设计语言(原书第4版)》。
路线图3:如果我有其他语言编程经验,没有C++语言基础,我该怎么学?
建议你先快速学习《C++语言导学》,然后系统学习《C++程序设计语言(原书第4版)》,最后再深入学习《C++程序设计:原理与实践(原书第2版)》。
路线图4:如果我是教师,Stroustrup的书适合用来教学吗?
非常适合!剑桥大学、普林斯顿大学、上海交大等全球大量的名校都在用Stroustrup的书作为教材,取得了非常好的成效。为了帮助教师教学,Stroustrup还专门为教师编写了教学指南、配套PPT、习题等,所以他的书在C++课堂深受欢迎,是公认的C++教材的事实标准。
具体教学时,推荐《C++程序设计语言(原书第4版)》和《C++程序设计:原理与实践(原书第2版)》结合使用,前者讲透C++的语言特性和标准库以及它们的设计原理,帮助学生打下扎实的语言基础;后者深入地讲解了C++程序设计的技术和技巧,能引导学生在掌握语言后写出真正有用的程序。由于学校课时有限,建议以前者为主,后者为辅,对教师的授课能力有一定的考验。
当然,要成为一名合格甚至是优秀的C++程序员,只看书肯定是不够的。用Stroustrup的话来说:“学习程序设计最好的方法是实践,是编写有用的代码,而非玩具代码”。
作者:[美] 本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)