如何做好一名优秀的程序员

 一、90%的编程工作来自内部软件   90% of programming jobs are in creating Line of Business software   计算机专业的学生可能有一种印象觉得大部分程序员都在编写公开出售的软件或者通用软件。   这种看法是不对的。大部分程序员实际上编写的是不公开的企业内部软件比如追踪费用的软件、优化装运成本的软件、帮助记账的软件、设计新部件的软件、计算保单价格的软件、识别恶意订单的软件等等。   各种各样的商业公司开发内部软件解决它们自己的问题。市场上对程序员的大部分需求来源于此只有极少数程序员直接编写面向外部顾客的软件。   内部软件的开发通常非常乏味令人厌倦。因为它们的技术复杂性低、技术决策非常保守、预算很少、缺乏长远考虑。但是世界上大部分编程工作都是这种。   二、别人雇你的目的是让你创造利润不是让你编程   Engineers are hired to create business value, not to program things   商业公司最关心的或者说唯一在乎的事情就是增加收入、降低成本。因此它们实际上需要的不是程序员而是能够帮助它们增加收入、降低成本的人。   开发优美的软件解决技术难题编写没有 bug 的代码这些都不是商业公司的目的。它们雇佣你是为了让你帮它们完成某个可以增加收入、降低成本的项目而不是因为你是 geek。   你个人对于公司的唯一价值就在于你能多大程度上为它们增加收入、降低成本。   三、不要自称为程序员   Don't call yourself a programmer   很多公司的经理不懂计算机在他们心目中"程序员"就是一群高成本的劳动力只会在一台复杂的机器上干一些难懂的事情。   如果你自称为"程序员"当公司需要压缩成本的时候某些经理首先就会想到解雇你。有一家公司叫 Salesforce口号是"没有软件"意思就是如果经理们购买了他们的服务就不再需要别的软件管理销售业务了也就是说不再需要自己雇佣程序员了。   正确的做法是你应该把自己描述成与增加收入、降低成本有关系的人比如"xx 产品的开发者"或"改进者"。有一个 Google Adsense 程序员的自我介绍是这样写的"Google 公司97%的收入与我的代码有关。"   四、不要限定自己   You are not defined by your chosen software stack   年轻学生经常会问应该选择哪种语言或平台学会 Java是不是比学会 .NET 容易找工作   过分强调某一种语言或平台都是不必要的。如果你把自己限定为 Java 程序员或 .NET 程序员你就已经输了因为首先你不应该自称为程序员理由见上一点其次这种限定使得你自动被排除在世界上大多数编程工作之外。   现实生活中学会一种新语言只需要几个星期然后再过半年到一年你就会变成老手。那时根本没人在乎你以前用什么语言。   天才程序员是很少的可是需要天才程序员的工作机会却很多很多大多数场合都是需求远远大于供给。这意味着即使你不是天才程序员只要你是一个优秀工程师那些招聘公司也会立刻录用你因为它们知道招聘到天才程序员的机会微乎其微。重复一遍所谓"优秀工程师"就是你的履历上有一连串增加收入、降低成本的记录。   某些公司的人事部门会根据某个关键词比如 Java 或 .NET过滤简历。虽然这样的公司根本不值得去但是如果你真的想过这一关也很容易投入几个晚上和周末在你当前的项目中设法用到这个关键词然后再把它写进简历就行了。   五、如何提高求职时的谈判能力   How do I become better at negotiation?   1记住你不是在求职不是在展示编程技巧而是在推销某种商业需求增加收入或降低成本的解决方案。   2面试时要有自信要平等的对话。你要的是一个互利的录用合同不要每次对方提出要求你都说 Yes。   3雇主可能会问"你的上一份工资是多少"他们其实在说"给我一个理由压低你的报酬"。你要想好如何适当地回答这个问题。   4要还价。这里不仅仅指钱还指其它你关心的方面。如果你无法要求更高的薪水那就试着要求更多的假期。   5在对方决定录用你以后才开始讨论薪水。因为那时他们已经在你身上投入了大量的时间和金钱产生了一定的成本此时他们可能觉得一些小问题已经不值得再纠缠了比如每年的工资增加几千元。   六、创业公司是否适合应届毕业生   Are startups great for your career as a fresh graduate?   如果你一毕业就加入创业公司最可能的结果是接下来几年你都工作得非常辛苦然后公司悲惨地失败了你失业了不得不又去另一家创业公司工作。   如果你真的想去创业公司应该首先找一家大公司干上两年攒一点钱积累一些经验然后精心挑选后再去创业公司。   在创业公司工作一般情况下你遇到的都是创业者。他们大多数人没有能力在两年后雇佣你而在大公司工作你遇到的都是其他大公司的人他们中很多人将来有能力雇用你或者帮你介绍工作。   七、在创业公司工作是否值得推荐   So would you recommend working at a startup?    选择创业公司就是选择一条职业道路而不是选择一种生活方式。可惜很多人把这两者颠倒了他们推荐创业公司实际上是在推荐一种你感兴趣的生活方式。   如果你确实喜欢这种生活方式老实说你在大公司里也可以得到它们。在许许多多大公司里你都有机会钻研最新的技术而且还能5点半准时回家照顾孩子。   八、沟通技能是最重要的职业技能   Your most important professional skill is communication   前面说过工程师被雇佣不是因为会编程而是因为能够创造商业价值。所以你让人们相信你能创造价值这是帮助你找到工作的最重要的能力。这种能力与你真的能创造多少价值实际上联系不是很紧密。   我认识的一些最优秀的程序员往往拙于表达。因此别人不是不想与他们一起工作就是低估了他们的价值。相反地如果你看上去很会编程并且很善于表达别人就会真的这样看待你
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值