介绍
我通常在初创公司开发 SaaS芋头我的名字是。
就个人而言,2022 年 11 月 2 日正好是我成为软件工程师的两年。
这只是一个很好的机会,所以我试着写一篇关于我回顾的文章。
自我介绍
在进入主题之前,我想先自我介绍一下,“你是谁?”
我谢尔菲一位 26 岁的工程师,拥有 2 年的经验,正在一家大约 50 人的初创公司为建筑行业创建 SaaS。
我的专业是理论物理,直到我的硕士学位。
工作不分前后端等,从思考功能的规范和设计阶段,到设计、实现、测试、发布,一切由我负责。
技术方面,我特别喜欢前端和React,偶尔写文章聊聊LT。
(喜欢的话请看一下!)
让我们回顾过去两年!
加入公司六个月后
第一个是加入公司半年后。
入职时的技术能力
那个时候我是一个所谓的新手组,我刚进公司的时候技术水平就是这样的。
- 我可以在研究 HTML 和 CSS 的同时创建一个非常简单的网页
- 只有 Python 可以理解一般语法和编写逻辑(Paiza S 等级)
- 我只接触过 Django 作为一个框架
- 我将DB理解为存储数据的地方,我从来没有写过SQL
- 计算机科学知识几乎为零
现在回想起来,我觉得我可以很好地换工作?lol
顺便说一句,这是我换工作时作为投资组合发布的网站。
我记得我用 Django 制作它并拼命将它部署在 VPS 上,但在加入公司后,我了解到 GitHub Pages 对于静态站点来说已经足够了。
我从一无所知的那天就加入了开发
我当时处于不知道是左是右的水平,但我没有培训期,因为我是在 11 月加入公司的,就在年初大发布之前。 (现在它是!)
加入当天的流量
- 第一次上午 10 点上班
- 上午环境建设
- 下午参与开发
晚上,我的代码被合并到主分支中以进行大发布。
(我认为这是几行的措辞变化。)
当时,我想,“这就是发展的意义所在”,但现在回想起来,这是一个荒谬的情况
之后,我被分配了一些简单的任务,当我遇到困难时,我问了我的前辈问题并加入了开发。
不过,当然,不管我被托付什么,我都不知道从何说起,即使是学长教的,我也不明白谈话中出现的字眼的意思。
我:“对不起,我想从数据库中获取数据,但是我该怎么办?”
前辈:“你可以正常写一个查询!”
我:“查询……?什么是查询?”
前辈:“啊,好吧,这样写Django的objects。”
我:“谢谢!(我明白了,这叫查询吗?)”
各位前辈都和蔼可亲,能够毫不犹豫地提问,真是让人松了一口气。谢谢你。
现在回想起来,我觉得我一查就可以解决它,但我记得我什至无法正确地谷歌它,因为我不知道正确的术语。
惹恼用户和朋友并要求管理员修复的错误
我访问的这么大规模的发布导致频繁出现重大错误。
甚至我开发的功能也完全没有考虑到对其他功能的影响,而且由于bug数据导致了问题,导致用户无法工作。
而且因为影响范围如此之广,紧迫性如此之高,当时我自己也无法应对,只能看着我的经理处理。
由于我的错误,我给用户、回复询问的业务人员、回复的经理和其他工程师带来了很多麻烦。
还有,当时我还记得高级工程师对包括我在内的年轻工程师说的话。
“请记住,付费用户正在使用您的产品。”
这是很明显的事情,但当时,我肯定没有看到产品结束时的用户。
如果我对用户和产品有适当的了解,我想我应该能够想象我创建的功能将如何使用以及它们会在哪里产生影响,并考虑它们的影响程度。
经理从一开始“技术也很重要,但首先要了解行业和用户!让我们正确了解产品!”大约在这个时候,我终于明白了我所说的痛苦的重要性。
半年的时间里,我学到了做工程师最重要的工作
加入公司以来,经历了动荡的半年。
在此期间,我学到了一个非常重要的事情,那就是成为一名工程师作为一份工作。
- 用户至上的开发
- 领域理解的重要性
从这个时候开始实施之前
- 完全匹配规格
- 确定影响范围
- 提前创建测试用例
等等,我现在可以继续我的工作,以免产生错误。
此外,我每天通过书籍、视频、SNS以及与商业成员的对话,加深了我对领域的理解。
顺便说一句,此时的技术是这样的。
- 没有代码质量,但现在能够实现委托给它的功能
- 使用 React、TypeScript 和 redux 创建屏幕
- 使用 Django 和 Python 创建 CRUD API
- 您可以编写忽略 SQL 性能的 CRUD 查询
- Web 开发所需的最少工具
- 混帐
- VS 代码
- 开发者工具
加入公司后6个月起半年
接下来是加入公司六个月后。
第一次项目管理
进公司半年左右,4月份bug稍微平息的时候,我被分配到一个新项目,第一次被委托给PjM。
项目大纲
- 持续时间:2 个月
- 人数:3
- PjM x 1
- 工程师 x 2(其中一个参加了大约一个月)
- 内容:文件数字化服务依法修订
我偶然发现的第一件事是“要做的事情的数量以及如何确定它们的优先级”。
在我被分配的时候,PdM总结了修改后的法律内容和粗略的更正,但即便如此
- 通过将更正部分放入开发任务中来确定分配
- 绘制总体计划
- 详细规范和研究
- 到处分享
有太多事情要做,很快就变得无法管理。
那时,我收到了 PdM 的建议如何对抗复杂性是。
(了解更多信息”工程组织理论邀请函)
鉴于当时的情况,如果规范不确定或不正确,将会耽误开发任务,影响整体进度,所以我们首先应该认真研究修改后的法律,巩固规范。
其他
- 尽可能减少任务,因为任务越大,不确定性就越大。
- 实施前的彻底设计和验证
- 在早期阶段(例如进度阶段和模拟阶段)将意识与利益相关者保持一致
这时,我学到了“如何处理复杂性”的基础知识,这不仅作为 PJM 或工程师很重要,而且在所有工作中都很重要。
顺便说一句,除了一些加班之外,项目本身就完成了,没有任何额外的人员、进度延误或发布后的错误,所以我很高兴!
错误的前线
上述PJ结束后,他当时在公司叫特急対応。自当天起 1 周内的错误截止日期我负责
工作流程
- 商务会员回复用户查询
- 与快递团队(我)分享可能的错误
- 查明原因并纠正数据和代码后,通过商务会员联系用户
在处理错误时,以下两件事尤其重要。
- 永远不要忘记处理已经遇到错误的用户
- 准确了解用户想要做什么,并通过尽可能短的时间恢复工作来解决根本原因
乍一看,这似乎是一项艰巨的工作,精神负担很大,但另一方面,我个人非常喜欢这个角色,得到了商业成员和用户的赞赏。
在处理产品整体Bug的同时,自然也加深了对产品源码的理解,而且由于我一个人负责,所以决定了优先级、如何处理、处理机制有错误,都在我的职责范围内并进行了改进。旋转很有趣。六个月后,我可以自己做很多事情了
从加入公司六个月到一年,有半年的时间我可以独自思考各种事情,比如 PjM 和 bug 处理。
在此期间我学到了什么- 如何应对复杂性
- 用户如何使用产品
- 产品范围的源代码状态
等等。尤其是如何处理复杂性是一种可以应用在各种情况下的思维方式,每次想起来还是会回头看《邀请工程组织理论》。
此外,随着我不断修复错误,我逐渐对代码质量更感兴趣,并说:“我希望能够编写干净、易于修复且一开始不会导致错误的代码。”我觉得那个时候的技术能力和半年前相比没有太大的变化,就省略了。
加入公司后1年起1年
最后一个是加入公司一年后。
开始还清债务
作为快递员的Bug响应解决后,我被分配到一个项目来消除债务大约一年。
- 未正确反映概念的规范更改
- 改造
- 更改屏幕
- 代码重构
- 修复了错误数据
曾负责
在我刚被指派时,我对代码质量的理解仅限于“单一职责”和“不要在命名上撒谎”,而且我几乎从未编写过测试代码。在第一期中,技术负责人以结对项目的形式教我面向对象编程,在建模时,我利用了通过处理错误等获得的知识,我记得重申了理解领域的重要性.
另外,大约从这个时候开始,我开始系统地学习技术,而不是根据需要。
激励前端
现在,我真的很喜欢前端并且研究了很多,但是大约在这个时候我对它产生了兴趣。 (2021年12月左右)
推动力是重构庞大的组件、不合理的标准化类型和状态,以消除债务。由于我们公司使用React、TypeScript、redux、官方文档和后方行动!系列又看了一遍,看了技术文章,又看了React的源码和相关库。
我在公司学到了很多改善前端情况的方法,并开始和其他成员以及公司 LT 谈论它。
我们在内部 LT 讨论的部分内容
至于前端本身的重构,我当时能够做到尽可能的分离职责,提高可读性,相比原来的情况,提高了易变更性。
并且通过重构和内部沟通,其他项目成员说,“我正在使用 taro 的代码作为前端实现的参考”,或者说,“Swr 很好!”我很高兴能听到你的声音!作为一个没有实际经验的人进入公司,我一直担心自己的技术能力,这是我第一次获得信心。
开始发布技术文章并在外部 LT 上发言
我开始发文章的原因是我在内部 LT 谈论前端的时候。
随着我发文章,回复的数量逐渐增加,通过推特,公司外的工程师开始一点一点的参与进来。
尤其关于 React 的 memoization 的文章我很高兴总是提到文章传输等的著名工程师阅读它。参加外部LT也是被气势如虹的申请触发的,说:“公司里没有人在做,我们来试试吧!”在 LT,在社交活动中与其他公司的工程师谈论开发是非常令人兴奋和有趣的。
此外,在一个名为 Qiita Engineer Festa 的活动中,我因一篇关于 React 中的悬念的文章而获得了一个奖项和一个 Qiitan 毛绒玩具。
将学到的知识升华到工作中
最近,我被分配到一个项目来改造现有应用程序的功能并消除债务,我正在实践中测试我到目前为止所学到的知识。
最近1-2个月,在处理功能需求的同时,提升前端代码质量和开发者体验
- 渗透由 UI 单元分离并与单一职责松散耦合的组件设计
- 以生命周期为核心的状态管理设计渗透
- 基于 React 哲学的声明式实现的渗透
- 介绍自定义挂钩
- 配置 ESLint 和 Prettier
- hygen 模板生成介绍
- 有一个基于函数的目录设计
- TypeScripting JavaScript
等等。 (当然,我们是在同一个项目的成员的帮助下进行的。)
到现在为止,因为在应用中的一致性和优先级,我无法利用所学的知识而感到沮丧,但在当前的项目中,我能够一下子升华,实践经验也有所提升我的决心。最重要的是,当同一个项目的成员对我说“前端开发很有趣”时,我真的很高兴!
参与招聘
在过去的一年里,除了发展,我还通过面试和球探参与了招聘。
特别是作为工程师第一次面试的主要负责人,准确传达从公司、业务、组织、产品等上游故事到现场实际情况的一切以吸引应聘者的作用是需要理解的。公司最新信息高清,学习了很多。
另外,在星探的过程中,我从应聘者的简历中写下了发自内心的寄语,想着“到目前为止你有什么想法,未来想做什么?”
当您实际尝试时,很难写出面向每个候选人的信息。
但是,当我写的球探信息导致选择时,我真的很高兴。
现在的开发团队有一个成员因为我写的星探消息加入了公司,而接受工作机会的那一刻可能是最近两年来最快乐的时刻。一年,我可以看到我想做什么,我想去哪里
在我作为工程师的第二年,前端自从我能够看到我喜欢并想伸展的区域以来已经一年了。
一年前,我根本没想过,心想,“如果我能享受制造,我就不必成为工程师。” (我想他说他想在 1on1 中做 PdM)另外,我对技术的总体了解越多,包括前端在内,我就越觉得需要更牢固地学习基础知识,并且我每天都在继续学习。
而且我觉得我已经能够在每件事上都瞄准一个非常高的水平,因为我接触到了很多来自公司外部的信息。
刚进公司的时候,我的经理说:“不要针对我们,也不针对现有的成员,要针对世界上更强大的人。”两年后,我终于能够自然而然地付诸行动了。 (对不起哈哈)作为目标可以委托运营公司前端的工程师想成为
为了做到这一点,我不仅需要了解前端,还需要了解其他领域,因此我想在提高自己的专业领域的同时提高我在其他领域的优势。
和優れたユーザー体験和楽しい開発者体験制造业我想成为一个能做到的人综上所述
回首这两年,我觉得我有幸拥有这样的环境。
- 长期传达重要事情的经理和高级工程师
- 可以自信挑战的公司
- 同步极佳(巧合的是,中间有4个同步)
- 业务团队和开发团队之间的高度信任
我真的很幸运。
现在回想起来,我觉得我真的是被这种环境吸引了。
(我想知道如果我没有被录用会发生什么哈哈)从现在开始,作为第三年的工程师,我的责任会逐渐增加,但我会继续努力!
我还在 Twitter 上发布有关发展和技术的推文,所以请随时关注我!我们期待收到您对文章内容的评论和问题。
感谢您一直阅读到最后!
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308632568.html