Learning Through Building — Engineering Advices

📆 · ⏳ 4 min read · ·

Introduction

Welcome to the first post in the series of Engineering Advices. In this series, I plan to share some of the advices that I have learned or received over the years. These advices have helped me in my journey and I hope they help you too.

Let’s start with the first advice.

Learning Through Building

This is the most basic and simplest advice that I can give to anyone. The best way to learn something is by doing it. You can read all the books, watch all the videos, but nothing beats the experience of building something yourself.

The challenges you face while building something will teach you way more than any book or video can. You will learn how to debug, how to optimize, how to scale, how to maintain, and so much more.

“The best way to learn is not when everything goes right, but when something goes wrong.”

I live by this quote. Some of my best learnings did not came when I was able to follow a tutorial or a guide, but when I was stuck with a problem (or commonly known as a bug) and I had to figure out a solution to debug it. This is where the real learning happens.

Mind you that I am not saying that you should not watch video tutorials or read books. They are a great way to get started and to understand the basics. But if you really want to master something, you have to build something with it.

My recent experience

I have been working in JavaScript land from quite some time now and I wanted to explore something new and Golang was the perfect choice. I started by reading the official documentation to understand the language semantics and followed few videos to understand the basics.

Once I had a decent understanding of how the language works, I started building a small side project called git-sync ↗️. This project is a simple CLI tool that syncs my GitHub repositories to my a local server where I store them as backups. The use-case was simple and perfect for me to implement what I had learned in Golang.

While building this, I learned so many new things that I never came across in the videos or while skimming through the basic documentations. And hence I advocate for learning through building.


Another example is recently I came across Codecrafters ↗️, a platform where you build projects to learn new languages.

💡

Not a Sponsored Post

Before I proceed further, I want to clarify that I was reached out by the Codecrafters team to try out their platform but I am not being paid to write this blog.

I spend time with the platform myself and tried out some of the projects from their catalog. I genuinely liked the idea and hence I am sharing it here.

That being said, I do have a referral link that you can use to get a discount on their platform. If you are interested, you can use this link: Codecrafters Referral ↗️ .

I tried out their Build your own shell ↗️ project and it was quite interesting to build some of the shell commands in Go. Here’s the link to my attempt: github.com/AkashRajpurohit/codecrafters-shell-go ↗️. I am planning to try out more projects from their catalog whenever I get some free time.


That being said, I hope you got the point that I was trying to make. Make sure next time you are spending more time on the keyboard building things and much better if you are building something that you are passionate about or something that solves a problem for you.

If you have any questions or comments, please feel free to reach out to me on Twitter ↗️ / Reddit ↗️ or in the comments box below.

I will be sharing more advices in the upcoming posts. See you in the next one. Until then, happy building! 🛠️

You may also like

  • How I use GPG in my day to day workflows

    GPG is a powerful tool that allows you to encrypt and sign your data and communications. In this post, I will explain how I use GPG in my day to day workflows.

  • What is GPG and why you should start using it

    GPG is a tool that allows you to encrypt and sign your data and communications. In this post, I will explain what GPG is and why you should start using it in your workflows if you aren't already.

  • Selecting the Right Git Merging Strategy: Merge Commit, Squash and Merge, or Rebase and Merge

    Uncover the intricacies of Git merging strategies – merge commit, squash and merge, and rebase and merge. Discover the pros and cons of each approach and learn how to navigate the decision-making process based on your project's dynamics and team preferences.