将个人项目发布为商业产品的经验教训
外星人。一切都始于外星人。回到旧金山,一家名为“未知世界”(Unknown Worlds )的游戏开发商。“未知世界”很棒。我们很随和,但我们创造了精彩的产品(以外星人为主题)。我们制作的游戏为全球数百万人带来了欢乐。创始人查理和马克斯是最酷、最鼓舞人心的家伙。
在加入 Unknown Worlds 之前,我在毕马威会计师事务所工作。我是个会计,不是程序员。我无法控制电脑做什么。但现在,我做游戏,身边都是能控制电脑的人。
Brian Cronin、Dushan Leska、 Jonas Bötel、 Steve An等人给了我很大的启发。他们简直就是神。他们会连续几天恍惚地坐着,偶尔在键盘上敲敲咒语,最终向我们展示一些令人惊叹的新游戏功能。我真是惊叹不已。
Dushan 会对我说:“把你每天做的事情自动化就行了。这会很难,你得学很多东西,但它会教你如何写代码。” 所以我照做了。
在毕马威,我花了很多时间与微软 Excel 斗争。Excel 本身并没有本质上的问题。问题在于它是一个非常通用的工具,而我们所做的工作却缺乏通用性。我们花了太多时间手动复制粘贴数据、清理数据、整理数据。
来到 Unknown Worlds 后,我开始监控我们的销售情况。我运用毕马威的智慧,创建了精美的电子表格和图表。这原本是一个非常依赖手动操作的过程。所以,在 Dushan 的建议下,我开始将其自动化。
这个过程慢得令人痛苦。我得利用下班后、周末和午餐时间来完成:我没有老师指导。一旦开始,我就被迷住了。以前在毕马威需要几个小时才能完成的任务,在机器的手中瞬间就完成了。我感觉自己像个魔术师。
能力越大,责任越大。很快,我就开始为我们的游戏写代码了。我觉得自己真是太聪明了。我写的一些东西超级酷,其中一个功能甚至让我受邀在游戏开发者大会上发言。但该死,大部分代码都是垃圾。
《深海迷航》的开发经验让我明白,平庸的程序员对大型项目的健康发展是危险的。同样危险的是:死神利维坦
在一个大型软件项目中,没有什么比一个平庸的程序员更危险了。我们就像一只发情的放射性草原犬鼠:到处乱窜,污染着代码库,代码库里充满了 bug,意图难以捉摸,文档零散,没有测试,安全性也很差。
最终,我学到了很多东西,意识到我需要把自己从我们游戏的代码库中剔除出去。我迫切地想要变得更好:我希望能够以可持续的、积极的方式为《未知世界》的游戏做出贡献。有一天,我看到一条建议:创建一个个人项目。一个你可以长期雕琢的项目,在过程中学习新技能和最佳实践。
再次效仿杜山,我决定启动一个会计软件项目。会计软件让我很头疼。随着我对代码的了解越来越多,我意识到大多数会计软件都很糟糕。而且,将大型会计软件包集成到其他软件中几乎是不可能的。
一点一点地,下班后,周末,以及任何健康人休假的时候,我组装了一个叫做Amatino的庞然大物。它一直被认为是个小东西,一个我自己会用到的副业。哈哈……哈哈。我的天哪。
如今,Amatino 已面向所有人开放。它是一款全球分布、性能卓越、功能丰富的会计软件,简直是梦想成真。你甚至可以订阅 Amatino,我的银行账户里就能收到真金白银。这简直太不可思议了!
更棒的是,我实现了最初的目标。现在我可以轻松地钻研《未知世界》游戏的代码,而且不再是影响我们代码质量的危险因素。我终于可以像 Max、Charlie、Dushan、Steve、Jonas 和 Brian 那样,做一些多年前做过的事情了。
一路上我学到了一些教训。
第一课:行动起来!
创造自己的产品绝对令人兴奋,思维也因此得到拓展。我的艺术感大概和宜家吧台凳差不多,但我猜想艺术家创作时的感觉也正是如此。那种感觉太棒了。
第二课:保住你的日常工作
好吧,如果你的日常工作让你不开心,或许可以辞掉它。但如果你开心,那就坚持下去。过去几年里,我为《未知世界》付出了100%甚至更多的努力。《未知世界》让我超级开心。为了同时打造Amatino,我必须养成自律的习惯:每天晚上、每个周末、每个假期,都要拼命地写代码。
与 Unknown Worlds 的创始人Max (左) 和Charlie (右)相处足够多的时间,你就会受到启发去做一些很酷的事情
好处多多。首先,你不会失去和同事的联系。Charlie、Max、Scott、Brandt 等等,他们一直激励着我。其次,你不用担心资金问题,因为你有工作。第三,你能够脚踏实地。
我想,如果我不花一整天时间制作游戏,《阿马蒂诺》肯定会让我发疯。我会迷失方向,醒来后不知所措。于是,我专注于游戏制作,每天围绕着《未知世界》进行安排,并尽可能地将精力和专注投入到《阿马蒂诺》中。
第三课:你的伴侣是第一位的
无论里程碑有多重要,无论你思考得多么深刻,无论你认为自己的想法多么美好,你都会为了你的伴侣放弃一切。你会鼓励你的伴侣,支持你的伴侣。每一天,从不间断,无一例外。
这是一个很难吸取的教训,也是最重要的教训。
如果没有杰西卡,阿马蒂诺就不会出现。正是因为她把我从阿马蒂诺身边带走,她才帮了我大忙。为她做饭、和她一起吃饭、和她约会、和她一起做家务,认真倾听她的想法、担忧和梦想。所有这些都需要大量的时间,而这些时间你或许更愿意投入到你的项目中去。
你千万别做这种交易。这是一种虚假的经济。你的生产力会受到影响,你的健康和情感健康也会受到影响。你为伴侣而不是项目投入的精力,最终会给你带来十倍甚至更多的回报。
不要让你的伴侣一直谈论你的项目,让他感到无聊透顶。最重要的是,不要因为你认为项目发布后就会做出重大决定,就推迟人生重大决定。
第四课:健康饮食、锻炼身体、别喝醉
你们在其他地方都听过太多这样的话了。你们有一份日常工作,一个个人项目,或许还有伴侣:你们没时间浪费在恢复认知障碍上。醉酒带来的任何社会价值,与脑细胞无法高效运作的机会成本相比,都微不足道。
你的朋友们可能会因此责骂你。别担心,长远来看,他们仍然会爱你。
教训 5:忽略框架
“我正在 GCP 上构建一个 Docker 化的云 Node 应用,前端使用 React-native,由区块链驱动。” 别成为那样的人。从第一性原理学习。从抽象的设计思想开始,而不是一堆“堆栈”的软件清单。不要害怕构建自己的系统。
谨慎使用第三方依赖,并且只在绝对必要时使用。通过尝试需要自行分配内存的语言来学习,同时充分利用那些不需要自行分配内存的语言带来的速度提升。组装电脑,摆弄它们。
你会从组装、拆卸和升级自己的电脑中学到很多东西。这一次我可能有点过了
热门提示:如果您的电梯游说中包含第三方依赖项的品牌名称,则您违反了第 5 课。
第六课:
也许有些人靠着傲慢自大、自以为是的混蛋在生活中取得成功。事实上,我确信这是真的。如果你想打造并发布一款产品,你就得先克制住自己的自负。
从周围的每个人、每件事中汲取信息。用纯粹、无拘无束的好奇心看待世界。即使你不同意某人的观点,也要全神贯注地倾听,而不是滔滔不绝。尤其要考虑他们的建议,尤其是当这些建议与你自己的假设相冲突时。
你呢?
您正在进行个人项目吗?需要帮助如何完成它吗?想知道 Amatino 是如何构建的吗?还有其他问题吗?请在 Twitter 上或在下方评论区与我联系😊。
//
查看 Amatino 复式记账会计 API,网址为https://amatino.io
,最初发布于hughjeremy.com