探寻代码民工的根本原因
2011-06-09 22:28
183 查看
受限于经验与知识,本来不想写这个话题,不过今天突然想到,用时间思考了这个问题,权将自己的观点写出来和大家交流,欢迎讨论。
“代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。
“代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。
这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。这里说的重复是指宏观上的重复,比如很多做通信产品的公司,他们的程序员往往要实现很多相似甚至相同功能的基础模块。
做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现在所处的阶段可能机械化时代之前,应该是刚刚脱离手工***砖头,要用手用一些低级的工具来***砖头,然后在将这些砖头改成房子——注意,是房子,不是大厦,我们现在的生产力还没有到达那种程度。不同的是,他们进行的体力劳动,而我们进行的脑力劳动。
我们现在的优势是,从代码民工向更高层的发展相对比较容易。只要你对编程充满兴趣,并且有成为优秀程序员的目标,努力学习,善于学习,你肯定能够成为一个有含量的程序员。当然,如果你选择编程只是为了获得一份薪水,感觉编程的过程枯燥无味,要获得发展可能会比较困难。
低生产力时代也有伟大的建筑——比如万里长城,金字塔,就好像我们现在有google,微软。
技术的原因,使代码民工的存在成为必然,因为底层的劳动总要有人来完成。要想解放他们的生产力,技术的革新是唯一的途径。这个过程是漫长的,而且也充满 了阵痛,就像机械化时代很多人面临失业一样——但总的趋势是好的。
如何提高生产力?工人需要强大的工具和大粒度的模块——也许盖一座大厦就像用使用工具将机械制造好的一层层的楼玩积木一样堆在一起就可以了。
程序员需要更强大的工具和更大颗粒度的封装。以后程序的开发可能会两极分化——底层程序员专注于构建强大的工具和更大颗粒度的封装,而高层的程序员专注于用户的业务需求,这个时候,他其实可以不被叫做程序员,或许叫产品设计师更合适——因为他们更多的是设计产品,而不是编程。
在一个领域工作多年后,会慢慢的发现,其实我们可以工作在更高的抽象之上,更粗粒度的封装之上,也许效率会更高。更高的生产力基于更加完善,更加强大的基础设施之上。个人感觉,DSL(领域专用语言(Domain Specific Language/DSL))也许是其中的一部分。为此,我为自己选择了一个模板,Martin Fowler,希望能够在同样的领域能够有所建树。
期待这一天的到来。
“代码民工”这个词可能是程序员的无奈的自嘲,也可能是自谦,反正来源已无法可考。
“代码民工”即是指那些编写程序、敲打代码的底层程序开发人员,是IT行业中干得最多、干得最累、却挣得最少的那一群人。
这其中可能有公司的原因,也可能有个人的原因,但我认为最根本的原因可能是技术的限制——技术的水平限制了程序员们的生产力。我们很多人都在重复的做很多的事情。这里说的重复是指宏观上的重复,比如很多做通信产品的公司,他们的程序员往往要实现很多相似甚至相同功能的基础模块。
做个对比,现在很多城市的工地上都可以看到建筑工人——相对于他们,我感觉我们的生产力远没有他们强。如果那建筑工人来做比喻,那我们现在所处的阶段可能机械化时代之前,应该是刚刚脱离手工***砖头,要用手用一些低级的工具来***砖头,然后在将这些砖头改成房子——注意,是房子,不是大厦,我们现在的生产力还没有到达那种程度。不同的是,他们进行的体力劳动,而我们进行的脑力劳动。
我们现在的优势是,从代码民工向更高层的发展相对比较容易。只要你对编程充满兴趣,并且有成为优秀程序员的目标,努力学习,善于学习,你肯定能够成为一个有含量的程序员。当然,如果你选择编程只是为了获得一份薪水,感觉编程的过程枯燥无味,要获得发展可能会比较困难。
低生产力时代也有伟大的建筑——比如万里长城,金字塔,就好像我们现在有google,微软。
技术的原因,使代码民工的存在成为必然,因为底层的劳动总要有人来完成。要想解放他们的生产力,技术的革新是唯一的途径。这个过程是漫长的,而且也充满 了阵痛,就像机械化时代很多人面临失业一样——但总的趋势是好的。
如何提高生产力?工人需要强大的工具和大粒度的模块——也许盖一座大厦就像用使用工具将机械制造好的一层层的楼玩积木一样堆在一起就可以了。
程序员需要更强大的工具和更大颗粒度的封装。以后程序的开发可能会两极分化——底层程序员专注于构建强大的工具和更大颗粒度的封装,而高层的程序员专注于用户的业务需求,这个时候,他其实可以不被叫做程序员,或许叫产品设计师更合适——因为他们更多的是设计产品,而不是编程。
在一个领域工作多年后,会慢慢的发现,其实我们可以工作在更高的抽象之上,更粗粒度的封装之上,也许效率会更高。更高的生产力基于更加完善,更加强大的基础设施之上。个人感觉,DSL(领域专用语言(Domain Specific Language/DSL))也许是其中的一部分。为此,我为自己选择了一个模板,Martin Fowler,希望能够在同样的领域能够有所建树。
期待这一天的到来。
相关文章推荐
- 探寻代码民工的根本原因
- 探寻代码民工的根本原因
- 探寻代码民工的根本原因 .
- 一有问题,就想依靠别人,这根本不能算程序员。真的是代码民工。
- 常见蓝屏原因及常见的28个蓝屏代码
- 软件开发者需做代码复查的五大原因
- servlet多线程的根本原因在于服务器端servlet是单实例的。
- symbian 开发常见错误代码及原因总结
- W3Help - 兼容性 - 根本原因
- 代码添加constraint,设置translatesAutoresizingMaskIntoConstraints为NO的原因
- c++程序执行时候,有的语句根本不执行的原因
- 定位决定地位---职业程序员未必就是代码民工
- Android R文件不能自动代码的原因
- 请在下面的代码片段中找出可能有错误或有安全隐患的地方,并写出错误的原因。
- 港交所常见拒绝原因代码
- 手机呼叫转移设置代码及无信号时仍然可紧急呼叫原因
- symbian 开发常见错误代码及原因总结
- [资源数据]合同终止原因代码
- Xcode定位crash代码,找出崩溃原因的配置
- 总结:如何写代码 代码民工 编程者---怎么写算是1万行代码?