“我可以用谷歌搜索吗?”
“我可以用谷歌搜索吗?”
到目前为止,您可能已经了解了 Meetr 背后的灵感 (如果没有,请在此处查看),但不是关于我与 Meetr 的特殊爱/恨关系(它是创始人, 杰西·李 )。我于 2021 年 12 月加入了团队,从那时起我就开始了一段相当长的旅程。有了这个,让我给你画一幅画。我们可以?
作为一个没有经验的大一新生, 我渴望开始编写真正的代码——我渴望比写作更充实的东西 为了 在我的“Python 简介”课程中循环。这一切都始于杰西问我是否可以为他正在从事的项目进行客户访谈。他开始问我 几乎 -关于我的社交生活的过于激进的问题:我有多喜欢外出,我的朋友是谁。
但随后,这些问题与我当前社交生活中的痛点有关,例如分摊聚会费用或决定晚餐时间,我对这个神秘项目的兴趣被激起了。
有趣的是,在初次面试后一周左右,他问我是否愿意加入 Meetr 团队:我会获得与行业相关的经验和培训,以换取我的劳动。在我对冒名顶替综合症的恐惧和我疯狂的新生发烧之间进行了激烈的战斗之后,我决定去做。
在没有任何警告的情况下,我进入了未知领域。
我对未知的恐惧比以往任何时候都强烈。 React Native、Firebase、Github、XCode、VS Code、移动开发、Figma ......我以前从未听说过的术语被左右扔向我,就像我被期望同时玩杂耍的球一样(我什至无法正确接球)。
使用 XCode,我的笔记本电脑的存储空间非常低,以至于喘不过气来。构建应用程序以“命令阶段脚本执行失败”完成了很多次,我在睡梦中喃喃自语。
要理解的一件重要事情是初创公司的性质。 由于团队规模较小,没有真正一成不变的指令,您的学习方法或多或少取决于您。由于自己已经习惯了正规教育,我在工作的第一周就问杰西是否允许谷歌一些东西,之后他可怜兮兮地看着我,我得到了这个可怜的女孩——入眼。回想起来,我很惊讶他没有当场解雇我。所以,第一个提示:让我向你介绍你最好的新朋友:
作为开发者, 我被期望实现从屏幕上的漂亮形状到数据库实现的所有内容。 随之而来的是更多的自由和独立:很多事情取决于我自己的判断。但是,随着更多的自由而来的是更多的责任,我一开始并没有那么认真。没有测试团队,没有安全网,因此质量和可持续性在每一步都很重要。
关于边做边学的简短说明:这很难。没有勺子喂养,没有“婴儿步”。我肯定犯了错误。以下是我的一些收获,适用于任何面临陡峭学习曲线并希望避免在攀登开始后立即滑倒的人。
- 不要着急:学习最佳实践 .有一个关于下金蛋的鹅的寓言。基本上是这样的:一个人发现了一只鹅下的一堆金蛋,并决定一次得到所有金蛋 系统 产生那个价值(即我)。请记住,投资于开发 制片人 之前 产品 绝不是浪费时间,从长远来看,它总是有利于您的表现。
- 学习如何阅读其他人的代码。 这个技能是无价的,但也是极其困难的。这需要练习。练习物理跟踪从输入到返回值或呈现特征的代码行(使用实际的铅笔和纸)。向橡皮鸭或不幸(但希望是愿意的)朋友解释代码的每一步。随着时间的推移,您开始学习如何跟踪功能,了解指示的方法正在做什么,并设想它们如何组合在一起。
- 从骨架开始。 如果您是初学者,请从“复制”某些内容开始,但会有所不同。 **** 这就是我的意思:我被分配在 Meetr 上实施的第一个功能是向已经存在的事件添加另一个邀请。杰西从来没有给我喂过任何东西,回想起来我非常感激,但此刻有点沮丧。他告诉我,有一个我可能会发现类似的已经实现的功能,就是将朋友添加到已经存在的社交圈中。后端结构不同,UI 也会略有不同,但我有一个框架可以使用。这个任务开始训练我破译别人的代码,以及慢慢地向我介绍前端和后端开发的元素。一旦你达到了技术能力,就开始自己构建这个框架,并用它作为启动板来实现代码。从计划开始可以减少这一切的压倒性。
- 工作时保持产品清洁。 构建功能和延迟错误(即说你完成了最重要的部分,我经常这样做),将阻止你的任何工作取得成果,并使其无法使用。所以,到最后,你将只剩下功能失调的半特征。我在开发 Meetr 的聊天功能时遇到了这个问题,该功能在后端放置了一个监听器以进行实时聊天更新。每当您离开聊天时,它就会出现问题,所以我以前的自己会忽略它并留待以后使用,我对 Firestore 及其功能进行了研究,发现了一个可以解决我的问题的“取消订阅”功能。
- 记录你正在做的事情 .在产品开发中,技术文档不仅对于查看您的代码的其他人很重要,而且对于您未来的自己能够返回到您自己的代码(相信我,否则您将不知道自己写的到底是什么)是一个不熟练的,低于标准的编码器)。对于 Meetr,我实现的第一个完整功能是事件投票。几个月后,一旦需求发生变化并且功能需要调整,我回顾了我的代码,但我无法破译一行。是的,文档可能很无聊,但它是个人项目和行业中非常有价值的技能。 TL;DR → 在您编码时写评论!
- 请记住,通过鲜血、汗水和泪水,隧道尽头总会有光明。 我现在实际上可以编写代码了 😃 我什至能够加入一位新开发人员并引导他走上相同的道路。一次建造你的城堡,并知道每件作品本身就是一项成就和产品(包括为你的技能增加知识,而不仅仅是完成最终产品)。
我真正感觉到我已经内化了这些原则的第一刻 发生在一个不眠之夜之后。现在是早上 5 点,我一秒钟都没睡,所以,尽管我在验证所有称我为书呆子的朋友,但我还是拿出笔记本电脑开始编码。任务是创建一个圆形图形,显示活动的所有参与者,均匀分布在一个圆圈周围(比听起来更难),并用绿色动画环绕那些已回复的人。它是动态的,能够在大小上增长和缩小。所以,伴随着鸟鸣和公鸡的叫声(或者也许我只是睡眠不足),我开始了。
我从基础开始,勾勒出数学方程式以真正理解和设计渲染应该如何工作( 原则一 )。我查看了已经存在的代码,这些代码硬编码了头像的角度,并理解了为什么它很糟糕(对不起 Jesse),以及需要修复的地方( 原则 2 )。然后我开发了一个算法,它只根据三个参数动态渲染视图:圆圈的大小、头像圆圈的大小和头像的数量( 原则 3 )。我实现了算法,确保它保持稳健并正确处理错误和边缘情况( 原则 4 )。我记录了代码以使其成为可以为任何 UI 调用的抽象函数( 原则 5 )。直到今天,它可能是我写过的最性感的代码。好吧,是的,也许我是个书呆子。但我终于到了 原则 6 .
在我为 Meetr 工作的最初几个月里,我或多或少是一台机器上的一个齿轮。 我通过动手编码一点一点地学习了这项技术,从已经编译的列表中实现了一个又一个的功能。总而言之,我为自己的发展感到自豪,并感谢 Meetr(和 Jesse,我从不喜欢大声说出来)帮助我学习如何学习。在创意和构思方面,我是在为自己的设计制作原型,但仅此而已—— 特征: 仅仅是已经存在的事物的方面或属性。一旦我加入,这个项目就已经确定下来了,这 我很高兴能够参与核心的产品和系统设计过程。
这是萨米,Meter 的吉祥物。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明