Welcome to the latest installment of the Self-Taught Developer’s Survival Guide! It can be easy to get overwhelmed by the sheer volume and complexity of what you’ll need (or think you need…) to know to get hired as a web developer or to begin freelancing, but I’ve got you covered! Today I’ll be talking about the guiding principals to take advantage of to ensure that you stay on target and kick ass at the process of learning development!
Know Your Personal Learning Style and Take Full Advantage Of It
This is one of those things that always bears repeating: The best learning resources in the world won’t be of much help unless they fit in with your personal learning style. So don’t try to force this! If you learn best from written sources, don’t commit to a diet of video tutorials. If you’re not sure what your ideal style is, take a test. Then, seek out recommended resources in that vein, and have at it!
Take Hand-Written Notes
Unless you happen to have eidetic memory, this is a must. Research has proven that the physical act of writing (NOT typing!) aids in retention, so doing this will enable you to spend less time with the material. also, trust me when I say that you WILL need to refer to explanations of tricky concepts. As much as it adds to your initial study time, you will learn faster, saving time in the long run.
Begin Learning New Technologies by First Mastering High-Level Concepts and New Terminology
I believe that one of the most difficult parts of learning a new language or framework isn’t necessarily the technique involved with using that technology, but getting acquainted with how it does what it does. Certain technologies are more jargon-heavy than others (looking at you, Angular. Decorators? Directives? Services?), and that warrants some time to understand those before getting your hands dirty. What I recommend is applying a slight variation on the 5 ‘W’s, and being able to answer these questions before getting in too deep:
- ‘Who’ is this technology?
- What does it do?
- How does it do what it does? What is it’s distinguishing features in performing that work? Is there anything particularly unique or novel in any of its parts?
- Where would this be used?
- Why would you use it? What problems or sort of work does this excel at?
Another tactic that I recommend is to figure out what key concepts power that technology and get familiar with those quick. I’ll use HTML and CSS as an example here: Though it’s been improved by the advent of Flexbox and Grid, layout is infamously the most difficult aspect of CSS to master. I think that new students would benefit from learning about the CSS different types of display types (inline vs block) BEFORE learning most of HTML, so they have that context handy when getting acquainted with the default display types in HTML as they learn. Every technology has key concepts that power it, and when you have a deep understanding of those concepts, it will open up that learning.
Stay Engaged by Building Projects to Show Your Work
You should do everything I suggest in this blog post, but this point is the most vital, particularly for finding a job. One of the biggest mistakes I made for the vast majority of my time learning web development was focusing on courses and tutorials to the exclusion of personal projects and experimentation. This cost me dearly in two specific ways:
- Showing your work and what you can do is vital in this field, especially when you don’t have a college degree.
- Tutorials are great, but when you’ve progressed enough with a technology to the basics plus know what you don’t know about it, you’ll progress much quicker if you throw yourself in the deep end, and have to figure out how to do things with no fixed point of reference. You need to be able to move independently, and sticking to tutorials will stunt your ability to do so.
It’s Dangerous To Go It Alone!
Hmm, maybe better not take that wooden sword? You could be tempted to use it on your laptop the next time you run into a particularly hairy bug. But the old man is right in that doing the lone wolf things isn’t the best idea in the world. That hard work that goes into learning development means that you’ll do better when you’re in touch with people who can offer advice, encouragement, and just generally keep you from getting too isolated on the journey. Also, you’re generally going to be developing as part of a team in the real world, and it will pay dividends to keep your people skills honed. Finally, networking is one of the most effective ways to make yourself known to potential employers, so make sure you’re putting yourself out there at meetups, hackathons, and other events!
Learning development requires a lot of hard work, but you don’t want to put in needless work. I hope these tips accelerate your learning, and I’ll see you in two weeks for tips on effective debugging!