码农这个词很早就有了,但我以为这只是程序员偶尔自黑的幽默,直到论坛、博客上越来越多人正儿八经地自称“码农”、“码畜”、“搬砖的”…

有人认为“码农”、“程序员”、“工程师”等等这些称谓大可不必过于在意,名称和真实情况是两回事。


不过我也比较介意别人叫我码农,可能本身并无恶意,但是感觉这个称呼实在配不上自己的工作创意与工作程度,就像我可以说自己是屌丝,但别人这么叫自己肯定不舒服。

举个对比的例子:
设计师VS美工
艺人VS唱歌的
心理咨询师VS路边算卦
财务计算VS收银
新媒体运营VS小编

程序员不是码农,码农也不是真正的程序员。不自称"码农"(或者其他乱七八糟的称呼),是希望大家对编程工作的价值有明确的定位和认知,对自己的工作更加审慎、严格。

在学习编程的初级阶段,可以偶尔调侃一下,但是总不能一直如此,这是对自己的尊重也是对编程的尊重。

01 三个单词看码农与程序员的区别

在英文中,“程序员”这个词有三个对应的单词:Coder、Programmer、Software Engineer。

Coder:运用自己熟练的语言在已有的编程环境写代码,按照既定的设计完成编码即可。

Programmer:精通算法、编码技巧和设计模式;精通几种编程语言、开发框架和开发库。能够独立编码,解决现实问题。

Software Engineer:了解业务知识,知道为什么这样子可以实现需求,能考虑框架的实现、开发成本、与产品经理沟通后顺利完成业务。

我知道要成为专业的程序员必须付出大量的时间和精力,我也知道现实世界是很残酷的,有很多人一开始就是做着“增、查、改、删”的工作,没有什么技术含量更别提高薪或者自己当初的理想与情怀了。


有很多人迷失在从Coder到Software Engineer转变的路上,最大的问题不是在学习和技术上,现在各种方法、理论、总结都有很多,我认为影响这个转变过程的在于能否做到对技术有热情。

“码农”和“程序员”,从称呼的角度来看确实不会对人产生影响,但是折射出来的是一个IT人对自身的定位和对职业是否有足够的热情。

有热情的IT人不一定会发展得很好,但没有热情的IT人基本都发展不好。

如果你的潜意识中认为自己处于低级职业、低级能力,对自身技术的追求得过且过,不主动学习新兴技术,那又怎么能有更好的职业规划、更高的收入呢?

慢慢地,他们开始变成了没有感情的cv机器,他们认为敲代码没有前途没有出路并拒绝和他人沟通,技术和业务能力停滞不前,对于他们来说码农真的就是吃青春饭的程序员。

02 为什么要做程序员而不是做码农?

举3个不太成熟的例子:

求2的32次方:

程序员:

System.out.println(1L<<32);

码农:

System.out.println(222222222222222222222222222…)

类属性定义:

码农:

public static int TYPE = 1;

程序员:

/**

  • 此策略下消息类型为全局类型,用以通知所有符合B05协议要求的处理者

  • …… ……

*/

public static int TYPE = MsgTypes.TYPE_GLOBAL;

交换两个数:

码农:

void swap(int &a,int &b)

{

int temp;

temp=a;

a=b;

b=temp;

}

程序员:

void swap(int &a,int &b)

{

a=a^b;

b=a^b;

a=a^b;

}


程序员更想把技术和业务融合

大多数码农就是软件的主体实现者。同千千万万农民工一样,他们只是软件大厦的缔造者。

也许他们熟悉或者精通几门语言,但是在商业上面并不熟练。

程序员则会希望把自己的创意、技术和业务相结合,创造出更容易被大众所接受的东西,对他们来说,利用技术所创造出来的产品才是重点,技术本身不是重点。

他们渴望把现有的产品做到行业领先,甚至创造新的产品从而改变市场规则。

程序员更注重深度挖掘

和被迫996不同,真正的程序员愿意为了把一个产品研发到最好的效果,心甘情愿地投入大量的精力和时间到公司的产品上面。

他们很乐意接触核心代码,并参与项目结构的设计,由于经验丰富所以具有技术前瞻性,能够未雨绸缪,对市场的变化与业界技术的更新及时做出反应。

他们经常在思索如何能够解耦,用灵动的设计应对突然到来的变更,当掌握某种代码的写法,他们看到的往往是背后深层次的问题,并向专业水准看齐。

程序员更无太多功利性

程序员的工作生涯中存在一个重要的节点,就是不再傻傻地问:“学习什么语言有前景?”、“我适合什么语言?”、“这个语言以后能赚钱吗?”

而是发散思维,从大局着手,开始考虑什么语言更加适合这个项目。

我知道生活高于理想,但是程序员们,我们需要知道当技术只为你的金钱、利益服务的时候,它就已经不再是技术了,而是一个谋生的工具罢了。

过于功利性地学习一门技术,渐渐地就会失去好奇心与兴趣,所追求的高薪和岗位只会越来越远。

一个真正的程序员并不需要什么语言都精通,但是他一定愿意从技术的角度与他人讨论一门语言、一个系统,当他保持学习技术的初衷甚至带一些自得其乐的精神,反而更容易得到别人所难以企及的东西。

程序员更加“叛逆”

一个“叛逆”的程序员,他愿意聆听你的想法但绝不会盲从,他会询问What和Why,而不仅仅只停留在How上面。

当程序员知道你的想法,他或许会开始和团队成员讨论,或许提出另一种不同的解决方案,从本质上节省公司的时间和资源。

Programmer能更快更高效地完成任务,他们抵制自己像流水线工人一样仅仅为了加班而加班,并能常常坚持自己的意见,对根据手机壳颜色改变app颜色这种不合理需求说不。所以产品经理和老板会感觉他们在挑战权威,有点叛逆。

软件的构建者是Programmer而不是Coder。如果你是一匹狼,而你有感受不到团队的认同感,那你不妨换一换环境,狼只有在狼群中才能得到自身的认同感,可能没有令他人羡慕的安稳,但是却拥有强大的自信、力量、尊严。

03 如何避免成为一个低级的码农?

1.不去不重视开发的公司

有一句话“选择比努力更重要”。每个公司的情况都不一样,有的公司不重视开发团队,或者要求开发者按照已有的既定模式工作,程序员们不需要什么创新点也不需要解决难题,跟着框架走就可以把项目完成。

在这种团队氛围中我们很难再强迫自己保持学习的驱动力,所以尽量避免去不重视开发团队的公司。

2.和热爱技术的人一起混

正所谓“近朱者赤近墨者黑”,如果你身边的人都是仅仅满足于工作内容,把奋斗挂在嘴边却又不作出任何实际行动的,不仅他们很难在这个行业中走远,而且你也会被带偏从而原地踏步。

所以切记和热爱技术的人一起混,通过关注他们来获取新技术,并通过他们激励自己。

3.主动承担一些大项目

如果你有机会在工作中参与一些大型项目自然是好的,没有比工作经验更宝贵的东西了。然而不是每个人都有资格去参与,所以如果你有时间的话一定要试着去开源社区参与大型项目,你甚至都不需要把它整个做完。只是在其中解决一些接口、编译器的问题就能让你学会很多东西了。

加油,奥利给!

开源社区网站放在这里了,大家有空可以上去看看:

http://www.gitee.com

http://www.gitee.com

4.关注行业动态

抓住行业动态是很重要的,对于70后来说,房地产是一个风口。那个年代的房价便宜,而中国的房地产发展突飞猛进,只要是进入房地产公司,或者说和房地产生意沾上边的,现在都富得流油。

对于80后来说,炒股是一个风口。1990年至1991年间,上海证券交易所和深圳证券交易所先后成立,上证A股从96点攀升至现在的2800点…其中的利润不言而喻。

对90后来说,最火的风口莫过于电商与编程,未来几年中,大数据、算法、AI都在向你招手,当你的技术已经成熟,做风口上的猪有何不可?

简言之,码农写的是代码,程序员写的是系统。工具正在替代人类的体力活,而“大脑思考”是最难被替代的“体力活”,一个好的程序员,不光只考虑怎么用代码实现功能,而要考虑整体、模块之间关系以及效率等问题。

只有通过这样逐步地积累经验和长时间锤炼,知识体系才能构建完备和丰富,才能避免沦落为码农,从而更好地做时代的弄潮儿。

最后

从Coder到Programmer再到Software Engineer,这不仅仅是三个单词,更是做编程的三种阶段。

在这个过程中我们要经历枯燥、挫折、迷茫,正是因为如此,所以我们才需要更多的创新与创意来与之抗衡。

无论我们正在经历哪一个阶段,请一定记住我们曾怀着好奇、尊重、热情,敲下的第一个程序:“Hello,World!”

那是所有程序员的初心:改变世界。

程序员和码农有什么不同?从这三个单词就看得出来相关推荐

  1. 恕我直言!千万别随便叫一个程序员为“码农”

    今天邻居家的大朋友找我做职业规划的时候,问了我一个很有意思的问题:为什么程序员会自嘲自己为码农? 这个问题也引起了我的好奇,不知从何时开始,这个圈子里不再以"软件工程师"自称,取而 ...

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

    常有人问,"那些只学了XX的人,编程能力都退化成什么样了?" 之前看到一个比喻,真的很赞同: 当土著拿到猎枪之后,他们射箭的技能退化严重,但因为食物更多了,厨艺有了长足的进展. 当 ...

  3. 2020程序员VS码农,“金三银四”春招指南

    从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大,但随着系统演进.越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂,牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为 ...

  4. 用一句话证明你是优秀程序员!码农们的这些回答也太大脑洞了吧!

    作为一名程序员,一名技术人员,每个人都想做最优秀的那个,但是优秀这个词大家好理解,但是却又很难量化,什么是优秀的?关于优秀又是什么样一个标准,想必每个程序员的内心都有一个自己的标准,有的认为则是成为公 ...

  5. 工程师、程序员、码农有什么区别?

    正常来讲工程师范围更加广泛,包括程序员,现在有硬件工程师,实施工程师,安装工程师等等都属于工程师的范畴,一般称呼程序员高大上的称呼软件工程师. 程序员这个称呼目前来讲最贴切,但是很多程序员又自称码农, ...

  6. 程序员如何看待码农这个称谓?

    "编程是快乐的,一切的最后,殊途同归,追求的都是心灵的极限." 就目前来说,绝大多数人对程序员的认识都非常非常的不足.这一点甚至包括很多程序员自己.他们每天消极悲观,被迫加班,找不 ...

  7. “野生程序员”加入码农战队!新业态+低门槛正让“写代码”走向平民化

    互联网上流传着这样一段关于 "野生码农"的描写:他们没有专业学历背景,仅凭对计算机开发的兴趣就可以进入这个行业成为一名程序员,从前端开发到后台维护都能一手包揽,最快的时间仅仅只需要 ...

  8. 写给立志做程序员(码农)的大学生

    作者: 果冻虾仁  来源: CSDN  发布时间: 2017-08-10 23:08  阅读: 32769 次  推荐: 158   原文链接   [收藏] 写给立志做码农的大学生 确定方向 选择比努 ...

  9. 你是开发工程师、程序员还是码农?

    Developers are from Mars, programmers are from Venus, so where are coders from? 不管是CPPer,Javaer,还是PH ...

  10. 如果30岁后普通的程序员(码农)被辞退,还能从事什么工作?

    虽然程序员一直被视为高薪且有前途的职业,但并不是所有人都适合它.而且,即使您是充满热情的程序员,在某些情况下也可能会被辞退.那么,如果30岁后普通的程序员被辞退,还能从事什么工作呢? 1. 转型IT领 ...

最新文章

  1. 点击后,过段时间cell自动取消选中
  2. 5 月书讯 | 程序员的历史课,是时候补补了
  3. 二、【SAP-PM模块】PM模块(含服务采购)组织架构
  4. Linux 命令(79)—— pidof 命令
  5. HTTP中ip地址伪造的问题以及解决办法
  6. 图像、视频等文件类型(拓展名)
  7. 迁移学习全面指南:概念、应用、优势、挑战
  8. NLP Prompt范式,两种主要类型:填充文本字符串空白的完形填空(Cloze)prompt,和用于延续字符串前缀的前缀 (Prefix) prompt。
  9. mysql的数据库的索引_MySql数据库索引原理
  10. SAS Planet软件介绍与使用教程
  11. wps计算机里wps云盘图标,我的电脑中的wps网盘图标怎么设置删除
  12. 遥感数据网站整理中......
  13. EEG- gan:用于脑电图(EEG)大脑信号的生成对抗网络2018
  14. 中继器、集线器;网桥、交换机;路由器及网关之间的区别
  15. 数据挖掘 第四篇:OLS回归分析
  16. 恢复被病毒强制隐藏的文件夹
  17. 14年磨一剑,蚂蚁金服全面开放有何阳谋?
  18. Android 文件打开方式
  19. Android开发之——银联支付初探
  20. 1546B AquaMoon and Stolen String

热门文章

  1. C/C++编程:#pragma once用法总结
  2. python 爬虫 中乱码问题0xb5 和b'\x1f\x8b\x08
  3. 数据收发过程中的网络设备状态
  4. Linux或windows输入中文顿号变成反斜杠 | Linux或windows中英文标点符号切换
  5. 线性回归--假设检验(F统计量、P-value)
  6. 计算机桌面文件夹消失了,电脑桌面文件不见了怎么恢复?再也不担心系统故障...
  7. 拉普拉斯变换和Z变换
  8. 非线性思维 -- 大前研一
  9. SpringBoot 2.X 整合 druid + dynamic-datasource 多数据源方案
  10. 适配移动端的html模板