摘要:编程更需要的是知识、经验、判断力等等,这些都不会因为年龄的增长而退化。换句话说,编程是可以干一辈子的。这一点,和那些专业体育选手略有不同。
生平:
松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县。1984年,就读于筑波大学第三学科信息学系。2年后休学,成为末日圣徒耶稣基督教会的宣讲师。大学复学后,加入中田育男教授的研究室。1990年大学毕业。后在岛根大学攻读博士课程,修满学分后退学,未获学位。
现任株式会社Network应用通信研究所研究员、乐天株式会社乐天技术研究所研究员、Ruby association 理事长、Heroku首席构架师。
经历篇:
高中时代:用自己设计的语言编程
第一次接触电脑,是小学6年级。父亲给我买了一个口袋型电脑L-Kit16,当时真是激动坏了。到了初中3年级,父亲又给我买了Sharp PC-1210,这个时候我第一次知道编程这个概念。只要发出指令,计算机就能按照你的指令进行操作,真是有意思极了!
我的父亲,是建筑公司的一个普通的上班族。他之所以买电脑,是用来计算建筑数据的。没想到这两台电脑成了我的玩具(笑)。
回忆起小时候,感觉一天到晚都在看书。我家前面有一个书店,我天天都泡在那里。有时候朋友来玩,我让他到家里来,他却指着书店说:那不是你家吗?那时候什么都看,科幻小说呀,漫画呀。百科全书全都记在脑子里。总之就是特别喜欢文字。实在没东西看,就看药品的说明书(笑)。
上了高中之后,就迷上计算机了。成天看计算机杂志。能让计算机按照自己的指示来运行,这比什么都有意思。特别是对编程语言非常感兴趣。当时对汇编语言、Basic都不喜欢,不想用它们来编程(笑)。于是我就开始自己发明语言,然后用这种语言来编程,写在笔记本上。不过这本笔记已经不知道去哪儿了,真遗憾。当时连语言的名字都想好了。当然了,不是Ruby啦。不好意思说,哈哈。
大学时代:不是去图书馆就是去研究室
大学我考上了信息科学学院。在那里我接触了许多在书中看到但从未使用过的软件和语言。大学里的老师都是我高中读过的书的作者,简直太不可思议了。不过,研究室里我是最不听话的,老是猫在那里设计自己的语言(笑)。
当时是日本泡沫经济崩溃的年代,但是我一点儿都没有闲着。整天泡在图书馆里,看了许许多多书。休息的时候就去电影院或者是书店(笑)。我不擅长运动,也不关心身边的人都在干什么。我从小就喜欢读书,虽然最近拜网络所赐,读得少了(笑)。阅读各领域的书籍,对我的成长影响很大。另外,我还常常关在研究室里。比如通宵在研究室里弄电脑,到了早上回家洗一下澡,然后再到研究室去(笑)。当时是80年代后期,研究室里已经连上网络了,我常常看BBS、新闻什么的。能接触到很多聪明的人物,觉得非常有意思。
当时是计算机的黎明期。我父亲是反对我考信息科学学院的。什么计算机,什么编程,当个兴趣就得了。不过我真是太喜欢计算机了。未来的出路我从未考虑过。可谓是义无反顾了。
经济不景气,开始开发Ruby
1990年毕业之后,我进了一家软件公司。我找工作有一个原则:坚决不在东京工作。我从小在农村长大,不喜欢人多的地方。花1、2个小时去上班,那简直不可想象。我其实更适合在小地方工作,不过那样的话可以选择的公司就比较少。后来遇到滨松一家软件公司招聘,我就去了那里。
我的主要工作是公司内部OA软件的开发。当时的电子邮件只能发送文字,我就弄一个可以粘贴附件的软件。有意思。公司一般会给我一个大致的范围,然后让我自由地去发挥。因为喜欢这个工作,所以常常加班到很晚才回家。当时的梦想就是一辈子做一个程序员。即使将来当爷爷了,也要继续工作。
过了几年,泡沫经济崩溃的后续影响开始显现出来。公司的业务一下子少了许多。时间非常充裕,于是我就想自己干一点事情,开始开发Ruby。这些我都是在公司弄的,也和同事交流过,同事亦给我许多帮助。
1年之后,我去了另一家公司,叫做名古屋CAD vendor。因为原来那家公司的经营状况已经非常不好了。虽然我对工作很满意,环境呀、人际关系呀都很好,不过当时我结婚有了家庭,考虑的东西就会多一些。万一公司倒闭了,那就比较惨了。而且我也想趁自己比较有优势的时候把自己推销出去。当时能做面向对象的脚本语言的人还是比较少的。
1995年,松本行弘将Ruby公开于众。反响极其热烈。
理念篇:
还是当怪才比较好
很多人都比较奇怪,我的数学怎么会那么差。高中时我甚至考过全班最低分。擅长计算机的人数学就一定好,这只是人们的臆想而已。
在日本的教育体制下,学生都被培养成面面俱到可又面面平庸的综合型人才。不过,我遇到的成功人士,大多都是一些在某些方面特别强,但在某些方面特别差的人。我的数学从来就是1(满分为10分),一旦到了程序语言的考试,我则有取得1000分的自信(虽然满分为100分)(笑)。每个人的能力都有上限,综合型人才往往是全面发展,而那些怪才往往专注于磨练他的专长。这样的人走上社会之后,更容易成功。
我开发计算机语言的初衷
所谓软件,其目的就是让计算机为人类工作。正因为人类的大脑有一定的能力限度,所以需要让计算机承担大部分的工作,让人脑空出来去解决更难的问题。因此我开发了ruby这样面向对象的脚本语言。
我为什么不自己创业
我是一个数学很差的人(笑)。让我算钱,就更差了。很多人都会问我为什么不自己做公司,这是因为我实在不擅长。我现在的工作,能让我自由、专注地开发程序。这样就足够了。
编程人员不需要擅长数学
编程人员要做的其实就是倾听客户需求,写下来,然后借助计算机语言让计算机去执行相应的任务。这哪里需要数学嘛?大家不要被表象所迷惑。算术反正有计算器,不用愁。而在计算机的世界里,比数学更重要的,是作为人本身所需要的一些技能。比如倾听能力、理解力等。其中最重要的是沟通能力。
编程是一种体育运动
很多人年轻时都热衷于体育运动,有些人上了年纪依然热衷。很不巧,我从小就不擅长体育,不过我能理解那些体育爱好者的感受。体育能够使人生变得丰富多彩。而编程其实与体育有着许多共同之处。可能很多人觉得编程和体育根本不沾边。不过,请你试着想一想,棋类常常被归类为体育运动之一,这是为什么呢?因为它其实是一种脑力运动。
说到编程和体育的共通点:
第一,两者都需要通过反复练习才能获得技术上的提升。要想成为一名优秀的程序员,知识和经验都很重要。编程人员常常需要以苦为乐。
第二,编程对美和速度的追求,与体育相似。优秀的程序言对自己作品中蕴含的程序之美,非常执着。另外,程序员在进行性能调优时的测定行为,以及对自我瓶颈的突破,和游泳以及田径选手有类似之处。
编程是一种兴趣
在日本,棒球爱好者可谓多如牛毛,可是真正成为专业棒球手的却是屈指可数。大多数人都是因为兴趣才接触棒球的。同样,有许多人爱好编程,于是世界上诞生了许多开源软件。同时,解决程序bug的过程,和解谜的过程一样,都是充满惊喜的。
不过和专业的体育选手不同的是,很多专业程序员并不是因为喜爱编程才干上这一行的。这一点,着实是比较悲哀的事。
编程是一种交流
在大家的印象里,编程其实就是坐在计算机前敲打键盘。不过这个工作其实非常人性化。至今依然没有出现能够自我编程的计算机,这也说明了编程是一种人类活动,甚至可以说,只有人才能编程。此外,程序编写出来是供给人类使用的。理解人的追求、人的感受,对于编程人员来说是非常重要的。另外,当一个团队联合进行编程工作时,团队成员之间的沟通能力也是不可或缺的。
编程是一种创造
多年来,我对编程的热爱从未有丝毫减少。其中最重要的原因是:编程是一种创造性的工作。只要有一台计算机,就能从无到有,构建出一个新的世界。编程的世界中,没有重力、因果等等现实世界中的制约因素。如此自由的创造性活动,除编程外,别无他选。我能通过编程,创造出一个我想象中的世界。这是编程最大的魅力。
编程是一生的事业
和许多活动相比,编程不需要体力。如果你不去那些彻夜加班的公司,那基本上年龄和体力都不是问题。编程更需要的是知识、经验、判断力等等,这些都不会因为年龄的增长而退化。换句话说,编程是可以干一辈子的。这一点,和那些专业体育选手略有不同。
日本有一个说法:35岁是程序员的退休年龄。我的身边的确有许多30岁左右就渐渐远离编程的朋友。与其说是因为他们能力低下,不如说是社会因素使然。在日本的IT界,优秀程序员的价值没有得到充分的认可,再加上论资排辈的传统以及职业价值的不平衡,35岁成为一个分水岭。
实际上,国外许多著名的编程人员即使到了暮年也依然活跃在第一线。我的大学导师,退休之后依然高产,因为退休使他没有杂事的干扰,能够专心致志地干他想干的工作。干一辈子编程,也是我的梦想。编程本来就是一件有趣的事。因为觉得有趣,所以进步很快,能编出优秀的语言来。如果你觉得编程只是一种谋生手段的话,那还是趁早辞职吧。快乐编程能使你的人生硕果累累,我相信。
分享到:
相关推荐
《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要...
《Ruby Programming—向Ruby之父学程序设计(第2版)》这本书旨在帮助初学者,甚至是完全没有编程背景的读者,快速掌握Ruby语言的基础和高级概念。 首先,Ruby是一种动态类型语言,这意味着变量的类型在运行时自动...
[Ruby.Programming_向Ruby之父学程序设计(第2版)].(日)高桥征义,(日)后藤裕藏.扫描版(ED2000.COM).pdf ) 带书签
《Ruby语言探秘:从入门到实践》正是你开启高效编程之旅的钥匙。 这不仅仅是一本教程,更是一次从基础知识到实践应用的全方位探索。我们为你精心准备了Markdown案例教程,让你在真实项目中感受Ruby的魅力。无论你是...
完整书名《Ruby Programming-向Ruby之父学程序设计》 ,就是那本经典的绿皮书 第一部分:通过简单的Ruby程序来介绍程序的基本架构。 第二部分:介绍基础语法规则,以及类、模块等面向对象程序设计的思考方法与...
《Ruby Programming_向Ruby之父学程序设计_第2版》PDF版本下载
ruby的基础语言,如果使用ruby编程,测试框架的搭建
Ruby,一种兼具力量与优雅的编程语言,由松本行弘(Yukihiro "Matz" Matsumoto)于1995年创立。它以其简洁的语法、动态的类型系统和面向对象的编程范式而闻名。Ruby脚本是一种可以在多种操作系统上运行的脚本语言,...
# 编程之魂:Ruby中的元编程艺术 Ruby 是一种设计精良的高级编程语言,自1995年由日本开发者松本行弘(Yukihiro "Matz" Matsumoto)创建以来,就因其优雅简洁的语法、强大的功能以及高度的灵活性而受到众多程序员的...
Ruby是一种动态、面向对象的编程语言,以其简洁和优雅的语法而闻名。由日本开发者松本行弘(Yukihiro Matsumoto,也被称为Matz)在1993年创建。Ruby语言的设计哲学强调了简单和生产力,它融合了多种编程范式,包括...
在Ruby中,元编程的强大之处在于其语法简洁且易于理解,使得程序员可以轻松地实现动态行为。Ruby提供了多种元编程工具,包括: 1. **方法定义与调用**:Ruby允许在运行时定义和修改方法,如`define_method`函数可以...
内容概要:本文是一份详尽的Ruby语言教程,从Ruby的基本概述入手,介绍了其主要特点、环境搭建、基础语法、面向对象编程概念、高级特性和Web开发框架Rails的应用。主要内容包括:Ruby的特点、安装方法、变量和数据...
Ruby是一种高级、面向对象的编程语言。它由日本的Yukihiro "Matz" Matsumoto在1995年设计,并于1996年首次发布。Ruby语言以其简洁明了的语法和强大的功能而受到开发者的喜爱。Ruby语言的特点包括: 1. **面向对象**...
Ruby元编程是Ruby编程语言中的一个重要特色,它指的是Ruby语言允许程序员在运行时对类、方法和变量等进行操作的能力。通过元编程,开发者可以编写出更加简洁、灵活和高效的代码。《Metaprogramming Ruby》这本书深入...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本资料包主要关注的是基于Ruby编程的基础知识和应用,包括如何使用Ruby进行开发和解决问题。 Ruby的设计哲学强调程序员...
ruby 元编程 中文 《Ruby元编程》以案例形式循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby代码库的实现细节,作者不仅向读者展示了Ruby编程的优势和Ruby特有...Ruby之父松本行弘作 序推荐。
Ruby语言探秘:Delphi编程之旅,实战精通之旅启程 对于编程爱好者而言,掌握一门强大的编程语言无疑是迈向成功的关键。而《Ruby语言探秘:Delphi编程之旅:从零开始到实战精通》正是你踏上这一旅程的绝佳选择。 这...
Ruby元编程是编程的一种高级技巧,它允许程序员在运行时动态地修改或创建代码,极大地提高了灵活性和代码的可扩展性。Ruby作为一种动态类型语言,其元编程能力尤为强大,使得开发者可以创建出高度定制化的解决方案。...
### Ruby编程语言简介 #### 一、Ruby编程语言概述 Ruby是一种动态的、面向对象的、通用型的编程语言,自1995年由日本程序员松本行弘(Yukihiro Matsumoto)创建以来,便以其简洁优雅的语法、高度可读性和易于学习...
- **元编程支持**:Ruby支持元编程,即程序可以在运行时改变其自身的结构和行为。 - **Ruby on Rails**:Ruby on Rails是一个流行的服务器端Web应用框架,用于构建数据库驱动的应用程序。 #### JSON简介 JSON...