代码民工--------不加思考的重复劳动是其宿命的根源
2011-06-16 02:08
495 查看
受限于经验与知识,本来不想写这个话题,不过今天突然想到,用时间思考了这个问题,权将自己的观点写出来和大家交流,欢迎讨论。
“代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。
“代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。
这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。这里说的重复是指宏观上的重复,比如很多做通信产品的公司,他们的程序员往往要实现很多相似甚至相同功能的基础模块。
做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现在所处的阶段可能机械化时代之前,应该是刚刚脱离手工制作砖头,要用手用一些低级的工具来制作砖头,然后在将这些砖头改成房子——注意,是房子,不是大厦,我们现在的生产力还没有到达那种程度。不同的是,他们进行的体力劳动,而我们进行的脑力劳动。
我们现在的优势是,从代码民工向更高层的发展相对比较容易。只要你对编程充满兴趣,并且有成为优秀程序员的目标,努力学习,善于学习,你肯定能够成为一个有含量的程序员。当然,如果你选择编程只是为了获得一份薪水,感觉编程的过程枯燥无味,要获得发展可能会比较困难。
低生产力时代也有伟大的建筑——比如万里长城,金字塔,就好像我们现在有google,微软。
技术的原因,使代码民工的存在成为必然,因为底层的劳动总要有人来完成。要想解放他们的生产力,技术的革新是唯一的途径。这个过程是漫长的,而且也充满 了阵痛,就像机械化时代很多人面临失业一样——但总的趋势是好的。
如何提高生产力?工人需要强大的工具和大粒度的模块——也许盖一座大厦就像用使用工具将机械制造好的一层层的楼玩积木一样堆在一起就可以了。
程序员需要更强大的工具和更大颗粒度的封装。以后程序的开发可能会两极分化——底层程序员专注于构建强大的工具和更大颗粒度的封装,而高层的程序员专注于用户的业务需求,这个时候,他其实可以不被叫做程序员,或许叫产品设计师更合适——因为他们更多的是设计产品,而不是编程。
在一个领域工作多年后,会慢慢的发现,其实我们可以工作在更高的抽象之上,更粗粒度的封装之上,也许效率会更高。更高的生产力基于更加完善,更加强大的基础设施之上。个人感觉,DSL(领域专用语言(Domain Specific Language/DSL))也许是其中的一部分。为此,我为自己选择了一个模板,Martin Fowler,希望能够在同样的领域能够有所建树。
期待这一天的到来。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chgaowei/archive/2011/06/09/6535199.aspx
“代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。
“代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。
这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。这里说的重复是指宏观上的重复,比如很多做通信产品的公司,他们的程序员往往要实现很多相似甚至相同功能的基础模块。
做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现在所处的阶段可能机械化时代之前,应该是刚刚脱离手工制作砖头,要用手用一些低级的工具来制作砖头,然后在将这些砖头改成房子——注意,是房子,不是大厦,我们现在的生产力还没有到达那种程度。不同的是,他们进行的体力劳动,而我们进行的脑力劳动。
我们现在的优势是,从代码民工向更高层的发展相对比较容易。只要你对编程充满兴趣,并且有成为优秀程序员的目标,努力学习,善于学习,你肯定能够成为一个有含量的程序员。当然,如果你选择编程只是为了获得一份薪水,感觉编程的过程枯燥无味,要获得发展可能会比较困难。
低生产力时代也有伟大的建筑——比如万里长城,金字塔,就好像我们现在有google,微软。
技术的原因,使代码民工的存在成为必然,因为底层的劳动总要有人来完成。要想解放他们的生产力,技术的革新是唯一的途径。这个过程是漫长的,而且也充满 了阵痛,就像机械化时代很多人面临失业一样——但总的趋势是好的。
如何提高生产力?工人需要强大的工具和大粒度的模块——也许盖一座大厦就像用使用工具将机械制造好的一层层的楼玩积木一样堆在一起就可以了。
程序员需要更强大的工具和更大颗粒度的封装。以后程序的开发可能会两极分化——底层程序员专注于构建强大的工具和更大颗粒度的封装,而高层的程序员专注于用户的业务需求,这个时候,他其实可以不被叫做程序员,或许叫产品设计师更合适——因为他们更多的是设计产品,而不是编程。
在一个领域工作多年后,会慢慢的发现,其实我们可以工作在更高的抽象之上,更粗粒度的封装之上,也许效率会更高。更高的生产力基于更加完善,更加强大的基础设施之上。个人感觉,DSL(领域专用语言(Domain Specific Language/DSL))也许是其中的一部分。为此,我为自己选择了一个模板,Martin Fowler,希望能够在同样的领域能够有所建树。
期待这一天的到来。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chgaowei/archive/2011/06/09/6535199.aspx
相关文章推荐
- 用java的文件流功能来简化修改代码的重复劳动
- 不要企图用重复的劳动代替艰苦的思考,那样永远没有进步
- FPGA的冷思考:如何摆脱只会看代码而不会写代码的宿命?
- 告别重复劳动,重复思考
- 代码生成 避免重复劳动 省时省力
- 关于代码中写日志的一些思考
- 聊聊成为大神路上的过程(关键因素是[刻意练习]的程度,简单重复没有用,要多看别人的代码)
- 工作思考+ python 筛选删了你的朋友代码
- 软件:防止代码变质的思考与方法
- 【送给新手】重复代码解决示例二
- 对变量重复定义的恶习!!!!!!!!!!!!!!!!(以自编插入排序代码为例)
- PHP防止刷新重复提交页面的示例代码
- 最简洁的代码 求字符串中无重复的子串
- 用flask开发个人博客(11)—— 模板中代码的重复使用
- 如果消除重复代码?从Timer和TimerTask的封装说起
- 《算法导论》笔记:第2章 思考题2-4 求逆序对(代码)
- python文件去除重复的代码示例
- **请写出一段Python代码实现删除一个list里面的重复元素
- 关于代码测试的几点思考
- php使用类继承解决代码重复的问题