▎本文系译文,原作者为 KieranMcCarthy,译者 Aceyclee
我的软件开发入行经历非常有趣 —— 我一开始其实是厨师。
我在高中时就喜欢烹饪和烘焙,用不同食材的搭配去做出美味的食物,就像个科学怪人。我的家乡在爱尔兰,我的第一份工作也在那里,这是我第一次真正在厨房为人们提供食物,当然还有数不清的盘子要洗。
一位前辈教了我如何制作香蕉太妃派,又简单又美味,让我感到惊喜。当时,我开始在在家中制作些小点心赚取外快。
那时候我从学校搬了出来,在搬到新住处后,我在工作的餐厅和城区的家之间往返很不便。于是我决定在餐厅做兼职,另外找一份咖啡店的工作。
同时打两份工有时会让人疲惫不堪,我还要兼职烘焙,希望开家小面包店。那段时间我很辛苦,要在餐厅上早班,然后在咖啡店上晚班。在我回家的路上,我的朋友会帮忙做一些吃的,他正在学做饭,时不时问我手边的食材可以做些什么。
我当时绞尽脑汁地在想,比起发短信或者打电话,或许我可以直接做一款 app,当我的朋友输入食材名称,就能自动跳出来相应的食谱。这能有多难呢~
于是我就开始学习如何构建一款 app。
那是 2014 年夏天,我很快意识到自己甚至不知道从何入手。我应该学习哪种语言?我应该在哪个平台上操作? Web 还是移动端?什么是前端和后端?天呐!
我随大流报了个 Code Academy (编程学院),开始学习 Web 开发,以及开发者的思维模式。这为我打开了一个新世界!(好吧,可能并没有什么特别的,但是你应该明白我的意思。)
胡乱摸索和尝试构建静态网站,让我们对移动 app 及其构建方式感到疑惑。我参加了一个 Udemy 在线教程学习 Java,并在 Android 上进行操作。一开始真的很难,让屏幕显示「 Hello World 」是让我颇有成就感。
但是我非常想学习如何编码,所以奋力前行。
完成 Java 课程后,我构建了自己的第一个 app,并将其上架到 Play Store。(虽然它并不是给我朋友使用的应用,哈哈!)
我感觉还有很多东西可以学习,不想只停留在移动设备上。我的脑海里浮现出各种各样的问题,比如「我如何连接到其他设备?」「什么是服务器?它们的功能是什么?」「什么是云……为什么称之为『云』?」等等。
所有这些问题都可以通过 Google 找到答案。因此,我给自己设下了一个任务,学习有关服务器的知识以及如何针对服务器编写代码。我开始采用 PHP 构建简单的后端应用,从移动测试应用、Web 窗体和 curl 命令获取数据。
这个时候我开始感觉自己入错行了。我学习和构建的东西越多,我对烹饪的兴趣就越少。
我想成为一名开发者。我想创造出与众不同且具有创新性的事物。但是我没有计算机科学专业的学位,也没有全日制学位(我大二就辍学了)。但是我确实想成为一名开发者。
我花钱参加了 Java 认证,希望自己的简历能被看重。尽管第一次失败了,但是第二次通过了。我非常开心,这可能是我成为一名真正开发者的敲门砖!
我把这份认证放入自己的简历中,然后发到了招聘网站。但是一无所获……「我们需要的是一个有学位的人」「一个有经验的人」「一个有硕士学位的人」。我开始认为自己没什么「竞争力」。虽然我感到有些沮丧,觉得自己没有学位、也没有钱去取得学位,所以永远无法找到工作,但我决定在 Udemy 上学习更多的课程。
我把从 Udemy 学到的东西一股脑儿都写到简历中。我为自己的努力感到骄傲,为什么不把它们放在简历里呢?功夫不负有心人,我接到了爱尔兰一家 IT 咨询公司的面试。我的梦想成真了!
我怀着激动和忐忑的心情进入了另一个世界。我希望做好这份工作,我总是主动要求多做些事情,并参与更多的项目。我负责将 PHP 应用从本地迁移到云。某种程度上算是学习!这些应用必须更新为 PHP7,我们需要实现 DevOps,而我首先需要了解 AWS。
我买了一本叫做《 The Phoenix Project 》的书来了解 DevOps,还买了 ACloudGuru 的 Developer Associate 课程来学习 AWS。我爱上了云和 DevOps。它们太有意思了!在花了很多时间来学习所有与工具有关的知识后,项目变得容易很多,并最终取得了成功。我们不仅成功迁移了应用,还创建一个框架,框架中规定了相关的步骤,便于我们以后遵循这些流程来进行迁移。
就这样,我们建立起了一支创新团队。我们希望通过提出创新的想法来让办公室更智能。我负责收集智能桌台预订服务构想所需的堆栈:这是我们办公室的一个实时数据馈送,它将向员工展示带客户进来的最佳时间、员工自己进来的最佳时间,或者他们是否应该待在家里并避开通勤。
构建后端时,我发现我们需要花费大量时间来为数据更改和使用流创建侦听器。我们计划使用 云函数并通过 API 网关与它们连接。所以我开始寻找可以节省时间的框架。
而 Serverless Framework 恰好派上用场!
我对 Serverless Framework 一见倾心。我只需把精力集中在代码上,就可让应用快速投入运行 —— 在人们使用的同时,我们可以不断开发和实现自己的构思。
我反复观看了 YouTube 频道 FooBar 提供的所有内容;我强烈推荐大家采用 Serverless Framework。我掌握了 Marcia 介绍的所有知识,并且发现自己在构建需要的内容时越来越轻松。
最后,我构建出了下面这个简单的小型架构:
使用 Serverless Framework,我为用户创建了一个完整的流程来申请桌台并实时查看变更:办公室内 /外的工作人员和可用的桌台。实现所有这些功能的同时还能完全控制我们的数据,拥有一个几乎可以免运维的可扩展模型,并且无需操心底层结构,只需专注于为人们提供出色的功能。
我花了 4 年的时间从零开始新职业。无数漫长的夜晚,我都在 Code Academy 中探索,学习 OOP 概念,为考试做准备并且创造东西,当我看到它们在自己的手机里运行,感觉非常酷,也非常有趣。
我过去 5 个月一直在学习 Serverless Framework,现在正计划将 Serverless Framework 投入到工作中,这项服务可帮助客户构建和迁移其应用。并且,我还使用无服务器作为平台来建立聊天机器人副业!
我度过了非常充实的 4 年!从为别人做饭、为活动准备蛋糕到沉迷咖啡,我从未想到自己能创造像 Serverless 聊天软件和太阳系知识学习 app 这样的东西。
也许有一天我会完成自己的食谱生成 app 😝
传送门:
- GitHub: github.com/serverless
- 官网:serverless.com
- 社区:Serverless 中文技术社区