理想的程序员

第1个一点点:专注眼下

见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条。他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力「耽误」了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。不可否认,这世界上存在着伟大的产品(像乔老爷)、伟大的销售(像埃里森)、伟大的投资客(像彼得菲),而他们毫无例外都是程序员出身。可你听说过巴菲特评价盖茨的话么,比尔盖茨如果转行去卖狗,那他一定是全世界最大的狗贩。我坚信除了少数的天才外,冥冥众生均可以在多个领域取得成功,只要保持足够的专注。而哪怕你下一年就想卖狗去,程序员的经验仍然能训练你强大的逻辑、谨慎和耐心,放在哪个行业都是相当可观的竞争力。

第2个一点点:思考力与推动力

我认为处理bug、崩溃、调优、入侵等突发事件比编程本身更能体现平庸程序员与理想程序员的差距。当面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。是的,在衡量理想程序员的标准上,思考力比经验更加重要。

有时候小伙伴跑过来,问我「提交了一个任务被卡住了,怎么办」的时候,我总觉得他可以做得更好。比如,可以检查试验别的任务,以排除代码自身的原因;可以通过Web UI检查异常(如果没有账号,可以让我提供);可以排查主机日志或删除缓存,再不济,总应该提供任务ID和控制台日志给我。理想的程序员永远不会等事情前进,他们会用尽一切方法让事情前进。

第3个一点点:Never Say No

记得从前厂离职之前,找老板谈话,他说我最大的优点就是从来不和他说这个做不到。后来我发现在很多团队里,都存在一种技术和产品的对立,程序员往往以「技术上无法实现」来挡产品的需求,而产品也往往以「Facebook可以为什么我们做不到」来奚落程序员。这两句话应该属于禁语,从根本上都不利于程序猿和产品狗的相亲相爱。

一句「技术上无法实现」是容易出口,可有多少人在说出这句话的时候,心里是100%肯定的?如果不肯定,为什么不能回去谷歌一下再回答?原本我以为程序员是充满想象力,在因为有想象力,才能诞生那么多改变我们生活的软件和互联网产品。见识多了,才了解大部分程序员已经在与bug的对抗中变得保守而不愿担当风险,与此同时许多团队也不愿意宽容失败。于是「Say No」变成一种习惯性的抵触,还记得曾国藩为什么解散湘军么?他说那支军队已「暮气渐深」,不能打仗了。要做理想的程序员,就不能给自己滋生暮气的机会,如果面对不合理的需求,可以把时间成本摆出来,把曲线救国方案亮出来,简单粗暴「Say No」是不可取的。

第4个一点点:投资未来

程序员是一个非常残忍的职业。你所学所用的语言、框架、模式,很可能在数年内就成昨日黄花了;你现在嘲笑的另一群程序员,可能马上就能转身来嘲笑你了。所以理想的程序员除了做好自己的本分,还要花费时间来投资未来。什么是「投资」?投资就是你现在投入的时间,在未来会以更多的时间或者金钱(看看早几年学习iOS的程序员现在的薪酬!)回报你。举我自己的领域 -- 数据挖掘为例,08年左右Hadoop开始兴起,一时「大数据」概念火热,Hadoop工程师万金难求,各互联网公司纷纷把数据统计、数据分析和数据挖掘的业务切换到分布式平台上。这几年眼看Hadoop还在不断迭代,Spark又异军突起,一举刷新了Hadoop保持的排序记录,以内存存储中间数据带来的性能优势和丰富的数据结构让人爱个不停,各种奇异的小bug和陡峭的学习曲线又让人打退堂鼓。那么,明眼人都知道Spark是未来的趋势(内存会越来越便宜),在主业务放在Hadoop的条件下,就可以适当把一些小模块切换到Spark上,同时留意Spark社区的发展。很快从Spark获得的性能收益就能把之前投入的学习时间挣回来。

第5个一点点:善用工具

善用工具可以分为4个层面:

  • 搜索引擎
  • 不相信重复
  • 代码片段
  • 自动化

我刚入行那会,一个计算机专业却当了公务员的朋友问我,你一点都没学过编程,平时怎么写代码?我说,谷歌,于是遭到无情的耻笑,以至于我在哪里的账号都叫2shou,告诫自己是一个无耻的二手程序员。这是一个笑话,但如果现在问我,我还是要回答谷歌。程序员的成长就像膨胀的圆饼,外面是无边无际的大海,圆饼越大,与大海接触的面也越大,懂的越多,不懂的越多,而计算机科学又是一门更新换代异常迅速的学科,同时也是知识互联网化最好的学科,很难利用传统的科班式有教有学的方法,相反通过搜索引擎则很容易获取到最新的知识。

不相信重复,大师的话叫DRY原则(Dont repeat yourself),代码写多了,会有人为的直觉判断好的和烂的代码,我的标准是简洁和规范,简洁并不是美感上的标准,重复越少,给自己出错的机会也越少,后期维护的成本也越少。

如果你不幸丢了三周前的代码,也许你能凭着过人的记忆力把脑子里残余的片段复写出来,但如果丢的是三个月前的代码,恐怕就没有那么好的运气了。理想的程序员会着力找寻有效的资料保存方式,把工作里灵光闪现写下的代码、脚本、配置、经验等短的片段保存起来,以便任何时候都能复查。

理想的程序员必须懒惰。对他们来说,重复的步骤和重复的代码一样丑陋,如果意识到一项工作有可能长期要重复,那么自动化的时间总是越早越好。

第6个一点点:管理时间

之所以管理时间会对程序员这个行当特别重要,是因为在完成任务时你必须像荒野里的狼一样,「独行」。没有外界约束的情况下还能稳定控制自己,保证能高效率地工作和学习,那么日积月累你肯定会变得比一般人厉害。

程序员干的是高强度的脑力活,一般每天集中4-5个小时应对本职工作就足够了,但工作之外,一定要安排时间用于学习。除了学习,留点时间放空自己也是必要的,利用泡茶或者喝咖啡的间隙,把弥足珍贵的时间留给自己,往前想往后想,事半功倍。

说了这么多,想必有人会问,费劲心思成为一个理想的程序员,又有什么用处?会有高薪吗?不。能升职吗?也不见得。迎娶白富美呢?不如去卖狗。 稻盛和夫曾经说过一个故事,明治时期的手艺人被天皇召见,虽然都是不读书的乡下人,但一辈子兢兢业业地做一件事情,自然有一股高贵的气质。理想的程序员,应该就是循着这种高贵的气质而去的吧。

时间: 2024-10-04 00:55:23

理想的程序员的相关文章

要做理想的程序员(好文)

原创作者:2shou    原文:http://kb.cnblogs.com/page/521320/ 我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔.26 岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭.害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有 500 万用户产品的后台主程.从前我对计算机技术心怀畏惧,认定技术高人一定有佛光笼罩,昼夜不息运键如飞日吐代码上万行.现在也算见过一些世面了,回首那段忐忑不安宛如初夜

程序员,如何从平庸走向理想?

程序员,如何从平庸走向理想? 作者: Web寻梦师  来源: 简书  发布时间: 2017-04-13 21:24  阅读: 67226 次  推荐: 369   原文链接   [收藏] 博主说:也许我们都不是天才的程序员,但至少我们都可以成为一个理想的程序员. 正文 我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔.26岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭.害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有50

程序员,如何从平庸走向理想?--转载

程序员,如何从平庸走向理想? 博主说:也许我们都不是天才的程序员,但至少我们都可以成为一个理想的程序员. 正文 我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔.26 岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭.害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有 500 万用户产品的后台主程.从前我对计算机技术心怀畏惧,认定技术高人一定有佛光笼罩,昼夜不息运键如飞日吐代码上万行.现在也算见过一些世面了,回首那段忐忑不安

程序员,你要每天进步一点点-转载

第1个一点点:专注眼下 见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条.他们往往有各式各样的小梦想,比如做个小茶农.做个小鹅贩.做产品.做销售.做投资,却被程序员的高薪或是没有转行的魄力「耽误」了, 而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术. 不可否认,这世界上存在着伟大的产品(像乔老爷).伟大的销售(像埃里森).伟大的投资客(像彼得菲),而他们毫无例外都是程序员出身.可你听说过巴菲特评价盖茨的话么,比尔盖茨如果转行去卖狗,那他一定是全世

真正程序员的六点不同

今天看到一篇文章,讲了程序员也是新时代的手艺人,理想的程序员才是合格的手艺人,而他们比大多数平庸的程序员在六个方面做的好一点点,就是这些一点点积累让他们与众不同.下面装载这篇完整的文章. 我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔.26岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭.害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有 500万用户产品的后台主程.从前我对计算机技术心怀畏惧,认定技术高人一定有佛光笼罩,

面对强制加班,程序员们,你们该怎么做

最近,公司开始要求延长上班时间,正好要求加班的风气在IT行业也是越来越盛行,遂有想法从其本质来谈谈自己的见解. 在<资本论>中,我们早已熟知,资本家总是尽最大努力榨取工人的剩余价值,而剩余价值主要由两部分组成,一部分是相对剩余价值,另一部分是绝对剩余价值. 通过延长工作时间而生产的是绝对剩余价值,而通过缩短必要劳动时间而生产的是相对剩余价值.对于贪婪的资本家,要最大限度的榨取工人的剩余价值,要么通过获得更多的绝对剩余价值,也就是“加班”来实现,要么通过提高生成效率,即缩短必要劳动时间来获得相对

12个顶级开发者社区网站帮助程序员走上人生巅峰

公元二十一世纪,世界迎来了大互联网时代,程序员这个行当已然成为了医生.律师等高端中产阶级职业之外的又一高薪职业.不过既然是技术职业,自然也 就会分三六九等,没理想的程序员只能写着自己擅长的代码,加着没玩没了的班,拿着固定的工资,日复一日.而肯努力的程序员肯定会抓住一切机会提升自己,从 而升职.加薪.迎娶白富美.走上人生巅峰. 那么今天,雷锋网就为广大想提升自己的程序员们介绍一些国外的高级代码猴们经常逗留的顶级开发社区. 新闻资讯类 Hacker News Hacker News是一家关于计算机黑

嫁给上海程序员:平均年薪13万

嫁给上海程序员:平均年薪13万 http://www.jiandande.com/html/ITzixun-jishu/ITzixun/2014/0627/3275.html 劳动报“行业收入趋势调查”发布第七期报告<程序员收入趋势调查>.通过网络调查.直访抽样调查.相关政府部门.人力资源机构等多渠道获取数据.其中与腾讯大申网独家合作开展的网络调查,吸引逾5万人次关注,回收问卷1957份. 调查显示,有近8成的程序员月薪在5000元-1.5万元这一区间.受访者的月薪平均数为10950元. 有超

程序员与禅师

1.分手篇 程序员问禅师:"我和在一起 7 年的女友分手了,程序员是否诸多和爱情无缘?" 禅师笑而不语,把程序员带到正在比赛的球场. 程序员大悟:"大师的意思是否是说:爱情的意义就像一场比赛,只要过程努力过,结果如何并不重要?" 大师闭上眼睛道:"你分手关我球事?" 2.相貌篇 程序员问禅师:"我天天对着电脑,熬夜到凌晨.大家都说我丑,我真的很丑吗?" 禅师笑而不语,端起一杯水,浇到程序员脑袋上. 程序员不解:"你的