从“码农”说起——软件工程师
转载参考自1
当很多自称软件开发人员的人不断提到程序员已经逐渐成为“码农”的时候,我想我还是想说出我的想法。这想法未必多么新锐,但是对于那些渴望从各种伪经验和各种吹水中看到一点真知的年轻人,应该还是有点意义的。谈论一个事情的各个侧面不是我今天长文的目的,我的目的其实是想对那些刚刚进入或者是正打算进入这个行当,心存敬畏,并且想好好干一番事业来的年轻朋友们说点我的真心话。
“码农”这个称谓,原本是程序员用来调侃自身待遇的称谓,因为感觉在这个花花城市(程序员的工作一般都位于大型城市) 里,和自己同样学历的金融、财务方面的就业者都有着比自己高的收入。这样的自嘲有时候也是针对所作项目的不满,有些项目因为各种各样的原因,进展艰难,所以让程序员觉得一直裹足不前,看不到明确的发展方向,犹如反复耕耘同一片一亩三分地的农民,而由此自称“码农”。
这个称谓流传到了程序员的圈子外面,很快得到了传播,所以社会上也逐渐以“码农”来形容程序员,一开始总有点调侃和不屑,到后来,舆论逐渐转向同情。
有人说软件行业正在变成“劳动力密集型产业”,我是不同意用“人力成本”来表述一个依赖创意的产业的,至于“好的软件是测试出来的”这样的屁话我也已经耐心的反驳过了。
这个行业的确存在很多重复劳动,因为大家都不愿意购买或者说获得授权使用别人的成果,很多工程之所以劳师动众,很大程度上是因为无法借鉴或者舍不得购买前人已有的算法成果和有效的代码模块。这就好比造汽车的企业明明没有发动机的研发功能,却不想花钱采购发动机。你看,这在实体产业中是可笑的,但是在软件行业中,却是常常出现的现象,尤其是当企业领导或者项目经理拥有一个其他行业的背景的时候。 很多人的说法是,反正别人能写出来,你为什么写不出来?问题是,已经有高人写出来了,为什么我这个菜鸟还要写,而且拿着这么低的工资却要求我写出天才的代码?
这个行业的确存在很多的外行领导内行,前面说的企业领导或者项目经理的问题是一种情况,更为普遍的是,大家觉得软件是无所不能的,所以软件开发者也应该是无所不能的,不遵循软件开发的规律,不激发开发人员的创造力和协作配合精神,以为强调纪律就是一切。
这个行业里面有一大堆不合格的人。很多人是半路出家,很多人就是大忽悠,可以吹牛,但是编程水平太差,很多人根本不会查文档,很多人完全不喜欢这份工作,巴不得这是一份不费脑筋,每天到点下班、每月按时拿钱的近乎前台的工作。
所以,软件行业其实也是中国社会的缩影,或者说各个行业都是中国社会的缩影,而软件行业体现的是中国社会组织性和人性的某些特定层面。知识产权神马的, 这个问题这里就不多说了。
一个正常的市场经济里,有创意,有技术的人,都是能够得到回报的,如果一家企业,一个组织不能满足你,你可以选择创业,可以选择跳槽。现在我们的社会还远远没有到软件供过于求的状态,反而是大量的需求得不到满足,大量的社会协调缺乏软件技术的协助。保持好心态,做有意义的事情,迎接未来。
软件的灵魂是数学和逻辑,开发过程本身就是一种创造,一种与数学逻辑的对话。
我觉得在团队合作中,编程规范是极为必要的,用约定的编程规矩来撰写程序是开发者应该共同维护的良好开发氛围。但这就是所谓纪律的边界了,纪律的覆盖范围,不应该逾越这个边界。
这些年敏捷开发、结对编程等新兴软件开发模式的兴起,从一个侧面强化了我的这种认识,那就是:软件工作的重要方式,就是创造一个可以酝酿好点子的环境,让好想法源源不断的产生出来,形成代码。软件活动应该回归本源,就是激发有创造力的人性。
按照这个思路,我常常建议一些嵌入式软件工程师能够在工作之余学习一下java,学习一下脚本语言,awk也行,tk也行,perl也行。很多人会很诧异,觉得自己面向硬件,甚至面向驱动,为什么要学习那么多表示层的东西?在软件工具已经逐渐丰富起来的现在,底层代码是完全可以通过脚本语言帮忙处理的,大量繁重的比对工作和代码迁移工作完全可以用脚本来执行,高效而且准确。
单纯从项目开发的效率来讲,团队里面有这样的软件多面手,有能够提出这样想法的人,比一个外行领导者对于开发者纪律性的要求要有意义,也有效的多。
感慨:“真正做可靠的嵌入式软件开发,就应该是架构设计配合代码生成工具,资浅程序员的工作就是一边做点小修小补,一边学习架构,这样利于成长,也对项目进展最有利”。
遇到不合理的机制和团队,其实及早离去比说服教育更有意义。
遇到感觉不合理,却又能够取得成绩,能够生存的机制,我常常会感慨其实人性的复杂超出我的想象。
社会问题和教育问题,提出来大家聒噪一番,然后归于沉寂,没能解决什么,只不过搞坏了心情,耽误了时间。
社会责任的确需要有人来肩负,但是主力军不应该是技术人。技术人的专业是技术,不要以为技术思想就能解决各路问题,技术思想在实际工作中连销售问题都难以解决,还是不要盲目以为技术思想能胜任很多不同领域的东西。
“纪律性”这个概念,如果纯粹只是外行们嘴里的外行话,其实完全可以忽略无视;但是当很多从业者,技术人自己也开始接收和崇拜这个概念时,就值得警醒和反思。仅此而已。技术人毕竟是做技术的,做技术其实是需要创造力的,这就是我想说的。
至于其他的很多牵扯,生活原本复杂,我不太建议总以条分缕析来面对生活,有点空闲给自己就好。
写文章,目的如果是为了自己的观点滴水不漏,其实就会变成空洞的说教。
我写我所想,有些局限是如今的我可能突破不了的,而如今的我又确实在过去的我的基础上做了哪些突破,把这些写清楚,我觉得就够了。
http://www.wowotech.net/tech_discuss/111.html ↩︎
从“码农”说起——软件工程师相关推荐
- 蜗牛学院:你是码农,还是IT工程师?
IT界知名的段子手曾说:对于那些月薪两万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍. 他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了. 此话一出,不知激起了多少 ...
- it工程师和码农的区别_你是码农,还是IT工程师?
IT界知名的段子手曾说:对于那些月薪两万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍.他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了. 此话一出,不知激起了多少小 ...
- it工程师和码农的区别_工程师和码农的最大区别在哪
工程师和码农的区别并不在于技术水准的高低. 工程师注重解决问题. 工程师勇于承担责任. 工程师善于控制进度. 工程师能够自由沟通. 工程师知道如何合理安排时间. 工程师明白实现的功能有什么意义. 工程 ...
- 资本寒冬下一个有娃漂亮女码农--应聘高级Android工程师历程感言
热文导读| 点击标题阅读 互联网寒冬下,程序员如何突围提升自己? 腾讯新开源一吊炸天神器-零反射全动态Android插件框架正式开源 走近后厂村程序员的真实生活:拿命换钱 来源:潇潇凤儿 原文链接 ...
- 别做码农了,去做一名工程师
web前端教程 用大白话,来讲编程 作为软件开发者,小伙伴们都听过这样的词汇:工程师,程序员,码农. 今天前端君就和大家来聊一聊这些词汇的区别.很多新手不以为然,看上去似乎没有什么区别,甚至不过是一些 ...
- 从码农到工程师:只要做到这6点
许多程序员自称码农,因为每天事情总也做不完,而这些工作也没有给自己带来职业上的提升,总在原地打转,自己的工作似乎随时可被新人替换,可有可无.于是,年轻些的考虑着转管理或者转行,年纪大些的则被所谓的40 ...
- 从码农到工程师,只要做到这六点
许多程序员自称码农,因为每天事情总也做不完,而这些工作也没有给自己带来职业上的提升,总在原地打转,自己的工作似乎随时可被新人替换,可有可无. 于是,年轻些的考虑着转管理或者转行,年纪大些的则被所谓的 ...
- 陶辉笔记:从码农到工程师
版权声明:陶辉笔记https://www.taohui.pub https://blog.csdn.net/russell_tao/article/details/80026253 许多程序员自称码农 ...
- 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...
相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的"叛逆者" 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准 ...
最新文章
- AbstractQueuedSynchronizer 原理分析 - 独占/共享模式
- word2vec模型评估_特征工程(下)—特征评估
- web前端数组塌陷的解决办法
- tomcat 、jsp、 servlet 、jstl版本对应
- windows下部署免费ssl证书(letsencrypt)
- win10 使用ssh连接服务器 ‘’Bad owner or permissions on C:\\Users\\Administrator/.ssh/config‘’
- javascript 页面跳转大总结
- 控制流(swift)
- Java实现文件上传到服务器(FTP方式)
- E20170618-hm
- 【C++ Primer】第十四章 C++中的代码重用
- 一个在职的软件测试的日常工作是怎么样的?
- Storm原理及单机安装指南
- Android测试之Robotium自动化测试框架
- 计算机教案 认识键盘,《认识电脑键盘》教案
- 电脑XP系统最大支持多大内存?
- 什么是嵌入式?嵌入式技术应用领域
- java语言就业方向_Java的就业方向有哪些?
- Ogre3D基础教程一
- 笔记本重装系统后声音图标显示红色×号