A Journal Through My Activities, Thoughts, and Notes
“我们取得的成就并不全是我们打算做的事情。”市场千变万化,事物经常会出乎预料,有时候人们以我们从未想到的方式使用我们的产品,甚至意想不到的用户群——我们从未想到他们会成为我们的客户。计划本身并不重要,但随计划过程而来的思考过程非常重要。很明显,不思考的人怎会有想法?
无论你的想法是什么,你都必须为实现它干得比别人多——你把工作看成一种乐趣,你就会有更多乐趣。你干得多,得到奖励,得到奖励就干得更多,良性循环。我永远热爱我的工作,我在工作上投入大量的时间,这有助于我的成功。
我为那些不喜欢工作的人感到惋惜:他们在工作中挣扎,一点也不快活,业绩当然也差,恶性循环……
短短的一生有太多令人愉快的事情,不每天早起根本干不过来。——布隆伯格自述《信息就是信息》#书摘
#书摘 任何一门艺术,即便是非主流的艺术,如果你想在那个领域出类拔萃,就必须全心投入。
设计人员必须研究如何把软件设计集成到整个软件开发过程中,集成到程序员、系统
结构设计师和技术管理团队的实际现场条件中。

一般来说,项目的编程和设计活动必须密切关联。在实现设计的过程中,会出现新的信息,在很多情况下这些信息会改变原来的设计。如果设计和实现都是封闭的,则会变成一场灾难,因为不能实施细化和变更过程。
设计和实现密切关联这种事实并不意味着两者是一样的,即使两种任务有时由同一个人完成。编写代码的技术要求常常要程序员如此投入,以至于程序员会看不到影响产品设计的更大问题。#书摘
很多认为自己是干软件设计的人恰恰缺少有效参与总体过程的技术基础。很自然,程序员很快就会失去对不能理解基本技术问题的人的尊敬。对这个问题的答案不是把设计人员排除在总体过程之外,而是要确保他们掌握技术基础知识,以便能够与程序员进行真正的沟通。

为学生设计人员设计的技术课程应该涉及计算机程序构建的原则和方法,包括计算机系统体系结构、微处理器体系结构、操作系统、网络通信、数据结构与算法、数据库、分布式计算、程序设计环境和面向对象的开发方法论。

设计人员必须具备至少一种现代程序设计语言(C或Pascal)的坚实的实用知识,此外
还要接触过很多不同的语言和工具,包括Forth和Lisp。(这本书真是够老,那会儿估计Java都还没有诞生)#书摘 《软件设计的艺术》
什么是设计?什么构成设计要解决的问题?设计就是脚踏两个世界,即技术的世界和
人及其意愿的世界,设计人员努力要做的是把两者结合到一起。

我们来看一个例子。
建筑师(不是建筑工程师)是一种专门职业,全面负责建筑的修建。建筑与工程作为学科是相互对等的,但是在实际设计和修建建筑的过程中,工程师要接受建筑师的指示。

工程师在这个过程中要发挥至关重要的作用,但是他们要服从建筑师所确定的建筑设计的基本要求。

当人们想要设计一所房子时,首先要找建筑师,不是工程师。为什么?因为成为好建筑的要素在很大程度上不是工程所要解决的问题。人们要求卧室安静以便能够睡个好觉,要求餐厅靠近厨房。餐厅靠近厨房这个事实首先来自知识,来自厨房的用途是准备食品,餐厅用于消费食品。其次,有相关用途的房间在空间上应该靠近。这不是一种事实,也不是技术问题,这是一种设计智慧。#书摘
设计是在生命周期特定阶段发生的事情,还是分布在所有阶段?Brooks:它集中发生在迭代开发的前面几次迭代过程,有时也发生在所有过程中。在第一次迭代中,总体架构是中心问题,接下来设计多集中于更细节的层面,除非人们意识到需求已改变或者发现了新的机会。#书摘 《设计原本》
#书摘 人类擅长辨认,不擅长回忆。
#书摘 只有规则恰当时,人们才遵守他们。脱离实际的规则还不如墙上的一幅风景画。
#书摘 想说“让我们想想”的时候,就把它换成“让我们决定”。是的,做决定。不要去等完美的方案,决定,然后去做。
设计就是把如何控制表达清楚。#书摘
爱是一种与他人相处的法则——对个体充分尊重,把他们的需要放在首位,而不图回报。爱是我们创造的容纳空间,为了让被爱的人的潜能得到充分发展。

爱是带着感情的理解,是带着理解去感觉事物的能力。它既不是未经悟性引导的盲目情绪,也不是冷冰冰的理性逻辑。正如列奥纳多•达•芬奇所说:“伟大的爱出自伟大的理解。”

真正的爱是利他的,绝对不会是自私的。#书摘
孩子通过观察我们来学习,我们的形象帮助(或阻碍)他们成为他自己。--鲁道夫・斯坦纳 #书摘
你的孩子不是你的孩子/他们是渴望生命自身的儿女/他们经过你来到这世上而不是从你而来/尽管他们和你在一起,但不属于你/给予你的爱,但不是你的思想/因为他们有自己的思想 --摘自纪伯伦《先知》#书摘
宏大建筑中最细小的部分,如关不紧的门﹑有点不平的地板,甚至是凌乱的桌面,都会将整个大局的魅力毁灭殆尽。--Coplien #书摘
我认为他的动力并非是“计算机”,也绝不是名声和财富,而是诚实的好奇心和征服困难的愿望,他总是想出最好的办法解决问题,他绝不后退。--安娜(Linus的妈妈)#书摘
Joel 给计算机专业学生的忠告:

1. 毕业前练好写作。
2. 毕业前学好 C 语言。
3. 毕业前学好微观经济学。
4. 不要因为害怕枯燥就不去选修非计算机专业课程。
5. 选修有大量编程实践的课程。
6. 找一份好的暑期实习工作。

#书摘
负责干活的人总是比不做具体事情的领导掌握更多的信息,所以其实他们才是做决策的最佳人选。因此,要努力让争执有结果,而不是让那个不懂的家伙去做一个大家可能都不满意的决策。更糟糕的是,那个决策很难被推翻。#书摘
优秀的人才很少,而且从不出现在招聘市场上。可靠的,称职的人比优秀的人多,但仍然远少于那些不称职的人。靠招聘找到合适的人确实很不容易。#书摘
#书摘
一个婴儿是怎么知道这个星球上的物理规律的?他怎么知道物体会下坠?他怎么知道上、下、左、右有什么区别?
回答这一系列有意思的问题,要从1996年《科学》(Science)杂志上的一篇具有划时代意义的论文讲起。扎弗兰(Saffran)、阿斯林(Aslin)和纽波特(Newport)三位科学家发现,婴儿切分语言词汇,用的是概率统计的方法,也就是从外界寻找声音的规律。
#书摘 当无人质疑管理者的决定时,他们就失去控制了。如果团队不再质疑权威的决定,管理者就会慢慢相信自己的决定永远正确。虽然永远正确的感觉很爽,但事实上人不可能永远正确,不论他是谁。

所以,我们要鼓励团队成员说不。这样才能迫使管理者停下来思考。《软件人才管理的艺术》
 
 
Back to Top