DEV Community

Cover image for My Second Week of #100DaysOfCode: Learning, Building, and Creating Opportunities
Onatade Abdulmajeed
Onatade Abdulmajeed

Posted on

My Second Week of #100DaysOfCode: Learning, Building, and Creating Opportunities

Introduction

A few weeks ago, I started the #100DaysOfCode challenge, and I'm beginning to understand why so many developers recommend it.

Week 1 was all about laying the foundation. I spent hours debugging my Spring MVC application, fixing configuration issues, and realizing that progress in software engineering often comes from solving problems rather than writing new code.

As I stepped into Week 2, things started to shift. I spent less time fighting bugs and more time learning new concepts, building projects, and being intentional about my growth. Instead of simply following tutorials, I found myself thinking more about how everything fits together and how I can become a better software engineer.

"Make it work, make it right, make it fast."

β€” Kent Beck

Day 4: Applied for a Job Role

One of the biggest moments of Week 2 happened on Day 4.

My mentor shared the Junior Backend Engineer opening at Chowdeck and encouraged me to apply. I submitted my application, but I didn't stop there.

I wanted to give myself a better chance of being noticed, so I decided to go the extra mile. I recorded a short introduction video where I talked about who I am, what I've been learning, and why I believed I would be a good fit for the role.

After that, I reached out directly to the CEO, CTO, and a Technical Lead with a personalized email and included the video as part of my introduction.

Although I haven’t gotten a response yet and don’t know what the outcome will be, I’m proud that I took the initiative. I just hope they reply soon.


Day 5: Exploring Spring Boot Data JPA

On Day 5, I focused on Spring Boot Data JPA and started understanding how it simplifies working with databases compared to the traditional Spring Framework.

What i Learnt and Explored

  • Spring Boot Data JPA configuration
  • JPA Repositories for saving and retrieving data
  • Query DSL (findBy...) for generating queries automatically
  • Custom queries using the @Query annotation
  • REST fundamentals and how applications communicate through APIs

Challenges I Faced

Although I spent less time debugging this week, I still ran into one issue while configuring Spring Boot Data JPA.

When I tried running the application, Hibernate failed to start and threw the following error:

Caused by: java.lang.ClassNotFoundException:
Could not load requested class: org.hibernate.dialect.MySQL5Dialect
Enter fullscreen mode Exit fullscreen mode

I initially configured the application to use org.hibernate.dialect.MySQL5Dialect. After checking the Hibernate documentation, I realized that this dialect is no longer recommended for newer Hibernate versions.

The fix was simply to update the configuration to use the generic MySQL dialect instead:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
Enter fullscreen mode Exit fullscreen mode

After making that change, the application started successfully and I was able to continue learning.

Application Running Successfully


Day 6: Learning Docker

Day 6 didn't go exactly as planned because there was no electricity till the end of the day. Even so, I didn't want to break my streak of posting.

Since I couldn't spend much time coding, I decided to continue learning Docker and strengthen my understanding of containerization.

Some of the concepts I explored:

  • Image tagging
  • Docker Hub
  • The difference between docker run and docker compose
  • Commonly used Docker commands

Challenges I Faced

There weren't any major technical challenges today. The biggest obstacle was simply not having enough time due to the power outage.

Instead of calling the day a loss, I decided to focused on learning concepts that didn't require me to build a full project.

Day 7: Understanding REST APIs

On Day 7, I dived my focus to understanding how Spring Boot handles data in REST APIs more.

Some of the concepts I explored:

  • REST methods (GET, POST, PUT, and DELETE)
  • Using Jackson to convert Java objects into JSON
  • Working with @PathVariable to capture values from the URL
  • Returning XML responses with Jackson XML
  • Understanding the produces attribute
  • Using @RequestBody and the consumes attribute to handle request data

Challenges I Faced

Unlike on Day 5, I didn't run into any major issues while following along.

I was able to understand the concepts, implement them successfully, and spend more time learning. This made me realize that the hours I spent debugging in Week 1 are starting to pay off.

The Result

By the end of the day, I had more understanding of how Spring Boot handles requests and responses in REST APIs.

Learning how JSON conversion, request handling, and HTTP methods work together gave me a better picture of how backend applications communicate with clients, and it's another step toward becoming a more confident backend developer.

Application Running Successfully


Day 8: Learning from the Spring Community

While scrolling through LinkedIn, I came across a post from Naija JUG announcing a live Spring Boot session featuring Josh Long, Spring's first Developer Advocate. Since I'm currently learning Spring Boot, I knew I couldn't miss the opportunity to hear directly from someone who has contributed so much to the Spring ecosystem.

Naija JUG Announcement

The session covered the Spring ecosystem, some of the latest features in Spring Boot, and included a live coding demonstration that was both insightful and inspiring.

Josh Long During the Session

Some of the things I learned:

  • A broader view of the Spring ecosystem
  • New features and improvements in Spring Boot
  • An introduction to GraalVM and its role in Spring applications
  • Best practices from an experienced Spring Developer Advocate

It was inspiring to hear directly from someone who has contributed so much to the Spring ecosystem. Watching him code live reminded me how much there is still to learn, and it motivated me to keep improving one day at a time.

Challenges I Faced

There weren't any technical challenges. The only challenge was simply keeping up with the live coding session because Josh Long moved incredibly fast πŸ˜….

Even though I couldn't follow every line of code in real time, I learned a lot by watching how he approached problems and explained different concepts.

One day, I hope to code with that level of confidence and speed too.

Goals for Week 3

As I head into Week 3 of this journey, these are the goals I've set for myself:

  • Continue strengthening my Java and Spring Boot fundamentals
  • Complete my Product Management Console App and rebuild it as a Spring Boot application
  • Build more backend projects with less reliance on tutorials
  • Continue learning Docker and deployment concepts
  • Keep improving my problem-solving skills by building consistently
  • Continue documenting my journey and sharing what I learn

Week 2 taught me that growth isn't just about writing more code. It's about staying consistent, learning from others, putting yourself out there, and building one step at a time.

I'm excited to see what Week 3 has in store.

If you're also learning, building, or growing in tech, I'd love to connect and learn from your journey too.

Let's keep building.πŸ’™

LinkedIn:
https://www.linkedin.com/in/onatade-abdulmajeed/

X (Twitter):
https://x.com/spider337761

Top comments (0)