写点什么

程序员之间拉开差距最大的因素

  • 2023-05-15
    北京
  • 本文字数:1147 字

    阅读完需:约 4 分钟

本文为小红花技术领袖俱乐部创始人赖勇浩为《编程卓越之道》(卷 1)所作序言。


拿到新一版《编程卓越之道》的第一卷《深入理解计算机》的稿子,心里非常感慨:上次读这本书,已经是 16 年前,还留下了幼稚的读后感:

https://blog.csdn.net/gzlaiyonghao/article/details/766912

如今回头看书稿和自己当年的文字,汇编语言以及 WebAssembly 等底层技术的新面貌再度翻红,而程序员的基本功仍然是与同行拉开距离的最大因素,花时间与精力深入理解计算机还是回报率最高的“投资”。

以此来看,2006 年我在博客上留下的印记仍然有适用性,仍然值得新的读者参考。

本书是《编程卓越之道》(英文名:Write Great Code)四卷本中文版的第一卷。



这本书是好书,作者 Randall Hyde 对计算机系统的深入理解跃然纸上,从数值在计算机中的表示到二进制算术和位运算从浮点数表示到字符表示及字符串组织,从内存的组织与访问到 CPU 体系结构,从指令集到输入/输出,娓娓道来,它们的优缺点和瓶颈了然于胸。

作者并没有教你优化的方法,而是告诉你哪里会有陷阱。

记得《C++编程规范》里有一条规范是避免代码劣化,这本书全书都在印证这一说法——如果你没有能力优化,起码要保持它没有被劣化。

参加过一些代码评审,有时候会看到一两段代码写得比较耗 CPU 和内存,比如在局面重置时全部生成新的对象,或者在条件判断时把不太可能发生的情况放在前面。

当评审人指出问题时,听到的最多的辩解是:“嗯,这里是有问题,因为项目刚开始,代码不成熟,我们打算在正式版(下一版)优化它。”

但我想说的是:“你不是在做优化,只是把劣化的代码改正过来而已。”

同样是来自《C++编程规范》,有一句话说得很好:优化应该在代码稳定成熟了之后再做,防止劣化却要时刻进行(大意如此)。

阅读本书能使你大大减少踩入劣化的陷阱。

作为以编写卓越代码为目标的程序员,精读《编程卓越之道》的意义绝不止于加固基础那么简单,我更大的感触是它让我认识到基础的重要性。

从小学到大学,胸无大志的我耍着几分小聪明就轻松过关。而正是这当年引以为傲的小聪明,让我不重视基础,以为生活和工作也会像考试一样逃不出自己的聪明脑袋。大学毕业校招进了网易游戏部门,身边高手如云,想奋起直追时才知道自己下盘不稳、根基不牢。

因为自己害怕离开自己熟悉的语言和平台不能让自己发挥小聪明,让人识破自己是只纸糊的“老虎”,心魔成了追求进步的最大障碍。直到工作了很久之后,才有胆量卸下“偶像包袱”,给自己从底层重修的胆量,慢慢走上自我修身之路。而《编程卓越之道》是很好的“修”技术之“身”的书,我打算四卷全读。

读完第一卷,我的感想是,做大事要有做大事的策略,但天下大事必作于细,没有坚实的基础知识,是没有掌控大事的能力的。

所以,要放好心态,给自己慢慢来的胆量,一步一步来,从底层重修。



编程卓越之道1二维码 (1).png


快快扫码抢购吧!







复制代码


用户头像

还未添加个人签名 2019-10-21 加入

还未添加个人简介

评论

发布
暂无评论
程序员之间拉开差距最大的因素_博文视点Broadview_InfoQ写作社区