Week 15 of #100DaysOfCode: 100 Days of Learning, Building, and Becoming a Better Engineer
Week 15 of #100DaysOfCode: 100 Days of Learning, Building, and Becoming a Better Engineer
#100DaysOfCode 第 15 周:100 天的学习、构建与自我成长
Introduction
引言
About 100 days ago, I reached out to my mentor because I was confused about my career and wasn’t really sure what direction I was heading in. I was already learning software engineering, building projects, applying for opportunities, and trying to figure out how to move forward. But I felt like I was doing all of that quietly, and I wasn’t sure if anyone was even seeing the work I was putting in. 大约 100 天前,我联系了我的导师,因为当时我对自己的职业生涯感到困惑,不确定未来的方向。那时我已经在学习软件工程、构建项目、申请工作机会,并试图寻找前进的道路。但我感觉自己所做的一切都悄无声息,也不确定是否有人注意到了我的努力。
My mentor suggested that I start the #100DaysOfCode challenge, with the goal of increasing my visibility, sharing what I was learning, and hopefully putting myself in a position where opportunities could find me. At first, I wasn’t completely sure what I was getting myself into. But I decided to try. My name is Onatade Abdulmajeed Adeyincka. I’m a software engineer and a backend-focused full-stack developer from Nigeria, primarily working with Java, Spring Boot, JavaScript/TypeScript, React, Node.js, databases, and Docker. What started as a 100-day commitment became much more than a coding challenge. 我的导师建议我参加 #100DaysOfCode 挑战,目标是提高我的曝光度,分享我的学习成果,并希望能让自己处于一个更容易被机会发现的位置。起初,我并不完全确定自己要面对什么,但我决定试一试。我叫 Onatade Abdulmajeed Adeyincka,是一名来自尼日利亚的软件工程师和专注于后端的全栈开发人员,主要使用 Java、Spring Boot、JavaScript/TypeScript、React、Node.js、数据库和 Docker。这段最初为期 100 天的承诺,最终演变成了一场远超编程挑战的旅程。
It Wasn’t Easy
这并不容易
The challenge was, honestly, challenging. During the first month, I seriously considered giving up. My posts weren’t getting much engagement. Most days, I’d see maybe two likes — mine and my mentor’s. That was difficult. You put time into learning something, building something, writing about it, and sharing it with people, and then almost nobody interacts with it. Even though things have improved compared to where I started, I’m still working through that part of the journey. 老实说,这个挑战确实很有难度。在第一个月里,我曾认真考虑过放弃。我的帖子几乎没什么互动,大多数时候只有两个赞——一个是我自己的,另一个是我导师的。这很令人沮丧。你投入时间去学习、构建项目、撰写心得并分享给他人,结果却几乎无人问津。尽管情况比刚开始时有所好转,但我仍在努力克服这一心理障碍。
There were also days when I had no idea what to post. Sometimes my projects weren’t working. Sometimes I spent hours debugging something and had nothing impressive to show at the end of the day. But I still had to find something to share. There were also the job applications. I applied for opportunities and received no response from some of them. After a while, that became demotivating too. I started wondering whether all the work I was putting into learning, building, and posting every day would actually lead to anything. There were moments when I doubted myself. There were moments when I cried and wondered if anything good would come from putting myself out there every single day. But I kept going. My life is my life, and I have to keep moving forward. 还有些日子,我完全不知道该发什么。有时项目运行不起来,有时我花了几小时调试代码,到头来却没什么拿得出手的成果。但我还是必须找点东西分享。此外还有求职申请,我投递了许多机会,但有些石沉大海。久而久之,这变得非常打击士气。我开始怀疑每天投入学习、构建和发帖所做的一切是否真的会有结果。我曾怀疑过自己,也曾因为每天坚持展示自己却看不到回报而流泪。但我还是坚持了下来。这是我的人生,我必须继续前行。
When Things Got Even Harder
当困难升级时
Around Day 70, things got even more difficult. My phone screen stopped working. That phone was how I connected to the internet, posted my updates, communicated with people, and continued my journey. Then my data subscription ran out, and I didn’t have another way to get more. Honestly, I wanted to give up. I actually did for a moment. But I kept thinking that if I stopped doing anything, nothing was going to change. So I decided that it was better to start again and keep going for as long as I could. 大约在第 70 天,情况变得更加艰难。我的手机屏幕坏了。那部手机是我连接互联网、发布更新、与人交流以及继续这段旅程的唯一工具。接着,我的流量套餐也用完了,我没有其他办法获取流量。说实话,我想放弃了,甚至在那一刻真的放弃了。但我不断提醒自己,如果我停下脚步,什么都不会改变。所以我决定,哪怕是从头再来,也要尽可能地坚持下去。
I had to borrow money to repair my phone screen. After getting it fixed, I spent almost a week using midnight data plans just to stay connected and continue posting. Eventually, my mentor stepped in and helped me. That meant a lot to me. At a point where I was already struggling and counting whether I could keep going, his support gave me another reason to continue. I’m genuinely grateful for all the effort, encouragement, and support he has given me throughout this journey. Looking back now, I realize that completing 100 days wasn’t simply about writing code every day. It was about continuing even when I wasn’t sure where the journey was taking me. And somehow, I made it to Day 100. 我不得不借钱修好了手机屏幕。修好后,我花了一周时间使用深夜流量套餐来保持在线并继续发帖。最终,我的导师伸出援手帮助了我。这对我意义重大。在我苦苦挣扎、怀疑自己能否坚持下去的时候,他的支持给了我继续前进的理由。我真心感谢他在整个旅程中给予我的所有努力、鼓励和支持。现在回首往事,我意识到完成 100 天挑战不仅仅是为了每天写代码,而是为了在不确定未来方向时依然选择坚持。就这样,我奇迹般地走到了第 100 天。
Day 94: Completing My Portfolio and Learning About Continuous Delivery
第 94 天:完成个人作品集与学习持续交付 (CD)
On Day 94, I completed my new portfolio website. I built it using Next.js, Tailwind CSS, and Motion, with the goal of creating a place where I could properly present my skills, projects, experience, and the journey I’ve been on as a software engineer. Building the portfolio was also a chance to look back at how much I’ve worked on throughout this challenge. Instead of just having different projects scattered across GitHub and different platforms, I now have a place where I can bring everything together and make it easier for people to understand what I do. You can check out the portfolio here: https://onatade-portfolio.vercel.app 第 94 天,我完成了我的新个人作品集网站。我使用 Next.js、Tailwind CSS 和 Motion 构建了它,目的是创建一个能够妥善展示我的技能、项目、经验以及我作为软件工程师成长历程的平台。构建这个作品集也是一次回顾我在整个挑战中付出的努力的机会。与其让不同的项目散落在 GitHub 和各个平台上,我现在有了一个可以将一切整合在一起的地方,让人们更容易了解我的工作。你可以点击这里查看我的作品集:https://onatade-portfolio.vercel.app
After completing the portfolio, I started learning about Continuous Delivery (CD). I went through the traditional software delivery process and some of the challenges that come with relying heavily on manual releases. I also learned about: The benefits of Continuous Delivery, Automated deployment pipelines, Continuous Integration, Automated Acceptance Testing, and Configuration Management. One of the things that stood out to me was how much automation can improve the software delivery process. The goal isn’t simply to deploy faster, but to make the process more consistent, reliable, and less dependent on manual steps. 完成作品集后,我开始学习持续交付 (CD)。我梳理了传统的软件交付流程,以及过度依赖手动发布所带来的挑战。我还学习了:持续交付的优势、自动化部署流水线、持续集成 (CI)、自动化验收测试以及配置管理。令我印象深刻的一点是,自动化能极大地改善软件交付流程。其目标不仅仅是更快的部署,而是让整个过程更加一致、可靠,并减少对人工步骤的依赖。
Day 95: Going Deeper Into Continuous Delivery
第 95 天:深入了解持续交付
On Day 95, I continued learning about Continuous Delivery (CD) and focused on the practices and foundations required to make automated software delivery possible. I went deeper into Continuous Integration (CI) and how it provides early feedback through automated builds, unit tests, and code-quality checks. I also learned more about Automated Acceptance Testing, the Agile Testing Matrix, the Testing Pyramid, and Configuration Management. 第 95 天,我继续学习持续交付 (CD),重点关注实现自动化软件交付所需的实践和基础。我深入研究了持续集成 (CI),以及它如何通过自动化构建、单元测试和代码质量检查提供早期反馈。我还进一步学习了自动化验收测试、敏捷测试矩阵、测试金字塔和配置管理。
Another part that stood out to me was learning about the prerequisites for Continuous Delivery. I learned that successfully adopting CD isn’t only a technical problem. There are also organizational requirements, including a DevOps culture, client involvement, and business decisions that support the delivery process. This helped me understand that Continuous Delivery is much bigger than simply automating deployments. Good testing practices, proper configuration management, collaboration, and shared responsibility across teams are all important parts of the process. 另一个让我印象深刻的部分是关于持续交付的前提条件。我了解到,成功采用 CD 不仅仅是一个技术问题,还涉及组织层面的要求,包括 DevOps 文化、客户参与以及支持交付流程的业务决策。这让我明白,持续交付的内涵远不止自动化部署。良好的测试实践、规范的配置管理、协作以及跨团队的共同责任,都是该流程中不可或缺的重要组成部分。
Day 96: The Technical Side of Continuous Delivery
第 96 天:持续交付的技术层面
On Day 96, I continued with Continuous Delivery, this… 第 96 天,我继续学习持续交付,这次……