Learning How to Learn
Programming languages are constantly evolving. It’s not enough to learn a language once and not keep up with it. As a result, one of the most valuable skills one can have in this field is the ability to learn new concepts quickly and thoroughly. However, everyone learns differently. Knowing how to study and what works best for you is half the battle of learning anything. I’m grateful that this is something we are taught at Flatiron School in addition to the technical skills in the curriculum. It allows us to continue learning effectively long after graduation. Since it has been a few years since I graduated college, where I studied an entirely different kind of material, I found myself having to relearn how to study effectively. This resulted in testing many different methods, and I learned a lot along the way.
What I’ve Learned About Learning
Don’t Be Afraid to Ask for Help
I like being able to figure something out for myself. I don’t like admitting I don’t know something. But sometimes, especially in a learning environment, it’s necessary to ask your professor or classmates for help. That’s what they’re there for! There was a time towards the beginning of our classes that I was stuck on a feature in my project and was sick with stress that I wouldn’t figure it out. I finally swallowed my pride and set aside some time to discuss it with my teacher, and within minutes he had helped me not only fix my problem but understand the concepts that had tripped me up in detail. I realized then how important it is to ask for help when you need it — it can save so much time and stress, and you’ll likely end up learning more than if you kept trying to figure it out yourself.
Figure Out How You Learn Best
I’m a hands-on learner. Code-along videos help me much more than reading theory-heavy chapters does. My teacher would record our lectures that were easy to re-watch and code along with — this was by far the most important part of my learning process in boot camp. Being able to pause and go at my own pace allowed me to retain the information better and understand the why behind the code as well. I also learn well with flashcards — repetition is essential for me to retain information. While all of these things worked for me, they may not help another person at all. I know certain things — like reading heavily theoretical blogs I can’t picture in execution when first learning new concepts — don’t work for me at all but might be the best way for someone else. It’s all about figuring out what works best for you so that you can implement those strategies and not waste time with ones that don’t work.
Explore External Resources
Luckily, the way my teacher taught really resonated with me. But it’s also important to see other people’s coding styles. I found YouTube to be particularly helpful with this. I really like The Net Ninja — the way he explains things helped me to see it from another perspective and provided fun and helpful code-alongs and tutorials to make sure I understood it in practice. Using additional resources helps you gain a more well-rounded understanding and teaches you to work with and understand programmers who might come at things from a different angle than you — a key skill when it comes to teamwork in the “real world”.
Googling is a Skill
This was often repeated at Flatiron and it's true. You will never be able to remember every syntax of every method or function in every language you learn, and no one expects you to. There will be times where you don’t know how to do something, especially after a new version of a language is released — it comes with the territory of coding. Knowing how to find the answers you’re looking for is a skill you’ll use for the rest of your career, and not knowing what search terms to use to maximize your efforts can waste a lot of your time.
I’ve learned a lot of technical skills at Flatiron, but those skills would be quickly out of date had they not also taught us how to keep learning. Knowing how to learn isn't just helpful in learning new languages, it also helps you develop a software engineer’s mentality when it comes to problem-solving. It’s the difference between knowing languages and being a well-rounded engineer who can keep growing, and I’m excited to keep growing.