Navigating the complexities of learning software development can often seem like an insurmountable task. Yet with the right motivation, it becomes an engaging journey of discovery. This article explores how personal projects, inspired by everyday challenges, can not only accelerate your learning experience but also add a touch of innovation to our digital world.
Learning software development is hard. There's no definitive right or wrong way to learn, but I firmly believe that anyone can learn if they're properly motivated. For some, this motivation stems from the thrill of creation—starting with an idea in their head, transforming it into physical reality, and then sharing that with the world. That's my preferred learning method, and that's how I assist my mentees.
There are countless ways we can integrate software into our daily lives. Even though we're all unique individuals, with our own interests and skills, there's a software project out there for everyone. For me, that project materialized as a journaling app I named Bonjournl.
It all started with a problem—I needed a tool to encourage me to write daily, as writing contributes positively to my mental health. I wasn’t satisfied with the existing tools; they all served their purpose but didn’t align with my unique workflow. So, I noted down a few key features that I wanted my app to possess, drafted some rough sketches on a whiteboard, and set to work. This journey highlighted how one's own challenges could fuel creative problem solving and product development.
When I initiate work with a new client, I urge them to consider a problem in their daily life that software could potentially solve or improve. It might be an existing product that falls short of addressing their unique challenges. There are a variety of projects that people have wanted to build: a habit tracker, an anonymous therapy app, a podcast summary generator, an online dog tag, a community prayer app, and the list goes on.
What's fantastic about this learning approach is the innovation it spurs. While learning software development, fresh ideas and perspectives on existing issues are constantly being formed. One project at a time, we're incrementally improving the world. The ability to share your creation with the world is a powerful driving force.
The allure of the information age is vast. All the information you need to bring whatever ideas you conjure up to life is at your fingertips. At times, all that's required is guidance from someone who has tread the path before to help you navigate it.
My clients are the captains of the ship; I merely act as a guide to keep them on course and prevent capsizing. I'm there to cheer you on and reassure you that you have what it takes. Through this process, not only do my clients gain a comprehensive understanding of software development, but they also build practical solutions that they can take pride in.
One of the crucial elements of the mentorship I offer is a defined process for taking an idea from conception to realization. It's a step-by-step journey, which we'll explore in more depth below.
The first step is to form an idea. There are no limitations on what ideas can be worked on, but the idea should serve a purpose - it should solve a problem. So, I suppose we could say we start with identifying the problem statement.
Next, we come up with a few requirements. Bonus points are given for writing these requirements as user stories. I encourage my clients to learn about what makes a good user story (Given, When, Then; Acceptance Criteria).
If our project has a user interface, we then create some whiteboard sketches of what it will look like. This step allows us to visualize our product and plan for its functionality.
Then comes the review stage. We go over the sketches and requirements together, and I provide my feedback. After that, we decide on a task management process that suits the client's comfort level. This could range from using Jira, GitHub issues, or even just a plain to-do list.
Once we have our management process, we create a list of tasks and prioritize them. The goal is to produce working, useful software as early in the process as possible to facilitate early feedback.
The next step is deciding on the tech stack. The choice entirely depends on what the client feels comfortable with, because the learning process can adapt to anything.
Task by task, we build the project, with weekly check-ins to assess progress. I also remain available via chat for any queries or hurdles the client might face during their coding journey.
The first task is always to get a "Hello World" app running and have your main branch hooked up to a CI pipeline. This ensures that each push updates your production app.
Once enough of the project is complete to start using and sharing it with others, we can begin to identify what is missing and what could be improved. This stage involves a lot of iteration and refinement based on the feedback received.
One key piece of advice I always share with budding developers is that there is no such thing as terrible code. There is working software, and there is non-working software.
Too often, developers hold themselves back because they fear producing bad code. But the reality is, the internet is built on what some may consider "bad" code. Especially if it's a proof-of-concept project, the quality of the code doesn't matter in the least. The goal is to build something that elicits feedback and allows for further iteration. If it ever reached a point where it received funding, a team would be brought on board to re-write the software to be more scalable.
So write code that might be deemed terrible and wear it as a badge of honor! It's a testament to your learning journey, and each line of code brings you one step closer to becoming the developer you aspire to be.
Learning software development is an enriching journey that fosters creativity and problem-solving skills. Through identifying everyday problems and turning them into personal projects, you'll gain a deeper understanding of software development and improve the world one project at a time.
Find out if MentorCruise is a good fit for you – fast, free, and no pressure.
Tell us about your goals
See how mentorship compares to other options
Preview your first month