程序员和码农有什么本质上的区别?

一个好的程序员不光只是考虑怎么去用代码实现功能,而是要考虑整体,模块之间关系,这个功能影响的地方有哪些,以及效率等问题。而码农就是只为了实现功能而去编码,没有认真思考这个功能实现的意义。

交换两个数

码农

码士

码农写的是代码,程序员写的是系统

从本质上讲,码农就是你让他写什么他就写什么的“机器人才”。所谓的码农大多通晓几门编程语言,但是却于商业上面并不熟稔。当然他只是不感兴趣而已,他想做的只是写代码。

科技的发展,往往是能有工具替代人类的体力活,而关于思维思想的工作,暂时或许并未在这些神奇工具颠覆的范畴内。在自动写代码工具面前,无论是码农还是真正的程序员,其实更多地应该是勉励自己不断学习,不断进步,而不应该在末日还没有来临就对自己的未来堪忧。

我和大牛之间有多少距离?

跟很多人一样,刚毕业时我觉得作为程序员,只要努力,加上少许天赋便可以获得一些成绩。

工作一段时间后,对自己和其他人的认识也越来越清晰,逐渐的发现程序员之间的差距或许比人和猴子之间的差距还大

码农是近几年网上流行起来的一个词汇,一般指程序员对自己的谦称或戏称。我们有时候也指那些只为实现功能而草草编写代码应付的一群程序员,他们工作缺乏主动性,求速度而不关注质量。

桌面应用界面开发:

码农:Swing/MFC/C#

黑客:CLI

2B程序员:VB(哈哈,不要怪我,我也做过VB项目,我没有偏见,不过关于VB的非议实在是太多太多了,连 Dijkstra都说,“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”)

经过大量的自学和努力,也转到了计算机行业,一直从事编程工作。要想达到自己的目的,必须踏实的奋斗,没有强大的发展背景,就老老实实的努力。然而,我以为转行到计算机,就代表着脱离农民的命运了。当然,这是大多数人的想法。而现实情况呢,并非如此。

虽然工作在体面的办公室,却冲在第一线。对于工作的实际情况,可以参考下面这张图:

与其说他们是程序员,不如说他们是数学家。他们发明了各种理论、算法和术语,教科书上那冗长的证明和计算也出自他们之手,其他的程序员都或多或少受益于他们的成果。

要成为优秀的程序员(geek),都是自己一步一步努力的结果,从不吹嘘自己多么多么能干,多么多么NB,他们很低调,甚至有时候有点闷。

之前写过一篇关于烂代码的文章,大部分烂代码并不是架构师的设计问题,如果程序员没能很好的理解设计或者是经验不足,往往会做出一些非常匪夷所思的东西。

架构其实是跟施工过程严格相关的,架构并不是一张扁平的图,而是一个立体的东西,作为整个系统工程的骨架。如果能在开发的时候看到这个骨架逐渐建立,血肉充盈的过程,对整个系统的成功把握一定会大得多,这也就是开发过程中架构管控的理念,具体实现要依赖于不同场景。

所以,将来的软件开发方案,一定是会朝着几个方向发展:

  • 高生产力,单位时间生产效率更高,普通人员也可以参与
  • 高可控性,整个生产过程更加完备可靠

每到过年时节,程序员在走亲访友的时候总会遇到类似这样的求助。

“那谁,我的电脑蓝屏了怎么回事?”

“那谁,我电脑开不了机了,一直卡在那不动,能帮我看一下吗?”

“那谁,我家里网络坏了,能帮我修下路由器吗?”

……

转载请注明:《程序员和码农有什么本质上的区别?