你是一名黑客还是开发者
来源:互联网 发布:阿里云数据库怎么用 编辑:程序博客网 时间:2024/05/16 14:54
本文翻译自:http://www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html
二十年前,最好的编程者是可以将整个APP编程64KB大小的人。这些能够从有限的intel80386处理器上运行到最大性能的人是编程界的牛人。
这是因为在二十年前,计算机是昂贵的编程者却要便宜得多。那是一个“黑客思维”主导的时代,但时过境迁,现在已经不一样了。这个思维现在已经不再有价值,因为市场已经完全反转过来了。
如今,计算机变得便宜,开发者的价值增加。当代码的可读性比性能显得更重要时,就已经是“开发者思维”的时代了。
价格VS薪资
看下这个图,它是在过去的20年(1994-2014)的两个趋势对比图。两个下降的曲线显示了计算机的内存和存储硬盘已经变得很便宜了。
另一个趋势是同一时期开发者的薪资水平,精确地说,是三倍的增长。关于这个,我没有找到官方的报导,但确定的是,作为开发者的每个人心里都有数的吧---对于一个初级的开发者来说年薪$200,000已经不再是梦,而二十年前$60K已经是最好的报酬了。关于这个问题这里有一篇有意思的文章。
基本上,这意味着在1994年为了建立一个PHP网站,相对于2014年,需要1000倍的硬件开销和少于3倍的开发者开销。这只是一个比方,linux方面的Apache HTTP服务器开发也如此。
不同之处在于,如果APP有性能上的问题,1994年会位每1G的RAM花费$35,000,而2014年是$10。
1994年雇佣更多的开发者去优化甚至是重写代码比买一个新的硬件要更合适,现在却正好相反。现在一个两倍大的服务器(如果服务器是虚拟的云端的话更甚)也比位优化代码的开发者付薪水要更便宜。
1994最好的工程师是“黑客思维”的,现在“开发者思维”更加适合。
黑客思维
黑客思维的的人会把下面用java写的斐波那契算法的代码成为“优雅的代码”(你呢?):
public int f(int n) { return n>2?f(n-1)+f(n-2):1; }
下面是我总结的黑客的特点:
使用编程语言所有著名或不著名的特性:
歧视其他的黑客或新手
厌倦规则和标准
不写单元性测试
喜欢解决问题– 展现他们的天分
更喜欢讨论而不是写文档
不喜欢代码被别人修改
喜欢一个时间段只沉迷于一个项目
黑客是一个有才华的人。他想在自己所写的代码中表现其过人之处,因此他大多时候是从中获取乐趣。我想说,他其实已经是和代码结婚并且无法想象自己离婚后还怎么快乐的生活了!
因此,代码的所有权是仅属于黑客的。
当我问我的一个黑客朋友——“别人怎么理解这些代码的意图呢?”,回答总是——“问我”(说这句话时他们总是带着真诚的微笑,并且非常自信)。
开发者思维
开发者思维表现在会将上述代码更具有可读性。所以下面的代码才会被认为是“优雅的代码”(你呢?):
public int fibo(final int pos) { final int num; if (pos > 2) { num = fibo(pos - 1) + fibo(pos - 2); } else { num = 1; } return num;}
一个好的开发者的特点是:
趋向于使用传统的变成技巧
会假设每一个人都是初学者并依此来编程
喜欢制定规则并遵循
喜欢文档而不是讨论,通过文档来实现自动化(如果有问题,看文档就行了,不需要来问我)。
大多数时间用来进行单元测试
讨厌问题并且依据时间来工作
乐于自己的代码被修改或重构
同一时间参与几个项目
开发者更适合团队工作。他在编码的同时,可以为团队提供进度,标准,规则,培训和准则。并且会在离开后让自己的工作和思想继续发挥作用。
开发者最乐意看到的就是自己的代码“独立生存”——被修改,提升,重构甚至退出使用。他将自己看做代码的父母——一旦长大,就要自己独立生存。
未来
如果你认为自己是一名黑客,那是时候改变了,因为黑客确实已经是过去式了。
在不久的将来,我们甚至不在考虑硬件的存在,将我们的APP运行在具有无限内存,CPU和存储容量的动态变化的计算平台上了。我们会为使用的硬件资源付费,并且如果需要性能提升也仅仅是额外的在月支出上增加几美元而已,而不需要再去优化硬件了。
同时,好的软件开发者会越来越有价值,检测一个软件并给出方案的小时费用就可以达到$500,就像现在的律师和牙医那样。
这就是为什么现在更注重软件的可维护性。投资者会认为,他们的钱用在一个具有可读性,可维护性和自动化的软件上,会有更好的回报。
而不是最快的。- 你是一名黑客还是开发者
- 【操作系统PK】作为一个开发者,你选苹果还是机器人?
- 你是一名骇客还是工程师?
- 作为一个开发者_手机系统你站队苹果还是机器人?
- 【深度】程序员、黑客和开发者的区别
- 开发者的弥天大谎还是至理名言?
- 《MVC模式、类封装还是黑客代码》
- MVC模式、类封装还是黑客代码
- MVC模式、类封装还是黑客代码
- MVC模式、类封装还是黑客代码
- 微软有内鬼?还是黑客太高强?
- 态度还是技术 黑客到底是什么(一)
- 欢迎你,phpWeChat 开发者
- 玩你还是爱你?
- 你还是原来的你
- 你为什么还是穷人?
- 爱的还是你
- 为什么你还是穷光蛋?
- c语言关键字--static
- EasyUI 中datagrid 点击表头进行排序
- smartSVN 分支合并到主干上,iOS 编译时链接错误
- EM算法的证明
- 基础样式
- 你是一名黑客还是开发者
- win环境下实现导出protobuf文件的lua版本
- Matlab 中 imshow() 的使用问题
- 模拟赛 感冒病毒(时间限制:1s;空间限制:256MB)
- iOS开发之保存图片到手机相册
- nyoj722数独
- java网络编程
- java的UDP通信
- 【转载】数学之美番外篇:平凡而又神奇的贝叶斯方法