第28期:《编程卓越之道》|已送完

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

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

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

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

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

image

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

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

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

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

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

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

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

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

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

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

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

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

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

直接购买链接:

社区赠书

本次福利将送出《编程卓越之道》卷1:深入理解计算机 * 5本

截止时间:还需要支付积分,就还有赠书额度,先到先得

领取方式

第一步:支付积分购买抽奖资格,复制“ 积分支付订单号 ”

第二步:私信我 积分支付订单号、活动书名、快递信息(姓名、电话、地址)

没有积分怎么办?

社区鼓励高质量的技术交流,所以只要发布有价值内容均可获得积分!

哪些内容算高质量?

1. 高质量的技术分享,原创、翻译、转载均可

2. 高质量的提问与回答,注意阅读《提问的艺术》

3. 分享优质Java与Spring的相关开源项目,板块:https://spring4all.com/forum/55.html

4. 分享优质资源(学习、软件等各种你觉得不错的资源),板块:https://spring4all.com/forum/123.html

5. 分享能够提高效率的软件工具,板块:https://spring4all.com/forum/53.html

另外,内容不错,获得精华贴、或者热门帖还有额外加分哦~

THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容