写代码的人

国外媒体周六发表文章称,本周的种种迹象表明,苹果CEO史蒂夫·乔布斯(Steve Jobs)所谓的“后PC时代”距离我们还很遥远,因为平板电脑只是一时的时尚,取代传统的鼠标和键盘尚需时日。以下为文章内容摘要:

微软首席技术官克瑞格·蒙迪(Craig Mundie)3月底曾表示,平板电脑或许只是短期内的时尚,昙花一现而已。

该言论似乎与事实有些出入,因为一代iPad在三个季度内的销量就超过了1500万部。一些知名科技公司纷纷跟进,谷歌、惠普、RIM、摩托罗拉和三星等均已涉足该市场。就连微软也表示,下一代Windows系统将支持平板电脑。

但本周出现的种种迹象表明,蒙迪的言论似乎不无道理:

英特尔2011财年第一季度财报结果超出了华尔街预期,PC业务同比增长17%,而2010财年第四季度同比涨幅为12%。(说明PC业务在增长)

苹果2011财年第二季度财报依旧强劲,但iPad销量却远低于预期。苹果第二季度售出了470万部iPad,低于业内预期的600万部。

RIM PlayBook平板电脑首日销量预计为5万部(包括预订数量),并未给消费者带来任何惊喜。

首款Android平板电脑Motorola Xoom同样表现不佳。

由此可见,当前的平板电脑热销根本不是平板电脑自身原因,而是iPhone推动所致。三年前iPhone上市后,许多用户发现,以前在计算机上 进行的工作,如电子邮件、浏览网页、阅读和玩游戏等,都可以在智能手机上进行。这不禁让用户想到:如果屏幕尺寸再大些会更好,而iPad恰恰满足了用户的 这一需求。

但许多用户还是将iPhone作为手机使用,或作为照相机和MP3播放机等小型设备替代品,或在特定情况下浏览网页,收发邮件,而真正的计算任务仍在桌面计算机上进行。对于这部分用户,购买iPad的成本又过高。

这对于非iPhone用户同样如此,而企业用户正处在PC的更新换代周期,微软在18个月内就售出了3.5亿份Windows 7授权。平板电脑可能会在一定程度上进入企业市场,但只适用于移动办公人员,很难取代键盘和鼠标。在进行图形等大型计算时,传统的计算机仍是首选。

在未来一两年内,iPad也许会被证明是“后PC时代”的开始,但本周的种种迹象表明,传统PC业务短期内还不会被取代。

本文转载自: 新浪科技
Advertisements

本文是从 How much code coverage do you really need? 这篇文章翻译而来。


我写这篇文章的起因是由于看了@unclebobmartin在微博上的一些看起来言之凿凿的话语。给那些不认识Uncle Bob的人介绍一下——他是我们软件产业里最著名的一个专家,是《 Clean Code(代码整洁之道)》这本著作的作者,是敏捷宣言(Agile Manifesto)的签署人之一。在上世纪九十年代,他对文献最佳面向对象实践方法贡献了很大的力量。所以,当他说话时,我们一定要关注一下。

他给我们日常的TDD和单元测试制订了一个最高纲领。我们可以从他的微博里清楚的看到这点:

“两件事。可重复性和成本。跟自动化测试比起来,手工测试的成本高的可怕。”

“手工测试不是测试;那是在做实验。只要有人的因素牵涉其中,那结果就必然可疑。”

“你们告诉我的实际意思就是让我大开方便之门、不去测试某些程序。哼 …”

“代码覆盖率100%并不是成绩,那是最低要求。即使只写了一行代码,你也要测试它。”

他接着把软件测试跟在其它领域里常见的但被认为很关键的活动进行了比较:

“战地外科医生也许没有最够的时间做严格的消毒,但这带来的风险可能是死亡或高昂的治疗代价。”

“会计难道只会把80%的数据表做双份备份吗?”

“有多少回你们都看到了那些严重的宕机事故都是因为一些愚蠢的程序员以为那些愚蠢的代码不许要经过测试而导致的?“

他的所有这些观点都很有价值,但他只向我们展示了问题的一面。现实中并不是所有的应用都需要如此谨小慎微的测试。并不是所有的应用都跟战地手术或巨额资金核算那么重要。(更不要说在很多情况下的为”合理避税“而做的帐务:))。

一个更重要的原因是,100%的测试覆盖率并不能保证bug的不出现。就连Uncle Bob自己也承认:

”测试并不能杜绝bug。但测试能保证程序的行为是符合预期的。“

这很显然指的是:同一个程序员在程序里埋下的概念性或逻辑性错误,由他自己测是绝对测不出来的。

最终,所有的问题归结于ROI(投资收回率)和实用主义。有些应用比其它应用需要更多的测试。有些bug需要比其它bug投入更多的精力去修复。 究竟是否需要在自动化测试是投入更多的时间和财力,或多少覆盖率是合适的还是过分了,这都需要人的主观判断。


本文原始地址:你真正需要的代码测试覆盖率是多少?

编者按:原文作者多恩·道奇(Don Dodge)是Google帮助开发人员在其平台和技术上构建新应用的开发者代言人。在加入Google之前,多恩是微软新兴事业部业务开发主管。他同时 也是一位创业老兵,是如下5家软件创业公司的领导团队成员:Forte Software、AltaVista、Napster、Bowstreet 和 Groove Networks。(以下是全文)

Google往往设定不可能实现的目标……然后去实现它们。解决这些不可能完成的目标的战斗心态,是早已灌输进Google每个团队中的企业文化的一 部分。一些战斗难题的答案并不明显。这就需要你来发掘解决方案,而不是仅仅去优化那些现有的东西。Google的每个团队的每个季度都要设定未来九十天内 的目标,叫做 OKRs(目标和主要结果)。大多数大型企业都会设定年度目标,计划一年内将一些指标提高或增加几个百分点,然后每年进行一次绩效衡量。在Google, 一年相当于十年,年度目标是不够的,他们会设定季度目标,设定不可能实现的季度目标,然后搞清楚如何实现它们。每个季度都要进行一次绩效衡量,然后对突出 成就进行奖励。

OKRs 是指目标与主要结果。我曾经提交过第一个季度的OKRs,里面有我认为积极但依然是可实现的目标。然而这还不够。我的经理解释说我们需要设定看似不可能完 全实现的远大目标。嗯……我回答“这仅仅是90天的目标,我们明明可以设定合理准确的目标,为什么还要设定不切实际的目标呢?”因为如果目标太保守就一定 不能实现惊人的结果。我们需要惊人的结果,我们要搞定不可能实现的东西。

(编注:“OKRs”应该是 “one objective and three measurable key results”的缩写,意指“一个目标,三个重要的衡量指标”。)

失败不是一种选择 —— 不久前我写过一篇关于“失败不是一种选择”的文化文章,讲述了设定保守的人们当然能够实现的目标,这实际上限制了他们自己,此种文化是多么地错误。因为如 果他们一旦失败就会被开除。冒大风险,追求创新,然后努力实现那些不可能的目标,这种情况不会发生在那样的公司里。在那篇文章中我讨论了初创企业对 “不能失败”完全不同的定义。初创企业指愿意尝试5或10种甚至是20种方法,直到找到有效方法的公司。他们不成功不会罢休。Google的文化有点像托 马斯·爱迪生的方法,意思是“我没有失败,我已经找到了很多不能成功的方法,现在我离成功更近了。”

实现65%的不可能的目标胜过100%地实现可能的目标 —— 设定不可能的目标,并实现一部分与安全路线相比是截然不同的目标。有时你可以在一个季度内就实现了不可能实现的目标,但是即使你没实现,也是在很快实现该目标的快速干道上。每季度对业绩的测量,让中期调整得以进行,并可以为下个季度设立更高目标。

对成功的奖励 —— 对实现不可能实现的目标进行奖励是很重要的。就好像你期待有一种计算法则可以用各种乘数来计算动力的奖金。Google之所以吸引众多业内最优秀人才,原 因有很多,最重要的原因是他们为人们实现不可能实现的目标提供资源与支持。金钱奖励确实重要,但是它们却不是主要动力。与世界上最出色的人才共事及实现伟 大的目标才是终极奖励。

拿体育界来类比,你认为佩顿·曼宁或科比·布莱恩特是受金钱所驱使吗?不,他们几年前赚的钱比他们可能要花的都多。他们受成为世界最优秀者的愿望所驱动。这种愿望与动力远比大笔的金钱更有力量。对于Google来说也是如此。

初创企业家受类似愿望驱使,实现不可能完成的事,从“无”当中创造出一些东西(To create something from nothing),吸引最优秀的团队,并且创造不同。从很多方面来说,Google还是一个初创企业,其创始人每天都在努力实现不可能。每个公司都有一个 设立目标、衡量成功和计算奖金的流程。也不是说Google的流程更加出色……真正不同的是心态和文化。身处顶级成功人士之中,你可以感受到一种能量力 场。这会使你感到兴奋,激发你实现比你以为可能的更多的目标。这种感觉很好!

译文出处:伯乐在线 – 职场博客
原文:Don Dodge 文章推荐:关关 翻译:伯乐在线 敏捷翻译组 – 高志翔

本文是从 Twitter moves from Rails to Java 这篇文章翻译而来。


Rail那插满五颜六色鲜艳羽毛的帽子现在跌落到了地上。Twitter决定放弃Ruby on Rails,改用Java,这次是包括他们的整个搜索库。早在2008年9月,他们就决定了把消息队列的后端程序从ruby迁移到Scala(一种Java虚拟机上的语言),而现在连同它们的前端也要迁移到Java。

他们开发了一个可扩展的叫做Blender的平台,使用的是依赖Java NIO的服务器(Netty),以此来克服目前的繁重的接入流量,MySQL被换成了Java上的Lucene搜索引擎,做出来的引擎能并行的完成多个后 台任何,相互独立管理,互不依赖。通过这种改造,搜索延迟降低了3倍,每台机器能接受比以前10倍多的请求。

不错,一个很大的成果。这是否意味着Java是一个比Rails更能胜任高扩展性需求的平台?即使真是这样,对于小规模的应用来说,Ruby on Rails的优雅比Java的性能更吸引人。

他们说这次改动使他们能够适应未来几个月搜索功能快速的迭代修改。伴随这个消息的事情还有Twitter扩招了25跟新员工, 这似乎也在表明对于相同的程序,Java比Ruby的可维护性更高——至少是在程序量巨大和团队规模很大的时候。这似乎也能表明跟他们最初时候着眼的问题 相比,他们现在关心的是系统的可维修性设计。但对于小开发团队和小规模程序来说,Ruby on Rails仍然是不二选择。

原文:http://www.aqee.net/2011/04/23/twitter-moves-from-rails-to-java/

(图片来自:teachone2one

去年10月28日,曾被视为盖茨接班人的微软前首席软件架构师Ray Ozzie,在宣布即将辞职后发表了一篇名为“Dawn of a New Day(新时代的曙光)”的备忘录,以纪念他五年前给微软高层撰写的引起广泛关注的内部备忘录“The Internet Services Disruption”(PDF文件)。新的这份备忘录的核心思想是:持续在线设备和持续服务将带来史无前例的巨大变革。全世界所有公司都需要后退一步,重新思考和质疑最基本的东西。过去各种想当然的最基本的假设,都需要进行重新判定。

作为归隐者,Ozzie的声音并没有被业界过多重视。然而,最近发生的一系列事件都表明,他所说的大变革已经开始。

本月初,Facebook宣布通过Open Compute项目,开源其服务器和数据中心的设计,我评论说“此举堪与2004年Google陆续发表MapReduce等论文相提并论”。2004年,Google发布了MapReduce(中文译文)、BigTable(中文译文)、GFS(中文译文)等一系列论文(CSDN网站用户很快翻译了这些论文,也是一段佳话),揭开了世界最大搜索引擎赖以存在的大规模分布式计算技术的秘密。随后开源实现Hadoop诞生,现在已经成为最重要的云计算核心架构之一。与此同时,各国互联网公司为了应对日益增长的用户和数据,也都在从事各种名为“动态架构”、“基础平台”等等的分布式计算和海量数据处理的研发实践,其中产生了今天百花齐放的各种NoSQL技术,构成云计算的另一个核心支柱。而Facebook开源云计算硬件后,RackSpace、Zynga、Dell等知名企业都纷纷表示采用,这将进一步揭开更为神秘的数据中心行业技术机密的面纱。

VMware推出开源PaaS平台Cloud Foundry也非常值得重视。加上在此之前已经出现的针对私有云的开源项目Nebula,和针对IaaS的开源AWS服务Eucalyptus,开源云计算大图景已经渐渐完成。

放到更大的背景下来看,云计算其实是全新一代计算技术的总称

除了上述核心技术层面的发展,在云计算基础设施的支撑下,手机、多媒体播放器、平板电脑、电子书、车载系统、智能电视、体感设备等多样化终端得以大行其道;而触摸、体感、语音、3D等新型界面也开始进入主流,带给人们前所未有的体验;更多历史的和现实事物的信息能够被更完整和丰富地数字化,Google将全世界每个人的每次搜索和去向存储下来并借此不断改进其搜索质量,Facebook将人们之间的各种交互数字化,Amazon、淘宝等电子商务网站将商品流通的信息、人们的购买喜好数字化,Twitter等微博将人们稍纵即逝的想法和谈话记录下来,Foursquare等LBS应用将人们去过那里的信息记录下来,Instagram、Color等移动应用捕捉瞬间的图片和音频、视频,物联网应用将监控大到地壳运动、火山运动、格陵兰岛崩离的冰川,中到每一部汽车、火车、轮船的实时位置,小到每一颗花草树木的生长情况,甚至我们的身体中各种脏器、血管、神经的相关数据……

云计算实质上也是互联网为代表的IT技术向全社会各行各业的深入渗透,它将使所有能够信息化的东西信息化,将大部分行业转变为基于互联网的持续服务。这种变革的力度,将超乎我们想象。

云计算将每个人每件东西每天每秒都在产生更多的新数据(位置、状态,所见、所闻、所思、所言……),现在有了云计算的支撑,我们可以将其全部记录下来,加上历史数据的数字化,全部实现联网,实时地分析海量数据之间的关联、数据所表达的意义,用更贴近人直觉的方式表达出来,可能得出此前想象不到深刻洞察,同时为每个用户的个性化需求提供真正随心所欲的用户体验。

微软亚洲研究院2010创新日活动上,我见到了一个来自新加坡的青光眼自动诊断和基因研究项目,计算机科学家收集并分析1.5万个青光眼病人眼球的图像资料,这个系统所能获得的青光眼方面的丰富信息和结论,大大超过此前医学界所能想象的程度。

最近国外举行的Luxury Summit上,很多奢侈业的专家已经意识到这种变革的到来,他们提出了很多值得思考的话题:当电子商务能提供实体商店无法企及的购买体验(个性化的推荐、消除中间环节带来的更低的价格等等都是杀手),实体商店将退化为电子商务网站的展示厅和提货点;当奢侈品牌所代表的身份和地位让位于更佳的用户体验,品牌将如何保持其内涵,高定价将如何维持?类似的和更大的机会在各行各业应该不计其数。

与此同时,云计算也是一种技术平民化或者透明化的过程。之前许多只有大公司能够获得的技术架构、基础设施,现在开始以服务的形式提供给中小企业、创业公司甚至个人,这意味着有了好的创意,你完全可以立即实施,还有可能在很短时间获得几百万用户,迅速成长为全球化的公司。而终端用户也第一次有可能真正不再为IT分心,将绝大部分精力放在自己专长的各种事情上。正如我在去年11月《程序员》杂志的卷首语“到底什么是云计算”中写到的:

在这种计算方式下,软件、硬件之间,设备之间,平台之间,社区、公司、人、物体、信息之间,过去的各种人为的或者受技术限制造成的藩篱将被打破,基础设施开放,平台开放,数据开放,包括计算机、通信、互联网、媒体内容等在内的整个信息服务产业将发生全面重组洗牌,新的生态链将形成,信息技术和能力实现了真正的平民化,大众普遍参与的新局面开始出现,群体智慧的潜力被最大程度地释放出来,更多与环境、民生、人文、艺术、生活等等相关的领域将有可能出现各种创新和创意的大爆炸。

是的,“在应用和基础设施上巨大和不可避免的转变所激发的大变革现在才刚刚开始”,它孕育着史无前例的机遇和挑战。这也正是5月18日—20日即将在北京召开的第三届中国云计算大会七折票还有最后四天!快去大会官网)之所以要涵盖云计算的核心技术与架构(分布式计算、海量数据存储与分析等)、云计算与开放平台应用实践、云存储与虚拟化、云计算下的信息安全、新型数据中心、云计算与信息化创新、云计算试点城市与新兴产业、云计算与移动互联网、云计算与新型终端等诸多话题的原因。在大变革时代应该如何应对?值得我们认真探讨和思索。

此次会议的规模和深度、涵盖范围都将大大超过往届,也期待能在会上听到更多专家的真知灼见。另外,本次大会还将第一次为在中国研发或者在中国有应用实践的创新云计算相关产品与应用提供免费的展示机会,征集活动现已开始,欢迎报名。入选产品将有三张大会门票、广泛的媒体报道机会等诸多优惠。


本文是从 13 Things You Must Do Every Week As A Startup CEO 这篇文章翻译而来。


当一个创业公司的CEO是个很辛苦很难的事。下面列出的是每个创业公司的CEO每周都应该必做的13件事情:

  1. 关注一件事。你的公司一次只能做好一件事情。弄清楚你的这件事。把它贴在墙上。每天都要这样。把它放在公司内的日常交流论坛的顶部。不要让任何其它事情把你的团队从这个事情上分心。
  2. 记住:你和你的团队是共荣共损的。花时间去培养你的团队。引进比你更善于做某些事的人。激励他们、督促他们去 做他们从来不敢相信自己能完成的事。给他们行动的自由、允许他们漫无目的的探索发现,但要引导他们朝着你的这一目标。对待同事就像家人。创业公司里的生活 会很艰苦。要让你的团队爱公司,把自己当成公司的一部分,这是走向成功的关键。公司并不只是一个工作的地方,它一种生活方式。作为CEO,你的工作并不是 做其他人能做的事情。你的工作是帮助其他人把工作做的更好。同时,你要有规律的向执行层反馈你希望他们给你的支持以及你希望他们改进的地方。
  3. 定调。听取忠告,从所有人那里——你的同事,你的客户,你的合作者,你的投资者,新闻界,你的Twitter 和Facebook粉丝。关于公司的发展、分析、革新、客户服务各方面。最终你的公司的企业文化将会反映出你作为CEO所体现出来的价值。所以,不要自满 自大。自己的所作所为要像当人们想到你的公司时你心里希望他们如何想的那样。你很容易在这个事情是做错。如果你的表现像个砍掉了脑袋的小鸡,那你的整个公 司也会像你一样。如果你忘记了微笑,你的公司也会这样。如果你缺乏耐心,你的公司也不会有。如果你忘了说请或谢谢,你的公司也会忘掉。公司比任何一个人都 重要,但它折射出的却是每个员工的个性和工作习惯,而你是他们的首领。
  4. 把你至少75%的时间花在你的产品上。产品好,公司才会好。把你的重心放在产品上。坚持以优秀作为标准。把自 己投入进去,亲历亲为的管理产品的各种功能和用户利益。不管是什么身份,CEO必须是首席产品负责人。作为CEO,你有责任对屏幕上任何一个像素点负责。 我知道这似乎有点过分,但你的产品是你所有辛苦劳动换得的、将直接面对客户的成果,里面的每个功能都体现了你的任务和目标。
  5. 精打细算。我不说预算和现金流,我说的是关键指标。每周给你的团队发一份邮件,总结公司经营状况的关键数据。 亲自写。写这些邮件会迫使你深入分析这些数据。掌握执行数据,分享这些数据。把这当成一个标准工作,以此来让公司里的每个人都关注公司发展的各种状况。压 缩成至多3到5个真正重要的数据指标。
  6. 锻炼。这件事的重要性怎么强调都不为过。每周至少要求去健身房4次,最好是5或6次。这能让你保持解决复杂问 题的精力和耐力。做CEO是一种不可思议的精神上的挑战。让健身房成为你保持精神饱满和清理头脑的地方。如果你以前没有这样做过,我保证当你有规律的锻炼 后,你一定会对处理生活中的困难变得如此容易而吃惊。放下键盘,去健身房吧!
  7. 寻求反馈。猜怎么着?你可不像你想象的那么聪明。你会犯错误。问你的员工、客户、合作者、等等。定期的寻求反馈。确保你的团队里至少有一位执行人员能正直的向你反馈你的执行表现上的问题。确保至少有一位管理层外的或亲近的谏告者能有规律的对你的公司发展问题提交建议。
  8. 走出办公室。只是坐在键盘旁,整天围绕着email收件箱生活,这样的管理工作太简单了。走出办公室,跟真正的客户、合作者、供应商、博客、新闻界等交谈。听听他们都说了什么,记在心里放在心上。不要用想像的美景糊弄他们。停下脚步,听听现实的声音。
  9. 写博客,微博,文章,在CEO相关论坛上分享 写一些像本篇文章一样的东西是很有益处的。分享你学到的知识、 教训、技巧和窍门。不要担心是否会有效果,要从你的虚拟网络世界里得到反馈。经常去Hacker New是看看,保持关注其它创业公司的CEO或技术杰出人物分享出的信息。通过你的投资者的社交网络来从其他的跟你相似的情况中的CEO那里获得建议和意 见。
  10. 管理资金。资金是你的血液。你必须时刻知晓你还剩多少资金,还能支撑多久,在目前的资金情况下你做出的决策会带来什么样的影响。不要忘记,你应该在你需要它之前就募集到足够多的资金。
  11. 把自己当成投资者。 每周末都要问你自己下面的问题:在过去的一周里,你的所作所为是否给公司增加了价值?在过去的一周里,你在时间消耗上的投资回报率是多少?如果你的时间消耗的投资回报率连续两周持平,或一个月内有两周都是负的,那很显然,你有什么地方做错了。
  12. 快乐。做CEO很难,需要你投入太多的精力。一定要让每天都快乐。甚至在艰苦的日子里也要从中找到一些快乐。如果你没有愉快的心情,你就很可能做出不正确的事情。我最喜欢的一句话就是“成熟,但不要长大。”
  13. 爱。爱你的公司,爱你的同事。爱你的投资人。爱你的合作者。爱你的供应商。而最重要的是,爱家中等着你回家的人——是他们的支持使你每天有精神爬起床来去工作。

还缺少什么?你的这样的列表里是什么?

本文转载自: 外刊IT评论 http://www.aqee.net/

作为程序员,要取得非凡成就需要记住的15件事。

1.走一条不一样的路

在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。

2.了解自己的公司

以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。

不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益!

3.与最优秀的人为伍

很早以前,我喜欢打篮球,被分配到一个水平比较高的队里。一开始适应的确很困难,但环境的压力越大(重大比赛),我的长进也就越明显。

每个领域其实都一样:你周围人的水平(以及对你的期望)越高,你就会变得越优秀。

4.制造差异

每年学习一门新编程语言。为什么不呢?不断尝试新事物,你关注的技术种类越多,脚下的路就越宽广,你的职业生涯就会日新月异。不知道几年后Java的趋势如何?那就学习Clojure。学Ruby还是Python?这两种语言都可以试试啊。然后你才能知道哪种语言更适合某个特定的项目。看,掌握的语言多了,才能在需要的时候信手拈来吧。

5.畏惧,是最大的敌人

还是直接从书中摘一句吧:“在畏惧中做出的职业规划,很可能会让自己后半辈子就一直被‘圈禁’在小隔断里,永远不会有创造明天辉煌的时刻。没错,那样是安全,但有意思吗?”

6.要成为多面手

如果你掌握了所在领域的知识,那你只能是一名专业人士。用PHP编程?花点时间设置一台Apache服务器,让PHP和MySQL都跑起来。一直在用jQuery?试试Prototype。你懂了吧。

7.一个字:做

别指望别人过来教你该怎么做,出去,自己学着去做!

8.找一位好老师

找一位好老师可以让你在学习技术的时候有的放矢。作者给我们讲述了别人是怎么指导他学习的(顺便说一句,作者在这本书里讲了很多个人经历的小故事,他居然从一位演奏家转行来做软件开发!):“好好研究一下目录服务,熟悉一种UNIX变体,然后再掌握一门脚本语言。”

请记住这句禅宗谚语:“循路觅宗师,形影不相离,师知吾亦知,吾乃成宗师。”

9.主动教会别人

教会别人是一种最好的学习方式。写一篇博客能帮你搞清楚一个问题。为此,你必须先掌握很多材料,同时还要有条有理地讲给别人听(写作技能)。如书中所言:“要想知道自己是不是真的明白,你就讲给别人听听。”

10.实践,实践,再实践(训练)

只有进行大量实践(花大量的时间)才能掌握某种技术。看的很多,写的很少,遇到问题,改一改,又去读代码……(这样下去是不行的)。

要特别警惕拖延症。其实,往往只要有了开头就好办了。

自我加压,效果会更好。我曾在一篇博客中提到帕金森定律:紧张的时限可以让你提高工作效率。为什么不把这个定律用到学习上呢,比如说在y时间内学会x?

11.从小处入手

每天都取得一项小成果,每天都要坚持做(写在博客上?)。这样一来,你只能让自己比昨天更进步,而不能说自己比上星期进步了一点。

12.享受过程

关注当下,而不是目标,享受那些在追逐未来目标的途中可能无暇顾及的小胜利。人总要生活在当下。我享受编程的过程,就像享受编程的结果一样。

13.不要丧失危机感

越是成功,就越容易犯重大错误。永远不要忘了危机感,特别是要认识到你今天所知道的,到了明天可能就会一文不值。过去的荣耀不能保你永远无虞。

据书中所说,你最好是要让自己能够“通用”,而不要对哪种技术或哪个公司产生依赖。你所掌握的某些技能,甚至你的工作,到了明天都可能会变得毫无价值。因此要不断提高/丰富/扩展自己的技能。

14.推销自己

为某个项目贡献自己的一份力量,写一篇博客,共享自己的源代码,成为对某个社区有用的人。

当然,做这些事可能需要激情,要看你的爱好,但这些事也会间接地推广你的工作成果,证明你的实力,提高你的知名度。

15.关注市场

书中还提到了“预警极客”,也就是那些始终引领技术发展的人。这些人说过的话往往带有预见性,他们提到事物也许过几天就会成为头条新闻。关注这些人,常看他们的Twitter和博客。

原文出自:cnbeta