【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

做了三十年程序员的我是如何避免出现厌倦的

  • 2016-05-06
  • 本文字数:2803 字

    阅读完需:约 9 分钟

读了大量关于编程倦怠的帖子后,我开始思考自己从事这个行业这么长时间(从 1981 年开始)是如何一直保持兴趣的。我为什么还在写代码呢?

当然,我在我三年前一篇很火的帖子“我 56 岁还是想干这一行”里有进行一些介绍。但是是从程序员如何编程方面来说的,这一篇是说我为什么能坚持做一个程序员,这里涉及的不仅仅是编写代码。到底是什么让你能够一大早就跑到办公室坐下,并且兴奋地打开你的文本编辑器或 IDE?

回想我喜爱的工作、我痛恨的工作以及哪些很舒服的工作,它们有什么区别呢?到目前为止我都做了什么?

正如一开始,这里我给出了按时间顺序排列的工作单位列表(注意我很少在这里使用真实名称,除非是与我们谈论的内容相关),我把时间用来做一些自己的事情,一些我会在后面提到。

  • 国防承包商
  • 我自己的第一家公司
  • 我自己的第二家公司
  • Help Desk Software 公司
  • 电子邮件公司
  • 苹果公司(乔布斯回归前)
  • 咨询公司
  • 咨询公司
  • 金融服务
  • 数码印刷
  • 卫生保健
  • 3D 在线游戏
  • 旅行
  • 施工

注意到奇怪的地方了吗,比如我好像从来没有在同一行业工作过两次?所有公司的项目都是在完全不同的领域。

我的两个创业公司可能是那时经历的唯一延续,它们都和 Mac 软件有关,不过第一个公司我们自己充当发行商,第二个我们为他们打工写代码。做一些真正属于你自己的工作是痛并快乐着的,当事情进展得很顺利的时候一切都是快乐而美好的,而我们确实没有足够的资金与微软竞争的时候,这种快乐就结束了。第二个公司和 Deltagraph 有关的工作,由于 Mac 市场已经干涸了,出版商想要转移到其它方向发展。

现在,创办这两个公司的我不仅仅是主程序员,而且要作为一名管理者去处理事务性工作。在第一个公司里我要接受媒体采访,参加股东大会并且担心公司利益。再那两个公司的经历之后我不再想尝试这样的事情了,只想为他人打工。那是我唯一没有跳槽的一段时间(大概在 21 年前)。

在过去的二十年里,我主要是为他人工作,无论是作为一名程序员或一名架构师,有时我不得不扮演其他的角色,但从来没有作为一名纯粹的管理者。因此,在经历所有这些之后,为什么我还能受得了?

(1)我不加班,除了偶尔工程项目面临结束的时候。当然, 在我很热门的帖子“为什么你和我都不应该无偿加班”里我有提到这一点。有一些雇主(尤其是咨询公司)它们几乎是让你无限制的加班,即使你干到身体不支他们也不在乎。但是,你不必为他们工作。用这种让你再也不想做这件事的方式毁掉对编程的爱实在是不值得。

(2)我试图找到一个具备我喜欢的工作方式的地方。问题是,在开始的时候你并不知道这个工作方式和内容是否和你认为重要的事情相符合,工作的过程、项目如何组织、甚至是这份工作对每个人的期望。我希望在一个没有人规定我做什么的地方工作,在那里我可以用我所有的能力,最大限度贡献我的价值。每个人都有长处、经验以及想法,能找到一份工作去做你自己是一件无比快乐的事。诀窍是在去那工作之前就做好判断,或者至少找到一个不会让你陷入其中的方式继续工作。人生苦短,它就像一双不合脚的鞋,你不会喜欢它,你也不会得到很大的好处。

(3)不要以为你总是需要在相同行业一遍又一遍地做同样的事情,甚至更糟的是你永远不会离开你的第一份工作,只能坚持。我知道,因为那些在同一家公司一直工作了 25 年或 30 年的人他们害怕离开自己的安乐窝。你总是这么墨守成规,但你不知道其实有很多更好的地方可以工作。我不经常换工作,因为有时候想学新的东西只要换一种业务就行了!不过,新的地方意味着新的机遇、新的挑战以及新鲜的要学习的知识。新的并不意味着更好,但同样的事情永远坚持肯定也不会变得更好。

(4)有时你必须停止因为你有其它的事情想做。当我对一些事情特别感兴趣特别激进的时候我会花一段时间去做一些事情。我的第二个创业公司倒闭之后我开始研究并建立期货交易系统,只是因为它很有趣。我没用钱来实战操作(因为那时没有足够的钱来交易),但是在学习中获得了很大乐趣。我玩一个在线 FP MMO 玩了 10 年,但总是对它的质量很失望(该公司一直没有足够的钱做更多的开发以及修复它),因为它们是本地的公司,于是我为他们工作了超过 2 年。这是我做过最难的工作,并且几乎没得到什么报酬。但它是如此具有挑战性且复杂的工作,我需要在两个平台和 OpenGL 上的一个巨大的 3D 代码库上开展工作,有超大量的问题要修复,而我就像一个在糖果店里的孩子。可悲的是我不得不退出,因为我需要真正的收入!

(5)除非你拥有这家公司或有这家公司的大量期权或股票,否则不需要害怕离开。你偿还雇主为你支付的薪水的唯一方式,就是将自己的工作做到最好(每周 40 小时!);你不是一个奴隶,在承诺做好工作之外,你在忠诚度方面没有任何亏欠。找到一个好地方,并待一段时间,但如果它不是很好,或不具备挑战,或那里的人很无聊,或管理很呆板,不要担心任何事情,你还可以找别的工作。我知道这并不总是很容易(尤其是 2000 年不景气的时候),即使你现在很开心,但还是可以看看外面的情况,永远不要害怕和招聘人员、好友或网络多进行交流。你永远不知道后面伴随而来的事情会有多酷。

(6)虽然你不能总是创业开公司,但这的确是一个很好的选择,可以让你看到要担心的业务是什么样子;对于雇主所要考虑的东西,往往你会得到一个新的视角。另外,你还得到很多新的东西(如销售和利润),否则你可能错过了!我花了 9 年的时间经营我的两家公司,我在大多数时间里享受了很多(但不是结束的部分),我可以和很优秀的人一起工作,可以写人们实际使用的东西。我从来没有太多的薪水,但它是一段不能简单换成其他任何东西的难得经历。你总是可以为别人的初创企业工作,经常做很多不同的事情,但要记住这可能并不值得你自己一直工作到死。

(7)不要害怕新技术或者行业的变化。你必须每一天都保持进步,至少学到一些东西。新理念、新的语言、新的框架、新的平台;你永远不知道什么新的事物可能会让你变得更好。当然,新的事物并不总是更好,有时新的事物来的太快(谢天谢地我不是一个 JavaScript 程序员),但新的事物总能提供机会。如果你不学习任何新的东西,最终你不仅会讨厌你的工作,你甚至可能会得不到工作机会!

希望这个单子上列举的东西对你有用,至少这些东西帮助了很长的时间,让我没有提前结束职业生涯。我必须补充一点,写博客已经将近十年,一直感觉很棒,我可以跟很多人交流(偶尔可以从他们那里听取建议),那些人从博客中找到了一些值得读的内容,同时在我将这些话写下来的时候,我当然也得到了很多。

记住,你的职业生涯的一切都取决于你。想让它保持一段长的寿命,它就能够实现。如果你不想在一个糟糕的地方工作,就请一直睁大你的眼睛。最后,你在有一天退休的时候,会说:“我有一个精彩的人生”。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-06 17:092517
用户头像

发布了 268 篇内容, 共 118.1 次阅读, 收获喜欢 24 次。

关注

评论

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

技术分享 | 测试人员必须掌握的测试用例

霍格沃兹测试开发学社

为什么MatrixOne 0.5变慢了

MatrixOrigin

矩阵起源 MatirxOrigin MatirxOne 因子化

你还有什么问题吗?

AlwaysBeta

程序员 面试

Kyligence 亮相 Gartner 2022 数据与分析峰会,解锁数据智能新潜力

Kyligence

数据管理 指标中台

NFT平台开发:NFT数字馆藏平台开发

开源直播系统源码

数字藏品软件开发 数字藏品开发 数字藏品系统

节能环保LED显示屏为什么是未来发展趋势?

Dylan

LED显示屏 led显示屏厂家

另眼旁观 Linkerd 2.12 的发布:服务网格标准的曙光?

张晓辉

云原生 kuberne Linkerd 服务网格

研发管理 DevOps 最佳实践之三问三答

极狐GitLab

DevOps gitlab CI/CD 代码规范 gitops

【小程序】view视图,swiper轮播图,scroll-view滑动列表 (在线详细手册)

计算机魔术师

8月月更

厚积薄发--一文带您了解阿里云 RocketMQ 轻量版消息队列(MNS)

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

建成 5000 多间「梦想中心」后,他们决定将技术开源

腾源会

开源 公益 腾源会

【小程序项目开发-- 京东商城】uni-app开发之配置 tabBar & 窗口样式

计算机魔术师

8月月更

入门机器学习?还是先抢救一下数学吧!

博文视点Broadview

移动端App自动化之触屏操作自动化

霍格沃兹测试开发学社

BulkProcessor异步批处理组件使用

大河

elasticsearch bboss bulkprocess

一文读懂数据科学Notebook

Baihai IDP

人工智能 ide AI notebook 数据科学

项目经理和ScrumMaster可以是同一个人吗?

ShineScrum捷行

Scrum 敏捷 ScrumMaster 项目经理

技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?

霍格沃兹测试开发学社

兆骑科创创新创业服务平台,海内外高层次人才引进,赛事承办

兆骑科创凤阁

兆骑科创人才引进服务平台,线上直播路演,投融资对接

兆骑科创凤阁

AntDB最新成果亮相全球分布式云大会,推动企业数字化变革深入

亚信AntDB数据库

AntDB

Tapdata 获得阿里云首批产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 Serverless 云原生 SAE 合作

蓝牙5.0简介、nRF52832 BLE样例工程框架及main函数初始化流程简析

矜辰所致

蓝牙 启动流程 8月月更 nRF52832

校区多,客情管理难?看中进教育使用明道云的新解法

明道云

leetcode 227. Basic Calculator II 基本计算器 II(中等)

okokabcd

LeetCode 算法与数据结构

Elasticsearch添加修改删除索引文档

大河

elasticsearch bboss

10大常用的排序算法(算法分析+动图演示)

Five

算法 排序算法 8月月更

无需编写一行代码,实现任何方法的流量防护能力

阿里巴巴云原生

阿里云 微服务 云原生 流量

【小程序项目开发 --- 京东商城】 启航篇之uni-app项目搭建

计算机魔术师

8月月更

2022 世界人工智能大会|人工智能与开源技术先锋论坛即将开幕

Kyligence

开源技术 人工智能大会

GOPS现场 | 对话龙智董事长何明,探讨DevOps安全新概念

龙智—DevSecOps解决方案

运维 GOPS大会 GOPS全球运维大会

做了三十年程序员的我是如何避免出现厌倦的_语言 & 开发_张天雷_InfoQ精选文章