An important lesson for learning to code
Tags: learning, tips, beginners, codenewbie
Published: 2020-07-24 22:24:13

---
title: An important lesson for learning to code
published: true
description: One of the most important pieces of advice I’ve received in regards to learning how to code, as well as learning in general.
tags: #learning, #tips, #beginners, #codenewbie
canonical_url: https://danpgomez.com/blog/2020/7/24/an-important-lesson-for-learning-to-code
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/5w4ulaggkc2nqevit1fe.jpg
---
Cover photo by [Kelly Sikkema](https://unsplash.com/@kellysikkema?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/build?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText)

This is something that I've been told by several people in different ways over the years. However, it took some time for me to fully understand it until I began applying the concept myself: learn by doing.

As many of my friends and mentors would put it…

_“Build a lot of stuff!”_

_“Work on a personal project as you learn.”_

_“If you're not applying what you're learning, it almost doesn't matter because you’ll soon forget it.”_

Yes, it's absolutely true that different learning styles exist. I personally tend to lean towards the “visual” learning style. But when it comes to fully learning something in a way that you can then use it I believe it is also necessary to actually apply what you learn as quickly as possible. This process forces you to not just remember what you were trying to learn but also see it take shape as you use the knowledge, which I feel further reinforces the memory in your brain. 

I've also seen proof of this concept, in regards to programming, in many areas. Here are a few of my favorites for inspiration:

[“180 websites in 180 days”](https://jenniferdewalt.com/) by Jennifer Dewalt

[“Learning in Public”](https://www.taniarascia.com/learn/) by Tania Rascia

[“Lil Software”](https://lil.software/) by Jordan Singer

It is because of this that I've taken on a new approach to learning; whether it's coding or anything else. If I'm doing coding tutorials I don't just follow along or use the provided code as is. Instead I try to build the tutorial app from scratch and add new features or make a different version using the same concepts. Here are a few Android apps I've built through this process:

- [Bart Roller](https://github.com/danpgomez/bart_roller)
- [User Profile Example](https://github.com/danpgomez/UserProfileExample)
- [ColorfulViews](https://github.com/danpgomez/ColorfulViews)
- [Smash Bros Trivia](https://github.com/danpgomez/smash_bros_trivia)
- [Coffee Shop](https://github.com/danpgomez/coffee_shop)
- [Pantomime](https://github.com/danpgomez/Pantomime)
- [Speedy](https://github.com/danpgomez/Speedy)
- [Accessible News](https://github.com/danpgomez/AccessibleNews)

I've also begun using this method of applying what I learn as I go in other areas with great success. I recently read a fantastic book, called [The Art of Explanation by Lee Lefever](https://www.amazon.com/Art-Explanation-Products-Services-Understand/dp/1118374584), and made a presentation to my team at work on how we could improve our processes with better explanations. It not only helped me internalize the concepts from the book but it felt great to be able to share them with others.

As a final note, I shall leave you with this awesome video and quote from Kevin Gisi’s YouTube channel CheersKevin where he says:

> “Don’t learn to program. That’s like learning how to saw or > how to glue or how to hammer. Solve cool problems and make > cool things.”
> — Kevin Gisi

{% youtube mvK0UzFNw1Q %}