习惯
其实呢 心里明白 最近一直在做一些无厘头的事情
1)如果你做的事情毫不费力,那就是在浪费时间
注:本文作者 Heidi Roizen 系 DFJ Venture 合伙人,曾任苹果公司主管开发者关系的高级副总裁,女性创业者。
Heidi Roizen女士一度是硅谷人人争相学习的典范。她曾创办自己的公司并管理了 14 年之久。后来,她担任苹果公司主管开发者关系的高级副总裁。现在,她是 DFJ Venture 的一位风投家,她还在斯坦福主讲一门名叫“企业家精神”的课程。她几乎认识硅谷的所有重要人物并且灵活地运用着自己的影响力。哈佛商学院甚至还有专门关于 她的案例。
以下是 Roizen 提出的八条原则,她正是利用这些原则来指导自己的工作、建立起广泛的人际网络并不断推动创新。这些过来人的经验对于新入行者弥足珍贵,可以作为职业生涯各个阶段发展重要的领航灯。
1)如果你做的事情毫不费力,那就是在浪费时间
梅琳达·盖茨曾有一次路过小女儿的房间,看着她在尝试着自己穿鞋,她女儿说:“这很难,但是我喜欢困难的事。”
我喜欢这种态度。在你经历过很多困难时期后,你会发现渡过难关是你最美好的经历。
成功的创业者追求一种永不止步的状态。你努力工作,超越能力的极限,不断地尝试、失败、再尝试;你每天、每周都问自己“我还能做什么更有难度的事情吗”,这时你才能理解这种劲头。
有趣的是,很多怀有雄心壮志的人却力求消除工作中的困难。他们想平步青云,顺利到达梦想彼岸,这是不对的。”现实情况是,即使你真的轻松成功,你也会感到无聊。所以,找点困难的事情做吧。
创业的美妙之处正在于其艰难。没有安全可言,没有稳定的收入,你必须完全靠自己。
2)你的品德决定了你生活的基调
做第一家公司 T/Maker 的 CEO 时,曾有一次防火洒水器故障毁掉了所有库存商品。幸运的是,大多数产品都不太值钱。更幸运的是(从另一个角度说),房东不知道货品不值钱,愿意用保险赔付一切损失。
当时的条件确实很诱人,我们本可以收到 15 万美元的赔款。但是我们决定说出真相,因为不仅我们知道库存的价值,我们的员工也知道,如果我们决定作假,那我们怎么向员工交代。
你要成为员工的榜样,清楚自己所做每件事的后果。如果公司领导层决定收了这笔钱,那就等于告诉员工,作假是被允许的,就好像是在说:“虚报费用是没问题的,如果想要的话把多余的设备带回家也行。”
这看起来轻而易举,但是真正做到却不容易。你可能会想:“我可以怎么简单怎么来,我可以这么说,我可以对消费者撒谎来达成交易。”
有时你能逃脱掉,有时却逃不掉,大多数情况你最终都是逃不掉的。
3)你的内心比你掌握更多的信息
你的行为决定了公司的文化基调。做有些事是为了晚上能睡个安稳觉,另一些是为了搭建良好的工作关系。当你把标准定得更高时,你会发现更容易把持自己。
在斯坦福商学院,有一门“商业创新”课程,要求学生进行一周练习:睡前把你明天要做的一个决定写在纸上,第二天早上起来立即做决定。这个练习的目的是告诉学生直觉是如何做决定的,以及直觉能够有多么准确。
但是科技圈的认知却朝向相反的方向发展,做决定越来越靠无尽的数据。人们认为掌握的数据越多就能作出正确的决定。对于有些事情来说,这种方法是有效的,但是并不是所有事。内心的直觉建立在多年的经验以及对于人类行为持续不断的观察上。我们甚至不知道它的具体形式。
我在做一些艰难的决定时往往会听从直觉,尤其是涉及到人的时候——和谁工作,和谁保持联系,把谁炒鱿鱼等。每次数据指示和我想的不一样时,听从数据都会让我后悔不已。
4)挑选团队是你要做的最重要的事情
绝大多数公司的成败都取决于团队的质量。
过去这些年里,Roizen 见过太多年轻的创业者犯同一个错误:他们有一个创意,开了一家公司,但是当需要聘用管理人员的时候,他们不想找一个比他们更懂的人来做。他们不想被威胁, 所以就找跟他们同龄,和他们懂得一样多的,找自己信任的熟人。这种做法听起来不错,但是同时,创业者因为怕被压制或大权旁落而错失了许多专业人才。
5)如果你希望成为团队内最聪明的人,那你会建立一支平庸的队伍。
你真的希望你负责销售的副总比你还不懂销售?你想要你的 CFO 不如你懂财务?当然不是。你应该去冒险,找到正确的人,并且信任他们。你的工作是激励这些人,并确保他们和睦相处。
我的目标永远是成为团队里最笨的人,我希望我的身边都是些真正有才华的人。这才是让人兴奋的事情,我们才能完成最艰难的挑战。
6)生活真的是反复无常的
倒霉事儿会发生在你头上,你会失败,失控的事情会发生,你需要接受现实。在这种境遇下,你如何挺过去,坚持到成功呢?一条建议:把事情都想成一团糟。
快乐的关键是降低你的预期。这并不是说你不应该追求自己的目标,这意味着你应该对前进路上的不完美做好准 备。比如说,Roizen 出国旅行时会设想行李丢失、航班晚点或是租的车没有按时到达等各种情况。我想到了各种事情最坏的结果,那么当坏事真的发生时,我也不会感到难过。我在随身 行李中放了换洗衣服,我在落地两小时内没有安排任何会议。我预期很低,如果坏事没有发生,那我就会很欣喜。95%的压力都是自找的。
Roizen 想起她认识的一位总是严谨制定计划的创业者,每一件事都计划得滴水不漏,但是实际上事情从没有完全按计划施行过。
如果你期待每件事都顺利进行,坏事就可能会落到你身上。生活有时候可能很遭,当这种情况真的发生时,整顿行装,继续前行。
如果你跌倒了却爬不起来,那么你的余生也将一事无成。
记住,就像硬币的两面一样,生活的跌宕也可能带来好事。当机会来临时,不要错过,你不知道接下来会发生什么。如果你得到 3 个不错的工作 offer,不要总想着选个最正确的。
可能你选了一个不太好的工作,业绩不好,你被炒了,但以后可能还有更好的工作机会。而且在这份工作中学到的经验教训在另一份更稳定的工作中是得不到的。
Roizen 回忆起自己不久前看的一本书,书中说在问到过去 5 年发生过的最好和最坏的事情是什么时,大部人说出的都是同一件事,甚至包括离婚、得癌症或是失业等。
但当你接着问他什么是促使生活向好的方向发展的事情时,往往就是这些坏事。有时,接受生活的起伏,你会发现一些伪装起来的好事。
7)充分利用时间
你所拥有的最重要的东西就是你的时间,因为你不能创造更多时间。
你可以用钱或他人的帮助来节约你的时间,但是,最终你还是会用光自己的时间。所以,你需要对自己如何利用时间了如指掌。很多人不知道每件事情花 了多少时间,他们有 1000 封未回复的邮件,却还说不知道怎么处理。解决方法就是每天安排的工作不要超过 5 个小时,留出 3 个小时回邮件,打电话,阅读,获取最新消息。当别人说没时间时,我会说,你当然有时间,但你用来做别的事情了。
想想所有需要花时间的事情,开始时对它们一视同仁。你要明白,睡觉是花时间的,阅读也是花时间的。搞清楚你喜欢做什么,什么能够最大限度的拓展 你的能力,然后重新规划时间,把时间花在正确的事情上。理想的情况是,你能留出一些时间用来思考和睡觉,但是 Roizen 说有时候也确实很难实现。
在工作上花更多的时间就意味着陪家人和朋友的时间少了。人们有一种幻觉认为关系和交流不需要用时间来维系,但是实际上不是这样的。你可能没法完全平衡你的时间,但是至少试着来。
如果你不给你自己留时间,那就没时间做些正确的事,总会有各种突发情况。
8)20-40-60 法则
演员 Shirley MacLaine 最早提出了这个法则,主要内容是:20 岁时,你总在担心别人是怎么看你的;40 岁时你觉醒了,我才不管别人是怎么想的。60 岁时你才发现,根本没人管你。这个法则的核心理念就是:从一开始就没有人想着你。
当然,这既是好事儿,也是坏事。坏处在于没有人在一直关心你好不好,挣多少钱,你对工作和人际关系是否满意。“你需要为自己着想,如果你在做一件不喜欢的工作,你需要自己做出决定是否换个工作,你不能在办公室等着别人帮你做决定。
你的老板不会想着你,你的同事没有想着你,你需要替自己着想。
这听起来令人难以接受。有些人花很多时间思忖别人是怎么看待自己的,深受折磨,其实完全没必要这样。
我曾经也总是顾虑长途飞行后穿着不合时宜的鞋和褶皱的套装时开会是什么状态。我会很担心人们看到我连自己都收拾不利索会怎么看我。但是,有一次开会时,我发现,并没有人认为“虽然这个家伙很聪明,但是他衣冠不整,这人肯定不行”。
人们总是为一些犯过的小错误折磨自己,在会上说错话,叫错人名等。你可能浪费几个星期的时间来懊恼,导致工作效率低下。如果你发现自己是这样的,那么请记住:没有人像你自己一样关注你。所以就不要担心太多了。
引用
1.学习另一门语言
其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造为更好的程序员。能学会一门与你日常使用的语言风格 迥异的语言则更佳。打个比方,如果你是C#程序员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大。
我说“学另一门语言”的意思是要真正学会它。学习一门语言包括三个领域的知识:语法、内置操作符和库,以及“如何使用”。前面两个简单;我认为一名 有经验的程序员,根据语言的不同,能在半小时到几小时内掌握足以维护代码的语法知识。操作符和库只不过是知识逐步积累的过程,你什么时候想清楚要了解什么 了,再去查阅参考材料也不迟。只有第三项,“如何使用它”-要花上你几个月的时间去跟这门语言打交道,真正的奇迹就在此发生。我建议用这门语言的风格去做 一个适合该语言的项目。
真正学会了另一门语言之后,我敢保证你的程序员水平一定会突飞猛进。
2.学习先进的搜索技术、手段和及策略
作为一名好的程序员,不仅仅是技能的问题了,而是你寻找信息的技巧,这个趋势越来越明显。对大部分人而言,仅仅输入“现代语言及开发框架”,这都是 泛泛之谈,记不住多少的。因此,你完成工作的能力通常取决于你的检索能力。不幸的是,了解到如何找到准确而高质量的信息可不仅仅是跑到 TechRepublic来找答案,或者在你选好的搜索引擎上敲几个字那么简单。
“技术(Techniques)”、“手段(tactics)”和“策略(strategies)”看起来是一回事,实际上并非如此。你需要学会的 技术是掌握你喜爱的搜索引擎的高级搜索系统;你需要了解诸如布尔操作符,如何过滤结果(像“非”关键字,域限制等等),关键字的词序扮演什么角色,等等。 一句话,RTFM(Read The Fucking Manual,读那些他妈的手册)吧。
你应该学会这些手段,诸如如何接近特定的搜索,以及了解自己实际上想查些什么。查错误很容易—只需查出错代码即可—但是许多搜索的关键字选择要困难得多。
至于策略,你需要学会的东西,包括像应该使用哪种搜索引擎(提示:普通的搜索引擎不一定就是最佳选择),使用普通搜索引擎前应该访问哪个网站,甚至是应该到哪个论坛去寻求帮助,等等。
3.帮助别人
教别人始终是学习一切东西的最好方法之一。相对而言,由于你在开发领域还是个新手,认为自己没什么可教给人家的,这可以理解。但这毫无意义。记住, 你所学到的一切都是你从别人或别处学到的;因此请尝试一下,成为另外一个人要请教的“别人”。每天尽量花一点时间试着回答TechRepublic上的问 题,其他网站的亦可。读读其他会员的回答,你也可以学到很多东西。
4.有耐心,常练习
研究表明,要成为一名“专家”,需要花费10年,或者10000到20000小时的刻意练习时间。真的很久。还有,成为专家不尽然就是执行10年同 样的任务;通常这意味着要在特定领域内执行广泛的任务。需要花费大量的时间和精力才能成为“专家”;做几年程序员是不够的。想在30岁左右成为一名高级软 件开发工程师?要么尽早接受教育/培训,要么你得愿意在闲暇时间进行大量的工作、阅读和练习。我从高中开始编程,还牺牲了许多休息时间去跟踪行业发展、学 习新技能等等。结果,我获得中级和高级程序员的时间就比我的大部分同事都要早得多,随着时间的推移,这些就转化成为很多的金钱。
5.对教条拒之门外
是时候开诚布公了:也许初级程序员了解的东西还不足以说出做某件事情有一种最好的方式。尊重朋友或者权威的观点是好的,但直到你更有经验之前,不要 把他们的观点说成是你自己的。很简单,如果你所了解的不足以让你独立地找出这些东西来,你又怎么会认为你知道哪一位“专家”是对的呢?话是难听了点,不过 请相信我;由于受某些愚蠢建议的蛊惑,或者追随某些根本不知道自己在说些什么的所谓专家,白白把自己的职业生涯耽搁了几年,这样毛头小伙程序员,我见过多 了。这一点有一个很好的例子,就是面向对象结构的滥用。比如说,许多初级者读了一些有关面向对象的信息后,突然间,他们那简单的应用程序的类图看起来就像 埃菲尔铁塔一样了。
6.深入学习一点先进理念
成为一名中级程序员,很大一部分是要在代码里面体现出一些所擅长的概念。就我而言,是多线程/并行性,是正则表达式,以及如何对动态语言进行变化 (后两个在我离Perl渐行渐远后开始退化)。这是如何发生的?多线程和并行处理是因为我读了相关文章,觉得它看起来很有趣,然后再自己把它弄清楚了;然 后我就一直使用这些技术来写应用。我做过一件工作,是用Perl写的,里面运用了大量的正则表达式。我也用一个过程引擎模板和内置数据库系统写过我自己的 电子商务引擎;那时我几乎花了2年时间在这上面。
找到真正令你着迷的东西。也许是图像处理,也许是数据库设计,等等。即便你是一个入门级的程序员,也要尝试一下成为某一自己所关注领域的专家。这会让你相当快速地进入到中级水平,一旦你到了那个水平,你的专家之路也走到一半了。
7.学习你的领域里面的基本理论
写出“Hello World”,跟理解那些字是如何显示到屏幕上的是两码事。通过学习支撑你所从事的工作的“基础/底层工作(groundwork)”,你会变得更加在 行。为什么?因为你会理解事物为何会以这种方式运作,当东西坏了就能知道是哪里的问题,等等。通过掌握工作的底层机制,你变会得更出色。
如果你是Web程序员,读读HTTP RFC和HTML规范。如果你使用代码生成器,好好看看它生成的代码;如果你使用数据库工具,看看它生成的底层SQL语句,不一而足。
8.看看高级程序员的代码
在工作中看看高级程序员写的代码,然后问一问事情是如何以某种特别的方式完成的,为什么?可能的话看看开源的项目。甚至即使其他程序员没有最好的编 程习惯,你也会学到许多编程经验。当然,要小心别学到坏习惯。我的意思是说不要生搬硬套人家的东西;你要能领会到哪些是能行的通的,哪些是有道理的,然后 再模仿人家。
9.学习好的习惯
愚蠢的变量名,糟糕的缩进习惯以及其他一些凌乱的迹象就是一个没有经验的程序员的最好标记。一个程序员在学会如何编程时,却经常没有被传授到那些不 那么有趣的细节,像代码格式编排。甚至尽管学习这些东西并不会令你的代码更好,也不会令你成为更好的程序员,它也会确保你不被同事视为入门级的程序员。甚 至即使某人是高级程序员,如果他的变量是以他那97只猫的名字来命名,或者其函数叫做“doSomething()”的,他们看起来也不像是知道自己在干 什么的人。而且会令其代码在过程中更难以维护。
10.要玩的开心
想要痴迷于单调乏味的工作?痛恨工作吧。要想升级为中级程序员可不仅仅是为了拿到不断增长的工资不达目的誓不罢休,而是要真正享受工作。如果你不喜 欢自己的工作,且还是初级程序员,你怎么会认为成为中级或高级程序员情况就会有所好转呢?换工作或改职业吧。反过来说,如果你喜爱所从事的工作,那就好! 只要你坚持下去,我保证你能成为一名更好的程序员。(Justin James)
【人物小传】
Justin James