《软件随想录:Joel谈软件》读书笔记

第一部分 : 人员管理

1 我的第一次BillG审查:

在这个小结里面,作者通过回忆在微软工作的时候,自己设计Excel函数语言的时候被比尔盖茨做例行审查,盖茨在作者提交的规格说明上认真做了笔记,审查的时候问了非常细致的问题,包括一个在之前产品出现的日期函数错误问题。作者通过将比尔盖茨与其他几位不懂技术的大公司高管对比,得出结论。

不懂编程的人管理公司,就好像不懂冲浪的人硬要去冲浪。

我比较赞同作者的这一想法,通过自己为数不多的项目经验,我也能体会到一个内行的leader对一个软件项目的成功起到决定性的作用。假如团队的领导只遵循经济,管理或者其他一些行业的经验,盲目地参与到软件开发的需求获取,设计甚至系统架构过程中,那么这个项目十有八九会遭遇失败。

2 寻找优秀的程序员

3 寻找优秀的程序员之实战指南

这两节中,作者从理论和实践上向管理者传授了如何识别和招揽优秀程序员的方法。有一个观点说得很有道理,优秀的程序员不会出现在各类招聘市场和求职网站上,因为他们在一开始就会早早地从一个较好的实习公司得到机会,不用去找其他工作。如果它们离开了当初的公司,一种情况是创业,一种是跟着老板跳槽到另一家公司。这里我想说,优秀的程序员也可能是因为有很多猎头和一些公司的HR会主动联系他们而不会出现在招聘市场上。那么如何招揽优秀的程序员呢?作者就给出了创建技术社区,去名校招揽实习生作为人才储备,还有就是内部员工推荐,当然最好的方法还是使自己的产品足够有吸引力,无论是在前景或者经济或者技术上。同时在社交、生活等方面,要尊重程序员的成果,给予他们一定程度的自主权。看到这里我想起了马云曾说过的关于人才管理的一句话,员工为什么离职?要么是钱没给到位,要么是心受委屈了。真是切中要害。

在第三节,作者说程序员实际上不在乎钱,当有人在抱怨薪水的时候,说明他不是真正地喜欢现在的工作。这实际上跟我所处的环境的所见所闻有所不同。我所看到的周边的同学,在找工作的时候薪资的因素会考虑比较重的分量。大概是因为国情不同吧,我们这边的习惯是结婚成家必须有房子,有车更好,所以大家在经济上的压力还是比较大的。不过有一个现象是合理的,就是技术越强的人,能够找到自己满意薪资的职位的概率越大,薪水的水平也一般在最高的水平。

4 三种管理方法

5 军事化管理法

6 经济利益驱动法

7 认同法

在人员管理中比较流行的三种方法是军事化管理法、经济利益驱动法和认同法。军事化管理方法绝对不适用于程序员的管理。因为程序工作是创造性的工作,军事化管理需要的是绝对服从和严明的层级关系,这只会抹杀创造力,造成公司的人员僵化,从而极大降低工作效率。经济利益驱动的缺点是他将工作的驱动力从强大的内部驱动转变为相对弱的外部驱动。还有可能使程序员们具有局部利益最大化倾向,从而使他们的目标从优雅高效地实现需求转为考虑如何使得自己获得的酬劳最大化。而认同法,指的是使员工们认同你希望达到的目标。这种方法被认为是管理程序员最好的方法,但是实施起来也比较困难。结合我自己的经历,我非常赞同认同法是管理软件团队最好的方法,但是更同意它是一种实现起来比较困难的方法。可以说在我接触的程序员中,绝大多数都不是说对自己做出的东西有多么的认同。但是我认识的那两三位真正在做自己非常喜欢做的技术和产品的同学,都已经取得了相当的成就。

第二部分 :写给未来程序员的建议:

8 学校只教Java的危险性

作者的观点是,Java这门语言可能很适合工作,但是它的出现给程序员的教育带来负面影响。Java的出现屏蔽了一些类似指针和底层函数等能够区分程序员学习能力和智商能力的语法点,使得优秀的程序员和平庸程序员之间的差异变得不再突出。Java使同学们变得越来越懒。作为一个在学习和工作中主要使用Java语言的码农,我表示虽然很不情愿,但是作者说的对。虽然我们学校不是作者所说的只教Java的学校,但是我们院出来的同学好像都是把Java作为主要语言。仔细回想,我们的C++课,Linux课,我自己确实学得都不太好。希望能在之后的工作中,不怕吃苦,不惧困难,努力提高自己的技术全面性吧。

9 在耶鲁大学的演讲

10 给计算机系学生的建议

这两节中,作者给出了他对计算机类学生的建议。主要是7个方面:

  • 毕业前练好写作;

  • 毕业前学好C语言;

  • 毕业前学好微观经济学;

  • 不要因为枯燥就不选修非计算机专业的课程;

  • 选修有大量编程实践的课程

  • 别担心所有工作都被印度人抢走;

  • 找一份好的暑期实习工作;

对这七条建议,就我自己而言可能就选修大量实践课程稍微符合。相信大家跟我一样,对印度人抢工作的说法比较感兴趣。原来在美帝各个行业都在担心中国和印度会抢他们的饭碗,看来人多力量大在IT领域的宏观观察方面还是靠点谱的。针对这种想法,一是真正优秀的程序员根本不会怕失去工作,二是除了计算机,其他的专业找工作的时候更坑爹,就作者的这两种观点,我无法反驳。

第三部分 :设计的作用

11 字体平滑、反锯齿和次像素渲染

这节的内容是作者通过比较微软和苹果对字体锯齿处理时候的不同思想,得出苹果重视桌面和出版物的设计效果,而微软则更倾向于实用性,但是这两种设计思想都会得到各自用户的认可。然后作者抛出观点:一般情况下,用户在面对模棱两可的选择的时候,会倾向于自己习惯的那种。

12 寸土必争

在开发商业软件的时候,我们应该对每一个细节反复思量,不放过任何能够产生正作用的微小改进。

我觉得就是这样,在产品上,所谓制作精良和粗糙的对比,对比的就是细节。就我们编写代码来说,当你的每个组件,每个函数都考虑算法和效率以及写法的优雅性,那么我们整个项目就不会说搞得很杂乱,很难看。

13 大构想的陷阱

本节是对《梦断代码》一书的评论。作者指出:在软件开发中,如果你头脑提前有了一个整体构想然后马上一头扎入工作去实现,那么久陷入了所谓的“构想陷阱”。一是对自己的构想过于自信,二是没有考虑团队沟通的问题。

其实我觉得就是针对这种陷阱,我们才有了后来软件开发过程中的需求分析,体系结构,模块设计,详细设计等阶段。不过凡事皆须有度吧,由于软件开发的特殊性,有时候我们按部就班地做了这些工作后发现,其实所有阶段的产出都被后续阶段修改的面目全非,那么这些阶段产物的维护管理又是很大的开销。所以,我们又有了敏捷开发的快速迭代模式。具体怎么搞,这个过程究竟是要多大程度上使用传统的软件工程迭代和敏捷开发,感觉还是要根据具体项目和团队成员来确定。

14 别给用户太多选择

“关闭笔记本竟然有15种不同的方法”,这是作者本节对微软vista操作系统的吐槽。

像这种问题,当一个功能的解决方案有很多备选的时候,我觉得正确之道是做一个调查,选出大家最认可的两三种保留,其他的可以一概不要。

15 易用性是不够的

本节旨在说明做好易用性的下一步是做好社会化界面的设计:主要包括界面的协调性、功能可见性、反馈性等。这章感觉没什么新意。

16 用软件搭建社区

程序员由于工作性质,一般比较宅,但是每个人都具有社会性,程序员也会渴望有多一点而的人际交往。于是他们涌向在线社区。我觉得我自己就是这样的,除了微信朋友圈之外,我经常刷知乎,微博,水虎扑论坛等。感觉技术上的社区对程序员之间的交流作用比较大,这里推荐一下v2ex, 程序员专属的交流场所。

第四部分 :管理大型项目

17 火星人的耳机

“Web标准”非常混乱,作者举了IE7和IE8之间冲突的例子。实际上由于这些混乱的标准,现在IE在前端界根本不受待见,几乎稍微现代一点的网页项目都是只需要在chrome和firefox里面运行正常就可以了。

然后作者就举了一个为火星人造耳机的例子来说明开发者面对各种各样不同的“标准”是怎样崩溃的。

18 为什么Microsoft Office的文件格式如此复杂

08年,微软公开了Office文件的二进制格式说明书,光Excel有349页那么多都没说完。然后作者说,要写出能与Office竞争,完美读取和生成所有Office文件的软件,需要几千年的工作量。我觉得金山WPS可能需要传授作者一点人生的经验。可能作者这里说的是一个人开发出所有的Office 办公软件吧。当然,这确实不太现实。

19 要挣钱,就别怕脏

这既是针对软件公司的运营来说的。包括业务推广,招聘各类型的人才,客户量的激增之后带来的各种麻烦。总而言之,创业在当今并不是随便找两个人搞个APP发布了,靠吹吹牛拉点投资就能叫创业那是非常可笑的想法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,392评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 早晨,一束灯光和母亲的一声叫喊把我从睡梦中拉了出来,懵懵懂懂的我就紧赶慢赶的跟着母亲走出了家门。 再见,新...
    天残土豆阅读 128评论 1 4
  • 问题 今天提交代码时,在一次提交,莫名其妙没成功后,再次用git commit -a命令时,出现以下错误,无论是用...
    IBegins阅读 6,516评论 1 1