当前位置: 首页 > news >正文

聊聊自己的新书吧

时光如白驹过隙,离我开始写书转眼已过将近两年,回顾一下,还是有些话想说,就在此絮絮叨叨吧。

年轻人总得有点梦想

我在工作第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++对象模型 内容会比这个专栏更多,也会矫正更多。

很遗憾的是,出版社不让放参考文献在书中,所以后面我会计划把参考文献都放在这里,如果需要也可以看。

碎语

我曾经一直想有机会能从事数据库引擎,编译器或者操作系统相关的岗位。最终我也确实搞到了跟编译器相关的岗位,目前在小米搞虚拟机。接触一个新领域,充满的是好奇和兴奋,当然也有忙碌。没得办法一直更新。

如果你想好了自己未来感兴趣的方向,那就去坚持吧,就算现在没有,未来也许有机会就会实现。

最后,如果你在京东和淘宝等地方买到了这本书,发现了问题,也麻烦反馈给我,批评甚至喷我也都能接受。

祝大家都能享受到学习带来的乐趣,都能有美好的未来!

http://www.dtcms.com/a/283252.html

相关文章:

  • lustre设置用户配额
  • 同态加密赋能大模型医疗文本分析:可验证延迟压缩的融合之道
  • xss-labs靶场前八关
  • C语言基础:循环练习题
  • Linux切换到Jenkins用户解决Jenkins Host key verification failed
  • Electron实现“仅首次运行时创建SQLite数据库”
  • 大语言模型幻觉检测:语义熵揭秘
  • [Mysql] Connector / C++ 使用
  • AutoMQ 正式通过 SOC 2 Type II 认证
  • 尚庭公寓-----day1 业务功能实现
  • 八、DMSP/OLS、NPP/VIIRS等夜间灯光数据能源碳排放空间化——碳排放空间分级、空间自相关
  • PyCharm高效入门指南
  • docker+小皮面板
  • TCP 三次握手与四次挥手笔记
  • 光伏气象数据驱动设计方案优化
  • Spider的用法
  • 搭建云途YTM32B1MD1芯片VSCODE+GCC + Nijia + Cmake+Jlink开发环境
  • Python设计模式深度解析:单例模式(Singleton Pattern)完全指南
  • 深度解析api-ms-win-crt-runtime-l1-1-0.dll:它是什么?为什么重要?如何修复?
  • Spring MVC中@PathVariable的用法详解
  • 【世纪龙】汽车发动机拆装检修仿真教学软件-数字技术重塑教学
  • 汽车数字化——65页大型汽车集团企业IT信息化(管理架构、应用架构、技术架构)战略规划【附全文阅读】
  • 网络安全初级(Python实现sql自动化布尔盲注)
  • Android Git操作
  • 小程序 状态管理 mobx-miniprogram 和 miniprogram-compute
  • 将Android Studio创建的一个apk工程放到Android15源码中构建
  • Prompting Engineer 十大核心设计原则
  • 比特币简介
  • Swift6.0基础知识 -- 可选2
  • 正则表达式梳理