黑客与画家

文章内容是阅读的摘抄,分享给大家,版权归作者所有。


  • 计算机程序只是文本而已。你选择什么语言,决定了你能说什么话。编程语言就是程序员的思维方式。

  • 行为怪异的人和愤世嫉俗的人比普通人更可能成为黑客。计算机世界就像是智力世界的大西部,在那里没有你不敢想的事情,只要你愿意承担冒险后果。

  • 我真正想要的是,能够设计奇妙的火箭、写出漂亮的文章、理解编程原理。一句话,我想要做伟大的事情。

  • 举例来说,大多数人似乎认为,绘画能力与生俱来,画家就像髙个子一样,是天生的。事实上,大多数“会画”的人,本身就很喜欢画画,将许许多多时间投入其中,这就是为什么他们擅长画画的原因。同样的,受欢迎也不是天生的,而是要你自己做出来的

  • 像所有人一样,成年人不喜欢揪住不放这种令人不快的事实。你不去埋头探寻,就不会发现具体的证据,就会永远以为这件事是抽象的。

  • 真实世界看重的东西。他们与别人不一样,不把所有时间用来玩一种耗尽全力但又亳无意义的游戏

  • 表面上,学校的使命是教育儿童。事实上,学校的真正目的是把儿童都关在同一个地方,以便大人们白天可以腾出手来把事情做完。我对这一点没有意见,在一个高度工业化的社会,对孩子不加管束,让他们四处乱跑,无疑是一场灾难。

  • 那就是我们没有得到真正的工作,没能发挥我们的才能。人类喜欢工作,在世界上大多数地方,你的工作就是你的身份证明。但是,我们那时做的所有事情根本就是无意义的,至少那时看来是这样。

  • 计算机只是一种表达的媒介,就像建筑师手里的混凝土,或者画家手里的颜料。

  • 建筑学和工程学之间的区别并不是很严格的,但就是存在区别。这表现在“做什么”和“怎么做”:建筑师决定做什么,工程师想出怎么做。

  • 创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。

  • 唯一有效的外部考核就是时间。经过岁月的洗礼,优美的东西生存发展的机会更大,丑陋的东西往往会被淘汰。不幸的是,这种考核需要的时间可能比一个人的生命还要长。塞缪尔·约翰逊^说过,人们对一个作家的评价,需要100年才能达成一致^^。你必须先等他的那些有影响力的朋友都死了,然后再等他的追随者都死了,才能对他有一个公正的评价。

  • 可是我的工作方法看上去却像编程就是在调试。

  • 编程语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。它应该是一支铅笔,而不是一支钢笔。如果大家都像学校教的那样编程,那么静态类型(static typing)^是一个不错的槪念。但是,我认识的黑客,没有一个人喜欢用静态类型语言编程。我们需要的是一种可以随意涂抹、擦擦改改的语言,我们不想正襟危坐,把一个盛满各种变量类型的茶杯,小心翼翼放在自己的膝盖上,为了与一丝不苟的编译器大婶交谈,努力地挑选词语,确保变量类型匹配,好让自己显得礼貌又周到。

  • 黑客”的工作就是用软件实现某个功能,而不是设计软件。在那里,程序员被当作技工,职责就是将产品经理的“构想”(如果这个词是这么用的话)翻译成代码。

  • 因为生产特别优秀的产品不是它们的获胜手段。大公司只要做到不太烂,就能赢。

  • 当我说,黑客解决生计问题的方法是找一份“白天工作”,然后在其余时间开发优美的软件,我并没有说这是一个新方法。开源软件界的黑客早就这样做了。我想说的其实是,幵源软件的这种工作模式可能就是正确的模式,因为它已经被其他领域的创作者都验证过了。

  • 应该定期地从头开始,而不要长年累月地在一个项目上不断工作,并且试图把所有的最新想法都以修订版的形式包括进去。

  • 黑客可以通过观看优秀的程序学会编程,不是看它们的执行结果,而是看它们的源代码。

  • 过早优化(premature optimization)是一件危险的事情。我认为,我们应该对“过早设计”(premature design)也抱有同样的担忧,不要太早决定一个程序应该怎么做。

  • 坚持一丝不苟,就能取得优秀的成果。因为那些看不见的细节累加起来,就变得可见了

  • 对于画家和黑客这样的创作者,有些工作需要投入巨大的热情,另一些工作则是不需要很操心的日常琐事。在你厌倦的时候再去做那些比较容易的工作,这是个不错的主意。

  • 就像绘画作品一样,大多数软件是为人类用户准备的。所以,黑客必须像画家一样,时刻考虑到用户的人性需要,这样才能做出伟大的产品。你必须能够站在用户的角度思考问题,也就是说你必须学会“换位思考”。

  • 判断一个人是否具备“换位思考”的能力有一个好方法,那就是看他怎样向没有技术背景的人解释技术问题。我们大概都认识这样一些人,他们在其他方面非

  • 程序写出来是给人看的,附带能在机器上运行。

  • 但真正令人惊恐的是,流行一时的不仅有衣服,还有道德观念。明明是专横武断、毫无依据的错误观点,但是大多数人却深信不疑,受到影响而不自知。这是非常危险的。流行的衣服,其实是很难看的衣服;流行的道德观念,其实不是善而是恶。

  • 让我先问你一个问题:大庭广众之下,你有没有什么观点不愿说出口?如果回答是没有,那么你也许应该停下来想一想了。你的每一个观点都能毫不犹豫地说出口,你自己深深赞同这些观点,并且你也确信肯定会获得别人的赞同,这是否太过于巧合了?一种可能是,也许事情并没有这么巧合,你的观点就是从别人那里听来的,别人告诉你什么,你就相信了什么,你把别人灌输的观点当作了自己的观点。

  • 如果别人告诉你应该相信什么,你就真的相信了,那么你就会和别人一样犯下同样的错误。

  • 有时候,别人会对你说:“要根据社会需要,改造自己的思想(well-adjusted)。”这种说法隐含的意思似乎是,如果你不认同社会,那么肯定是你自己的问题。你同意这种说法吗?事实上,它不仅不对,而且会让历史倒退。如果你真的相信了它,凡是不认同社会之处,你连想都不敢想,马上就放弃自己的观点,那才会真正出问题。

  • 第一个条件是,这些话不能说出口;第二个条件是,它们是正确的,或者看起来很可能正确,值得进一步讨论。

  • 以前时代的标签在今天已经不可避免地失去了杀伤力,最多只能用于讽刺。伹是在以前,它们真的有巨大的威力。

  • 好在不管是哪个年代,分辨这样的标签应该是比较容易的。你只要看看人们怎么称呼那些自己不赞成、但是又不算错的观点就行了。

  • 因为过去与现在之间的变化往往不是因为对错,而是因为社会观念变了。比如,法定结婚年龄的变化。

  • 孩子的大脑就是我们所有“不能说的话”的一面反射镜。我们似乎认定,孩子的思想应当是光明纯洁的。为了保证孩子不受外界“不良”思想的影响,我们对那些思想迸行消毒和屏蔽,把世界描述成光明的样子,向孩子们灌输,将他们的心灵塑造成我们想象中的样子。^

  • 那就是去观察禁忌是如何产生的。某种道德观念到底是怎么出现的,又是怎么被其他人接受的?如果我们能够理解它的产生机制,可能就可以应用于我们自己的时代。

  • 如果有些观点我们不能说出口,原因很可能是某些团体不允许我们说。

  • 我猜想,道德禁忌的最大制造者是那些权力斗争中略占上风的一方。你会发现,这一方有实力推行禁忌,同时又软弱到需要禁忌保护自己的利益。

  • 大多数的斗争,不管它们实际上争的是什么,都会以思想斗争的形式表现出来。16世纪的英国宗教改革(English Reformation)本质上是为了争夺权力和财富

  • 第一批的接受者总是带有很强的抱负心,他们有自觉的精英意识,想把自己与普通人区分开来。当流行趋势确立以后,第二批接受者就加入进来了,人数比上一批庞大得多,恐惧心在背后驱使着他们^。他们接受流行,不是因为想要与众不同,而是因为害怕与众不同。

  • 是因为这是很好的脑力训练。想要做出优秀作品,你需要一个什么问题都能思考的大脑。尤其是那些似乎不应该思考的问题,你的大脑也要养成思考它们的习惯

  • 优秀的决策者根本不应该在乎这些标签,而是直接问自己、它们到底对不对?其实,一个公司是否健康运作,可以用一个指标衡量,那就是对负面评价的容忍程度。做出伟大产品的公司,自我评价往往以“批评”和“自嘲”为主,而不是以“肯定”和“表扬”为主。我认识的杰出成就人士都认为自己做得不好,之所以能成功只是因为其他人做得更差

  • 自由思考比畅所欲言更重要。如果你感到一定要跟那些人辩个明自,绝不咽下这口气,一定要把话说清楚,结果很可能是从此你再也无法自由理性地思考了。我认为这样傲不可取,更好的方法是在思想和言论之间划一条明确的界线。在心里无所不想,但是不一定要说出来。我就鼓励自己在心里默默思考那些最无法无天的想法。你的思想是一个地下组织,绝不要把那里发生的事情一股脑说给外人听

  • 我们心态很开放,愿意接受新思想。”但是实际上,人们脑子里有一根界线,早就认准了什么是对的,什么是错的^。换言之,在他们看来,所有观点都是可以讨论的,除了那些错的观点

  • 如果你发现自己也在用这些标签,那就更要问为什么。你不仅要远距离观察人群,更要远距离观察你自己。顺便提一句,这可不是激进的想法,儿童和成年人的主要差别就在这里。儿童精疲力竭时,可能会大发脾气,因为他不知道为了什么;成年人则会了解是个人的身体状况问题,与外界无关,说一句“没关系,我只是累了”。我想,通过类似的机制,一个人完全可以识别和抵制外界流行的道德观念,把它们与内心世界相分离。

  • 如果你想要清晰地思考,就必须远离人群。但是走得越远,你的处境就会越困难,受到的阻力也会越大,因为你没有迎合社会习俗,而是一步步地与它背道而驰。小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩子脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。

  • 如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。问自己,什么话是我不能说的?为什么?

  • 数据在本质上就是容易复制的。互联网的出现使得复制品更容易流通

  • 普通用户根本没必要知道“操作系统”这个词,更不要说“驱动程序”和“补丁”了。

  • 使用互联网软件,除了软件本身,大多数用户不需要知道别的事情。所有那些乱七八糟、经常变动的东西,都放在服务器端,由精通此道的专业人员维护。所以,大多数时候,你不需要一台全功能的电脑(即本身可以运行软件的电脑)。你所需要的设备只要有键盘、屏幕、浏览器就够了,可能还有无线网卡。这样的设备没准就是指手机。不管它是什么,它肯定是一种消费类电子产品,价格大概在200美元左右,所以人们主要根据外观选择购买。你支付的上网费会超过硬件费用,就好像现在你的电话费超过电话机的价格一样^。

  • 太麻烦,不如死”(death before inconvenience)。大多数人,在大多数时候,总是选择最省事的做法。如果互联网软件能够击败桌面软件,一定是赢在更方便这一优势上。无论从用户的角度还是从开发者的角度来看都是如此。

  • 你的电脑”这个概念正慢慢成为过去时,取而代之的是“你的数据”。你应该可以从任何电脑上获取你的数据。或者更准确地说,在任何终端设备上获取你的数据,终端设备不一定是电脑。

  • 设计桌面软件就像设计一幢大楼,而设计互联网软件就像设计一座城市:

  • Unix系统安全的关键之一就是不运行那些不需要的东西,降低服务器被侵入的可能性。

  • 互联网软件的发布规则是:它运行不了,你就无法发布;一且它能运行了,你就可以立刻发布。

  • 你有没有注意过,坐下来写东西的时候,一半的构思是写作时产生的?软件也是这样。实现某个构思,会带来更多的构思。所以,将一个构思束之高阁,不仅意味着延迟它的实现,还意味着延迟所有在实现过程中激发的构思。事实上,将一个构思束之高阁,甚至会限制新构思的产生。因为你看一眼堆放在一边、还没有实现的构思,就会想“我已经为下一个版本准备了很多新东西要实现了”,你就懒得再思考更多的新功能了。

  • 大部分代码都有明确的负责人,而且只有一个。如果你负责某件事,那就真的是你负责。除了你以外,没有人能批准(他们甚至都不知道)这部分代码的发布。如果你出错了,没有人会提醒你,唯一的代码保护机制就是你的羞耻心,你不想被同事当成傻瓜,这就足矣。我这么说或许会让人误以为Viaweb的代码是漫不经心地编写出来的。实际上我们的开发进度很快,但是把代码放到服务器上发布之前,我们会深思熟虑。提高软件可靠性的关键在于开发时全神贯注,而不是降低开发速度

  • 它适用于小型的、由优秀可靠程序员组成的开发团队,不适用于大型的、充斥大量平庸之辈的软件公司,在那里不是程序员想出好的构思,而是一个委员会集体批准坏的构思。

  • 因为软件项目是交互关系复杂的工作,需要大量的沟通成本,人力的增加会使沟通成本急剧上升,反而无法达到缩短工期的目的。在本质上,软件项目的人力与工期是无法互换的,当项目进度落后时,光靠增加人力到该项目中,并不会加快进度,反而有可能使进度更加延后。(

  • 人数越来越多,开会讨论各个部分如何协同工作所需的时间越来越长,无法预见的互相影响越多越大,产生的bug也越多越多。幸运的是,这个过程的逆向也成立:人数越来越少,软件开发的效率将指数式增长。我不记得我们在Viaweb开过讨论如何编程的会议。步行去吃午饭的路上,我们就能把该说的话说完,从来没有例外。

  • 不要在半夜里发布代码,然后回家睡觉

  • 软件应该做到用户认为它可以做到的事情。但是,你不知道用户到底怎么想,除非你亲眼看到他们如何使用你的软件,相信我,看到和看不到大不相同。互联网软件能够让你前所未有地了解用户行为。你不必再人为挑选一个小型的用户样本,进行重点观察。每个用户的每一次点击你都可以看到。所以,你不得不仔细斟酌到底要看哪些行为,因为你不应该侵犯用户的隐私。但是,即使是最常见的统计项目,也能提供大量信息。

  • 通过关注用户,你可以知道他们在使用软件的过程中什么时候遇到了麻烦。因为顾客总是对的,所以这表明你需要修正软件。

  • 没有盗版是一种“优势”,但也是一个问题。一定数量的盗版对软件公司是有好处的。不管你的软件定价多少,有些用户永远都不会购买。如果这样的用户使用盗版,你并没有任何损失。事实上,你反而赚到了,因为你的软件现在多了一个用户,市场影响力就更大了一些,而这个用户可能毕业以后就会出钱购买你的软件。

  • 有钱的客户倾向于更贵的选择,即使便宜的选择更符合他们的需要,他们也不会买。这种现象普遍存在。

  • 开发互联网软件的创业公司会把与创业有关的每一件事做到极致。只用更少的人、更少的钱,就可以把软件写出来,并且开始运作。你必须打破常规、快速行动,循规蹈矩不可能成功。你完全能够在只有三个人的情况下让产品开始运营,你们唯一的办公场所就是一间公寓,里面放着一台连着ISP的服务器。我们就是这样做的。

  • 互联网软件要求的那种工作强度和付出,只有当公司是其本人所有时,程序员才愿意提供。软件公司可以雇到能干的人,让他们去干轻松的事情,也可以雇到不能干的人,让他们去干艰苦的事情,但是无法雇到非常能干的人,让他们去干非常艰苦的事情。因为互联网软件的创业不需要太多的资本,所以大公司可以与创业公司竞争的优势就所剩无几了。

  • 首先,管理企业其实很简单,只要记住两点就可以了:做出用户喜欢的产品,保证开支小于收入。只要做到这两点,你就会超过大多数创业公司。随着事业的发展,你自己就能琢磨出来其他的诀窍。

  • 只有懂得设计的黑客,才能设计软件,不能交给对软件一知半解的设计师。如果你不打算自己动手设计和开发,那就不要创业

  • 创业公司其实就是解决了某个技术难题的小公司。

  • 比尔·盖茨,因为名人不适合用来举例子,媒体只报道那些最有钱的人,而他们往往属于特例。比尔·盖茨很聪明,有决断力,工作也很勤奋,但是单单这样还不足以让你成为他。你还需要非同一般的好运气。

  • 通过创造有价值的东西而致富,这种方法的优势不仅仅在于它是合法的(许多其他方法如今都是不合法的),还在于它更简单。你只需要做出别人需要的东西就可以了。

  • 金钱不是财富,而只是我们用来转移财富所有权的东西。

  • 一个优秀程序员连续工作几个星期可能可以创造价值100万美元的财富。同样的时间内,一个平庸的程序员不仅无法创造财富,甚至还可能减少财富(比如引入了bug)

  • 我们这个世界,你向下沉沦或者向上奋进都取决于你自己,不能把原因推给外界。

  • 最顶尖的5%的程序员写出了全世界99%的优秀软件。

  • 公司一切行为的目的都是盈利,从而生存下去。创造财富是大多数公司盈利的手段。

  • 财富就意味着人们需要的东西,那么把商品送到顾客手中也是人们需要的。许许多多不生产物质商品的公司都是在如此创造财富。几乎所有情况下,公司的存在目的就是满足人们的某种需要。

  • 公司不过是一群人在一起工作,共同做出某种人们需要的东西。真正重要的是做出人们需要的东西,而不是加入某个公司^。

  • 工作就是在一个组织中,与许多人共同合作,做出某种人们需要的东西。

  • 要致富,你需要两样东西:可测量性和可放大性。

  • 麦当劳其实也符合“一次开发,普遍适用”的模式。沃尔玛也是如此,它的创始人Sam Walton并不是因为经营零售业而致富,而是因为设计出了一种新型商店。

  • 那些问题连我们都觉得这么困难,那么竞争对手就更会认为是不可能解决的

  • 俗话说得好,最好的防御就是进攻。如果你开发出来的技术是竞争对手难于复制的,

  • 但创业是有一些潜规则的,其中一条就是很多事情由不得你

  • 真正创业以后,你的竞争对手决定了你到底要有多辛苦,而他们做出的决定都是一样的:你能吃多少苦,我们就能吃多少苦。

  • 创业的付出与回报虽然总体上是成比例的,但是在个体上是不成比例的

  • 创业公司不像能经受打击的黑熊,也不像有盔甲保护的螃蟹,而是像蚊子一样,不带有任何防御,就是为了达到一个目的而活着。蚊子唯一的防御就是,作为一个物种,它们的数量极多,但是作为个体,却极难生存。

  • 他们宁愿花大钱做更安全的选择,所以向他们出售一家已经成功的创业公司要比出售还处在早期阶段的创业公司更容易,即使会让他们付出多得多的价码。

  • 潜在的买家会尽可能地拖延收购。收购这件事最难的地方就是让买方真正拿出钱。大多数时候,促成买方掏钱的最好办法不是让买家看到有获利的可能,而是让他们感到失去机会的恐惧。对于买家来说,最强的收购动机就是看到竞争对手可能收购你。我们发现这会使得CEO们连夜行动。次强的动机则是让他们担心如果现在不买你,你的高速成长将使得未来的收购耗资巨大,甚至你本身可能变成一个他们的竞争对手。

  • 自由竞争的市场经济中,价格由买家的需求决定。如果人们喜欢棒球甚于喜欢诗歌,那么棒球运动员的收入就是要比诗人的收入高。如果说某种工作的报酬过低,那就相当于说人们的需求不正确。当然,人们确实会需求不正确的东西

  • 他想要的学生不仅应该技术过硬,还应当能够使用技术做出优美的产品。

  • 喜欢一件东西,却不知道为什么自己喜欢它,原因可能是这件东西是美的,但也可能因为他们的母亲也拥有同样的东西,或者杂志上某个明星使用它,或者仅仅因为它的价格很昂贵。人类的思想就是没有经过整理的无数杂念的混合。

  • 把品味说成个人的偏好可以有效地杜绝争论,防止人们争执哪一种品味更好。但是问题是,这种说法是不正确的。只要你自己开始动手设计东西,就能明白这一点。

  • 如果品味只是一种个人偏好,那么每个人都是完美无缺的:你喜欢自己看上的东西,那就足够了。

  • 至少在心里对自己说,确实存在比其他设计更好的杰出设计,那么你就能开始仔细研究了。你的品味是如何变化的?什么原因使你做出不好的设计?其他人对设计是什么观点?

  • 好设计是简单的设计。

  • 简单就是事物本来的样子,装饰反而意味着更多的工作。

  • 当你被迫把东西做得很简单时,你就被迫直接面对真正的问题。当你不能用表面的装饰交差时,你就不得不做好真正的本质部分

  • 好设计是永不过时的设计。

  • 如果你不愿别人的答案取代你的答案,你就只好自己做出最佳答案

  • 好设计是解决主要问题的设计。

  • 好设计是启发性的设计。

  • 好设计通常是有点趣味性的设计

  • 好设计是艰苦的设计。

  • 好设计是看似容易的设计。

  • 在大多数领域,看上去容易的事情,背后都需要大量的练习。练习的作用也许是训练你把刻意为之的事情变成一种自觉的行为。有时,我们的训练只是为了让身体养成下意识的反应。优秀钢琴家弹奏名曲可以不经过大脑直接完成,艺术家也是这样,熟练以后,脑海中的艺术形象会自动从手上流淌出来,仿佛有人在一旁为他打节奏一

  • 好设计是对称的设计。

  • 好设计是模仿大自然的设计

  • 好设计是一种再设计。很少有人一次就把事情做对。专家的做法是先完成一个早期原型,然后提出修改计划,最后把早期原型扔掉。

  • 好设计是能够复制的设计。

  • 如果你不知道自己的想法从何而来,那么你可能就是在模仿另一个模仿者。

  • 好设计常常是奇特的设计

  • 唯一达到“奇特”的方法,就是追求做出好作品,完成之后再回过头看

  • 好设计是成批出现的。

  • 在历史的任何时刻都有一些热点项目,一些团体在这些项目上做出伟大的成绩。如果你远离这些中心,几乎不可能单靠自己就取得伟大成果

  • 好设计常常是大胆的设计。

  • 你用什么语言并不重要,重要的是你对问题是否有正确的理解。代码以外的东西才是关键。”

  • a)对技术一无所知;(b)对技术有强烈的个人观点

  • 假设你需要写一个软件。你的经理根本不懂这个软件的运作机制,也不知道各种编程语言有什么区别。但是,他竟然明确要求你一定要使用某一种语言进行开发。没错,他就是要求你一定要用Java语言。

  • 到目前为止,大家公认少于10个人的团队最适合开发软件。

  • 让用户感到满意才是你的设计方向。只要赢得用户,其他事情就会接踵而来。如果没有用户,谁会关心你选择的“正统”技术是多么令人放心。

  • 总的来说,你的经理其实不关心公司是否真的能获得成功,他真正关心的是不承担决策失败的责任。所以对他个人来说,最安全的做法就是跟随大多数人的选择

  • 编程语言不是数学定理,而是一种工具,为了便于使用,它们才被设计出来。

  • 即使不考虑语言本身的优秀是否能带动流行,我想单单流行本身就肯定会使得这种语言变得更好,只有流行才会让它保持优秀。

  • 还有一个因素比简洁更重要,那就是这种语言必须能够帮助自己做到想做的事。

  • 梦幻般的编程语言不仅开放源码,更开放自身的设计。

  • 设计与研究的区别看来就在于,前者追求“好”(good),后者追求“新”(new)。优秀的设计不一定很“新”,但必须是“好”的;优秀的研究不一定很“好”,但必须是“新”的。我认为这两条道路最后会发生交叉:只有应用“新”的创意和理论,才会诞生超越前人的最佳设计;只有解决那些值得解决的难题(也就是“好”的难题),才会诞生最佳研究。

  • 最大的不同在于你会更多地考虑用户。设计的时候,一开始总是问:我为谁设计?他们需要什么?比如,优秀的建筑师不会先设计,然后强迫用户接受,而是先研究最终用户的需求,然后做出用户需要的设计

  • 用户需要的设计”,而不是“用户要求的设计”。我不想让读者产生一种印象,认为设计师就像厨师一样,顾客点什么菜就一模一样做出来。艺术的各个领域有着巨大的差别,但是我觉得任何一个领域的最佳作品都不可能由对用户言听计从的人做出来

  • 让用户满意并不等于迎合用户的一切要求。用户不了解所有可能的选择,也经常弄错自己真正想要的东西。做一个好的设计师就像做一个好医生一样。你不能头痛医头,脚痛医脚。病人告诉你症状,你必须找出他生病的真正原因,然后针对病因进行治疗。

  • 大多数优秀设计都是这样产生的,它们关注用户,并且以用户为中心


多看笔记 来自多看阅读 for Kindle

2014-06-27 13:17:53

2014-08-05 21:5115黑客与画家