0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的两种情怀

工程师人生 来源:网络整理 作者:工程师吴畏 2018-11-14 16:38 次阅读

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

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

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

硬件价格 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方法是一段“优雅的代码”

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

能够使用一种语言中所有的别人知道(和不知道的)特性。

能辨别其他人是黑客还是新手还是黑客写手

对规则和标准会感到无聊和厌倦。

不写单元测试-资历少时会写

享受挑战–他能在那展现它的才华。

喜欢讨论多于写文档,因为他们觉得这样更有趣

讨厌别人修改他的代码。

喜欢马上投入一个项目里。

黑客是一个有才华的人。他想在他编写的软件里展现他的才华。他享受编程并且写代码主要是为了好玩。我可以这么说,他已经和他的代码结为伴侣了并且在与代码离婚后他无法想象以后的幸福生活。代码所有权是黑客所关心的东西–他知道他自己是代码的所有者。

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

设计师情怀

拥有设计师情怀的人会重构上面的代码使它便于阅读。

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

倾向于使用传统的编程技术

假定任何人都是新手并循规蹈矩地写代码

喜欢设定一些规则并遵循它们

喜欢写文档多于直接讨论并且喜欢文档自动生成多于手写

把更多的编码时间花费在单元测试上

讨厌挑战和加班工作

喜欢看到它的代码被修改和重构

同时进行比较少的项目工作

设计师是一个优秀的团队角色。他对团队的发展,标准,规则,教育和纪律的贡献跟他对源码的贡献一样多。他总是能确保一旦他离开项目他的代码和想法依然保留下来并运行。

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

未来

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

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

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

这就是为什么,当开发一个新软件产品时,那些付钱的客户更关心的是它的可维护性。项目赞助人明白他们获取利润的最好解决方案是需要一个可读性、维护性和自动化最高的项目。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29570
收藏 人收藏

    评论

    相关推荐

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    使用两种不同的数字签名对用户应用程序进行签名是否适用?

    我想问一下使用两种不同的数字签名对用户应用程序进行签名是否适用,安全映像将
    发表于 01-18 10:43

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13

    程序员表白程序

    电子发烧友网站提供《程序员表白程序.rar》资料免费下载
    发表于 11-21 10:41 0次下载
    <b class='flag-5'>程序员</b>表白<b class='flag-5'>程序</b>

    avr单片机两种烧写程序方式的区别?

    最近在做一个单片机程序,有点疑问,用avrstudio烧程序接的是avrdragon,用ISPUSB是另外一个软件,这两种程序有什么区别?
    发表于 11-10 07:41

    程序员节 | 今年程序员们都想要的礼物竟然是……

    原文标题:程序员节 | 今年程序员们都想要的礼物竟然是…… 文章出处:【微信公众号:微软科技】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 10-24 10:35 265次阅读
    <b class='flag-5'>程序员</b>节 | 今年<b class='flag-5'>程序员</b>们都想要的礼物竟然是……

    移植ARM DHCP服务器版本1程序员指南

    这本书由ARM DHCP服务器服务器软件提供, 假定ARM DHCP服务器移植源可以作为参考, 也假设您可以访问程序员的 C 和 ARM 组装语言指南。 本程序员指南是为有经验的内嵌系统程序员编写
    发表于 08-18 06:46

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和一般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    ARMv8-A霓虹灯程序员指南

    程序员,如固件、设备驱动程序或android内核开发人员•希望为基于Arm的目标设备优化库或应用程序程序员•非常热衷于Raspberry Pi爱好者本指南涵盖了如何开始使用Neon,
    发表于 08-08 07:25

    ARM系统跟踪Macrocell程序员模型架构规范1.1版

    ARM 系统跟踪大型电池程序员示范建筑规格V1.1 建筑规格
    发表于 08-02 10:11

    61.[程序员小飞]如何在3分钟内安装好数据库MySql和Navicat,简单又易懂

    程序员
    充八万
    发布于 :2023年07月20日 09:16:19

    Neuron C 程序员指南

    Neuron C 程序员指南
    发表于 07-04 20:48 0次下载
    Neuron C <b class='flag-5'>程序员</b>指南

    ISI 程序员指南

    ISI 程序员指南
    发表于 07-04 20:47 0次下载
    ISI <b class='flag-5'>程序员</b>指南

    打开 LNS 程序员参考

    打开 LNS 程序员参考
    发表于 07-04 19:50 0次下载
    打开 LNS <b class='flag-5'>程序员</b>参考