第二件事:不要畏惧混乱
有一句老话叫,“事情变的越多,不变的也越多(the more things change, the more they stay the same)”。事实上,很多东西发生的变化比我们预期的要更小。我们以为现在的程序员能够完全理解编程过程。但其实不是。我们以为当年bug和错误频出的日子已经不复存在了。但它们依然横行肆虐。我们预计花在实验和改张易弦上面的时间会变少。但其实亦不然。
但从另一个角度看,今天的事情与以往却又是全然不同的。
我刚开始是在惠普科学计算器上编程,我唯一见过的程序员还是在电视上面,他们穿着实验工作服,彼时Unix还只是6岁大的稚儿,内核只由两万行代码组成。即使到了80年代中期,软件开发依然是一项独立的活动。家用电脑,虽然功能上已经满足真正的编程,但却并不提供一般人要想高效学会编码所需的工具集和知识。
我不知道在我涉及这一行的1980年有多少程序员存在,但真的不多。因为直到1988年,美国劳动统计局才开始计算这个数值。那时,美国大约有10万个专业的程序员。其中,高级程序员不超过7000人。
而今天,最新的IDC调查估计,全世界大约有1800万个开发人员,而且近一半还是非专业人士。Linux内核GitHub代码库包含980万行代码,有近6000个贡献者。而且,Linux内核还只是github的1千万个代码库中的一个。光是谷歌的企业代码库就有超过20亿行代码。
每时每刻都有很多代码问世。
很多很多。
如今的软件更像是一种极限运动。任何人都可以加入进来。你最好能够习惯这种现状,因为编码已经成为了一种新兴的首要素养。当这个星球上的每所学校让10岁的小孩子都开始学习编程的时候,我们已经无法计算将会有多少开发人员进入到这个行业中。
我们这些,说好听点是有经验的程序员,需要的是接受当今社会这种一窝蜂学编程的现状。就像跑步,很多很多人跑步,但大多数人都是业余的,只有少部分晋升为专业的,而真正够资格参加奥运会的只有凤毛麟角。要想取得成功,那么你需要摒弃你大脑中有关软件的已经先入为主的观念,接受这种混乱的状态。
因为这种混乱的现状,所以软件世界不可谓不鱼龙混杂。人们已经再创造出了我们多年前就知道如何去做的事情。他们正在创造貌似多余的库。他们正在创造新的技术。可能不一定更好,但会比以前的办法更容易。
这是软件增长和发明的黄金时代,工具变得唾手可得。
为了不被这个行业踢出局,你需要重振旗鼓,和其他人竞争,哪怕他们比我们年轻30岁。我们这些老程序员也应该感谢年轻一代的程序员,是他们将我们的智慧,经验和知识添加到这些新的代码库和团队中,从而减少了混乱,并提升了新方向成功的机会。
因此,不要畏惧你看到新的流行词,也不要害怕明显的模仿发明,要学会透过现象看本质。学习强者的态度,学习他们的经验和学习方式。