程序员从入门到大牛的5个进阶秘笈

各行各业都有捷径可走,只是没有前辈愿意把自己的秘笈告诉你,这里讲的秘笈,并非投机取巧,而是掌握事半功倍的方法, 程序员从入门到大牛的必经之路,也有九九八十一难等着他们去闯,而掌握了这五种秘笈,能更好的帮助你迎接困难。


秘笈一:专注眼下

------------------------------------------

见过太多心猿意马的程序员,我不得不把「专注眼下」作为第一条。程序员不像其他行业,因为不专注,他们的代码一团糟,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。不可否认,这世界上存在着伟大的产品(乔布斯),Facebook(扎克伯格),微软(比尔盖茨),而他们毫无例外都是程序员出身。我坚信除了少数的天才外,冥冥众生均可以在多个领域取得成功,只要保持足够的专注。程序员的经验仍然能训练你强大的逻辑、谨慎和耐心,放在哪个行业都是相当可观的竞争力。

秘笈二::思考力与推动力

------------------------------------------

我认为处理bug、崩溃、调优、入侵等突发事件比编程本身更能体现平庸程序员与理想程序员的差距。当面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。是的,在衡量理想程序员的标准上,思考力比经验更加重要。
有时候小伙伴跑过来,问我「提交了一个任务被卡住了,怎么办」的时候,我总觉得他可以做得更好。比如,可以检查试验别的任务,以排除代码自身的原因;可以通过Web UI检查异常(如果没有账号,可以让我提供);可以排查主机日志或删除缓存,再不济,总应该提供任务ID和控制台日志给我。理想的程序员永远不会等事情前进,他们会用尽一切方法让事情前进。

秘笈三:Never Say No

------------------------------------------

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

秘笈四:投资未来

------------------------------------------

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


秘笈五:善用工具

------------------------------------------

善用工具可以分为4个层面:
搜索引擎
不相信重复
代码片段
自动化


程序员的成长就像膨胀的圆圈,外面是无边无际的大海,圆圈越大,与大海接触的面也越大,懂的越多,不懂的越多,而计算机科学又是一门更新换代异常迅速的学科,同时也是知识互联网化最好的学科,通过不断地学习方能获取到最新的知识。
the end

评论(0)