From Java Basics to Data Structures: The First 25 Days of My 100 Days of Code Challenge
A Guide to Getting Started with Java and Solving Basic DSA Problems
Starting with the 100 Days of Coding Challenge has been an incredibly rewarding experience. For the first 25 days, starting from 15th September 2024, I focused on two major areas: learning Java and getting comfortable with basic data structures.
While I also started working on an AI-based project, I’ll save the details for a future blog. For now, here’s a look at how I began my journey with Java and Data Structures.
Day 1–5: Starting with Java Basics
I chose Java as the language to focus on for this challenge, and as I have no experience with java, I started with understanding the basics:
- Setting up the environment: I installed Eclipse Notebook, which became my choice for writing and testing Java code.
- Learning the syntax: Java is an object-oriented language, and understanding the syntax — like defining classes, declaring variables, and using loops and conditionals — was my first goal.
- Understanding object-oriented programming (OOP): I began exploring OOP concepts such as classes, objects, inheritance, and polymorphism, which are fundamental to Java.
This foundation allowed me to get comfortable with how Java handles basic operations and prepared me for more complex topics in the coming days.
Day 6–10: Diving into Basic Data Structures
Once I felt more comfortable with Java’s syntax, I turned my attention to data structures. Mastering data structures is essential for anyone wanting to improve their problem-solving skills, so I started with:
- Arrays: Understanding how arrays work in Java, how to declare and manipulate them, and solve problems like finding maximum values or reversing an array.
- Linked Lists: Moving on from arrays, I worked on implementing singly and doubly linked lists, learning how to traverse, insert, and delete elements.
- Stacks and Queues: These data structures were next on my list. I learned how stacks follow the LIFO (Last In, First Out) principle, while queues follow FIFO (First In, First Out). Implementing these from scratch was a great way to solidify my understanding.
I learned the basic data structures from the Javatpoint their complete tutorial was very helpful for understanding each concepts clearly.
I complemented my learning with problem-solving on HackerRank, which helped me put theory into practice. Practicing code is very important to be able to solve different problems based on data structures. As of now, I struggle to solve problems on my own, but I refer to the solutions to understand how to approach problem solving.
Day 11–25: Recursive Thinking and Sorting
As I progressed, I started with more advanced topics like recursion and sorting algorithms. I was familiar with these algorithm as I’ve implemented them before using C programming language.
- I started with simple recursive problems like calculating factorials and solving the Fibonacci sequence.
- Then, I explored sorting algorithms such as Bubble Sort, Merge Sort, and Quick Sort.
I took help from YouTube lectures for implementation of these algorithms in java.
AI-Based Project: Stay Tuned for More!
Alongside my journey with Java and data structures, I’ve been working on an exciting AI-based project. Though I won’t dive into the details just yet, I’ll be sharing my insights and progress on that project in a future blog. Stay tuned for a deep dive into how I’m applying AI/ML techniques in a real-world scenario!
For now, I’m excited to continue my journey with Java and DSA, and I’m looking forward to sharing more about my AI project soon. If you’re on a similar coding path or want to join the challenge, let’s connect! More updates to follow in the next blog.
Until then, happy coding!