主题:随便说说c++的这次吵架 -- 透明
不过我已经写了很久的 C++,所以比较能心平气和接受这一点。
现在回头看,从 MFC 开始学 C++, 绝对是个不幸的事。除了早期用TC++和C++ Builder完成过课堂作业,我真正严肃意义上的使用 C++ 是从 MFC 5.0 开始的。我是从MFC 5.0开始。
MFC自己本身是一个失败的设计,官方都承认这一点,如果你知道Afx代表什么,基本上就理解为什么他是失败的设计。但是因为 Windows 的成功,和其赵家人身份,从产品来说,是成功的,所以尤其不幸。
现在回头看,即使只限定在 MFC 和 C++ 之间,MFC只有对 C++ 的虐待和滥用,没有做对一件事情。MFC 里关于 C++ 的所有设计都是错的,包括匈牙利命名法,虽然这个主观一点。
我个人认为学习 C++,最好的参考
- Bjarne的书(比如 A Tour of C++,Programming: Principles and Practice using C++ (2nd edition), TCPL很深邃,不过有点过时),所有访谈(他的所有访谈都很很深刻),和演讲录像,这些在他的个人主页上都有链接。
- 学习一下 STL, 比如 Nicolai M. Josuttis: The C++ Standard Library
- 学习一下 BOOST,Boost的文档写的很好,我个人觉得最好的是每一个库开始 rationale
- CPPCon, CPPNow,所有的PPT在github上有,video在youtube上都有。墙内微软的channel 9上有2017年以前的cppcon录像, 2018年在bilibili有。
- Twitter上关注一些CPPCon, CPPNow上的名人
以 C++ 的广度,深度和复杂度和反人类的本质,建议不要以学会 C++ 为目标。根据自己的兴趣,时间和实际需要,学一点是一点。
说 C++ 反人类,是如果把 C++ 看作人(程序员)和资源(电子系统)的桥梁,他的全部目标就是最优化资源的利用,以人付出更多为代价。Python刚好是另一个极端。做好两个一起学。Bjarne就说,一个人至少应该掌握两种计算机语言。
最后一点,学习任何计算机语言,最好用英文,主要是因为术语。翻译的书分分钟带你到沟里,而且,当你有问题的时候,你发现没法有效在网上提问。
比如我曾经很多年不明白sizeof()为什么是操作符,明显是个单词不是"符号",如果一开始看英文,operator一词基本上不可能产生这种理解障碍。中间损失的脑细胞和自信心完全是翻译的锅。
- 相关回复 上下关系8
🙂就这个帖子而言,想说的说完了 5 透明 字369 2019-10-20 11:09:14
🙂我是用C起家的 2 johny 字232 2019-10-21 09:38:27
🙂正好问一下行家 1 数值分析 字246 2019-01-25 05:04:06
🙂我不是行家,尤其是对 C++ 而言,没有行家这个概念
🙂TCPL第四版可以看 3 假设 字73 2019-09-20 02:32:41
🙂先学MFC真是灾难啊,还好爬出来了 5 敲门 字644 2019-01-27 00:05:18
🙂也不能这么说吧 3 starkik 字336 2019-09-21 00:28:51
🙂可以再请教一下么? 3 数值分析 字439 2019-01-25 23:21:43