高效能程序员的修炼——读书笔记

作者Jeff Atwood是stack overflow的创始人,这本书是Jeff Atwood的博客精选。

读这本书的的原因:

目前在写博士论文的时候,编程仿真部分遇到了很大的麻烦,许多想法要么实现不了,要么需要费很长时间去调试程序,处理bug。故而萌生念头想要找到方法来提高自己的编程能力。我需要的不是编程的技术手册,而是从源头去提高对编程的认识。

大概用了不到一天的时间翻完这本书。

第一章

首先要想清楚自己为什么要编程,放眼世界,还有其他很多事情值得去学习,在学习编程之前,要问自己WHY,作者说,

生命中最困难的,是想清楚你真正想要做的事情,而不是学上一堆假设将来会有用的东西。

掌握学习任何事物的能力是件好事,但如果觉得任何事情都值得去学就大错特错了,我现在总是觉得自己掉入了自己铺设的陷阱里,觉得很多知识都需要在找工作之前学会,但其实不然。

作者还提到,

跟钱打交道的人往往会挣很多钱

当然,如果把劳动-变现的过程看做一条链,其他工种还面临产品到钱的变现过程,而金融业是直接从产品(钱)中截走一部分。

作者认为,杰出的程序员不在于写代码,而在于能不能把自己的想法表达清楚。

为此,他提出了建议:开始写博客,锻炼自己的写作能力。这也是他创立stack overflow的原因。

第二章

这一章作者提供了一些如何成为更好程序员的哲学:

磨刀不误砍柴工

迭代的速度胜过迭代的质量

只有又快又好的决定,而没有又慢又好的决定

作者提到了多任务,在当下的社会,人人都在多任务,看电视的同时玩手机,在工作中,也很容易被手机、邮件、会议等打扰而不得不被动的多任务。

绝大多数一心多用的人都完全意识不到他们做的有多糟糕。

这句话很像是对我说的,因为我一天坐在这里不停的手机电脑切换,效率不高,而且很累。

第三章

这一章讲的是高效编程的原则,对我有用的一些原则是:

学会读源代码

因为要严重地依赖networkx包,一旦包里没有我想要的函数,我就抓瞎了。其实这个包是开源的,很多如网络生成的算法都在源代码里,我稍加改动就可以用。

向橡皮鸭求助

这个方法本质是,如果你要问别人问题,你就要详细的正确的描述你的问题,很多时候你的思维就会打通,自己找到答案。我提的问题需要包含足够多的细节,还要说明为什么需要知道答案。

构建项目远景

需要时不时跳出细节,要清楚自己做的工作是什么,就必须构建远景,作者提出了一种叫做“设计产品包装盒”的远景构建方法。对我来说,一篇科研论文就像一个产品,评审人和编辑就是客户,怎么样抓住他们的眼球,清晰的表达我工作的内容、意义,需要构建这样一个项目远景。

第四章

这一章主要讲了如何招聘程序员,对我来说也非常有用,让我从招聘方的角度去思考。坦率的说,我觉得我没什么产品,代码也写的不好,沟通能力也差,需要改进的地方还很多。关于如何应聘是后续要深入思考的议题。

在任何特定的技术领域工作过6-12个月之后,你要么是精通了,要么就一直这样混下去了。

第五章

关于团队协作的,快速略过。

第六章

介绍提升程序员工作效率的硬件,如大屏显示器、人体工学椅等。

第七章

关于用户界面

第八章

关于数据安全

第九章

关于代码测试

第十章

关于网络社区(因为作者是stack overflow的创始人)

第十一章

关于网络广告和软件定价

第十二章

最难的是,要搞明白你没日没夜地拼命工作到底是为了什么。

这部分谈到了幸福,一个哲学问题,不光是针对程序员的,也是针对其他行业人的。

作者提到了一篇论文

if money doesn't make you happy, you probably aren't spending it right

以及一本书 stumbling on happiness (哈佛幸福课)

总结了8点幸福的真谛:

1、经历胜过物质

2、助人为乐

3、让幸福细水长流(这点我也发现了,不要一次性买很多,要一点一点的买)

4、少买保险

5、为将来买单

6、三思而后行

7、小心比较购物的陷阱

8、随大流(不要高估自己的能力)

作者推荐了两部纪录片,描述了2000年的互联网泡沫的破碎。

startup.com

code rush

最后一句:

临终前,乔布斯对他在工作上倾注的毕生精力后悔了吗?

你可能感兴趣的:(高效能程序员的修炼——读书笔记)