不知道从什么时候开始,“码农”这个名字,就成了程序员、软件工程师的泛指,指代“写代码的农民”。
为什么有这个说法?因为互联网的发展实在是太快了,有各种各样的软件开发需求,程序员就变得越来越稀缺,工作量也越来越大,导致这不得不疯狂的加班。苦逼的程序员们工作压力大,经常到各大网站和媒体自嘲,逐渐就形成了“码农”这个说法。
工程师、程序员、码农
要说起码农就不,就必须得说出他的几个近义词。
码农->程序员->软件工程师->架构师
这可能在外行人的眼里,这些都是差不多称谓的职位,没必要搞清楚,直接呼唤“码农”还来得直接了当。
而实际上,其实他们都是不一样的。
比如说码农,寓意“写代码的农民”,指那种就是写着重复代码,不需要经过太多思考的程序员。这很多假如一直停留在这个阶,写着重复不需要过多思考的代码。
程序员,就是一个写程序的人,他跟写代码的人有什么区别?写代码的目的,就是为了制造一个程序,程序的维度去考虑这个事情,那就变得不一样。
比方说,初学入门者,关注的是代码,而稍有入门的人,则考虑的是“程序”,只是在逐渐培养出大局观。
软件工程师,这算是比较正规的称谓。软件是由程序而组成的,当然近年“软件”这个词,已经逐渐变得不常出现了,大家都更新喜欢用“app”这个叫法,而“app”其实就是application,就是程序。
软件是产品化的程序的泛指,“工程师”,则体现了软件开发的本质,它是一种工程,是一种需要将事物结构化组织的工作。
此外,还有架构师。因为软件的开发,是一种“工程”,将各种不同的事物进行结构化组织。当这项工程变得庞大时,它就不再纯粹的只是工程了。
为什么会有架构?这要怎么理解?其实在小霖看来,我们生活中几乎所有的事情,当发展到一定的阶段时,它就会出现架构。
你比方说,一个团队,它只有2个人,工作沟通很方便。但当一个团队变成20人,200人,它就自然而然的产生“组织架构”。
从代码、程序、工程、架构,对应到码农、程序员、软件工程师、架构师,这是层层维度递进的关系。
这种递进关系,放在真实世界的很多地方,都有着相同的逻辑。
与真实的世界
假设我们要建起一栋楼房,就需要有建筑设计师,需要建筑公司,需要施工队,还有粉刷匠。
这就像软件行业,要做出一个软件(app、网站等),就需要有产品设计师、架构师、软件工程师,和码农。
我们并不会说建筑设计师,等同于粉刷匠,但却很多人把从事软件开发的人员,称作“码农”。
那只是因为目前,软件还没有达到那么的成为大众标准化的行业,很多的大众认知,还没有正确的形成。
同样的,在设计界也有类似的维度递进,像艺术家、设计师、美术、美工。
只要是在缔造一些新的东西的人,都会有这么一个层次划分。
所以,你会喊一个建筑设计师成粉刷匠吗?并不会。
码农之“道”
其实,程序员们其实并没那么忙。
程序员有最好的工作环境,安全、健康,低甲醛,无粉尘,无噪音,甚至——还经常有时间在网络上抹黑自己。
你会发现,很多程序员的苦逼,都是程序员们自己在网络上公关出来的。
一天下来,偶然上上网,刷刷微博,也不用跟人撕逼,下班打打游戏,多么的写意。
多出来得时间,再在各大社交媒体上自嘲一下自己。
然而,码农的工作量大,是不争的事实。但这工作量的大小,跟“架构师”是相当有关系的。
软件开发中,一个好的软件架构,对工作量的影响,是可以有成百倍的差距。
不同人对同一个词语有不同理解,有的人觉得,“码农”代表着高薪,有的人却觉得,“码农”代表着苦逼加班。
但不得不否认,互联网技术,正在缔造一个新的世界。
也许今天的农民,会是未来世界的新主人。