一个老程序员的 30 年生涯回顾(译文)
[](http://www.bshare.cn/share)
作者:阮一峰
前几天,我读到一篇文章,一个 60 多岁老程序员回顾本人的人生。
读完当前,我很受触动,感觉对于软件行业的很多认识,我也有同感。上面就是这篇文章的翻译。
====================================
一个老程序员的 30 年生涯回顾(译文)
原文网址:hackernoon.com
作者:Chris Fox
1、
1967 年,我 13 岁时开始学习编程。
1988 年,我正式进入了软件行业,通过编程养活本人。那一年,我 34 岁。
2、
1989 年,我退出微软公司,那是微软为程序员提供单人办公室的最初一年。咱们编程时,简直没有烦扰,这真是太好了。过后,微软的观点是必须为程序员发明不受打搅的环境,让他们全身心地投入工作。
3、
1990 年 5 月,Windows 3.0 公布,公司呈现了真正的变动。
忽然之间,我与一个吸烟的共事共用一个办公室,他终日在电话里大声聊天。更蹩脚的是,咱们开始有更多的会议。
4、
接下来的 20 年,状况越变越糟。程序员像农奴一样被应用,许多人饱受压力、精疲力尽,每周工作 70 个小时以上。然而实际上,其中真正用来实现工作的工夫只有 4 - 6 个小时,其余工夫都为通过质量检查零碎苦苦挣扎,设法应酬各种品质措施。
5、
到了 2009 年,所有都变得凌乱了。程序员对代码品质的酷爱,齐全被复选框式的机械解决取代了。在 2008 年末,我的主管要求我,代码都必须有单元测试,以便在零碎中为该我的项目勾选 ” 具备单元测试 ” 的那个框。不久,他又要求我尝试 ” 测试驱动的开发 ”(TDD)的新编程模式。
最初,当他们要求我做结对编程时,第二天我就因为愤恨而辞职了。
6、
来到微软后,我去了西雅图市中心的 Real Networks 公司工作。在西雅图,交通堵塞是一个大问题,我个别在早上顶峰工夫之后的 9:30 去下班,这样只有开车 30 分钟,就能到公司,还算不错。
7、
不久,我所在的团队开始尝试麻利开发,每天早上 8:30 举办一次 ” 站立会议 ”。这正好赶上早顶峰,30 分钟的通勤工夫变成了 90 分钟,我必须在早上 7:00 出门才行。我简直没有方法准时到达,并且感到十分困倦。我询问是否能够略微推延会议。不行,你难道不晓得站立会议必须在晚上举办吗?
为此,我只能(无偿地)多花了额定的工夫开车去下班。
8、
这种会议真是很荒诞,每个程序员报告本人正在做的事件。大部分时候,咱们做的事件跟昨天雷同,偶然会做一些新的事件,但没有什么特地可说的。会议上,产品经理会体现出生机勃勃、欢快愉悦的情绪,听起来很投入,而实际上我晓得他们下班时很多工夫都在脸书上玩游戏。
9、
许多次,我听到 ” 故事 ”(Story)这个词。我问,” 故事 ” 是什么意思?答复是用户场景或者应用案例的新名称。随着我对麻利开发的理解越多,遇到的重命名和名词重定义就越多。我看不出来这能对工作带来多少的新价值,惟一带来的就是更多的会议。
我倡议不要应用 ” 故事 ” 这个名词,后果被淡漠地告知,” 故事 ” 是麻利开发的一部分,咱们将紧跟这种新的开发方法。
10、
我的原打算是,2019 年 65 岁时退休,而后搬到东南亚国家享受退休生存。然而,经验过了爽朗的站立会议、白板上的迭代看板、一系列高压力的工作、对 ” 故事 ” 的不停议论,我越来越对这个工作感到恶心。
2010 年 11 月 15 日,56 岁时,我退休了。
11、
我在越南买了一栋房子(上图),而后拾掇行装,来到了美国。我十分喜爱这栋丑陋的新房子,筹备在那边弹吉他,浏览物理书籍,体验截然不同的文化,放松身心。
12、
在越南过了一段日子当前,生存变得很闲,我只好把工夫用来学越南语,否则就太无聊了。
13、
一位敌人倡议我能够试试 iPhone 和 iPad 开发,软件工具是收费的。我思念编程,就买了一台 MacBook,学习了 iOS、Objective-C 和 Xcode,很快就写出了一个能够发售的 App。我又回到了这个行业。
14、
2011 年到 2016 年,我一开始为本人写 iOS 和 MacOS 应用程序,而后发售。这样也不错,然而我想挣更多的钱,就开始通过自由职业网站的中介,接一些客户的活。
15、
2017 年,我取得了一家加利福尼亚公司的近程工作,为他们做服务器端开发。我学习了 C#、Entity 框架、ASP. NET。当举荐我的人到职了,我就接管了服务器端和数据库开发。这样曾经继续了 30 个月。这是一段很棒的经验,让我把握了一些最新技能,我喜爱服务器端和数据库编程。
这些工夫我始终是一个人工作,但也是团队的一员。整个开发部门都是近程的,浏览器客户端开发人员在悉尼,我在越南。咱们通过 RESTful API 合作,彼此都是独立工作。
16、
回顾我的 30 年程序员生涯,软件行业产生了天翻地覆的变动。
当初的软件业有更多时尚的行话和术语,比方用户故事、技术债权、麻利、重构、迭代、里程碑等等。在我看来,所谓迭代,就是说这段时间你会适度操劳,没有其余含意。
奇怪的是,他们用各种方法监督程序员,然而招聘的时候,职位要求仍然写着,须要具备独立工作精力、高度主动性的人。这真是讥刺。
17、
当初的软件业还风行凋谢办公室,这意味着齐全不可能集中精力。你的工作被继续一直地打断,没法关门保持沉默和集中注意力。如果你戴着耳机,就意味着你的团队单干精力不够。
18、
最初,测试曾经变味了。以前,我在微软公司,咱们没有那么认真对待测试。微软常常开玩笑说,任何人都不应该应用偶数版本的软件,因为它是测试版,适宜那些违心向咱们报告谬误的客户。比方,请勿应用 2.0 版,因为 2.1 版将修复客户报告的所有 2.0 版的谬误,至多是比较严重的谬误。
当初的软件业提倡测试驱动开发这种荒诞办法。我在许多中央都读到,在软件开发中,没有什么比单元测试更重要了,甚至比交付成绩的自身还要重要。单元测试是设计,是定义 API 的中央。测试覆盖率不到 100%,就是存在欠缺,100%覆盖率是程序员的荣誉,开发人员应该负责测试他们的产品。咱们不再须要黑匣子测试流程,也不须要测试工程师。
我认为,这些态度充斥了狂热主义。每个人都有盲点,总是会存在疏忽编写测试的案例与疏忽编写代码的案例。
19、
我喜爱编程,喜爱解决问题和开发性能,从小开始直到现在都是如此。
以前,我抉择遵从那些风行的做法,然而当初不会了。我不会在开放式办公室工作,不会继续一个星期听所谓的专业术语,不会将各种新词用来形容旧事物,不会结对编程,不会加入频繁的会议,不会在意对团队合作精力的要求,也不会讥笑那些单独工作的人。
20、
我喜爱服务器端开发,将来心愿还能够做这方面的工作。同时,我正在转向技术写作,学习近程工作所需的新技能。
我喜爱当初这种一点不疯狂的环境。
(完)