产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

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

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

关注

评论

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

Greenplum 内核源码分析 - 分布式事务 (五)

王凤刚(ginobiliwang)

源码分析 greenplum 分布式式事务

HBase 优化如何操作

编程江湖

HBase

阿里巴巴集团副总裁贾扬清-一个AI开发者的奇幻漂流

大咖说

Java开发之SSM框架整合配置知识分享

@零度

ssm JAVA开发

2021年度总结,欲望反光

程思扬

经验分享 #总结# 经验总结 盘点 2021

使用APICloud开发app的性能提升实践

YonBuilder低代码开发平台

android APP开发 APICloud 跨端开发 app性能

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

【直播预告】全国人工智能大赛赛题讲解直播来啦!1月6日晚20点,不见不散!

OpenI启智社区

人工智能大赛

Dumpling 导出表内并发优化丨TiDB 工具分享

PingCAP

惟客数据“惟客云”升级:稳操胜“券”,助力商家精准营销

科技热闻

Stellantis集团将于2022CES展期间召开网络直播发布会

InfoQ_967a83c6d0d7

绥北人民法院:用宜搭打造“线上法庭”,让群众少跑腿

一只大光圈

低代码 数字化转型 法院 钉钉宜搭

Kafka的灵魂伴侣LogiKM(1)之集群的接入及相关概念讲解

Kafka中文社区

「offer来了」面试中必考的15个html知识点

星期一研究室

html html5 css3 前端 html/css

基于机器学习和TFIDF的情感分类算法,详解自然语言处理

华为云开发者联盟

自然语言处理 机器学习 算法 TFIDF 情感分类

设计模式【7】-- 探索一下桥接模式

秦怀杂货店

Java 设计模式 桥接模式

ReactNative进阶(二):ReactNative 项目文件结构介绍

No Silver Bullet

React Native 1月月更

VRAR产业峰会暨第二届华为VR开发应用大赛颁奖典礼在和平区成功举办!

华为云开发者联盟

云计算 5G AR 华为云 vr

安装VTK配置出现错误

Ayosh

qt

自创解法!setTimeout+Promise+Async输出顺序?简单的一匹!!

Sunshine_Lin

面试 前端 ES6 Promise Async

React 中五种常见的使用样式

编程江湖

React

云计算厂商们,你们辜负了中国的用户

码农一米

云计算 云服务

网络安全好学吗?手把手教你学metasploit 网络安全工程师学习资料汇总

学神来啦

甲方,你们愿意被乙方侮辱吗?

码农一米

云计算 云服务

如何解决JDBC死链接导致NIFI线程假死

编程江湖

带你认识传统语音识别技术

华为云开发者联盟

语音识别 语言模型 声学模型 隐马尔可夫链 WFST解码

前端培训:React Native 开发过程中遇到的坑

@零度

前端开发 ​React Native

docker

Docker jenkins pipeline

大数据培训:hadoop中shuffle过程面试题

@零度

大数据 hadoop Shuffle

【MongoDB学习笔记】MongoDB索引那点事

恒生LIGHT云社区

数据库 mongodb 索引

一图解析MySQL执行查询全流程

华为云开发者联盟

MySQL 服务器 数据包 查询语句 应用层

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