Linus谈优秀程序员的三种品质

2023-11-19

转自:http://blog.dyngr.com/blog/2013/09/26/junio-c-hamano-interview/

引言

今天我们的嘉宾,是分布式版本管理系统Git的主要维护者,同时也是《入门Git》一书的作者,滨野纯先生。而这次的访谈,也从滨野先生谈自己从Linux内核的开发者,Linus Torvalds手中接过Git维护工作的原委开始了。
小饲弹(以下简称弹)
滨野纯(以下简称滨)

访谈内容

(此处省略N字...)

优秀程序员的品质

弹:你觉得“优秀的程序员”是怎样的一种人呢?
滨:当初接手Git项目时,Linus曾说过一个明星程序员有三种品质。最重要的第一点是,能够持之以恒地做某件事。从这个角度上来说,AlphaGeek是不行的。尽管对于新事物迅速投身进去不是坏事,但同时又迅速地失去兴趣就不好了。顺便我自己不那么激进不是新事物爱好者也不会三分钟热度,应该不算是AlphaGeek。
弹:原来如此,三分钟热度是不行的。重要的是坚持。
滨:第二点算是审美观吧。拥有良好的直觉和品位,这是Linus的原话。良好的直觉,这里是指面对一个新问题时,即使没有完整地解决问题也能够凭直觉提出正确的解决思路和方向。第三点是沟通能力。这个沟通能力不是说只要说明“我想做什么”就可以了,而是能够解释“我的目标是什么”以及我得出这一目标的整个思维过程,并且更重要的,是能够让其他人信服,简而言之就是能够将自己的目标明确传达给他人的人。我觉得这非常重要。即使在Git社区内,非常优秀的人至少也有7、8人,但能够同时兼具这三点的人非常之少。
弹:虽然之于审美观我有很多想对Linus说的(笑)。不过我也猜得到Linus会怎么反驳所以我还是作罢吧。话说回来,这三点中能够做到其中两点的人,估计在哪儿都会很吃香吧。做到一点就可以说工作能力很强,做到两点就可以称之为牛人了。
滨:说的是啊。Linus是按照我上面所说的顺序提出的这三点,从Git社区至今为止的发展过程中来看,我觉得即使是只具备其中一点的人,只要锻炼一下沟通能力,就能做任何自己想做的事了。沟通能力就是,即使自己做不到,只要把目标向其他人说明清楚了,就一定会有人来帮你达成这个目标。就是说只要表达想法可以不用非得自己动手。
弹:我在还没有Open Source这个词的时候就已经算混开源界了吧,不过近几年来,开源界的表达能力真是越来越高了。拿十年前来和现在比,现在的年轻人的表达能力实在不一般,不是最近流行Lightning Talk嘛,就是5分钟的演讲。要是换作以前,肯定得花上30分钟絮絮叨叨才行,但是那些年轻人证明缩短到5分钟内是完全没有问题的。实际在与他人合作的过程中,过去是做出了产品原型和对方讨论这么做如何,而现在则相反,不需要做出实际的成品,只要把想法提出来就可以了。都是因为现在的工具发达了啊,网络速度变快了,应用平台也变好了。有这么一句老语,“现在的年轻人啊真是……”,我想说的是“真是很厉害”。我甚至都想表扬一下依然能够跟上这些年轻人脚步的自己了(笑)。现在已经是半年不看项目就跟不上的时代了。觉得Git很难,或许也是因为我老了吧(笑)。

对40岁以上的程序员说的话

弹:有什么想对40岁以上的程序员说的话吗?40多岁的程序员,已经渐渐感到追赶年轻人有点吃力,对他们有什么建议吗?虽然我想说的是,那就趁20多岁正年轻的时候多写点代码吧。
滨:要怎样才能成为年轻人的楷模,这个问题很困难啊。
弹:至少有一点,我觉得应该做到的,就是依然觉得写代码很快乐。如果抱着受罪的心态写代码,那一定是做不好工作的。这么说来,您今年几岁?
滨:保密(笑)。
弹:至少不是20、30岁了吧。我觉得还是挺厉害的。在版本管理系统中Git最年轻,但现在却正渐渐成为主流。
滨:是啊。
弹:年轻的项目不一定只有年轻人在做,我觉得这非常好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linus谈优秀程序员的三种品质 的相关文章

  • 电脑壁纸链接

    电脑壁纸链接 一 壁纸网站 1 彼岸图网 2 H128壁纸 3 Wallhaven 4 Wallhere 二 游戏壁纸 英雄联盟 神泣 鬼泣 女神联盟2 崩坏3 三国杀 QQ飞车 QQ炫舞 阴阳师 幻塔 王者荣耀 逆战 上古王冠 永恒魔法
  • 虚拟化与网络存储技术

    虚拟化技术简介 一 常见的虚拟化技术分类 1 CPU虚拟化 CPU的虚拟化技术是一种硬件方案 支持虚拟化技术的CPU带有特别优化过的指令集来控制虚拟过程 通过这些指令集 VMM会很容易提高性能 2 服务器虚拟化 服务器虚拟化能够通过区分资源
  • win10微软应用商店不能用?简单两步完美解决

    想安装微软的软件 发现微软应用商店打不开 无论是我刷新还是重启 找了各种办法终于解决了 解决办法 1 打开键盘 田 R 键 输入 inetcpl cpl 2 然后去高级那里打开 勾上 使用TLS 1 2 选项 或者还原高级设置 3 最后打开
  • arcgis 10.8 for win10安装教程

    本文主要记录arcgis安装步骤 遇到的问题等 文章目录 一 前提 二 下载与安装 1 下载 2 安装 参考资料 一 前提 下载前需要确定 1 ArcGIS对系统的要求 安装之前系统需安装 net framework 4 5 以上版本 我的
  • 大学生竞赛项目

    编程 蓝桥杯 报名时间 10月 报名网址 https dasai lanqiao cn 中国软件杯大学生软件设计大赛 报名时间 5月 报名网址 http www cnsoftbei com 中国高校计算机大赛 报名时间 11月 报名网址 h
  • App\led\led.h(6): warning: #1295-D: Deprecated declaration LED_Init - give arg types

    如图所示操作即可 如图所示操作即可 如图所示操作即可
  • BSD、Apache、MIT、GPL、LGPL几种常见的开源协议

    转载地址 https www cnblogs com Vito2008 p 4806677 html 1 BSD开源协议 original BSD license FreeBSD license Original BSD license B
  • 危化安全生产信息化平台在煤化领域的应用

    一 背景介绍 煤化工行业是一个集煤炭 石油 化工等多种产业于一体的综合性行业 其特点是工艺流程复杂 设备繁多 安全隐患大 近年来 随着煤化工行业的快速发展 安全生产问题日益凸显 为了有效提高危化安全生产水平 某煤化工企业引入了信息化技术 搭
  • Flutter踩坑笔记一——环境搭建的坑

    Flutter的环境搭建其实还是很简单的 当你把AndroidStudio升级安装3 5版本的时候 他已经默认为你安装了Dart和Flutter插件 可见Google对flutter的重视 所以也省了我们不少事儿 首先 打开 官方文档 获取
  • “条件递进式编程”技巧两例

    什么是 条件递进式编程 呵呵 这是我自己起的名字 所谓条件递进式编程 就是指需要一系列相关函数组合执行的情况下 后续函数执行的必要性由前面所有函数执行是否成功来决定 比如说 有一系列函数如下DoSomething1 DoSomething2
  • 合肥工业大学 汇编语言程序设计 高分实验代码

    感觉最困难的就是写汇编代码了 当时成功完美运行的时候兴奋的像当年第一次 Hello World 一样 且几乎所有关键之处都有注释 需要的朋友自取 链接 https pan baidu com s 1q4nVJ7aK4JEPQ F6PH45R
  • 解决Chrome浏览器左键双击没反应,无法启动

    打开任务管理器Ctrl aLT DEL 或是在任务栏图标空白处右击 解决Chrome浏览器点击没反应 2 然后 在进程列中 点击表头排序 之后找到chrome exe进程 解决Chrome浏览器点击没反应 3 右击选择后 结束进程 解决Ch
  • 鼠标右键添加git

    1 打开注册表 win R 输入regedit 2 找到HKEY CLASSES ROOT Directory Background目录 3 查看是否有shell这个目录 如果没有就添加 4 在shell目录下添加 项 鼠标右键点击新建 项
  • 【Android Studio】Design editor is unavailable until next gradle sync.如何解决?

    Design editor is unavailable until next gradle sync 如何解决 打开一个网上开源的下载文件 在查看安卓页面布局 也就是控件布局时 会出现一个bug Design editor is unav
  • 突发!ITELLYOU要改版了!

    微信公众号 网管小贾 个人博客 www sysadm cc 经常下载Windows系统镜像的老司机中 我敢保证十之八九对 MSDN 我告诉你 这个网站再熟悉不过 可是对于新手小白们来说 这个站TA究竟是个啥 其实 MSDN 我告诉你 是个名
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • 远程控制 ToDesk

    ToDesk 远程控制软件 支持跨平台的远程控制 有且不限于PC对PC iOS Android也可以直接控制 最近发现的一个好用的远程连接软件 也是近些年非常火热的 远程控制软件 ToDesk 虽然 QQ 和 向日葵 也都可以满足我们实现的
  • PTP/IP协议

    PTP IP PTP over IP 是一个通过IP连接 建立在 Picture Transfer Protocol PTP 上的传输层 我之所以在了解这个东西是因为有一台 Nikon 相机支持 WLAN 和手机传输相片 但是APP设计得极
  • 走进暄桐教室 一起观看暄桐同学作品及感受

    暄桐是一间传统美学教育教室 创办于2011年 林曦是创办人和授课老师 教授以书法为主的传统文化和技艺 旨在以书法为起点 亲近中国传统之美 以实践和所得 滋养当下生活 其实 暄桐教室的写字画画课 不仅是林曦老师单方面的输出 而是有分享 也有回
  • 最具挑战的骑行路线

    1 318川藏线 2 独库公路 561公里 3 珠峰尼泊尔 1000公里 4 沙漠公路 1800公里 5 219新藏线 2500公里 下面是一些别人的骑行记录 证书或奖牌 参考 1 抖音 Max骑行玩家 https v douyin com

随机推荐

  • 请确保此文件可访问并且是一个有效的程序集或COM组件

    重装系统后 打开项目发现一个dll引用失败 于是重新添加引用 结果报错 请确保此文件可访问并且是一个有效的程序集或COM组件 报错是因为此程序集 com组件未注册而导致不能直接引用 解决方法 首先复制程序集所在的路径 如 E aaaa bb
  • Transformer 综述 & Transformers in Vision: A Survey

    声明 因本人课题只涉及图像分类和目标检测 且此综述对这两个领域调查的比较多 所以此文章只对图像分类和目标检测进行精读 若是对 中的论文感兴趣 到原论文中查阅参考文献即可 下图是综述内容涉及的计算机视觉十大领域 图像识别 目标检测 语义和实例
  • Linux命令-推荐

    大侠必备 杀进程 命令 ps ef grep java 先查java进程ID kill 9 PID 生产环境谨慎使用 kill killall pkill命令的区别 kill 通过pid来杀死进程 killall killall 参数 进程
  • JVM参数之GC日志配置

    说到 Java 虚拟机 不得不提的就是 Java 虚拟机的 GC Garbage Collection 日志 而对于 GC 日志 我们不仅要学会看懂 而且要学会如何设置对应的 GC 日志参数 为了能够更直观地显示出每个参数的作用 我们将以下
  • python case when用法_case when

    case when的表达式形式 1 简单Case函数 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END 2 Case搜索函数 CASE WHEN sex 1 THEN 男 WHEN sex 2
  • 【asm基础】nasm和masm的一些区别

    差异点说明 1 nasm是区分大小写的 2 nasm中访问内存需要使用 将内存地址括起来 例如 bar equ 2 mov rax bar mov rax bar 这个才是存储地址中内容的操作 3 nasm不存储类型信息 所以也不能使用MO
  • Vue组件按需引入时v-if和v-show的区别

    普通加载 在父组件中先import子组件 然后在components模块中注册子组件 在进 入页面时 会随着加载当前页面的js文件就加载子组件的内容 子组件的内容和父组件的内容在同一个js文件 按需加载 子组件显示的时候 才会去加载子组件的
  • fastcgi 环境变量例子

    例如请求的url http 172 28 250 184 8099 aa php var ccccc value bbbbbb 前两个字节分别代表 变量名长度 和 变量值长度 0x0f0x0fSCRIPT FILENAME scripts
  • [转][SoC][DV]关于加快验证收敛的一些方法

    关于加快验证收敛的一些方法 一 自动生成uvm验证环境 uvm gen 二 自动生成agent UVC VIP agent gen 三 模块化设计Clock以及reset的产生 clock agent 四 后台磁盘管理并且定期清理log r
  • MySQL之分布式事务

    写在前面 当数据库进行了分库分表 之后为了保证数据的一致性 不可变的就需要引入跨数据的事务解决方案 这种解决方案我们叫做分布式事务 本文就一起来看下分布式事务相关的内容 在8 0 版本上学习 1 实战 为了能够更好的理解理论知识 我们先来简
  • 线上系统性能太差,我手写了字符串切割函数,性能提升10倍以上

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 工作中常用的 split 切割字符串效率高吗 JDK 提供字符串切割工具类 StringTokenizer 手把手带你实现一个更高效的字符串切割工具类 总结 今
  • 好的习惯

    从网上看到的一篇外文文章的翻译 感觉挺不错 分享一下 第三章 习惯一 积极主动 个人愿景的原则 人性本质是主动而非被动的 不仅能消极选择反应 更能主动创造有利环境 采取主动并不表示要强求 惹人厌或具侵略性 只是不逃避为自己开创前途的责任 最
  • Windows环境下Apache与Tomcat共存

    准备工作 1 Apache 2 2 4 下载地址 http cztele1 skycn com down apache 2 2 4 win32 x86 no ssl zip 2 Tomcat 6 0 16 下载地址 http apache
  • 计算机网络安全技术学习总结

    计算机网络安全C 1 绪论 网络安全的定义 模型 攻击手段 攻击方式 安全服务 安全机制 特定安全机制 普遍的安全机制 认识Internet上的严峻的安全形势并深入分析其根源 造成Internet安全问题的主要原因 1系统脆弱性 2自然灾害
  • 尚硅谷CSS选择器练习之餐厅练习

    此笔记来自于跟尚硅谷老师学习 此篇是对CSS选择器的总结以及视频中的P37的餐厅练习自己做的答案 自己所写 用于自我复习 P37尚硅谷 餐厅练习 https flukeout github io 目录 css选择器 1 Select the
  • 解决 kali换源之后签名无效

    报错问题 apt get update 报错 更新扩展知识 kali更新源 终端输入 vi etc apt sources list 中科大 deb http mirrors ustc edu cn kali kali rolling ma
  • C语言函数大全-- s 开头的函数(4)

    s 开头的函数 4 1 strdup 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 stricmp 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 strerror 3 1 函数说明 3 2 演示示例 3 3 运行结果
  • 时间序列之协整检验(3)

    协整检验 1 协整检验 cointegration test 2 常用的协整检验 3 研究变量之间的协整关系 对研究经济问题的定量分析有着重要的意义 5 用Eviews代码进行协整检验 4 用Python代码进行协整检验 1 协整检验 co
  • 使用扩展卡尔曼滤波(EKF)融合激光雷达和雷达数据(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 大多数自动驾驶汽车都配备了激光雷达和雷达
  • Linus谈优秀程序员的三种品质

    转自 http blog dyngr com blog 2013 09 26 junio c hamano interview 引言 今天我们的嘉宾 是分布式版本管理系统Git的主要维护者 同时也是 入门Git 一书的作者 滨野纯先生 而这