首先需要普及一个常识:并不是写的代码越多,就离成为大牛越近。成为大牛和成为胖子是完全不同的,吃得越多,越快成为胖子;代码写的越多,越快成为大牛?这两个命题之间不存在因果关系,要成为大牛,光靠写得多,那是不可能的。出于好奇,我百度了一下这个问题,答案却让人大失所望,见下图:
恰恰让人感到悲哀的是,很多人认为写得多就能成为大牛。在我看来,简直可笑。工作三年以来,我写过的代码不少,连起来恐怕可以把地球包成粽子了。所以,我现在是大牛吗?很显然,我离大牛还有很大的距离。毕竟我曾经面试过阿里,腾讯,科大讯飞,百度,美团等大公司,无一例外都没有被录用。写了那么多代码,他们凭什么不录用我。
再来看看我每天都在写什么代码。增删改查,这是我写得最多的代码,我一天可以写好几个表的增删改查。最近用了一个jeesite的开源框架,类似的框架还有很多。这个框架有一个功能,可以进行代码生成。只需要设计好了表,增删改查的代码都可以生成,然后稍微改一下业务逻辑就完成了代码的编写。这样我写增删改查的速度大大提升了,从代码量上来看,我应该是个“大牛”。
最近我们公司开会发了一条通知,我觉得很可笑。研发部的总监跟我们说公司将把所有开发人员提交SVN的代码行数作为年终考核标准,当时我差点笑出声。项目的设计人员在选择技术解决方案,首先搭框架时提交的代码怕是就有几千行了。那他们肯定是SVN上代码量上的王者,这还有什么可比的呢?我每天生成的代码就有几百上千行了,那我的年终奖是不是能拿几十万呢?不过,公司将这个作为考核目标也有它的考量,毕竟代码写得多,涉及到的业务肯定也多,那么对公司的贡献肯定也是比较大的。
回到问题上来:写多少代码才能成为大牛?首先,我的答案是写很多的代码,不能让人成为大牛。那么是不是就可以不写代码了呢?这显然也是不可能的,程序员不写代码是绝对不会成为大牛的。这两者之间不是充要关系,但是却是必要关系。代码肯定是需要写的,写更多的代码可以让人快速从菜鸟变成经验丰富的程序员。那么成为大牛要写多少代码呢?要写什么代码呢?
首先,必要的代码量是前提。埋头写代码,一天几百行是不成问题的,一千行也能达到。但是,代码量不是越多越好,太多的话,质量肯定就不能保证了。因为很多代码都是复制,或者类似的,这类重复性的代码占据一天中代码的大多数。除了重复性的代码,我们还需要写一些特别的代码。它要么是能够解决一些复杂的业务逻辑,要么是一些基础功能的工具类,要么是一项特定的技术。
其次,多元化的代码是过程。增删改查这类代码确实无法避免,它是日常的主要工作,也是构成系统功能的主要逻辑成分。那么,除此之外,多元化的代码更有助于提升开发人员的技术。写一辈子的增删改查,只能让开发人员更熟练这一块的代码。在成为大牛的过程中,多元化的代码很重要。
再次,深度理解原理是保障。面试过程中,面试官最喜欢问的问题就是,spring的原理是什么?JVM的原理是什么?集合的原理是什么?一大堆原理问题,这让很多面试者很苦恼。都说面试造飞机,工作上螺丝。事实上,要成为大牛,这些远离深度的东西是必须要理解的。如果每次面试这些原理你都能巴拉巴拉一环套一环的解释清楚,那么拿到offer也是手到擒来的事情。
最后,解决问题的能力是根本。在大公司呆久了,自然会遇到很多技术上的问题。解决这类问题多了,也就积累了很多处理问题的能力,技术能力也在潜移默化中提升了。只有解决问题的能力提升了,人与技术才能结为一个有机体。就像武侠小说里说的无招胜有招,天人合一的境界了。
成为大牛并不是一个简单的事情,路漫漫其修远兮,吾将上下而求索。