程序员摸鱼指南:副业成就未来 |
珠江路在线
2020年11月4日
【
转载
】InfoQ
|
|
你可晓得, 赫赫有名的 eBay 在当年便是由副业 名目进展壮大起来的 。今日,摸鱼大神 Zed A. Shaw 给我们娓娓道来他的摸鱼 教训,要晓得,他在上班期间就摸了好多鱼,不只开发了网站,还在业余 工夫写了一套丛书 。另外副业也是你 抗衡贪欲企业的重要 目标 。
这是一则关于 eBay 的 Java 企业版程序员的故事 。
eBay 刚成立的时候,Java 正如日中天 。彼时,每个人都在用 Java 编程 。假如你是一名真正的程序员,那么你所做的 所有都是基于 Java 。我之所以晓得这丝毫,是由于我曾被卷入到一个无休止的、可怕的 Java 名目中 。直到 2008 年银行倒闭潮,这个 糟糕的 Java 名目才随之而去 。
2008 年银行的倒闭潮 确切对 Java 企业版带来了 灭绝性的打击,该事件最后还扼杀掉了 Sun(2009 年被 Oracle 公司收购,Java 是 Sun 在 1995 年 5 月正式公布的产品) 。在 2008 年,Sun 大概 40'50% 的资金来自运行 Java 的各个银行 。当银行由于抵押贷款欺诈而倒闭时,Sun 的一大笔收入 几乎在一夜中间蒸发殆尽 。随着较小的银行被并入其余三家较大的银行,对 Sun 的合同义务也随即被 取缔了 。
还有一种 模式的 “ 罪过关联” ,由于 Java 与僵化的旧系统 联络在一同,这些旧系统 无奈以足够快的速度做出转变, 甚至于未能在 2008 年的 瓦解事件中幸存下来 。要问我怎么晓得的,那是由于我曾在 Bear Stearns(贝尔斯登公司,成立于 1923 年的美国第五大投资银行与重要证劵交易公司之一)一个僵化的 Java 系统上工作过,亲眼见证了整个 瓦解的过程 。
要不是由于 Android,Java 这门语言早就在 2008 年悲惨地 沦亡了 。这便是我为何向来说 “企业版” 的缘由,由于这个版本的 Java 比较特别,从那时起,大多数程序员都很 讨厌这个版本 。这种怪异的、无限的、 曲折的、 艰涩的代码, 仿佛是为了让企业程序员保住饭碗才存在的 。我至今还记得那些令人 讨厌的 “老胡子” Java 程序员,假如你没有把全部的东西都封包在 AbstractFactoryIndirectFactoryFactory 中,他们就会 唾骂你、骚扰你 。
这种 使用 盘根错节、 艰涩难解的代码写法,因其 充斥 AbstractFactory 特色, 确切起到了将新人排除在行业之外的壁垒作用,同时也保住了程序员的饭碗 。
你不能 辞退那些 Java 企业版程序员,由于惟独他们才懂那些令人难以 相信的 艰涩代码,每年一次的 Bug 修复还得靠他们,并且这 Bug 还有一个诡异之处:每次在他们应该得到奖金的时候就会浮现 。你只能一年又一年地 领取 8000 人的工资,而他们上班所做的事 根本便是:坐在那里,看着一堆 Java 虚构机 无所事事,不然有一天(就在要发奖金之前),这些 虚构机就会 瓦解,到那时你就找不到人来修复它们了 。
这些企业版 Java 程序员存在的问题是,一旦公司倒闭,你就需求找到一份新工作 。你可能会认为,2008 年那场 瓦解事件会给这些程序员上一课,但他们 根本就没有 汲取教训 。你可能还会 认为,他们已经意识到没有一份工作是安全的,他们需求 主宰第二门编程语言,并有大量 代替 名目,以防万一因公司倒闭而失业 。
eBay 的程序员便是一个很好的例子 。
我曾用过几次 eBay, 即便到了 2014 年,它的消费者界面 依然是恐龙级老古董 。当消费者结账时,它会把
这些 糟糕的消费者界面万年不变,缘由在于它是企业版 Java 程序员及其工作的 掩护代码 。为了保住饭碗,他们 创立了在没有他们协助的状况下很难更改的系统 。但这是一把双刃剑,这一策略也使得他们自己难以更改代码,所以当公司要求他们让网站的 格调看上去更 “现代化” 一些时,他们会 声称:“这是不可能的 使命 。” 你可能会问他们,是不是 能够只 使用诸如 bootstrap 之类的东西,企业版 Java 程序员就会看着他们的老古董 Java 代码,用手工编码的 HTML 代码嵌入到 FactoryFactoryImplInterface 中, 而后说:“不,那是不可能的 。”
但是,这种 “不可能” 被 证实是一个 谎话 。最后,PayPal 独立出来了,消费者界面蓦地开始改善 。PayPal 与 eBay 原本共享同一批程序员,但在分拆之后,他们 辞退了那些老气横秋的企业版 Java 程序员,并雇佣了一些更好的消费者界面设计人员来改良 利用 。PayPal 之所以要这样做,是由于面临 Stripe 的竞争,后者凭借美丽的消费者界面和文档占领了开发商市场 。
在 PayPal 给你 展示了这个所谓 “不可能” 的代码其实 能够改良之后,这事儿在 eBay 内部激发了一场战争,最后,eBay 辞退了大概 3000 名企业版 Java 程序员 。官方 固然没有给出数字,但我从内部得到的信息是,有 3000'8000 名左右的企业版 Java 程序员被炒了鱿鱼,由于 CTO 想找别人来改良公司 。
只有你去看看 2008 年以来的许多银行,你会发现总有一些由程序员操纵的僵化技术,他们认为 维持僵化就 能够保住饭碗 。这种态度的 挖苦之处在于,这种顽冥不化最后会毁了公司,从而让他们丢掉工作,并且也让他们以后很难找到工作 。
eBay 程序员便是这种恶果的极好例证 。他们中的许多人甚至
无奈切换到 Android 开发 。我晓得有众多人转而从事与编程无关的工作,或者
索性退休 。他们中的大多数人在 eBay 工作了几十年,没有
其余成就,也没有
威力学习任何新的编程语言 。他们没有潜在的副业可做,没有额外的技能可供
展示,也没有
步骤解释他们是如何花了 20 年
工夫来维持 AbstractInterfaceImpl
众多人会告诉你:不要在家里用额外的 工夫来写代码,他们试图把这种观点看作是无产 阶层对晚期资本主义机器的某种抵抗 。我 诞生在一个十分 贫困的家庭,我 能够告诉你,这些人没有一个是真正 贫困的 。那些真正 贫困的人想要工作,他们晓得有可能会在一 霎时失去 所有,所以,他们会尽其所能 接续工作 。工作并不可耻,也不是失败的 标记 。
但凡让你少工作的人都不是你的朋友 。关于任何想赚更多钱而感到 耻辱的人也是如此 。通常状况下,这号人普通都有家庭或配偶罩着 。假如他们蓦地失去了工作,他们还有第二学位,而编程技能只是是通往 其余工作的一块小小的踏脚石;或者他们只是在妄想,认为自己会永远 占有轻松的工作 。他们的 经历和你我 彻底不同,所以,假如你需求工作,并且你还想 接续从事程序员这份职业,那么你绝对应该离那些在一家公司只学习一门编程语言的人远点儿 。
事实上,做副业便是你 抗衡公司贪欲的重要 目标 。要利用一个 占有 取舍权的人很难,依据我的 教训,工作之余从事一些额外 名目,给我带来的 好处比任何工作都要多得多 。我 能够有把握地说,我在职业生涯中所学到的 所有都是从我的个人 名目中学到的,而不是从我从事的工作中学到的 。我还 能够说,我在编程中最大的乐趣和享受,便是从事我自己的 名目 。
因而,我将给你列举一些理由,来 注明副业对任何 教训水平的程序员都是有 好处的 。
时至今日, 依然有一大群程序员还天真地认为从事副业是一种压迫 。但事实是,副业给了你 取舍权,而 占有 取舍权就 象征着 自由 。假如副业是用另一种编程语言 实现的,当你用新语言找到更好的职位时,你就 能够 取舍离开 。你也 能够把这些副业转化为你自己的新业务 。
假如你所做的全部工作便是 解决公司的代码,那么你实际上就会陷入他们特定的代码品牌和做事 模式中 。除非那家公司是 Facebook、Apple、Amazon、Netflix、Google 等科技巨擘之一,不然,在找新工作时,你的 教训在众多方面都会对你不利 。
你工作的公司就喜爱这样的,由于他们晓得你永远不会跳槽,由于你已经没有新技术的 教训,并且新技术学习起来十分 困苦 。你将 只有坐在那里看护 JVM,而不是试图找一份 依附 Go 编程语言的新工作,由于学习 Go 十分难 。
你不应该把副业看成是不 愿意的事儿,这样,一旦公司倒闭后,你还能找到新工作 。你应该将它看作是通过培训和学习让你有更多的 取舍余地,这样你就 能够更 自由地找到一份新工作 。
公司永远不会给程序员与他们影响力相匹配的工资 。你每年可能会得到 2% 的加薪,这还赶不上货币的通胀率 。固然你也可能会得到丝毫点奖金 。但与此同时,你的代码却是你的公司赚取数十亿美元乃至数万亿美元的重要缘由 。你 兴许会得到一些股票期权,这大概是你得到加薪的唯一 路径,永远 。
这个行业 时常需求新的人才,所以加薪的最 容易 步骤便是换一位工作 。换工作 能够让你由于做同样的 事件而得到增进 20% 到 100% 的酬劳 。
假如你认为你的老板会把你的最大利益放在心上,那么你便是在妄想 。他们只想从你身上得到最大的回报,同时又能给你尽可能少的酬劳 。你也应该采取相应的行动, 维持 主宰你的技能,并找到你所能找到的、最好的工作 。有一个好 步骤 能够让你的 取舍留有余地,那便是你有公开可用的副业 名目 。
将工作换到一种新的抢手编程语言是 遍及工资的有效 步骤 。假如你 保持让古老代码 畸形工作,你就别想 能够跳槽到工资更高的职位 。你需求 证实你 能够用 Go、Rust、Nim、Zig 或 其余抢手编程语言来编写代码 。公司雇佣你便是为了让你 能够开发一些东西,通过在副业 名目中 使用新技术开发东西,而你 能够很方便 证实这丝毫 。
假如一门语言是新的,那么你该如何 获得这份工作呢?近期有一则新闻说 IBM 想 应聘在 Kubernetes 上 存在 12 年工作 教训的程序员,要晓得 Kubernetes 诞生才 6 年,但要求有 定然的工作 教训实际上是十分 广泛 。那你该如何 获得新技术方面的 教训呢?答案便是:副业 名目 。
公司晓得,假如他们在新技术方面提供培训,员工学成后就会 取舍离开 。当你的代码是该公司市值达到一万亿美元的缘由时,你为何还不离开一家 回绝给你加薪的公司呢?
在工作中,你会由于试图 使用任何新技术而被 责备为 “特立独行” ,哪怕这项技术在性能上是一个 硕大的飞跃,并被 Google 或 Facebook 使用 。
所以, 获得新技术唯一 路径便是自己培训自己,而在编程方面唯一有效的培训便是去构建东西 。人们付钱给你不是为了让你晓得 Haskell 中的 Monad 是如何工作的,而是为了让你用 Haskell 中的 Monad 来构建东西 。所以,假如你 素来没有构建过什么东西的话,那他们怎么相信你能真正做出他们需求的东西呢?
你永远不会由于你的工作而收到任何 本质 模式的“致谢” 。你只是是机器上的一个小小齿轮,没有直接证据 能够 证实你在大多数公司做过什么 。假如在 eBay 只用 iframe 实现全部的工作,找新工作时就只得 扯谎了 。但是在副业 名目上 使用一门新的编程语言, 能够表明你实际上是能胜任的 。
除非电影 格调的致谢名单成为编程的 标准之前,你还得需求副业 名目来 展示你的技能 。
你可能会感到奇怪,为何 eBay 的 Java 程序员不能直接去做另一个 Java 工作呢?为何不直接进入 Android 开发领域呢?那是由于他们实际并不懂 Java,他们懂的只是 eBay Enterprise Java 。
程序员都有一种错觉,认为自己在公司里所 使用的语言是 “ 标准” 的,但是事实并非如此 。你对这种语言的 使用是十分特别的,并且还是为这家公司量身定做的,它基于 盘根错节的历史,这使得它与 其余人对这门语言的 使用相比,显得很奇怪(由于 其余人也都认为自己对这种语言的 使用是 标准的) 。
要 攻破这种错觉(并使自己 维持 清醒)的唯一 步骤,便是在公司代码库之外,用 彻底不同的编程语言做一个副业 名目 。这将协助你在 将来找到新工作,由于从外部 教训来看,你更 相符新的编程趋向 。
假如仅在 eBay Java 上编程,就 象征着你将只能在 eBay Java 上工作 。行业 变迁是很快的,新工作紧跟潮流,所以当你需求或想要一份新工作的时候,你需求做的是:紧跟趋向 。
鉴于编程工作的制造性,许多公司的工作环境对程序员来说是令人难以 相信的压抑 。当你在一家公司工作时,你将被迫 使用他们认为你应该 使用的工具,而不是最 合适你的工具 。假如这家公司采纳 Eclipse 和 Java,那么你将 使用他们特有的 Eclipse 品牌 。要是他们 使用 WebStorm,那你也将会 使用 WebStorm 。假如你 使用了任何不同的东西,期待你的便是不停的 冷笑和骚扰 。许多编程环境对程序员的效率和技能来说,都是压迫性的 迫害和 要挟,而他们 指望通过这样的 模式,让程序员随时 能够被 代替 。
那些 MBA 们喜爱整齐划一的齿轮,让他们 能够随时改换,他们并不认为你是一个有制造力的人 。你只是是一台机器,他们将含糊的句子灌输进去, 而后 期冀后端能生产出牢靠的软件 。任何不够通用的东西,都会被视为对企业的 触犯而被关闭 。假如你 重视自己心智的健全,你就会花一些空闲 工夫做一些你喜爱的 事件 。
众多人认为公司在 应聘之前要求查看他们作品是不公平的 。他们感觉,有些公司居然还敢要求他们 证实自己会编程,认为这很令人 恶感:编程可不是表演艺术!
而 事实是,编程 确切已经成为一种表演艺术 。你必须 展示你的工作, 参加团队 合作,提交代码审查 。你必须将想法写在白板上,并 念叨你想要做的 事件 。你必须 加入会议,将你的东西 抛售给 其余人 。
但是,那些能用副业 名目来 证实自己 确切能写代码的人,他们同时对 其余任何 模式的行业表演都没有问题 。他们治理着一个精心 筹划的 LinkedIn、Instagram 和 Twitter 账户,这些社交网站 支撑他们 展示在开发方面的 卓越工作,每年在 30 个会议上发表 报告,还拍了一些梦幻般的专业照片……
事实上,你的副业 名目已经 证实你 能够胜任这项工作,并且 能够独立 实现 。现在编程是表演性质的,这很令人 讨厌,但我们必须 承受 。
你不 定然非要写老板让你编写的代码 。你 能够去做任何你想做的事,那么为何不去编写能改善你生活的代码呢?假如你全部的编程 教训仅仅是你在公司所做的工作,那么很显然你会 讨厌它的 。
假如你回家后,做一些你有兴趣或者对你生活有直接影响的事,那么这便是学习编程的力量 起源 。我能 了解为何有些程序员新手认为编程只是他们的第一份工作中要做的 事件,但实际上,它远不止这些 。当你 主宰了这项技能,你甚至 能够让你的生活实现自动化 。
我用代码探究新的音乐 实际,将 枯燥的税收工作自动化,为亲朋好友搭建商业网站,还 创立了我的整个网络业务,这些最初只是我的一个副业 。副业给我了行动和旅行的 自由,让我不再 害怕冒险 。它们成为了我抵制 糟糕的经济、 糟糕的老板、 糟糕的公司以及 寰球大瘟疫的安全网 。我有 信念,我 能够在任何地方工作,我 能够 证实我 能够在任何地方做任何事 。
固然了,下班后写代码并不是必须的,但假如你想在你的职业生涯中能有所 取舍,并且 充足利用这项技能,那么我强烈 提议你这样做 。
那些 悲叹只能从事副业的人,没故意识到编程 威力便是你的生产 材料 。现在,你 几乎 能够不花一分美元就能 发展线上业务 。众多服务都是免费开始的,甚至不需求 应聘一位额外的程序员就 能够启动 名目 。
作为程序员,你自己就 占有终极工具, 能够无成本的 创始自己的新事业 。你 能够设置自己的 虚构主机,注册你的公司, 创立你的域名,甚至 能够 使用 btcpayserver 之类的东西来 接纳你的比特币 。你也 能够做 参谋,在你所在的地域提供编程服务,协助小微企业等等 。
我能 了解那些有孩子、家庭的人可能没有 工夫,但是,绝大多数 埋怨自己没有 工夫做副业的人显然是有 工夫的 。我想起一个人,他天天公布大概 200 条推文,但便是 “没有 工夫做副业” 。
我 提议,假如你认为自己没有 工夫,就每半个小时记录一次,延续两周,看看你把 工夫都花在哪里了 。 规矩说,假如你不去干一些傻事,你就会发现自己实际有大把大把的 工夫 。
我十分喜爱做那些最后能让自己感到 快活的 事件 。假如只能在家里从事副业,让你感到悲哀和愤慨,我劝你还是别做了 。找点别的 事件来打发你的 工夫吧 。但是,假如你想在这个行业 占有 悠久的职业生涯和最后的 自由,那么你就必须 接纳这份工作的表演性质,并在业余 工夫独立工作 。 规矩说,副业 名目便是确保你不会由于悲剧性的事件而失业的唯一 步骤,并且,副业也是编程中真正乐趣所在 。