成为编程巨星的唯一秘诀(其他领域同样适用)
本文是从《The Singular Secret of the Rockstar Programmer》这篇文章翻译而来. 译文来自外刊 IT 评论《编程巨星的唯一秘诀》,我做了些调整。 抛开软件开发定律、设计用途,设计哲学,决定一个软件开发者是成是败的因素只有一个。为什么一个资深程序员只花一天功夫就能上手一门新的编程语言,而一个初级码农需要努力十年才能得到一份养家糊口的薪资,永远只能在他人设计的框架上编程,也绝不足以得到真正的成长。这个因素将差的程序员和好的程序员,好的程序员和伟大的程序员,伟大的程序员和能通过自己的技术创造出一个亿万美元价值的程序帝国的超级程序员区分开来。 它一点都不复杂,也不难懂。编程不是需要有什么编程天赋或者「编程超能力」才能做的事。能否成为一个优秀的程序员还是一个很烂的程序员跟你的出身一点关系都没有。 真正的因素只有一点,它就是: 你对你所做的事情理解越深,你就能做的更好。 编程大神对自己做的事情的理解,远超于那些平庸的程序员们。事实就是如此。 为了成为一名优秀的程序员,你所需做的事情去是理解你现在所在做的东西。 有人会说,该知道的我都知道了。而对说这话的人的验证就是看他们能否有应用他们知道的知识的能力。他是否能够构建出完美的系统架构,让人们能轻松的维护?是否能在不皱眉头的情况下把一个普通程序员毫无可能解决的问题轻松解决掉?是否能在被询问时能用最简单的概念把任何问题都阐述明白?如果能够,那他就是一个杰出的程序员,他能很好的理解了他在做的事情。 然而,尽管这些人看起来已经“无所不知”,很多的程序员(包括我)都感觉他们仍然在知识的海洋里奋斗不已。有如此多的东西需要去学习,一个人几乎要花费他毕生的心力去学习,但仍然很难说能掌握计算机知识的 90%。 而这场持久战中的秘密武器、战胜计算机知识的亚瑟王的神剑,就是 透彻理解 。对你的领域里的基础知识理解的越好,你就越容易提升到更高的层次。你对这一层次的知识理解的越好,你就更容易掌握下一层次,以此类推。一旦你从最简单最基础的知识走到最高级最复杂的理论,你可以从头再过一遍,此时你会惊奇的发现,在最低最底的底层,竟然还有那么多知识需要学习。 看起来这个道理实在是太简单,难以受到重视,但事实就是这样。通往杰出的程序员的道路就是完全的深入的理解,从掌握精通最基本的知识开始,从而