Table of contents
Practice is important. When learning something new, applying it in a practical context is a great way to cement learning and deepen understanding, but... it's not everything.
As I've written about before in previous articles, learning is a complex process made up of multiple steps, and 'application' of what you’ve learned is only one of them. Believe it or not, even sleep helps you learn, so suffice it to say learning is far more complicated than it might appear, and you’re not even necessarily conscious that (or when) it’s happening.
With this in mind, it's important to remember that your success in learning to code isn't measured by how many lines you write each day, and you can still learn a great deal without even typing a word.
Some days it's difficult to find the physical or mental energy to sit down in front of your code editor and add new features to that project you've working on, or hammer out complicated logic, but it doesn't mean your learning has to stop.
In this article, I'll give you a number of ways you can continue on your learning journey and take significant steps forward, without writing a line of code.*
*Okay, you might write one or two, but you don’t have to.
📚 1. Read the docs
When I first started learning to code, it took me a while to really see the benefits of reading documentation. Sure, I’d heard people say ‘read the docs’, and would often see comments on StackOverflow linking to official documentation in what a seemed like an unhelpful alternative to actually trying to help the person solve the issue they needed a hand with. It turns out, they were actually trying to be helpful, I just didn't see it right away.
I used to skim over documentation when I first picked up new tech, but only really used it for reference, when I really had to. I just wanted to get stuck in to writing code. Reading docs would just slow me down... or so I thought.
In retrospect, I can't tell you how many times the solution to a problem I was struggling to solve was right there in the documentation... often on the first page. Had I taken more time to read the docs, I would've been more familiar with the concepts at hand, solved issues far more quickly, and written cleaner code all along.
I know reading documentation may not sound like the most exciting way to spend your time, but so many coding languages, frameworks and technologies have easy-to-digest docs that explain complex concepts in simple terms.
Whether you're troubleshooting issues with your code, getting to grips with something new, or levelling up with your chosen tech, don't skip over reading the docs.
🤓 2. Read other people’s code
Joining a version control site like GitHub, BitBucket or GitLab is a rite of passage for any developer, but these sites aren’t just handy places to store your code. Sure, when you first join, that's probably all you'll use them for, but these storage sites are treasure trove of code written with all kinds of languages, available for all to see.
Just like reading literary books is a great way to expand your vocabulary, you're guaranteed to expand your skills, and learn new terminology and techniques simply by taking the time to read some code written by somebody else every once in a while.
GitHub alone has literally tens of millions of codebases at your fingertips (themselves stating they have more than 83 million developers as members, and over 200 million public repositories, 43 million of which are public), ready for you to read, clone or fork, where you’re free to play around with it.
With such a staggering number of projects on GitHub and the alternatives listed above, there's a good chance somebody else has a solution to that tricky issue you just can't seem to solve, or taken a novel approach to a common problem, with the snippets available for you to use right out of the box.
In a world of SaaS subscription packages and paywalls for products that were once free, GitHub is a valuable resource that shouldn't be taken for granted. Take full advantage of it, try to pick it up early on, and immerse yourself in the code you find there.
💻 3. Read technical articles
We've all come across a blog or article in pursuit for a solution, but how often do you read articles just to learn something new? To be fair, if you're reading this article at all then there's a high likelihood you read tech blogs relatively often, so I won’t preach to the choir too much.
Just remember that tech blogs aren’t just there to help get you out of a sticky situation when you need it, but reading them is a great way to pick up tips and tricks for working with your chosen stack. While simply reading articles without any application of what you learn from them won't lead to particularly deep or meaningful learning, there's a good chance you'll pick up enough of the basics (or surface-level information) to recall it at a later date, and every little helps.
🎥 4. Find content that suits your learning style
Okay, I get it, advising you to 'go on YouTube' really isn’t that insightful, but it’s important that the content you consume to learn new things is actually doing what it's intended to do: help you learn.
Maybe you’re someone who likes to get stuck in to the nitty gritty syntax right away, copying what's on the screen until it starts to make sense, one puzzle piece at a time, or you like to ease into a subject with analogies and metaphors and a high-level overview rather than specifics, or on a simple level, benefit more visuals than audio (or vice-versa); choosing and using the right content is incredibly important.
Personally, I'm a big fan of Kyle from Web Dev Simplified with his jargon-lite explanations of complex concepts, and mixture of both long-form and and bite-sized lessons, but remember, the point is to find content that works for you.
🔖 5. Bookmark time-saving snippets
Tech Twitter has some amazing developers sharing tips tricks, cheat sheets and snippets on a daily basis.
If you’re like me and you appreciate clean, concise code then these accounts deliver little nuggets of code gold, without having to worry about a larger project surrounding it. Snippets are an amazing way to pick up tips and tricks; and taking the time to save some that you appreciate will help you solve problems you encounter in the future, guaranteed.
Snippets help you learn some of the finer details of coding at the same time as helping you to break out of old habits and routines as you add new tricks to your tool kit.
🕵️♂️ 6. Inspect sites you admire
Whether you're a developer or otherwise, most of us spend a significant portion of our day online. ... But everybody needs a break from coding every once in a while. Whatever you spend your time doing when you're not coding, there's plenty to be learned while you're doing it.
When you’re next online and get caught off-guard by an impressive-looking site or extraordinary feature, open up your developer tools and take a look at the source code. Is the HTML semantic? How did the developer do that fancy animation? How have they styled their components? What can you learn just by looking, because the answer is probably more than you think.
🔽 7. Download cheatsheets
Rarely a day goes by where I don't see a coding cheatsheet making the rounds of Twitter, and I often keep scrolling without looking too closely. Take the time to read them though, and you'll find some absolute gold.
Cheatsheets might not be enough on their own to make you a great coder, but they’re a great way to go over fundamentals, find shortcuts or pick up nifty one-line solutions. The time saved by using simple shortcuts compounds over time, so something relatively simple can radically transform your productivity and output.
🤔 8. Be critical of the UX/UI on sites that you use
The more you learn about UX, the more you realise that the best websites have carefully crafted UI’s that make a tool - and the process it facilitates - intuitive, and frictionless.
The next time you’re logging in to your online banking account, buying clothes online, or even navigating around this very site, be critical of its design and the impact this has on your experience as a user, positively and negatively.
Ask yourself some of these kinds of questions: How does the UI indicate an incorrect password was entered, or a product was added to the basket? How straightforward or complicated was onboarding? Was the checkout process slick and seamless, or slow and clumsy?
Save examples of food UX that you encounter in your bookmarks, it’s a simple way to remind yourself of good practice when the time comes for you to build similar features for yourself.
🙋♂️ 9. Ask questions
Even when we have the opportunity to learn from people more knowledgeable or experienced that ourselves, we often won't ask the questions we want to ask, for fear of looking stupid. Each time we pass up these opportunities, we’re missing a great chance to learn something new and be gifted with an answer that it would take far longer to learn for ourselves, through experience.
Join a community, whether it's Hashnode, Twitter, Reddit, GitHub projects or elsewhere, and speak to other developers to learn more about their approach, their mindset, their stack. These conversations might not seem like much, but experience matters, so you're guaranteed to learn a lot even when you're not expecting to.
🎓 10. Teach somebody else
Teaching somebody else, regardless of the topic, teaches you a lot about yourself, as the teacher. You become aware of where your knowledge on a given subject begins and ends (and where gaps exist), and have no choice but to synthesise potentially complex information into easy-to-understand parcels of information, free of inaccessible jargon.
Help those around you or in your social network, because by teaching others learn along the way you inevitable learn a lot for yourself.
So often I'll hear developers talk as though the only way to learn to code is to stare at your code editor for hour after hour, and this simply isn't true.
Hopefully this article has given you a couple of ideas for how to keep the wheels turning even when those days hit where you don't have the time (or energy) to sit down and code.
If you can think of any other ways to learn without writing code, feel free to leave them in a comment below, or send them my way on Twitter.
If you enjoyed this article and want to see more content about development, design, creativity and learning, then follow me on Twitter at @danielcranney.
If you'd like to see my work, check out my portfolio at danielcranney.com.