聊聊自己的新书吧
时光如白驹过隙,离我开始写书转眼已过将近两年,回顾一下,还是有些话想说,就在此絮絮叨叨吧。
年轻人总得有点梦想
我在工作第4年,想着要去写本C++书籍,于是我就主动联系了人民邮电出版社的编辑,给他们发去了我写的关于C++对象模型详解相关的博客,运气很好,人民邮电的编辑认为博客还不错,可以出版。于是我就直接冲了。现在想来,无知者无畏!但年轻人总得要去拼一下,要不然你不会知道自己有多大的潜力。如果你想干什么事了,那就去干,不要怕别人说什么。
《C++对象模型详解》断断续续写了将近7个月,加上编辑变动,导致现在才上架和真正的出版,拿到纸质书,过程确实存在几多艰辛和困难。但拿到书的那一刻,我觉得是值得的。
关于C++,网上普遍存在的声音是 需要多年经验才算登堂入室,但我不这样想。我认为,你有兴趣,愿意钻研,三年或者五年其实可以算个老手的。语言类的东西远远没有想象中的那么难。真正难的是一直坚持学习的能力(持续学习)。学C++至少能让我一直保持着学习的状态,跟随着标准不断的前行,对我而言,这个才是这门语言的意义。
这本书毕竟是在我工作第4年到第5年之间完成的,C++的知识也确实很多,各种边边角角,我知道自己会存在部分错误,我也欢迎有人指出,甚至批评。
关于这本书
在我刚开始工作的前4年,我认为也基本看完了市场上经典的C++书籍(C++ template, C++ Concurrency in Action等等)。但是所有这些书籍都未讲解gcc编译器中C++对象模型的实现,异常的实现等。而恰巧一次业务故障同gcc的C++虚表相关,因此我便想搞明白这个虚表是不是同深度探索C++对象模型一书中所描述的一样。
为此,我重读了深度探索C++对象模型 并用gdb调试相应的实现,然后便产生了这本书。我的本意有三:
- 证明自己热爱cpp
- 在cpp这个世界中留下点什么(理想主义)
- 分享知识,帮助更多的人了解cpp
下面说回读这本书的前置条件:
这本书会涉及到汇编和链接的知识,所以最好是要度过
- 深入理解计算机系统第三版
- 程序员的自我修养链接装载与库
这两本书。
当然,你肯定也要有一定的cpp基础。
此外,本书会用到一些简单的gdb,所以你也需要熟悉基础的gdb使用,譬如如何使用gdb查看虚表等,具体可以参考https://github.com/hellogcc/100-gdb-tips/blob/master/src/show-vtbl-content.md
关于内容,可以部分参考我的这个专栏深入理解C++对象模型 内容会比这个专栏更多,也会矫正更多。
很遗憾的是,出版社不让放参考文献在书中,所以后面我会计划把参考文献都放在这里,如果需要也可以看。
碎语
我曾经一直想有机会能从事数据库引擎,编译器或者操作系统相关的岗位。最终我也确实搞到了跟编译器相关的岗位,目前在小米搞虚拟机。接触一个新领域,充满的是好奇和兴奋,当然也有忙碌。没得办法一直更新。
如果你想好了自己未来感兴趣的方向,那就去坚持吧,就算现在没有,未来也许有机会就会实现。
最后,如果你在京东和淘宝等地方买到了这本书,发现了问题,也麻烦反馈给我,批评甚至喷我也都能接受。
祝大家都能享受到学习带来的乐趣,都能有美好的未来!