Build a Strong Foundation

I’ve heard the lesson about building a strong foundation a million times. Part of the reason this has been said millions of times, though, is because hardheaded people like me don’t like to listen. Have you seen how huge the self-help section is at a bookstore? Yeah, concepts are easy to understand but hard to practice. When it comes to learning how to code, building a strong foundation is crucial.
I’ve used tons of online resources prior to the Firehose Project. When lessons started getting harder, I’d ignore the parts that didn’t make much sense to me and keep going. Surprise, ignoring concepts you don’t understand doesn’t help you. In software development, there definitely isn’t a clear path of what you should learn first, but it is necessary to drill down deeper and figure things out when you just don’t get it. This can bite you later if you don’t. Coursera has a great course called Learning How to Learn that, based on neurological principles, you learn more effectively when you dig into what you don’t understand.
In the past, when I couldn’t easily figure out something weird in a google search, my go-to was to skip along to some other resource and start beginner lessons from scratch. Yay, a morale boost because I know this stuff! Well, there is also such a thing as having an illusion of competence. It doesn’t help you to know 3000 ways to tie your shoes. After a while you need to just start walking, then running, then doing marathons (just kidding, never a marathan, not even once!).

To sum up, my main points are:
- Actually understand the fundamentals, especially the stuff that makes you go “WTF? I want to skip this.”
- Don’t over-learn what you already know well
- Take steps toward progress and build a kick-ass mansion on your foundation with your coding skills