Software Development: Why should you learn by building?
Tags: beginners, learning, programming, softwaredevelopment
Published: 2022-12-22 07:01:58

## Software Development: Why should you learn by building?

  --- “Tutorials are cool, but did you know learning by building is the coolest and best way to learn?!”

**Learning by building** is a learning method/technique which focuses on building real-world projects

Building projects is the best way to learn — but you don’t have to dive straight into creating a project that feels impossible to start, let alone finish. It is best if you get enough knowledge about a particular technology to get you somewhere on the project you are building.

### Advantages of learning by building

1.  Problem-solving skills - Problem-solving is a skill of its own and learning it requires facing real problems. As a developer, building projects challenge you and you will face a lot of problems that will sharpen your skills. Plus these skills can be applied not only in development but in real-life problems as well, well except undo and redo actions (Just Joking)
    
2.  Creative and critical thinking - While building projects, stuff like thinking about adding new features, making existing features more awesome, thinking about how the user is gonna use your application, and more stuff always come up and sharpen critical and creative thinking.
    
3.  Project management skills - Creating a project from start to somewhere/finish whether with a team or alone is a skill of its own. Knowing which features to ship, and which features should wait (prioritization) etc.
    
4.  Self-confidence - Knowing that you can create a certain feature using a certain technology usually makes you feel like you can learn anything and build with it. That is self-confidence.
    
5.  In-depth knowledge - Being critical, and solving problems usually leads to getting better knowledge about something you are learning.
    
6.  Portfolio building - The more projects you build, the better the portfolio. Most of the projects that got me a job were built when I was learning.
    
7.  A sense of satisfaction - When coding, we face a lot of issues ( bugs ) all the time, but when you manage to make a feature work there is usually a sense of satisfaction and this is what we can call small wins; In [my previous article](https://dev.to/clickpesa/start-your-journey-as-a-software-engineer-my-experience-from-studying-water-resources-and-irrigation-to-software-engineering-1lnh) I mentioned that one of the best ways to learn is to celebrate small wins, these don’t come if you follow a tutorial step by step ( tutorial hell ) without building
    

### How can you learn by building as a beginner?

As a beginner, how can I start building? One might ask,...

Most people who learn to code have a project idea in mind that they can’t wait to start building once they finish learning or after grasping several useful coding concepts while learning.

Here are several ways that worked for me;

1.  In every step you are learning, there is something you can build as a beginner in your project idea, can be a full feature or part of it and it doesn’t have to be perfect.
    
    I started learning React and while learning I started building [my first portfolio](https://bmsteven.github.io/portfolio/), I had no experience with React and I just learned HTML, CSS and javascript. I was building one feature at a time after learning something in react that I could use. By that time I was still a student, but one year after I finished college I got my first job as a frontend developer. **Today React pays my bills**.
    
2.  If you are following a simple project-building tutorial, instead of following every step, you can improvise and add your own features, or functionalities.
    
    When I started seriously learning to code I had one big idea. I didn't have enough skills. I had to buy a course on Udemy which was a tutorial for building a similar project to my idea. I bought it and while following along I twisted several features to match my ideas.
    
3.  Building projects with teams, Teams can include all beginners or beginners and mid/senior developers. Either way, it's a great way to learn development. Having a senior in a team helps a lot to speed up the process because they usually act like mentors but usually beginners end up learning less.
    
    All beginner's team projects usually have slow progress and most of the time they end up neglected by the team members. But when conducted well, beginners usually end up learning more than normal.
    

One of the problems that arise during the learn by building stage is finding project ideas. Most of the ideas we usually come up with when we start coding are way too complex for beginners. To begin with, don’t worry, there are varieties of ideas for beginners out there, you can use a project from the tutorial you are following, or a simple google search on project ideas for beginner learning `technology.name` will provide you with several ideas that you may find useful in your journey.

If you like this article there are more like this in our blogs, follow us on [dev.to/clickpes](https://dev.to/clickpesa)a, [medium.com/clickpesa-engineering-blog](https://medium.com/clickpesa-engineering-blog) and [clickpesa.hashnode.dev](https://clickpesa.hashnode.dev)

Happy Hacking!!