【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

  • 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:092523
用户头像

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

关注

评论

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

技术人的 2023 总结|火山引擎开发者社区联合 InfoQ 写作社区第四届有奖征文获奖公布!

InfoQ写作社区官方

云原生 音视频 火山引擎 热门活动 #大模型

观测云产品更新 | 监控、数据脱敏、快照分享等优化

观测云

监控 快照 数据脱敏

淘宝店铺所有商品数据接口|淘宝API接口

tbapi

淘宝API接口 淘宝店铺所有商品数据接口 淘宝整店商品数据接口

分布式基础概念-分布式缓存[2]

派大星

Java 面试题

Kosmos实现无状态工作负载跨集群平滑扩展

畅聊云原生

全面预算管理平台:让企业管理智慧升级

智达方通

智慧管理 全面预算管理

产品待办列表和冲刺待办列表的区别

PingCode

产品经理 产品待办列表

如何利用item_get接口提供的数据进行商品比较和筛选?

技术冰糖葫芦

API 文档

Todolist工具哪个好?九款最优秀的待办事项管理工具

PingCode

项目管理 待办事项管理

348字节实现精简版吃豆人小游戏

南城FE

JavaScript 前端 游戏

告别盲目制作,5分钟教你完全理解用户旅程图!

Geek_09ea8e

模板 用户旅程图

袋鼠云产品功能更新报告08期|近百项全新功能和优化,你要的都在这里!

袋鼠云数栈

大数据 数据中台 产品更新 产品功能

Illustrator 2023 for mac(Ai2023矢量设计软件)v27.9.0中文激活版

mac

AI 苹果mac Windows软件 矢量图软件 llustrator 2023

自建大数据平台迁移腾讯云EMR最佳实践

腾讯云大数据

EMR

案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化

华为云开发者联盟

鸿蒙 开发 华为云 HarmonyOS 华为云开发者联盟

Amazon CTO Werner Vogels:2024年及未来四大技术趋势预测

亚马逊云科技 (Amazon Web Services)

re:Invent AIGC Amazon S3 大语言模型

交易所开发:服务为您的企业提供支持

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Milvus 再上新!支持 Upsert、Kafka Connector、集成 Airbyte,助力高效数据流处理

Zilliz

kafka Milvus Zilliz airbyte

如何根据获取到的商品信息制定更加精准的营销策略?

技术冰糖葫芦

API 文档

拿来就用!6款详细的用户旅程图模板,一键下载!

Geek_09ea8e

模板 用户旅程图

低代码如何提高生产力?

互联网工科生

低代码 项目开发 JNPF

RUM增强APP端快照配置全量会话回放与自定义协议网络请求采集功能

博睿数据

Kosmos介绍

畅聊云原生

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

PingCAP

数据库 数据库迁移 TiDB 银行业

ThreadPoolExecutor线程池内部处理浅析

快乐非自愿限量之名

Python 内部处理

零束科技:博睿数据是智能化路上的可靠“守护者”

博睿数据

#运维

Linux MIPI 调试中常见的问题

快乐非自愿限量之名

Linux 运维 调试 linux运维

用爱发电,分享快乐,真·免费GM公益服游戏!

echeverra

公益服

开发体育赛事直播APP平台实现“流量”向“增量”的成功转化

软件开发-梦幻运营部

从HumanEval到CoderEval: 你的代码生成模型真的work吗?

华为云PaaS服务小智

云计算 软件开发 华为云

SDK对比测评|如何科学做直播产品技术选型?

音视频开发_AIZ

音视频 技术选型 直播推流 音视频技术 测评对比

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