首先,不要让书名给你是一部烂书的感觉,英文书名是《The Passionate Programmer: Creating A Remarkable Career In Software Development》,我来翻译就是《激情码农:迈向卓越之路》。这是本好书,以至于为了给它写点什么而读了第二遍。

人们往往纠缠于做某事的方法,而忘记了最初的目的。

软件是一门生意,而作为开发人员,我们就是生意人,要学会融入生意并创造利润。对软件开发人员来说,选择市场通常就是选择投资某项技术或领域。投资时,要权衡风险和收益。

那么,选择成熟的技术还是新技术?

首先,低风险,低回报;高风险,高回报或零回报。成熟的技术风险低,但回报也小,而新技术则属于高风险。

其次,要考虑供需关系,并且要考虑供给增长和价格下降给职业前景所带来的影响。如果选择主流技术,则必须在更高层面竞争,避免与外包公司直接竞争,比如跻身制定标准、保证质量,管理技术团队等;或者依靠自身灵敏度寻找市场上新的不平衡点来切入。外包公司一般不会做第一个吃螃蟹的人,而是为供求平衡的IT市场服务。

想着如何避免失败绝对不是取得成功的方法,成功是要冒险的。胜利者想的是他们想要做什么,而不是其他人会怎么做。很安全的路,往往意味着毫无乐趣而言。如果工作没有乐趣,那我们就没有动力去做好它。

切忌孤注一掷,把自己的职业道路建立在一门特定(厂商)的技术上,现在热门但有一天过时怎么办?一个原则是尽量不选择商业性质的,而是去选择开源的。

不要用自己的技术来定位自己,而是用已经做过的和将要做的事情来定位自己。技术只是一种做事的方法。

只思考在哪种技术上投资是不够的。毕竟,技术只是一种商品。如果你想站稳脚跟,必须要深入了解你所处的领域。作为开发人员,往往认为处理好自己手头上的事情就足够了,连公司是怎么赚钱都不知道!软件工程师不能只会开发软件,应该要成为这个业务领域的专家。你的行业经历应该成为你的重要才能。只有了解了一个行业后,你才能创造性地有所建树。

选择让你兴奋的技术或商业领域,但凡伟大的成功人士,不一不对身处的领域痴迷和热情。

20世纪80年代美国失业率极高的时候,不仅责备外来打工的人,还责怪机器,特别是计算机。工厂里都安装了大型的臂状机器,他们比人类产量高而且比人类精准。每个人都非常低落,除了这些机器人的发明者。

我很喜欢读心术这个词,当你做项目的时候,从用户或产品经理的角度来看待这个系统,会加些什么功能或做些什么改进,之后等产品经理提需求时对比一下,看看命中率如何。

对大多数软件工程师来说,工作无聊主要出于两个原因:1. 没什么创造力;2.工作令人厌烦,没有挑战性。做项目更像是马拉松,而不是全速短跑。专注于现在的工作,想想今天能把工作做到多好。

最好的产品不一定就能在竞争中取得胜利,市场宣传很重要。宣传自己很简单:让别人知道你的存在,以及让他们知道,当他们碰到难题时,你是那个可以解决问题的人。

绩效考核永远都不会是客观的,对知识型工作者的能力以及他们的工作质量进行客观的评价是根本不可能的。一个哲学故事:如果森林里的一棵大树倒下了,却没有人听到它倒下的声音,那么它倒下的时候到底有没有发出声响呢?

既然是主观的,就意味着评价总是基于别人对你的感觉。对于项目经理,相比代码质量,更看重沟通能力;对于同行,更看重本身的技能,而非跟进项目的能力;对于上司,更看重做出的成绩,那点技能没有半点意义。

通过电话、邮件和聊天工作效率比较低,通过这些方式建立人际关系的效率也不高。而面对面地互动,能形成更紧密的人际关系。在大多数环境中,重要的项目决定都是在喝杯咖啡的时间和在闲聊的时候做出的。人类的天性是喜欢与人一起工作,而不是和语音信息、邮件和即时消息。

目光放得更远一些。不要把自己局限在某一特定公司中的程序员。毕竟,不太可能永远在一个公司里工作,因此,要把自己当做是某一个行业的人员。认识的人越多,得到好工作的机会就越大。如果只把自己局限在现在工作的公司里,就严重限制形成新的人际关系网的机会。

营销大师 Seth Godin 说:要想让消费者对产品做出评论,最好的方法就是将你的产品做得卓越。他以“紫色的牛”来提醒我们如何才能变得卓越。他没有使用最好的奶牛、产奶量最多的奶牛或者最美丽的奶牛,因为无论是在最好的奶牛群中、还是产奶量最多的奶牛群中,亦或是最美丽的奶牛群中,一头紫色的奶牛都会脱颖而出,成为人们谈论的对象。仅仅做人群中最好的是不够的。要成为人们谈论的焦点。

必须要认识到,即使现在处于当今潮流的尖端,也极有可能已经在下一个潮流之后了。事业越是成功,就越有可能习惯企业的现有模式,这会使你变得极度脆弱。

社会存在的一个严重问题就是它是以目的为导向的。过于关注事件的结果,却忽略了全局。一贯使用的以目的为导向、关注终点的思维方式只会导致从一个目标到下一个目标,永远不会结束。大多数人都没有认识到过程就是终点。达到了短期目标,并不意味着可持续发展。

做投资的时候,只投资不管理是行不通的。市场在不断变化,稍不留意就会赔钱或者错失赚钱的机会。在知识上的投资也一样。如果对当前的技能非常满足,当下一个热门技术来临的时候,可能会无视它的出现。必须要时刻细心留意,注意技术方面的新闻,不管是商业方面的还是纯技术方面的。不管选择做什么,必须要清楚地知道在技术领域,无论今天选择投资的技术是多么得尖端,但注定有一天它会被淘汰。不过有个捷径:留意技术达人,那些总是站在技术最前端的人,至少在他们感兴趣的领域中他们总是走在尖端。找到这类人,观察他们热衷于什么,就能够大致了解到什么技术将会成为热门,或者预测出两年后的热门是什么。

当过于坚信某事的价值时,就会无法客观地来评判它,这就是价值僵固。我们对某事的坚持不一定都是不好的。很多时候,在某种环境下是正确的事情,到另一种环境下就不一定正确。每天我们都在工作中度过,在做职业选择的时候很容易就会产生价值僵固。可能你一直想被提升到管理岗位,所以你一直向那个目标努力,却忽略了自己是多么热爱编程。越是成功,就越不可能做喜欢的工作。

解决这个问题的方法很简单——改变职业道路。树立远大的目标,但是要在实现目标的道路上,根据情况不断进行修正。从实践中学习,不断改变目标。对于努力实现那些远大又有难度的目标,非常重要的一点就是不要总想着每天都要离最终目标近一些,而是应该想每天要比前一天做得更好。

公司的层层组织架构降低了运营风险,却也因此降低了工作效率。如果可以隐藏在平庸的盾牌之后,就会丧失变得卓越的动力。在大公司里,一个聪明的员工可以什么都不做,却依然能在公司里生存下去。

一旦感到满足的时候,往往是该尝试新东西的时候了。追随自己的兴趣,迎接奇迹的发生!