西西河

主题:随便说说c++的这次吵架 -- 透明

共:💬71 🌺370
全看分页树展 · 主题 跟帖
家园 我不是行家,尤其是对 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一词基本上不可能产生这种理解障碍。中间损失的脑细胞和自信心完全是翻译的锅。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河