阅读更多
引用

译者注:本文作者是一名经历很丰富的老程序员了,他从经验、判断力、知识面的广度和深度等几个方面阐述了为什么需要雇佣一名老程序员的原因。以下为译文。

你真的应该雇用一名老程序员。这一点我深信不疑。这些资历比较老的程序员不会像那些刚从大学里面毕业的学生那样工作那么多时间。他们有孩子、配偶,需要还房贷,有机会还要去看一场比赛。他们不会在办公室里通宵玩Xbox和乒乓球,也不会每周工作80个小时,实际上他们会利用他们的假期。当然,他们的工资比年轻程序员要高。不管有多少种理由会说雇佣老程序员有哪些不好的地方,但是你仍然需要一名。原因很简单:他们就像巴黎欧莱雅那样值得你拥有。我之所以知道这一点,因为就是其中一员。

经验

老程序员可能无法像25岁时那样,在脑子里保存那么多的代码,但这些人的经验非常丰富。我们知道,每一套系统的规模都在越来越大,大到最后都超过了你的脑容量——无论你的脑袋有多大——所以说能不能记住代码并不是像你想的那么重要。相反,我们知道如何对每个系统进行模块化。我们就是传说中的“10x程序员”,不是因为我们代码写的有多好,而是因为我们已经看穿了一切。我们可以快速了解任何一门新的语言,因为我们已经用了很多年了。我们知道这些开发语言的共同特征。语言这个概念一次又一次地流行起来。只要有足够的时间,我们就能发现其中的相似之处,并突出这些不同点。

判断力

“在低价所获欣喜被遗忘后低质量带来的苦恼会长久保持。”

—本杰明.富兰克林


老程序员有更好的判断力。他们知道需要重点测试系统的哪个地方,哪些地方是不需要的。他们可以从架构图中看出可能出现的问题。他们可以告诉你针对特定项目可以运用哪些技术,以及如何优化可靠性、性能或开发速度(选择任意两种)。他们还知道如何做出好的权衡。即使从来没有为你的项目写过一行代码,但是他们也是对得起他们的收入的。他们懂得如何提高质量。从长远来看,质量意味着更低的成本。

学识渊博

“真正的知识来源于对某个主题及其内部工作的深刻理解”

—阿尔伯特·爱因斯坦


老程序员在特定领域有很深厚的知识。这些知识帮助他们知道在哪里寻找bug,以及如何避免bug。例如,我非常了解GUI工具包,已经用了几十年了。我曾在三个(Swing、JavaFX和SubArctic)核心团队中工作过。我从头开始构建了自己的工具包,只是为了好玩!我知道UI工具包。我可以写出过去的40年里关于工具箱的详细历史(嗯……也许我应该在某个时候把它写下来)。

当我在一个新的GUI系统上工作时,我可以立即投入进去。如果我看到三个按钮在右边移动了相同的68个像素,那么我就可以立即看出这个bug是在三个位置中的一个(可能是全局到局部协调转换代码)。如果你想要创建一个新组件,我可以准确地告诉你需要哪些扩展点。对于UI工具包的工作方式的深入了解,意味着我可以比其他人更快地构建应用程序。我有25年的肌肉记忆,这一点可以帮我壮大我的胆子。关于UI工具包我有着很深厚的知识。对于其他人来说,它可能是内核驱动程序、数据库索引或编译器。关键是,深度知识要比数小时应用或原始编码能力更重要。

知识面广

都是优秀员工的小团队可以轻松击败都是良好或者一般员工的大团队。

—史蒂夫·乔布斯


老程序员都不求甚解。虽然我专门从事应用程序和前端开发,但我已经把整个堆栈都了解得很透彻了。我编写了无内存限制系统的代码。我已经构建了解析器、数据库和固件;甚至还有一个非常糟糕的内核驱动程序。我已经绘制了演示图形并生成了千兆字节的测试数据。你雇用我,应该不是叫我来建立数据库或编写固件或设计你的下一个网站,但我已经足够了解这些系统的工作原理。这意味着我可以和那些在数据库和固件方面的专家交谈。我知道的内容已经足够让我和其他领域的人进行有效的沟通。正是这种沟通技巧使我成为一个富有成效的团队成员,而不是原始的编码能力。

沟通技巧

任何一名40多岁的程序员都必须具备良好的沟通技巧。这些能力和他们的编程能力一样有价值。对于那些需要用到新的API的开发者们来说,如果没有地去看这些API,那么它们几乎是毫无价值的。很多大型软件项目之所以失败,不是因为糟糕的代码,而是因为沟通出现了问题。

是的,表面上似乎是花了更多的钱,使得工作量变得更少了,但实际上是变多了。老程序员们可以正确估计并按时运行代码。我们开发出的软件,bug很少,性能表现也不错。虽然我们写的代码少了,但是我们会产生更多的业务价值。这就是我们值得拥有的原因。
3
2
评论 共 2 条 请登录后发表评论
2 楼 q315506754 2017-07-07 08:41
说得好 那就让新员工写代码 老员工优化重构好了
1 楼 Wangwei86609 2017-07-06 16:56
说的太好了,国内老程序员开发,还在继续维护中
http://blog.csdn.net/wangwei86609/article/details/74552419

发表评论

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

相关推荐

  • 流媒体

    流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。 这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体。流媒体技术全面应用后,人们在网上聊天可直接语音输入;如果想彼此看见对方的容貌、表情,只要双方各有一个摄像头就可以了;在网上看到感兴...

  • 流媒体-流媒体入门及理解V1.0

    流媒体技术是一种在网络上实时传输影音的技术,它具有节省时间、空间、带宽等优点,也面临着依赖网络、限制交互、降低质量等缺点。流媒体技术广泛应用于各种互联网信息服务领域,对人们的工作和生活产生了重大影响。在未来,伴随着大模型的深入场景化开发和发展,流媒体技术将朝着互动化、智能化、个性化、融合化等方向发展,为用户提供更优质和更多样的服务。

  • 流媒体的基本介绍

    文章目录流媒体是什么?音视频组成编码格式音频编码格式视频编码格式存储封装格式视频码率、帧率码率帧率流媒体的传输方式顺序流式传输实时流式传输流媒体的传输协议HLSHLS 点播HLS 直播HTTP-FLVRTMPMPEG-DASHRTSP+RTP 流媒体是什么? 流媒体就是指采用流式传输技术在网络上连续实时播放的媒体格式,如音频、视频或多媒体文件。 音视频就是流媒体的核心。 音视频组成 一个完整的视频文件,包括音频、视频和基础元信息。 我们常见的视频文件如mp4、mov、flv、avi、rmvb等视频文件,就是

  • 流媒体及直播相关知识

    本文主要讲解流媒体及其直播相关知识,所涉及的知识内容比较浅显,主要是做个简单的了解。

  • 目前流媒体开发工程师工作主要是做什么?

    目前音视频方向的岗位主要有4类

  • 什么是流媒体?

    什么是流媒体?    提到媒体,我们马上就会想到报纸杂志、广播电视。要说起现在刚出现的一个新名词流媒体,一些人可能也会认为它同平常我们所说的媒体有某种关系。其实,所谓的流媒体同我们通常所指的媒体风牛马不相及,它只是一个技术名词。流媒体到底是什么?能给我们带来什么?一起来看看。   流媒体(Streaming Media)指在数

  • 【直播时代 | 02】干货满满!一文了解RTMP、RTSP、HTTP、HLS、MMS流媒体协议

    rtmp、rtsp、http、hls、mms等媒体流协议简介及区别

  • 什么是流媒体

    这里的首屏秒开是指从视频播放开始到真正看到第一帧画面所消耗的时间要尽可能的短,不能让观众有明显的等待时间。这种能力主要依靠云端服务的优化以及播放器的配合,使用阿里云的秒开功能最快可以实现 200ms 左右的首屏打开速度,如果网络下行足够够好的话甚至可以瞬开。所谓的流媒体是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网上即时传输音视频以供观赏的一种技术。如果没有流媒体技术,那么在观赏前必须下载整个媒体文件。目前应用流媒体技术就多的场景就是直播场景。

  • 流媒体服务器原理和架构解析

    多媒体数据文件 一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加文件。目前大部分的播放器产品对于H.264 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影响在线视频网站的初次加载时间。 为了降低头部体积,需要进行视频本身的物理分段等等。对MPEG2-T

  • 流媒体开发(一)

    最近想学习下流媒体相关的开发技术,所以计划把相关的研究内容写到博客上,方便自己和大家。学习技术最好的方式是项目驱动,所以打算弄一个项目,用来推动自己学习。项目需求如下: 1、能接入一类网络监控摄像头,摄像头支持rtsp等协议,采用服务端方式提供视频流。 2、能接入二类网络摄像头,摄像头由于处在内网,只能采取客户端方式推送视频流, 3、接入的视频流都转换成统一的...

  • 流媒体传输协议介绍

    流媒体传输协议介绍一、RTSP协议介绍什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续、后退、前进等。它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 RTSP 又称为“因特网录像机遥控协议”。         RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,R

  • 公网 rtsp流源 测试地址_rtsp协议之vlc搭建rtsp服务器

    在做视频传输客户端开发的时候,经常需要用到流媒体服务,VLC有着非常强大的流媒体处理能力,同时它也可以搭建流媒体服务器。VLC是一种开源的播放器,同时也可以用作流媒体服务器。vlc搭建rtsp流媒体服务器步骤:1、打开vlc,选择流媒体-流2、选择文件选项卡,添加一个视频文件,基本vlc可以播放的都能添加。3、选择流输出参数。这里要选择rtsp,然后点击 添加 按钮。端口需要主要不能冲突,一般默...

  • 流媒体开发(一)音频播放

    流媒体开发 音频播放,音效播放,AudioToolbox,AVAudioPlayer,AVPlayer,音频队列

  • 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)...

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604   一、家庭服务器实现的主要功能 1、流媒体播放服务:利用DLNA实现电视、手机、电脑播放其上面的媒体文件。 2、文件共享:利用samba实现手机、电脑等终端与服务器的文件共享。 3、自动下载:利用aria2c实现自动下载。 先上几张效果图: 用orico的包装盒做了个机箱...

  • 流媒体系统组成简介

    流媒体系统主要包括5部分: 编码工具:用于创建、捕捉和编辑多媒体数据,从而形成流媒体格式,如FME。 流媒体数据:包括视频、音频,常用Flash的.swf格式。 服务器:存储和控制流媒体,如FMS(Flash Media Services)。 传输网络:传输协议RTMP,建立在TCP或轮循HTTP协议之上。 播放器:如360浏览器 转载于:https://...

  • 广电教育融媒体/视频流媒体系统方案(4G/5G直播、传输、回放、录制)

    广电教育融媒体/视频流媒体系统方案(4G/5G直播、传输、回放、录制) 广电教育融媒体/视频流媒体系统方案(视频直播、传输、回放、录制) 易代星直播系统是国内首款高性能、高附加值且免网络配置的闭环移动互联网直播系统。基于不同客群及产品使用需求,推出八信道广电机和四信道广电机,系统内部搭载独有的多4G传输机制,聚合了网络高带宽、低时延的优点,满足高速移动状态下快速完成不同信道的负载均衡,实现流畅移动视频传输效果。 易代星系统是“全流程流媒体直播服务平台”:集移动低损耗视频获取及压缩(音视频信息由摄像机、无人机

Global site tag (gtag.js) - Google Analytics