如果一个企业老板大声嚷嚷说,“我要招个程序员”,那么十之八九指的是“码农”——一种纯粹为了钱而写代码的技术人员。这其实是一种非常狭隘和错误的做法,原因么,且听我一一道来。
1、码农写代码,程序员写系统
从本质上讲,码农就是你让他写什么他就写什么的“机器人才”。所谓的码农大多通晓几门编程语言,但是却于商业上面并不熟稔。当然他只是不感兴趣而已,他想做的只是写代码。
求2的32次方:
码农:
System.out.println(Math.pow(2, 32));
黑客:
System.out.println(1L<<32);
2B程序员:
System.out.println(2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2);
对未来另一半的选择
程序猿:有情调,懂生活,寻找性格匹配的另一半,毕业没几年就过上老婆孩子热炕头的生活。
2b程序猿:生活在自己的幻想中,梦想有一天能找到一位天仙作为老婆,至今仍形单影只。
笔记本电脑
码农:
黑客:
2B程序员:
如何辨别一个程序员水平的高低?
给他安排debug的任务,最好是崩溃问题或性能问题,观察他面对大量复杂的代码,在信息不全的的情况下,看他怎样一步步抽丝剥茧缩小范围,最终定位根本原因,并且给出一个不错的fix。
如果能独立完成工作,那么以后必然成为高手。
如果经过少量提醒点拨也能完成,以后会是个不错的程序员。
如果需要不断提醒,只能按照我给的思路去反复测试调查,那么只能说是个踏实肯干的人,但天赋不高,可以委派些普通任务。
如果以上皆非,我基本就放弃对他的治疗了。
之所以选崩溃或性能问题,因为这种问题没什么玄学,行就行、不行就不行,结果好验证。
这种问题很考察基本功,可能对操作系统,语言,编译链接器,内存,进线程,网络,存储,图形学都要有深刻理解,也很考验逻辑推理能力,在一堆证据中构建合理的证据链推导出最终结果,懂得大胆假设小心求证的工作方法,也考察耐心和毅力,有的问题需要构建复杂的测试场景,还要反复多次测试才能重现,考察沟通能力,复杂的bug可能涉及多个部门开发组,可能还要对最终用户做访谈。
根据百度百科释义,码农是一个依靠写代码为生的群体,表现在:低收入,工作时间长,这种职位只能强化职业者在单方面的技术领域技能。如果按照从业者们将自己自嘲为码农的表现,那么码农的程序员分级中理应只属于初级程序员,是属于依靠复制粘贴将各类代码链接的IT从业者。
这个群体的数量有多少呢?大学计算机相关专业的同学们、大中专软件专业学习者、毕业不久的程序员、广大编程初级爱好者。这一群体庞大的数量,让码农很难在IT世界中拥有不可替代的价值。
在自动写代码工具面前,无论是码农还是真正的程序员,其实更多地应该是勉励自己不断学习,不断进步,而不应该在末日还没有来临就对自己的未来堪忧。人类是世界上最高级的动物,大脑所具备的思维能力就是其能够成为最高级的关键,在编程领域,或许只要人类肯学习,愿意提升自己的思维能力,形成自己不可替代的价值还是有机会的。自动写代码颠覆的是码农而不是真正的程序员!(这里指学习能力不够强、思维能力不够强的初级程序员。