我编程,我快乐

 

2014-10-27

    1. 给自己做一份蓝图
    • 尽管学些不同的技术是绝对正确的——这会拓宽你的思路,但是,想想你的技能包会向自己展示什么样的前途,这个想法也不错。
    • 不要忽视感觉扮演理想主义者的角色非常自在,你可以假装不在乎别人怎么看你,但,那是在游戏中,而你绝不能信以为真。你应该在乎别人的看法
    • 世界不会因我没有完成工作而停滞不前,我讨厌这种感觉,这让我觉得我的存在毫无意义。如果你想变得卓越出众,就必须相信你所做的事情正在推动整个世界的发展。
    • 当我们开始职业生涯的时候,出发点并不是追求卓越的人生。大部分人都会受媒体、以及朋友、熟人和家人的影响,随波逐流,降低了对自己的期望。所以,虽然追求卓越的人生是理所当然的,但却又不是显而易见的,你必须要去发掘它。
    • 比起那些枯燥的简单任务,充满挑战、有驱动力、有回报的工作更能让你有动力在清晨从温暖的被窝里爬起来。工作做得好意味着你在充分发挥着才能。
    • 我们最终的目标是追求快乐。一旦满足生存的基本需求,人们就会转而去追求快乐。然而,我们的行动往往与此目标相悖。这是因为人们往往纠缠于做某事的方法,而忘记了最终的目的。 #生存
    • 当我们以追求快乐为核心目标,并且以此作为首要的推动手段时,那在追求目标的过程中,就会更正确地做出每一步的选择。更高的薪水或许是值得追求的,或许能带给你快乐。但是如果你把目光放远一些,你就会发现自己为了追求更高的薪水,或许就会失去了快乐。 #目标
    • 但是,请不要忘记,这些都不是最终目标,它们只是实现最终目标的方法。
    • 就像在赛跑中,你要总想着怎么不输,那肯定不会赢得比赛。同样,总想着怎么避免糟糕地活着,那你也不可能成为生活中的赢家。任何人都不应该时刻想着如何避免失败。
    • 而是因为一个渴望成功的人肯定要比那些只是单纯完成工作的人更有可能成功。即使我们不能成为 Martin Fowler、Linus Torvalds 那样的人,但确定高目标至少可以让我们不再平凡。
    • 很多人总是忽略自己的计划,一味地跟随别人的计划。为了有别于他人,你应该停下来仔细审视自己的职业。不要去跟在别人的计划后面跑,你应该按着自己的计划发展。
    • 做生意可不是说让我们每天有个地方去,有事干;做生意的目的就是盈利。要想在公司中成为佼佼者,就必须要懂得如何将自己融入这门生意,然后创造利润。
    • 如果你想站稳脚跟,必须要深入了解你所处的领域。
    • 或许你只是一个程序员,但是如果你能用客户所处行业的专业语言与他们交流,那这就是一项非常重要的技能。
    • (2) 选择一本与你公司行业有关的杂志。你甚至都不用买,大多数公司都有些过期的行业杂志。试着阅读它们,虽然有些东西你可能不懂,但是要坚持。列出你可以向客户询问的问题。不要担心你的问题很傻,客户会大为赞赏你的这种学习态度。
    • 找一个你可以随时登录的行业网站。无论是浏览网站时,还是阅读杂志时,注意大事件和专题文章。你所处的行业正在为什么而努力?现在的热门是什么?不管是什么,把它们介绍给你的客户。请他们说说观点看法。思考这些潮流是如何影响你的公司、你的部门、你的团队,以及你自己的工作的。
    • 爵士乐的传奇人物,爵士乐吉他手 Pat Metheny 给年轻音乐演奏者提出了一条建议——“做乐队中最差的乐手。” #宁为凤尾,不为鸡首
    • 我希望这是因为我自身具有某种超能力——站在一个天才旁边,就能拥有他的能力。但回想起来也没这么神奇,这好像就是出于一种本能。就好像如果我周围的人说话方式与我不一样,那我就会自然而然地受他们影响,说话时使用他们的词汇或者语法习惯。
    • 所以我认识到人们会取得很大的进步或者退步,仅仅是因为与他们合作的人不同了。与一个团队合作的时间长了,会对自身的能力产生持久的影响。
    • 试图做一个团队里最差的人可以让你不再小看自己。可能你的能力应该是在甲等乐团演出,但你自己却认为自己属于乙等乐团,这都是因为你恐惧。清楚地知道自己不是最好的,就不会总担心被人发现你不是那么优秀。事实上,即使你在尝试做那个最差的,也并不意味着你就是最差的。
    • 这种不同的经验使我们对候选人的期待值不一样,Smalltalk 环境的动态特征赋予 Java 程序员在处理问题时一种新的思维的方式。
    • 优秀的程序员之所以寻找变化和多样性的工作,是因为他们喜欢学习新东西,或者是因为他们很清楚要想成为更加成熟、更加全面的程序员,就必须去学习新的技术、在新的环境下工作,获取新的经验。
    • 与其千方百计地想要进入我的候选人范围,不如把精力放在学习以前没有使用过的技术上。
    • 要彻底改变你的思维方式来学习新的语言。
    • 想着如何避免失败绝对不是取得成功的方法!**成功是要冒险的。**胜利者想的是他们想要做什么,而不是其他人会怎么做。**出于担心的职业规划不会让你走向成功,而是会局限你的发展。**没错,这条路很安全,但毫无乐趣而言。
    • 如果工作没有乐趣,那我们就没有动力去做好它。 #工作 #乐趣
    • 我看到了以前从来没有见过的领域,我开始应对更难的问题,我得到的回报比以往任何时候都多。刚开始我确实有点害怕,但是当我改变了出于担心的保守职业规划后,我的事业和我的生活都变得更加美好了。
    • 在职业道路上,需要一些有目的性的冒险。别让恐惧征服了你。如果在工作中没有感到乐趣,那你就不可能出色地工作。
    • 最后,就像印第安纳琼斯永远不会放弃寻找圣杯的机会一样,就算另一个选择再稳妥,对于我真正热爱的事业,我也绝不会放弃。等我老了,驾鹤西游之前,回想过去我希望我会说“上帝,这辈子真是险象环生啊!”而不是“嗯,这辈子过得还算稳稳当当。”
    • 成为通才就是说让你不要只专注于一种技术。
    • 为了使成为通才这个概念形象化,我们可以把 IT 职业分解成几个独立的部分。我想到了五个,但肯定还有更多,就看你是如何划分了: 职业阶梯的各层 平台和操作系统 代码和数据 系统和应用 业务和 IT
    • 首先,你可以选择成为一名团队负责人、经理、技术人员,或者一名架构师、程序员、测试员。很多人都不明白能够适应和胜任不同角色的价值所在。
    • 你的技术水平应该超越技术平台。 Your skills should transcend technology platforms.
    • 任何人都有自己喜欢的技术,但是我们不能太理想化,自己喜欢什么就做什么并不实际。现状是我们要成为某一项技术的专家,同时还应该再擅长几种别的技术。技术平台只是一种工具,你的技术必须要高于它。
    • 这个人想要把自己的职业道路建立在一门特定的技术上,这门技术是由一家特定的公司创造,而他自己又不是这家公司的雇员。这家公司要是停业了呢?如果这家公司现在热门的技术有一天过时了呢?为什么要把自己的职业发展完全依赖于一家技术公司呢?
    • 如果你想在工作中做出成绩,就必须对工作充满激情;如果你不在乎这份工作,那后果也会显现出来。
    • 但是老子没有提到如果这个人不想学习怎么钓鱼,第二天又向你要另一条鱼怎么办。有老师也要有学生才能构成教育,但是大部分人都不愿意成为学生。
    • 要主动问,不要等着别人来告诉你! Don’t wait to be told.Ask!
    • 它是一个过程,一个你使用某种工具、某种技术的某一个方面,或者获取你工作领域的某一特定信息的过程,它是如何从你团队的源控制系统中找到一个特定的子目录,或者是启动一个应用服务器用于开发。
    • 谁会希望自己总是任人摆布?如果你想要雇佣某人来为你工作,你会希望这个人总是要受那些专家的支配吗?我不愿意。我想要的是一个能够自立的员工。
    • 学习如何使用你所处行业的工具。
    • 一个独立的开发人员如果检测过一个项目,那么在存储器中同时存在最后和最好的两个版本的时候,他很容易就能辨别出这两个版本之间的区别。或者你需要对最终发行的代码进行漏洞修复。深夜里你突然间发现一个致命的系统漏洞,你总不会想打电话向别人求助,找到正确的版本然后再开始解决问题吧。这种问题存在于 IDE、操作系统,以及任何一个基础环节中。
    • 你使用的技术平台也是同样的重要。打个比方,你正在使用 J2EE 开发应用系统。你知道应该设置不同的类别,端口和部署描述文件,但你知道为什么要这么做么?你知道这些设置是如何被使用的么?当你启动一个 J2EE 容器时,到底发生了什么?你可能不是一名应用服务器开发人员,但是了解这些可以帮助你为一个平台编写安全代码,当出现问题时,也可以很快地解决问题。
    • 站在更高的层次上看,使用向导会让你的知识浅薄,你永远也不懂得向导做的工作。
    • 如果你真正了解你所工作的行业的详情,那会大大提高你的工作效率。你不需要懂得每个行业的每一细则,但你至少应该了解最基础的规则。
    • 有一种知识既不属于技术范畴也不是特定于某一行业的,而且也不会很快就过时,它就是财务基本知识。不管你在哪一个行业工作——制造业、医疗部门、公益机构或者教育系统都是一个行业。行业本身就是一门你必须要学习的知识。
    • 只有了解了一个行业后,你才能创造性地有所建树。 You can’t creatively help a business until you know how it works
    • 我们来这个公司工作,目的就是为它赚钱或者省钱,但我们根本就不懂这行是怎么赚钱的。更糟糕的是,我们根本就不认为这是我们应该知道的知识。作为程序员和系统管理员,我们认为自己正在做的工作就是我们应该做的。但是,如果连这行是怎么赚钱的都不知道,又怎么能创造性地帮助公司赚取利润呢?
    • 可以依赖别人,但要确保这个人是靠得住的。 It’s OK to depend on someone. Just make sure it’s the right person
    • 直到亲眼见识到某人突破你所熟悉的极限时,你才知道什么才是一切皆有可能。
    • 如果你只是一直和你家里人下棋并且战胜他们,你可能会觉得自己是个高手;没有榜样,就没有动力进步。
    • 良师还可以将你的学习过程形成体系。
    • 当我让他为我指明怎样才能更有见识,更加自立的时候,他给了我一个很简单的答案:潜心钻研目录服务功能,习惯 UNIX 变体,掌握一种脚本语言。
    • 重要的是他缩小了要掌握的技术范围,这样我就可以学习技术,取得进步,而不是停止不前。
    • 指导自己——我们都希望有人主动来教我们,但事实是我们很难在自己周围找到这么个人。所以要学会自己做自己的良师。
    • 要想真正学点东西,可以试试向别人传授这些知识。清楚知道自己是否对某一知识真正理解的最好的办法就是把你的理解讲给别人听,让他们明白。这个简单的方法是公认的帮助你理清思绪的灵丹妙药。
    • 想要弄明白自己是不是真正懂得某一知识,那就把它讲给其他人听。 To find out whether you really know something, try teaching it to someone else
    • 你不应该低估帮助别人的感觉——那感觉棒极了!如果你能随时想着别人的利益,那这就是你在用你的技术来帮助别人。
    • 寻找学生的方法不是你声称自己是权威,而是使自己具备真才实学并且有耐心愿意与别人分享你的知识。
    • 当你在练习的时候,演奏出来音乐或许总是难听的。如果你在练习的时候,总能演奏出悦耳的音符,那就证明你一直无法突破自己的极限。这就是练习的意义所在。运动也是一个道理。运动员在训练的时候总是将自己推到极限处,这样他们才能在比赛中突破自己的极限。他们让丑陋的东西都暴露在平时的练习中——而不是真正的比赛中。
    • 我们应该寻找时间练习
    • 现在回想起来,当时那种窘迫的感觉是个好的迹象。我编写的代码并不是完全没有亮点。我在开发大脑,突破自己的编程极限。就像练习吹奏萨克斯风时,如果练习的时候演奏出来的都是悦耳的音乐,那我知道我根本没达到练习的目的。同样,如果练习时编出来的程序都是很棒的,那我就是在发挥我的正常水平,而没有接近我的极限——好的练习应该让我接近自己的极限。
    • 在极限处练习。 Practice at your limits.
    • 身体与协调 视奏 即兴演奏
    • 在很多的编程环境中,正则表达式非常强大但却很少被使用。大多数开发员即使可以用到它,也不去使用,因为他们的技术没达到那个水平。结果,创造出了很多不必要的字符串解析编码,并且不得不延续使用。
    • 对于技术,你要是没达到手到擒来的地步,那它们真能帮到你的时候你也想不起来它们。
    • 一个成功的软件开发步骤,必须是由使用它的人来参与制定的
    • 你无法反对这个上级下达的步骤,那不妨通过正确的阐述使之运作起来。
    • 能够理解你所听的音乐是一种日积月累培养出的能力。
    • 用现有程序来反思自己的程序。 Use existing code to reflect on your own capabilities.
    • 比找出某一特定问题的解决方法更重要的是,将现有的程序当做一面放大镜来检查你自己的编程风格和能力。
    • 如果建筑师为国防承包商建造的办公室有功能缺陷,那他设计的东西就没有价值。不管他的建筑多么具有艺术美感,他都不是一名好的建筑师。
    • 把一件事情做完的感觉是很美妙的。一旦你找到了心里的那团火,你就不想停止了。
    • 根据帕金森定律:“工作会自动膨胀到占满所有可用的时间。”可悲的是,即使你不想这样,你还是会掉入陷阱,如果这些工作是你根本就不想做的,这种情况则会更明显。
    • 随时记得问问自己:“现在我们能做些什么?”
    • 通常在这种谈话中,Rao 不怎么出声,但他也没闲着,他在仔细地听。他后来告诉我他能先知的秘密就是他做的事都是我之前已经表达过想要做的事情,只不过我表达这种想法的方式很微妙,甚至连我自己都没意识到我说过这话。
    • 如果客户要求你做什么,你就做什么的话,他们会对你的工作很满意;但如果你做的事情不仅是他们要求你做的,或者你在他们提出要求之前就已经这么做了的话,客户会非常的高兴——但前提是你使用读心术读出的信息是正确的。
    • 在没有告知他的经理的情况下,他开始记录每天做出的成绩。他的目标是,每天都要有一些出色的工作报告给经理,这包括他关于如何改善这个部门的一些想法和已经做过的工作。
    • 经常记录工作成绩可以确保你不会停滞不前:如果你规定自己每天都要做出一点成绩,那你肯定不能花两个星期的时间精心策划某个“完美”任务。这种思维方法和工作会成为一种习惯。
    • 如果说经理的工作是了解和设定工作的优先顺序,而不是亲自去做所有的工作,那么你的工作内容就是去做这些具体工作。你并不是在帮经理做他的工作,而是做自己份内的事情。
    • 他工作平平,态度还不端正。就算他真的有很大的潜质,又能怎么样?当下,他并没有展现他可能拥有的资质。公司不是靠可能性来挣钱的。如果不能符合股东们的潜在设想,他们是不会继续投资。
    • 你把所有的时间都花费在想要得到某种东西上,可是欲望同满足是对立的。
    • 比起只专注在目标上的做法,专注于现在的工作会使你离最终目标更近。
    • 专注于现在的工作,你就会享受日常工作中的每一个小成功:你工作干得很出色,当出现难题的时候,你就会被人当做专家一样请来解决这个问题。在一个具有凝聚力的团队中,你会成为不可或缺的一员。这种感觉都会让你感到喜悦。但如果你总是头脑不清醒,做白日梦,那就会错失这些成功的喜悦。你会一直在等待那个巨大的成功,却无视每天工作中的那些小成功,但其实正是这些小成功赋予你工作的价值。
    • 客观地来讲,放弃你想要成功的期望可以提高你的能力,让你走向成功。
    • 在处理最无聊烦人的任务时,如果你也可以如此狂热地想要把它做好,那么你的工作表现会有多出色?
    • 在处理最无聊烦人的工作时,如果你也可以如此狂热地想要把它做好,那么能为你的工作增添多少乐趣?
    • 我们热爱的工作是可以让我们充分发挥创造才能的工作。软件开发是具有创造性的,大多数人也正是出于这一点才从事这份工作。而那些我们厌烦的工作往往是我们认为没什么创造力的工作。
    • 第二个原因是令人厌烦的工作很无聊,并且没有挑战性。我们都愿意去探索、解决别人解决不了的难题。这就像人们不惜冒着生命危险去攀登高峰、蹦极,原因就是我们热爱那些可以证明我们能力的事情。那些无聊的工作通常都不是什么脑力活,难度和倒垃圾差不多。
    • 大多数公司都会设立回报率线,在这之下,就不会进行投资。进行投资必须是在确定的时间内并有确定的回报率,否则就不会进行投资。这个数字被称作“最低预期资本回报率”。
    • 我们都需要觉得自己做出了某些有意义的贡献。但是我们太沉迷于做自己,却忘了身边有很多人和自己一样。公司里的每个人都不自觉地沉迷于自我,大家也只是从自己这扇窗户来审视自己的工作。这样想:如果你明天离开公司,对公司造成的影响(平均来讲)与其他同事离开没什么区别,或者还不及他们离开的影响大。
    • 我从这名信息主管那却得到了这样一条建议——永远不要高枕无忧,他一遍又一遍地重复这句话。他说自己每天早上起来都会提醒自己要清楚地知道说不定哪天自己就被公司解雇了。他会说,可能就是今天。
    • 谦逊不仅仅是我们需要发扬的一种美德。谦逊能让你更加清楚地审视自己的行为。
    • 人一旦傲慢,就会产生盲点。越认为自己无可取代,就越有可能被别人取代(你在公司存在的意义也就越小)。
    • 只要你一直维持系统运行,并且对用户的要求及时做出回应,维护模式就是自由并且具有创造力的。你同时身兼项目领导者、架构师、设计师、程序员和测试员的工作。你可以随心所欲地发挥创造力,而这个系统的成功或者失败都需要由你来承担。
    • 我认为有限的资源更加珍贵,我们会更加高效地利用有限的资源。花钱的时候是这样,安排时间也是一样。
    • 作为脑力工作者,即使我们不坐在电脑前或是办公室里,也可以工作。在和你的伴侣去吃饭的路上,或者你看电影的时候,都可以工作。你和工作如影随形。
    • 好好规划你的工作时间。减少工作时间,你的收获会更多。当你离开工作一段时间后,才会更喜欢工作。
    • 我们遇到的小故障也让我们知道我们会遇到什么样的失败状况。如果你从来没闯过布雷区,就永远不会知道不能踏上什么地方或者哪个方向不能走。如果你做的软件没有定期向你抱怨,你就不知道危险的故障隐藏在哪里。
    • 每个错误的音调离正确的音调不过一步之遥。 Every wrong note is but one step away from a right one.
    • 出现问题的时候,才是真正检测工匠手艺的时候。学习如何处理是非常重要的,但也是很难学会的。作为爵士乐即兴演奏者,一个错误的音调离正确的音调不过一步之遥。如果当这个错误的音调突然蹦出来时,演奏者就束手无策了,那这段演奏就失败了。站在舞台上,一边是乐队,另一边是观众。一个错音足以让一个业余演奏者惊出一身冷汗。就算是大师也会演奏出错误的音调,但是他们补救的技艺很高超,观众听不出来哪里出现了问题。
    • 公司对错误处理方式的不同,会产生不同的结果。问题处理得好,会使客户对其产品更加忠诚,甚至比碰到问题之前,更加信任这家公司。要是处理得不好,那就摧毁了客户的信任。工作中犯错误的时候,要时刻谨记客户的这一心理。
    • 如果我的团队成员真的无法完成某项工作时,有勇气说“不”,那当他们说“是”的时候我会更信任他们。敢于说“不”的人做出的承诺更可信,也更有分量。如果他们真的完成了自己承诺的目标,当他们说无法达到的时候,我不会质疑。
    • 某个领域内真正的专家,对于他们不知道的事情,总是勇于承认。“我不知道”并不代表我不可靠。
    • 当然也不要过分地说“不”。“能够完成”的态度还是值得欣赏的,有延伸目标也是好的。如果你不能确定是否能做某事,但是你想要尝试一下,那就说出来。“这是一次挑战,但我想要试一试。”这样的答案非常好。当然,有时候,答案就是“是”。 要勇于诚实。
    1. 不要恐慌
    • 和其他技术一样,提高水平的方法就是观察大师是如何操作的。
    • 他从不会让自己陷入恐慌之中。
    • 在最艰难的时候,我会恐慌。我把自己锁在屋子里,尽最大能力思考。我对这些问题分开独立思考,却没有想到应该要考虑全局。
    • 当一切都四分五裂的时候,怎么才能保持镇定,不惊慌?想想我们为什么会慌张,可能会对回答这个问题提供些帮助。 我们惊慌是因为丧失了判断力。出现问题的时候,要想不完全关注问题本身是很难的。某种程度上来说,关注问题本身是解决问题的好方法。但是,这通常会制造问题,不管你碰到的问题多小,看上去都会比它本身更严重。随着问题不断膨胀,压力就会越来越大,我们的大脑就不再运转了。
    • 当碰到问题的时候,我就产生了那种无助、充满压力的感觉而导致的惊慌,这个时候,我就拿自己与那个挫败的电脑文盲相比,然后嘲笑自己。我以第三者的身份来分析当时的境况,就像我帮助家庭成员解决他们使用 Word 的过程中出现的问题。表面上看起来很难解决的问题突然间就变得简单了;看上去不利的境况突然间也好像不是那么糟糕了。我常常发现解决问题的办法其实很简单,而且非常显而易见,就像错误信息对话框经常会告诉你下一步该如何做。如果你当时阅读了错误信息提示,问题可能就解决了。
    • 在惊慌之前克制住它的办法就是当自己的感觉和情绪爆发的时候,要有一种超强的实时意识。
    1. 说出来、行动、展示
    • 从不做出承诺最容易导致一事无成。没有截止期限,你也就没有压力或者说是动力来完成某项工作,特别是当任务不是十分有趣的时候。
    • 当一天有很多事情要做的时候,有了计划就可以让你从混乱中理清思绪,攻克所有工作。
    • 当每天的计划按节奏完成之后,你可能就会想制定一周甚至是一个月的计划了。当然,你计划的时间跨度越长,你做计划的水平就应该越高。一天或者一周的计划可以看成是战场上的短期战斗计划,让 30 天、60 天和 90 天的计划关注你想要实现的战略性目标上。
    • 对软件开发师来说,思考自己在 90 天之内能完成什么工作有些强人所难。我们是有谋略的人。强迫自己想象 90 天后系统、团队进程,或自己工作的最终状态,这会使一些出乎意料的事情浮出水面。同环顾四周相比,鸟瞰全局会带给我们完全不同的感受。一开始会很难,坚持住。就像所有的技术,熟能生巧,你和你的同事都会看到好的转变(即使你的同事不知道你的所作所为)。
    • 你应该与上司讨论你的计划。当你至少完成一轮计划之后,再开始讨论。重点是,在你的领导要求和你讨论计划之前,主动与他们交流。每周收到一封员工上周工作结果汇报和下周工作计划的邮件,不会引起经理的反感。经理们正希望员工能够主动发给他们这样的邮件。
    • 做计划时要时刻谨记的是,出现在计划上的每一项工作必须要与后续工作相关,要么被完成、推迟、去除、或者被代替。如果计划上的某一项工作后来根本就无人问津,别人就会开始对你的计划持怀疑态度,计划也就失去了它的功效。就算最后的结果是不好的,你也应该同其他人交流。每个人都会犯错,但你应该坦诚地承认自己的错误,请求别人帮助来解决问题。坚持按照计划工作会给人留下一个积极的印象——在混乱中,不会遗漏任何一件重要的工作。
    • 有了信守诺言的信誉,尝试新事物的时候你就会被赋予更高的自主性。
    • 他们得到了信任后,对工作更有归属感,工作也更具独立性。
    • 碰到问题的时候,这个团队制定出一份计划作为解决问题的方法。他们不是向上司抱怨,而是做出了解决问题的提案。
    • 抄袭怎么样?大家都会说,要想成为更好的程序员,你应该阅读好的程序。尽管他们的意思可能不是字面上的意思(阅读程序有点太无聊了),“读”这个词好像不应该出现在这里,因为它听起来有些被动。但是我认为应该坦然地主动大范围地抄袭。
    • 抄写的功效是很容易就能被看出来的。抄写可以建立肌肉记忆。通过抄写你可以感觉原文的微妙之处和它的结构——如果只是粗略的的浏览,是无法发现这些细节的。
    • 这是一场无节制的掠夺,当你全心全意地去汲取各种各样的技术时,你会找到一种方法将这些技术以一种新的方式结合在一起。毕加索曾说过“好的艺术家会抄袭,而巨匠会偷”,我不知道这句话的真实含义是什么,但是前半句话的意思就是我一贯的主张。
    • 编程的过程总是充满古怪的念头。使用较短且较少描述性的名字可以使代码更具可读性。最强大的语言通常都包含最少的概念。要想有成功的原创,失败和抄写可能是最佳途径。
  • 第 4 章 推销……不仅仅是迎合
    • 不管目的是什么,隐藏你的能力都是非常愚蠢的。想一想:公司雇用你是来开发软件,为公司创造价值的。团队领导的工作就是发展团队,使这个团队最大程度地为公司创造价值。如果领导压根就不知道团队成员能够胜任什么工作,那他又怎么能开展工作呢?
    • 你的目标有两个:让别人知道你的存在,以及让他们知道,当他们碰到难题时,你是那个可以解决问题的人。
    1. 不要忽视感觉
    • 在人际交往关系中,你要弄清楚哪一因素对哪一种关系圈是重要的,这样你就可以给你周围的人留下可靠的感觉。
    1. 探险向导
    • 当你在谈论关于软件的问题时,应该降低一点难度,来满足客户的认知。在过于专业和过于愚蠢之间可以找到一个微妙的平衡点。
    1. 学会沟通,善于写作
    • 在这一大趋势下,一个时代即将来临——对有些人来说,这一时代已经来临!——这就是工作沟通将借助文字形式,无论是通过即时消息还是邮件。
    • 如果你无法用母语清楚地表达自己的想法,让别人明白,又怎么可能用编程语言来清楚地表达出来呢?组织观点,带领读者思考并最终做出合乎逻辑的推断,这种能力与创作出清晰的设计和系统实施,并让功能维护者理解的能力是一样的。
    • (1) 开始记录开发日记。每天写一点,记录你做了什么工作,解释你的设计决定,检查棘手的技术和专业决策。即使你自己是第一位读者(或者是唯一的读者——这由你自己决定),也要注意写作的质量,和能够清楚表达想法的能力。时不时地回头阅读之前的日记,评论它们。通过你对之前日记的喜好,来调整你的新记录。这样做,不仅可以提高你的写作能力,通过这些日记你还可以加强你对所做决定的理解,当需要知道如何或者为什么你之前要做某事的时候,你就可以在日记里找到答案。
    1. 到场
    • 在大多数环境中,重要的项目决定都是在喝杯咖啡的时间和在闲聊的时候做出的。
    • 记住,要与人打交道。你必须要记住人类的天性是喜欢与人一起工作——不是和语音信息、邮件和即时消息一起工作。
    1. 适当的言语
    • 商业本身关注的是结果,经营者关注的也是结果。所以,如果不使用行业语言来推销你的成就是起不到作用的。
    1. 改变世界
    • 你做这些事情是因为内心里觉得必须要这么做。你无法看着公司里的同事犯错误,却假装视而不见。你知道有更好的办法,你必须要改变现状。
    1. 让人们听到你的声音
    • 把目光放得更远一些。不要把自己局限在某一特定公司中的程序员——毕竟,你不太可能永远在一个公司里工作——因此,要把自己当做是某一个行业的人员。你是一名手工业者或者是一名艺术家。
    • 公司都想要雇用专家。列出一长串项目经历的简历当然是展示自己工作经验的好办法;不过,如果在面试前,面试官已经听说过你的名字了,那可没有比这更好的了。
    • 还有什么比出版文章和公众演讲更好的方法让人们听到你的声音、记住你的名字呢?那么,如何才能从一名程序员到出版作品再到公众演讲呢?从互联网开始。 第一步就是阅读网络日志。如果你不知道读什么日志,那就挑选出几位你最喜欢的技术类书籍作者,然后通过网络搜素,通常他们都会有自己的网络日志。订阅这些日志的,以及这个网页上链接的其他人的日志链接。慢慢地,随着你阅读和寻找其他人的网络日志链接,你的日志链接列表就会不断增加。 接下来,开始撰写自己的网络日志。有许多免费开办日志的服务。操作起来非常简单。一开始,你可撰写(或者链接)在你的聚合器模块中有趣的故事。慢慢你就会发现,网络日志这个环境本身就是一个社交网络——你开始建立的职业网络的缩影。你的想法会出现在别人的日志链接中,他们会撰写关于你的想法的文章,然后传播你的观点。 网络日志是训练场。要抱着为你最爱的杂志写专栏文章的态度,撰写网络日志。随着你写作技巧的增长,你也会越来越有自信。
    • 所有这些让人们听到你的声音的方法中,最重要的一点就是要尽早行动,而不是一味地去想自己是否已经做好了准备。大部分人都会低估自己的能力。你一定有某种可以传授给他人的东西。你永远也不会觉得自己已经做好了 100%的准备,所以不妨现在就开始行动。
    1. 创建自己的商标
    • 不要小视你所代表的内容。小心挑选你名字出现的地方。不要去做糟糕的项目,广泛地发送糟糕的邮件(或者撰写糟糕的网络日志)。别做傻瓜。没人喜欢傻瓜,尽管有时候他们自己就像个傻瓜。
    1. 发布你编写的程序
    • 领导一个开源项目展现出的能力远不止技术能力。它需要你具备领导才能,版本管理、编制文件以及支持产品和团体的技巧,这样围绕你的努力来形成一个团体。如果你在业余时间成功完成了这些工作——作为一个爱好——你就与其他应聘者大大不同了。大部分公司都不会付给开发员薪水来做所有这些工作。而你不仅能够胜任这些工作,而且就算没有报酬,你对这些工作也是非常地在意,这就展示出你非常具有主动性。
    1. 变为卓越的能力
    • 传统上市场营销的四要素是:生产、价格、宣传和定位。这一观点是说如果你全部掌握这四部分内容,就会制定出完整的市场计划。这四部分内容同等重要。
    • 但市场的目的是什么呢?目的就是在生产者和消费者中间建立起关于某种产品或服务的联系。而这一联系的起点就是对该产品的认知。传统建立某种商品认知的方法是通过宣传,包括广告、邮寄目录和教育研讨会。
    • 出色和好的含义肯定不同。通常,卓越的产品一定是好的。但是,好的产品却很少是卓越的。卓越的意思是值得被关注。仅仅比你认识的软件开发员好,并不能使你成为卓越的软件开发师。仅在量上超过其他人,是不足以让你的声誉像病毒一样扩散开来的。如果要求某人谈谈对你的看法,或许他会说出很多你的丰功伟绩,但是卓越的意思是人们会主动地谈论你,而不是被动要求。
    • 要想卓越,就必须和周围的人大相径庭。
    • 发布成功的开源软件、写书和撰写文章以及在研讨会上演讲都可能会提高你变得卓越的能力。
    • Godin 以“紫色的牛”来提醒我们如何才能变得卓越。他没有使用最好的奶牛、产奶量最多的奶牛或者最美丽的奶牛,因为无论是在最好的奶牛群中、还是产奶量最多的奶牛群中,亦或是最美丽的奶牛群中,一头紫色的奶牛都会脱颖而出,成为人们谈论的对象。
    • 仅仅做人群中最好的是不够的。要成为人们谈论的焦点。
    1. 建立关系
    • 多年来,Chris 一直坚持“做最差的”这个战略,同时又毫无顾忌地与乐手们攀谈,这使他成为了不可思议的钢琴演奏者。
    • 但事实是,非常出色的人是不会介意有人想要认识他们的。人们喜欢被别人欣赏的感觉,而且他们也愿意谈论他们所热衷的话题。没错,他们是专业人士、大师、领军人物或者是著名的作者,但是他们首先是人,人是社会动物,喜欢与人交流。
    • 根据我的个人经验,我认为我们这些凡人和那些我们所仰慕的人之间最大的障碍就是我们自己的恐惧。与那些聪明、人际关系好、能教你东西或可以帮助你找到工作的人结识,是取得进步的最好的方法,但是我们却没有胆量尝试与他们结识。
    • 只是解释你的难处是不够的,你应该更深地探索管理人员这样做是由哪个商业因素造成的。久而久之,你会学到更多这个商业领域的知识,也会更好地分析、判断待解决的难题。这一能力再加上你的专业技术,就会使你从一个总是说“不”的人变成一个公司管理人员不可或缺的合作伙伴。
  • 第 5 章 保持技术领先
    • 这本书描述的过程是一个循环,直到你退休这个循环才会结束。研究、投资、执行、市场,然后重复。在任何一个环节上花费过多的时间,都会有突然间就过时的危险。
    1. 已经过时的技术
    • 长时间习惯于现有的潮流会让你毫无防御能力,完全不会去思考如果在没有 J2EE 的世界里,你又能做些什么。
    1. 你已经失去工作了
    • 所以,如果你的工作是编程,别把自己当成一名程序员。继续工作,但是不要满足于你的工作。永远不要把自己的身份定位于程序员,或者设计师,或者测试员。
    • 有理想是好事,但不要对遥远的未来抱有太大的希望。如果你想要射中移动的物体,就不能瞄准这个物体本身,应该瞄准这个物体要移动到的位置。这个过程的路线不是一条直线,最好的情况是一条弧线,但大多数情况下它是一条曲线。
    1. 没有终点的道路
    • 你一贯使用的以目的为导向、关注终点的思维方式只会导致从一个目标到下一个目标,永远不会结束。大多数人都没有认识到过程就是终点。
    • 不要关注结果,要关注做事情的过程。 Focus on doing, not on being done.
    • 关注结果会使人忘记应该做好过程。糟糕的过程只能创造出糟糕的产品。
    • 所以,不要总是不停地问:“我们完成了吗?完成了吗?”重要的是你穿越这条道路的过程,而不是这条路的终点。
    1. 给自己做一份蓝图
    • 但是一个使用中的程序是永远没有完成的一天的,除非它要退休了。你和你的职业也是一样的。除非你不想在这个行业干了,否则你就需要一份蓝图。
    1. 南印度捉猴陷阱
    • 当你过于坚信某事的价值时,就会无法客观地来评判它,这即是价值僵固。猴子过于看重米的价值,所以它们无法看清放弃米就能得到自由。猴子这样做看起来非常地傻,但是我们每个人都有自己的“米”。
    1. 每天都有进步
    • 秘密就在于无论你要改进的是什么,注意今天与昨天相比,是不是取得了进步。就是这样。这很容易。
    • 对于努力实现那些远大又有难度的目标,非常重要的一点就是不要总想着每天都要离最终目标近一些,而是应该想每天要比前一天做得更好。
    • 小的改进会降低失败所要付出的代价。如果有一天你没能坚持,那么明天你会有一个新的基线。
    • 如果在改善自己的道路上,每一天都比昨天多做出一点改变,你就会发现——拥有卓越的职业生涯——这个目标变得越来越容易达成,而不再像汪洋大海一样没有边际。
    1. 独立
    • 但是如果你在为了成就卓越的自我而奋斗(你正是在这么做!),那么大公司可不是个正确的选择,就像如果你正在努力甩掉腰间的赘肉,那绝对不能去蛋糕店工作。解决方法是什么?学着独立!