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

    文章

    957

    浏览量

    31053
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TVS vs TSS 两种保护机制的深度博弈

    在现代电子设备日益精密、工作环境愈发复杂的背景下,电路安全问题尤其是雷击和瞬态过压(Surge)防护,已成为产品设计中不可忽视的重要环节。其中,TVS(瞬态电压抑制器)与TSS(晶闸管浪涌抑制器)是两种广泛应用的浪涌保护器件。尽管二者均服务于同一目标——保障电路
    的头像 发表于 02-12 15:23 2778次阅读
    TVS vs TSS <b class='flag-5'>两种</b>保护机制的深度博弈

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 年12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 977次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线了。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 了 。 希望大家对程序员多一些容忍以及谅解! 各位程序员你们都被我说中了哪些?说说你们的观点
    发表于 12-10 08:24

    使用Firebase AI Logic生成图像模型的两种新功能

    为您的应用添加自定义图像,能够显著改善和个性化用户体验,有效提高用户参与度。本文将探讨使用 Firebase AI Logic 生成图像的两种新功能: 其一是 Imagen 专属编辑功能预览版;其二
    的头像 发表于 11-30 09:28 634次阅读

    两种电流检测电路设计方案 高侧 低侧 最高耐压90V

    常用的电流检测电路有两种,一是低压侧电流检测,另一是高压侧电流检测。 实现方法: 两种电流检测电路工作原理一致,都是将采集到的电流以电压的形式呈现,对电压信号进行放大,送入ADC处
    的头像 发表于 11-24 16:16 1449次阅读
    <b class='flag-5'>两种</b>电流检测电路设计方案 高侧 低侧 最高耐压90V

    用PLC实现卷径计算的两种算法

    卷径计算,是动态计算如钢卷,纸卷等存料量的一方法,它是实现张力控制和自动充放料、以及甩尾控制的重要前提。卷径计算目前主流的方法有两种,一是根据机列速度(产线速度)和和被测卷的转动角速度求得;另一
    的头像 发表于 11-14 16:54 2820次阅读
    用PLC实现卷径计算的<b class='flag-5'>两种</b>算法

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 1055次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 963次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    ADI GMSL技术两种视频数据传输模式的区别

    本文深入介绍GMSL技术,重点说明用于视频数据传输的像素模式和隧道模式之间的差异。文章将阐明这两种模式之间的主要区别,并探讨成功实施需要注意的具体事项。
    的头像 发表于 10-10 13:49 2813次阅读
    ADI GMSL技术<b class='flag-5'>两种</b>视频数据传输模式的区别

    两种TVS有啥不同?

    当我们查看TVS二极管的规格书,常会看到有以下两种种引脚功能标识图:对于初学者,看到感到疑惑,他们一样吗?他们有啥区别?为啥有的个尖头往外,阳极连在一起,有的个尖头往里,阴极连在一起?一连三问。EMC小哥根据自己经验略作分析
    的头像 发表于 09-15 20:27 1055次阅读
    这<b class='flag-5'>两种</b>TVS有啥不同?

    两种散热路径的工艺与应用解析

    背景:两种常见的散热设计思路 在大电流或高功率器件应用中,散热和载流能力是PCB设计中必须解决的难题。常见的两种思路分别是: 厚铜板方案:通过整体增加铜箔厚度(如3oz、6oz甚至更高),增强导热
    的头像 发表于 09-15 14:50 1041次阅读

    CMOS 2.0与Chiplet两种创新技术的区别

    摩尔定律正在减速。过去我们靠不断缩小晶体管尺寸提升芯片性能,但如今物理极限越来越近。在这样的背景下,两种创新技术站上舞台:CMOS 2.0 和 Chiplet(芯粒)。它们都在解决 “如何让芯片更强” 的问题,但思路却大相径庭。
    的头像 发表于 09-09 15:42 1305次阅读

    贴片晶振中两种常见封装介绍

    贴片晶体振荡器作为关键的时钟频率元件,其性能直接关系到系统运行的稳定性。今天,凯擎小妹带大家聊聊贴片晶振中两种常见封装——金属面封装与陶瓷面封装。
    的头像 发表于 07-04 11:29 1605次阅读
    贴片晶振中<b class='flag-5'>两种</b>常见封装介绍

    两种驱动方式下永磁直线开关磁链电机的研究

    摘要:永磁开关磁链电机数学模型可以等效为永磁无刷电机,普遍采用方波驱动方式。在有限元基础上分析6/7极直线式磁链电机反电势波形,采用方波和正弦波驱动方式,比较两种方式下的电流、电压、平均推力大小
    发表于 06-09 16:18

    两种感应电机磁链观测器的参数敏感性研究

    模式和发电模式下对闭环电压电流模型磁链观测器和滑模磁链观测器参数敏感性进行了研究,通过仿真和实验比较了这两种观测器对定、转子电阻及励磁电感的敏感性。同时还研究了基于这两种观测器的模型参考自适应系统
    发表于 06-09 16:16