阅读更多

4顶
1踩

行业应用
20年前,最好的程序员是那些能够把整个程序装配进一个64Kb的.COM文件里的人。那些对Intel 80386掌握最多的人在编程中是偶像般的存在。

那是因为在20年前的计算机昂贵了而程序员廉价。那是黑客情怀的时代。那个时代已经过去了。那种情怀现在已经不被赞赏了,因为市场状况已经完全相反了。

现在,计算机变得便宜而程序员变得昂贵了。当下的时代是设计师情怀的时代,如今我们代码的可读性比代码的性能更为重要。

Hacker and designer mentality

视频地址:https://www.youtube.com/watch?v=qdqcayTLlLk

硬件价格 vs 工资

看这个图表。这是最近20年来(1994-2014)两者的对比趋势图。第一种曲线呈现下降的趋势并表明了计算机内存硬盘储存器在近20年来变得很便宜。



第二种曲线趋势演示了在同一时期软件开发者工资上涨了多少。精确点来说,大概是第一种的三倍。我没有找到一个关于这两者对比的正式报告,但是可以肯定程序员的工资还会增长,这对任何人来说已经不是什么秘密了。对于高级开发者来说,年薪200,000美元不再只是个梦想。然而在20年前,在周围的人中,年薪60K美元已经是最好的报酬了。我发现一篇关于这个话题的非常有趣的文章。

基本上,这意味着在1994年为了开发一个PHP网站,我们不得不花费比现在(2014年)1000倍更多的资金在硬件方面和比现在(2014年)3倍更少的工资给开发者。然而我们还是在这讨论一样的堆栈技术。使用一样配有Apache Http服务器的Linux机器。

不同之处,在1994年,如果我们的应用因为硬件资源限制出现了性能问题,我们每次添加1G的额外内存需要支付35,000美元,而在2014年,我们只需要支付10美元.

在1994年,相对于购买新的硬件,去聘用更多的程序员并要求他们去优化代码或者重构代码的收益更大。在2014年,实际上情况恰恰相反。现在,花钱去把服务器的规模扩大两倍比花钱聘用程序员来优化软件更便宜。(特别是当服务器是虚拟云服务器时)

在1994年最好的工程师拥有“黑客情怀”,而在2014年“设计师情怀”更受欢迎。

黑客情怀

拥有黑客情怀的人会认为这个输出斐波那契数列的Java方法是一段“优雅的代码”(你吗?):
public int f(int n)
 {
      return n>2?f(n-1)+f(n-2):1; 
}

我列出了一个优秀黑客应有的品质:

  • 能够使用一种语言中所有的别人知道(和不知道的)特性。
  • 能辨别其他人是黑客还是新手还是黑客写手
  • 对规则和标准会感到无聊和厌倦。
  • 不写单元测试-资历少时会写
  • 享受挑战–他能在那展现它的才华。
  • 喜欢讨论多于写文档,因为他们觉得这样更有趣
  • 讨厌别人修改他的代码。
  • 喜欢马上投入一个项目里。
黑客是一个有才华的人。他想在他编写的软件里展现他的才华。他享受编程并且写代码主要是为了好玩。我可以这么说,他已经和他的代码结为伴侣了并且在与代码离婚后他无法想象以后的幸福生活。代码所有权是黑客所关心的东西–他知道他自己是代码的所有者。

当我问我任意的一个黑客朋友时,“其他人怎样才能理解这段代码的是干什么的?”。我几乎总是得到同样的答案-”他们要问我!”(通常是带着真诚的微笑自豪地说)

设计师情怀

拥有设计师情怀的人会重构上面的代码使它便于阅读。他会认为这个Java函数是一段“优雅的代码”(你觉得呢?):
public int fibo(final int pos) {
  final int num;
  if (pos > 2) {
    num = fibo(pos - 1) + fibo(pos - 2);
  } else {
    num = 1;
  }
  return num;
}

我认为这些品质是一个好的设计师所拥有的:

  • 倾向于使用传统的编程技术
  • 假定任何人都是新手并循规蹈矩地写代码
  • 喜欢设定一些规则并遵循它们
  • 喜欢写文档多于直接讨论并且喜欢文档自动生成多于手写
  • 把更多的编码时间花费在单元测试上
  • 讨厌挑战和加班工作
  • 喜欢看到它的代码被修改和重构
  • 同时进行比较少的项目工作
设计师是一个优秀的团队角色。他对团队的发展,标准,规则,教育和纪律的贡献跟他对源码的贡献一样多。他总是能确保一旦他离开项目他的代码和想法依然保留下来并运行。

对一个好的设计师来说,最满意的是能够看到它的代码拥有它自己的人生–被修改,被优化,被重构和最终退休。设计师把他自己看做是代码的父母-一旦它足够年大去走路和说话,它不得不去过自己的生活。

未来

如果你认为你自己是一个黑客,我相信这是做出改变的时候了。黑客的时代已经成为过去了。

在不久的将来,我们可能甚至不用考虑硬件问题并且在拥有无限大内存,CPU频率和存储空间的弹性计算平台上运行我们的应用程序。我们仅仅需要为资源使用和绝大多数性能问题付费,这仅仅是在我们每个月的账单里添加小额的额外费用。我们将不会关心任何的优化问题。

同时,优秀的工程师将会变得越来越昂贵,仅仅去检查下软件并诊断,一个小时要收费500多美元。这就像优秀的律师和牙医。

这就是为什么,当开发一个新软件产品时,那些付钱的客户更关心的是它的可维护性。项目赞助人明白他们获取利润的最好解决方案是需要一个可读性、维护性和自动化最高的项目。
  • 大小: 134.1 KB
来自: 伯乐在线
4
1
评论 共 1 条 请登录后发表评论
1 楼 lBovinl 2014-12-18 17:55
驻足停留过~

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 设计师情怀和黑客情怀

    那是黑客情怀的时代。那个时代已经过去了。那种情怀现在已经不被赞赏了,因为市场状况已经完全相反了。 现在,计算机变得便宜而程序员变得昂贵了。当下的时代是设计师情怀的时代,如今我们代码的可读性比代码的性.....

  • 黑客比程序员高在哪里?

    黑客其实和一般的程序员一样,但是他们的关注点不一样。黑客关注的是如何破坏,通过这些有创造性的破坏来获取利益,展现自己的能力。而程序员关注的是如何创造,通过创造来获取利益,展现自己的能力。就如同一个硬币...

  • 黑客和程序员,谁技高一筹?

    一般来说,黑客和程序员各有侧重,技能树不一样,比如前端的XSS攻击,黑客知道这个输入框内的内容如果没有被处理,那么可以通过构造特殊的输入内容来达到攻击目的,但是对于这个输入框如何弄得更好看,对用户交互...

  • “除了CTO你还是什么?”黑客、摇滚乐手、开源爱好者、程序员

    ”用眼下流行的话来说,黄东旭是一位斜杠青年,也是一位典型程序员。一位来自西南都市的少年。一位内心叛逆、外表乖巧的摇滚爱好者。一位掌握了绝世武功却无法让身边人知道的民间高手。黄东旭说,自己在最近面试的一...

  • 码农与程序员的惊人差别

    我一直以为,码农就是程序员自黑时候的戏称,是程序员群体的幽默。 写公众号后,有很多读者添加了我的微信,不少同学的自我介绍是: “大飞哥,你好,我是一个初级码农!” “大飞哥,你好,我是一个刚出道的码农!”...

  • 程序员的“鱿鱼游戏”,你能活到第几关?

    神秘邀请、童年游戏、秘密场所、456、刺激闯关、生存死亡。这些词,一听就是近期现象级网剧《鱿鱼游戏》。神秘邀请、代码游戏、秘密基地、1024、刺激闯关、真实自我。这些,属于程序员的代码游戏...

  • 开发者玩起情怀来,H5也烧脑

    那时候,中国互联网用户刚刚突破一百万,互联网圈还没有一个巨头,电脑黑客事件当时还是首例,乔帮主回归后也才发布了第一款i系列电脑……   如果你回到校园,还会怀恋 “坦克大战”、“超级玛丽”等学生时代经典...

  • 黑客是什么,什么是黑客,它起源于什么,黑客是干什么的 ,真的,有所谓的“黑客帝国”吗?

    首先黑客是什么 黑客技术起源于ARPAnet 和前...有没有激发大家的黑客情怀,一时间自己也想做一个黑客看看?别急小编文章最后会有教程奉上。 黑客一词的起源;黑客(hacker),源于英语动词hack,意为“劈,砍”,...

  • 优秀程序员的博客有哪些?(转)

    特别推荐破船之家整理的 Mac和iOS开发资源汇总 阮一峰:阮一峰的个人网站 酷壳:酷壳 – CoolShell.cn 结构之法-算法之道:结构之法 算法之道 北大数学小王子:Matrix67: The Aha Moments ...

  • 程序员经验

    编程语言的选择与特点 后端 Java 经典工业型语言,面向对象,虽然笨重,但严谨 工作机会多再学习其他语言很快(go除外) ...前端 javascript 服务端语言 node.js python 国外 ...非常适合独立自由有情怀的

  • 太可爱啦!程序员把电脑病毒当宠物养

    现在不管是个人还是企业用户,想必已经到了谈“毒”色变的地步,病毒通常被设计的极其隐蔽,同时后果也非常严重,数据、资料甚至信用卡账号、密码等隐私信息都会被窃取。病毒已成为了不法分子牟利的武器。 但很多人...

  • 最强的程序员到底有多强

    神秘邀请、童年游戏、秘密场所、456、刺激闯关、生存死亡。这些词,一听就是近期现象级网剧《鱿鱼游戏》。神秘邀请、代码游戏、秘密基地、1024、刺激闯关、真实自我。这些,属于程序员的代码游戏...

  • 2015 SegmentFault 黑客马拉松记录

    上周末,我们参加了由 segmentfault 组织的亚洲最大规模的黑客马拉松。这次的Hackathon在 北京 / 杭州 / 深圳 / 济南 / 武汉 多城同时联动。仅我们参加的北京赛区,就有30多个团队,150余人。

  • 关于程序员的几点思考

    前几天读了一篇《什么是真正的程序员》,以小王子中的口味讲述了 printf 遇到各种各样程序员的故事,引起了我一些思考,并不只是对程序员实用。需要看这篇文章请点击最后「阅读原文」。 1. 应不应该专注于一个领域...

  • 每个程序员都需要知道一些游戏网络知识

    作为一个程序员,你有没有想象过多人游戏是如何实现的? 在外行人看来游戏很神奇:两个或者更多的玩家在网络上分享共同的经历,就像他们真实的存在于相同的虚拟的世界一样。游戏看起来犹如一个巨大的魔术,奇妙而又...

  • 我改变世界、我已看透、我不再是个程序员-IT创世诸神如是说

    林纳斯脾气很差,不是很好相处,做为网友在网上上午怼英特尔的BUG,下午骂黑客不懂编程;做为工程师其战斗力绝对惊人,主要战绩包括手撕微软,脚踢英伟达,剑挑CVS等等。 1. 操作系统太贵了,我就自己写一个吧: ...

  • FinClip首届黑客马拉松 “快码加编”进行中,邀你挥洒创意赢万元现金大奖

    FinClip此次发起黑客松邀约,只要你有情怀、有想法、敢创意,无论你是产品汪、程序猿、射击师,学生党、还是创客,只要你对「移动应用开发」、「小程序开发」感兴趣,我们都希望你能来参加这场春天里最激情的约会!...

  • 基于SSM+JSP+HTML的东风锻造有限公司重大停管理系统(Java毕业设计,附源码,数据库,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 ssm 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

  • 数据库系统课程设计报告-体育项目比赛管理系统设计与开发

    一、系统需求分析 1 (一)需求概述 1 (二)业务流分析 1 从运动员角度分析 1 (三)数据流分析 4 (四)数据字典 5 二、数据库概念结构设计 6 (一)实体分析 6 (二)属性分析 6 (三)联系分析 8 (四)概念模型分析(.PDM图) 9 三、数据库逻辑结构设计 9 (一)概念模型转化为逻辑模型 9 1.一对一关系的转化 9 2.一对多关系的转化 9 3.多对多关系的转化 10 (二)逻辑模型设计(.PDM图) 10 四、 数据库物理实现(一)表设计 10 (一)表设计 10 (二)创建表和完整性约束代码设计 11 五、数据库功能调试 15 (一)运动员管理模块 15 (二)负责人管理模块 16 (三)系统管理员管理模块 17 六、设计系统前台软件 21 (一)开发软件选择 21 (二)软件功能要求与设计 22 (三)软件功能实现 22 (四)系统测试 24 七、设计总结 27

  • 基于SSM+JSP的文物管理系统+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

Global site tag (gtag.js) - Google Analytics