写点什么

程序员访谈录(9 位优秀程序员的 Q&A)

  • 2012-12-27
  • 本文字数:1751 字

    阅读完需:约 6 分钟

这篇访谈是 2006 年一位波兰程序员 Jaroslaw “sztywny” Rzeszótko (AKA “Stiff”) 发布的,原文已经下线,2008 年澳大利亚一位开发者(twitter 是 @dodgy_coder)在经过原作者授权的情况下,将这篇访谈再次发布了。

原作者提出了 10 个问题,问题有关于他认为读者会感兴趣的或尊敬各位优秀程序员所创造的各种事物,最后两个问题则是出于原作者的兴趣。原作者介绍,并不是所有人都回复了他的问题,不过他在这个过程中学到了很多有趣的事情,也是很有价值的经验。

首先我们看看这 9 位优秀程序员是哪些人:

Linus Torvalds Linux 内核的作者。(编辑注:他的 LinkedIn 主页在这里

Dave Thomas :“ Pragmatic Programmer ”, " Programming Ruby "还有其他一些关于编程的优秀书籍的作者,可以从这里学习一下他的编程思想。

David Heinemeier Hansson :一个新热门的 web 开发框架 Rails Framework 的作者(注:“新热门的”指的是 2006 年,即采访原文发布的那段时期),他的博客在这里。(编辑注:David Heinemeier Hansson 被称为DHH,这里提到的热门框架即“Ruby on Rails”,他是 37signals 的合伙人之一,也是《重来》一书的联合作者)

Steve Yegge :也许是这些人当中名气最小的,但是他给出了一些有趣的回复,他有一个非常受欢迎的关于编程的博客,同时,他也是一款名为“Wyvern”的游戏的作者。

Peter Norvig :Google 搜索总监,有名的 Lisper,关于 AI 的著名书籍的作者,他的主页在这里。(编辑注:他的LinkedIn 主页在这里

Guido Van Rossum Python 语言的创造者。

Bjarne Stroustrup :C++ 语言的创造者,他的主页在这里

James Gosling Java 语言的创造者。

Tim Bray :XML 和 Atom 规范的作者之一,他的博客在这里

以下是原作者提出的10 个问题,我对感兴趣的几个问题的回复做了一些概括:

Q1:你是怎么学习编程的?学校有什么帮助吗?还是你没有在任何学校毕业?

回复:多位程序员提到,主要是自学编程,但是在学校提供的课程还是很有用的帮助,在一些基础概念(如复杂性分析)方面,建议如果有条件的话,最好还是能够取得学位证书。

Dave Thomas 回复中提到:“我仍然在学习编程”,好的程序员不是学习一个新的语言和类库,而是年复一年的完善技术实力与实践。 Tim Bray 则提到曾经是想当一名数学老师,在大学里的数学课程需要一些计算机课程。

Q2:你认为每个程序员需要掌握的最重要的技能是什么?

回复:书写和语言表达能力、品味、强烈的价值感知、专注、热情、理解问题与解决问题的能力、直觉。

Q3:你认为数学或物理能力对于程序员来说重要吗?为什么?

回复:有些人认为很重要,离散数学。有些人认为完全不重要。

Q4:你认为计算机编程领域的下一个大事件是什么?X-oriented 编程、Y 语言、并行计算还是什么?

回复:可能是 web 应用、大规模分布式进程、CG,大部分人认为不会有特别巨大的变化,可能随着硬件的提高编程能够变得更简单。

Q5:如果你有三个月的时间去学习一个相对较新的技术,你会选择什么?

回复:Dojo、FPGA、Cocoa、Javascript、flash、3D 渲染、安全、加密、数字签名等。

Q6:你认为让某些程序员的效率 10 倍甚至 100 倍于其他人的原因是什么?

Q7:你最喜欢的工具(操作系统,编程 / 脚本语言,文本编辑器,版本控制系统,shell,数据库引擎,其他你无法离开的工具)是什么?为什么更喜欢这个工具?

Q8:你最喜欢的计算机编程相关的书是什么?

Q9:你最喜欢的与计算机编程无关的书是什么?

Q10:你最喜欢的乐队或表演者或作曲家是谁?

转发的这篇文章有很多评论,讨论 David Heinemeier Hansson 具有很商业化的思维、Guido Van Rossum 的简练回复、Linus Torvalds 的回复“好品味”等等。

大家有兴趣可以看一下原文,这里也有翻译的中文版,陈皓( @左耳朵耗子)对这篇采访进行了简单的翻译。中文版也受到了很多人的关注,有读者评论到:“从以上访谈可以看出,最牛的程序员并没有那么死追 编程技巧,更重要的是编程的思想和理念,用最简洁的方式实现复杂的功能。 一个优秀的程序员是善于遇到问题解决问题的,而不是记忆大量的本来就不存在的标准答案。”欢迎大家参与讨论。

如果你也有问题,抑或是有想提问的大牛,不妨在这里留下评论,或在新浪微博私信给 @InfoQ 或本文作者 @Hellena ,我们也可以整理一些有价值与有趣的问题,跟我们身边的大牛们聊一聊。

2012-12-27 03:035683

评论

发布
暂无评论
发现更多内容

网络攻击的高频出现,高防服务器是最佳的选择

九河云安全

当 CloudQuery 遇到大数据

BinTools图尔兹

大数据 hive ES 数据库管理

从0开始的TypeScriptの三:TS的类型

空城机

typescript 大前端 8月日更

TCP如何保证数据的可靠传输

W🌥

计算机网络 TCP/IP 8月日更

c++ list 详解

若尘

c++ List 8月日更

生产环境全链路压测平台Takin

TakinTalks稳定性社区

开源 高可用 全链路压测 性能压测

写作 7 堂课——【5. 结构化写作】

LeifChen

写作技巧 8月日更 结构化

模型训练语料少?知识蒸馏解决烦恼

LigaAI

人工智能 神经网络 深度学习 模型训练 nlp

破解三大安防视频痛点,看华为4大硬核视频上云技术

华为云开发者联盟

视频 华为云视频 安防 摄像头 安防视频

百度BaikalDB在同程艺龙的成功应用实践剖析

百度Geek说

数据库 架构 后端

索信达控股:打造新一代中小银行智能营销平台体系的道与术

索信达控股

WeLink的杀手锏和远程办公软件的另一面

华为云开发者联盟

远程办公 华为云 welink 视频会议 数字化办公

Compose管理状态

Changing Lin

8月日更

趁着课余时间学点Python(九)函数的进阶 生成器 装饰器的理解

ベ布小禅

8月日更

卷向字节码-Java异常到底是怎么被处理的?

why技术

Java JVM

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

Java~~~

Java spring 面试 微服务 JVM

【LeetCode】0~n-1中缺失的数字Java题解

Albert

算法 LeetCode 8月日更

带你了解Go怎样实现二级缓存

Regan Yue

redis 二级缓存 Go 语言 8月日更

Go 学习笔记之 Goroutines

架构精进之路

Go 语言 8月日更

中间件运维之故障自愈

安第斯智能云

运维 后端 中间件

教你如何使用FusionInsight SqoopShell

华为云开发者联盟

sqoop Shell FusionInsight 脚本 Loader

Vue进阶(二十一):ES6 知识储备

No Silver Bullet

Vue ES6 8月日更

百度AI原生云实践: 基于容器云打造 AI 开发基础设施

百度开发者中心

AI 最佳实践 方法论 云原生

价值连城 人工智能的通识课 - 吴恩达Andrew Ng AI For Everyone John 易筋 ARTS 打卡 Week 59

John(易筋)

ARTS 打卡计划

OAuth2.0授权码模式实战

码农参上

OAuth 2.0 8月日更

Prometheus 监控SpringCloud微服务

Rubble

Prometheus SpringCloud 8月日更

Vue进阶(二十三):Promise 详解

No Silver Bullet

Vue Promise 异步请求 8月日更

带你读AI论文:基于Transformer的直线段检测

华为云开发者联盟

模型 目标检测 Transformer 线段检测 LETR

探究Presto SQL引擎(1)-巧用Antlr

vivo互联网技术

sql 编译器 presto antlr4

四色建模:用户转化率 KPI

escray

学习 极客时间 如何落地业务建模 8月日更 四色建模

黑科技解密!实现socket进程间迁移

Java 程序员 架构 面试 架构师

程序员访谈录(9位优秀程序员的Q&A)_语言 & 开发_sayhelen_InfoQ精选文章