野生程序员

一般情况下,什么样的程序员才算是野生程序员?这个恐怕任何人都难以说清,因为不同的人有着不同的看法,对于野生的定义并不一致。

不过,按照大部分人认为的野生程序员基本上都符合以下一项或多项:

  1. 变量名、常量名又或是函数名,命名方式独树一帜

  2. 代码风格迥异,一般人都看不懂,代码逻辑犹如野生般上蹿下跳

  3. 全局变量随处可见,各种地方都可能定义变量

  4. 随缘注释法或从来都不注释

  5. 写代码速度惊人,调试异常困难

  6. 代码几乎无可读性,除了他谁都看不懂 (: 时间长了他自己也看不懂

  7. 拥有强大的单兵作战能力,团队模式中拿着冲锋枪还不忘把队友的狙击枪也带着

  8. 为达目的,不择手段,能弄好就行 ( 维护?等到维护的时候再说吧

  9. 低级错误数不胜数:中英文字符混打、忘加分号、多打或少打一个字母

不过,我想说的野生并不只是这一种野生。
在 V2ex 看到一部分人在考虑要不要退学自己认真学习,多数人都会劝诫不要,还有少数人呢,会说想退就退吧,不过这部分人经常会被其他人针对。
原因很简单——学历,退学就意味着没有学历,那么他算不算是野生程序员呢?似乎并没有上面的情况,所以对于野生程序员的概念就得重新定义一下了。

很多人都认为,野生就天生差人一等。可能在某些方面是这样子的,比如协作方面、代码混乱等。但万物都是相对的,他学会的一些东西可能是你接触不到的。
比如,调试代码时出现某种奇怪的异常,对于这种异常,恐怕也只有野生程序员处理起来才能得心应手。
而且野生并不是意味着没有经过系统的学习,只是没有一个人引路罢了。他所缺乏的是一节理论课来梳理心中的困惑?又或是一个项目来总结自己的经验?
当然,也有可能水平的确较低。
我并不是觉得野生程序员比科班出生的能力要强,事实上没有可比性。

对于同一个人,四年的时间去上大学和四年的时间去跑野路子,可能差距会很大,并不是所有人都能够把野路子跑的很好,也就是说并不是所有人都适合野生这条路。
我认识一个大陆湘的女孩子,她初一的时候辍学了,然后凭借着自己对游戏的爱好开始跑野路子。初一就开始了,够野吧?
她现在是团队里的审计(并不是企业的团队),负责代码审计,平时大家都只是闲聊,有值得研究的东西的时候就会都去瞧瞧。
相信做过代码审计的都知道,并不是写得出代码的人就一定能找得出问题,因为思维方式不一样,但是找得出问题的人一定可以写得出代码。
她路子野到除了很小众的语言,其他的都至少有所涉及,而且都做得很好,起码比大多数公司的审计做得都要好。

野生程序员都会有其独特的优势,但就像大家所遇到的情况,野生程序员和正规军一起战斗,就会显得野生程序员能力低下了。
这就好比是,你把老虎当成宠物狗在养,你怎么看它都不顺眼(其它狗都那么萌,你怎么就那么懵呢),而他也会觉得你不顺眼(照你说的,我活着都是一种错误)。
当然,并不是推荐大家去做野生程序员。
我所认识几个的圈子里,野生程序员往往是因为一些原因没能力去上学的,还大部分性格和我差不多————古怪。这样才铸就了他们的野性,让能力得以发挥。
一般人还是去读书吧,起码比野生好混的多,由他们都是做安全的就可以看出来。