2025-02-03
本文是从 The Singular Secret of the Rockstar Programmer 这篇文章翻译而来。
别以为是那些软件开发定律,别以为是开宣布那些特殊用途的软件,别以为是软件设计技能本身。只要一条真理决定了一个软件程序员的成功仍是失利。因为坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而因为不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永久是来完成他人的设计、永久不行优秀而得不到晋升的机会。这条真理让你看清了差的程序员和洽的程序员的不同之处,好的程序员和巨大的程序员的不同之处,巨大的程序员和能通过自己的技能创造出一个亿万美元价值的程序帝国的超级程序员的不同之处。
不是什么杂乱的道理,不是什么难明的理论。不是具有什么天赋或“编程超才能“才能做到的工作。终究成为的是一个优秀的程序员仍是一个很烂的程序员,这跟你的身世一点联系都没有。
而真正的原因只要一个,仅有的一个:
对所做的工作的理解越深,你就会做的越好。
超级程序员跟那些平凡的、一般的程序员比起来,对自己要做的工作的理解要深的多的多。这便是原因。
要想成为一名超卓的程序员,你所要做的便是彻底的理解要在做的工作。
有人会说,该知道的我都知道了。而对说这话的人的验证便是看他们能有使用他们知道的常识的才能。是否他可以构造出完美的系统架构,让人们能轻松的保护?是否他能在不皱眉头的情况下把一个一般程序员毫无可能处理的问题轻松处理掉?是否他能在被问询时能用简略的概念把任何问题都阐述理解?如果可以,那他便是一个杰出的程序员,他能很好的理解了他在做的工作。
但是,虽然这些人看起来已经“无所不知”,很多的程序员(包含我)都感觉他们仍然在常识的海洋里斗争不已。有如此多的东西需求去学习,一个人简直要花费他一生的心力去学习,但仍然很难说能把握计算机常识的90%。
而这场持久战中的秘密武器、战胜计算机常识的亚瑟王的神剑,便是透彻理解。对你的范畴里的基础常识理解的越好,你就越容易提升到更高的层次。你对这一层次的常识理解的越好,你就更容易把握下一层次,以此类推。一旦你从简略基础的常识走到第一流杂乱的理论,你可以从头再过一遍,此刻你会惊奇的发现,在低底的底层,竟然还有那么多常识需求学习。
看起来这个道理实在是太简略,难以受到重视,但现实便是这样。通往杰出的程序员的道路便是彻底的深入的理解,从把握通晓基本的常识开端,从而逐渐结实把握更高档的常识。
我不想骗你 —— 这是一个很长的路程。但你是值得去做的。在路的止境,你会忽然发现,自己奇特的成为了一位资深的程序员,受到所有人的尊敬。你能成为一位奇特的程序员,任何工作都难不倒的程序员,让其他程序员都羡慕的程序员。谁能预料到呢?我不能告知你你该做什么或能成为什么。但我可以告知你我发现一些真实的道理和有价值的东西。怎样去做全在于自己。