Beginning the Life-Long Journey of Learning
When starting to learn something new, we often expect that there must be a single way — a website, a book, or a course — that will serve as the definitive answer to the question posed in this article’s title. By extension, we wish we could write something like this…
That’s it — that’s the whole article! PayPal us 1% of your salary if you manage to find a job in the following year!
Step 1: Understand the Syntax
The terms “programming” and “coding” are often used interchangeably. However, this isn’t the right approach: programming is a far more general concept. Coding, therefore, is just one of the tools that the developer uses to carry out programming’s intent — solve a problem, that is.
Still, writing and reading code is an absolutely essential skill that every developer needs. To acquire it, you need to understand the syntax of the language you’re using so that cryptic messages like
become not so cryptic after all.
One of the biggest hurdles that beginners face is looking for the “ideal book” (or course, for that matter). With dozens and dozens of various learning resources available on the web, beginners often struggle to actually start learning, preferring to hop from one tutorial to the other.
Step 2: Practice Your Knowledge
This situation is aptly named “tutorial hell” — an endless loop of learning without actually applying your skills to get some hands-on experience. Developers caught in tutorial hell often struggle to escape from it because it’s hard to pin-point when you need to start developing your own stuff. The oversimplified answer to this problem is “Now”; a more reasonable approach is as follows: Work up a foundation via finishing a book or a course and start developing.
Opinions vary, but experienced developers advise to divide the time you spend learning into two categories:
- Acquiring new knowledge (i.e. reading articles and completing courses) — this should account for ~25% of learning time.
- Actually applying this new knowledge in a real-world project — this should account for ~75% of learning time.
The difference between these two categories seems quite drastic: practice outweighs learning three times! However, the reasoning behind this distribution is fairly simple: hands-on experience with development is the only thing that can help you escape the tutorial hell. Solving your own problems is vastly different from the safe environment that tutorials put you in — you have to create your own roadmap and stick to it no matter what.
Choosing the right pet project
It is critically important to come up with a project that you can actually finish: far too many developers have fallen victims to underestimating the complexity of their own ideas. Learning programming is exciting because it opens up a new world of opportunities, so it’s tempting to think that your very first project will be “the new Facebook”.
Instead, you can go for something less ambitious Here’s the million-dollar question: which project idea should you realize? Generally, there are two paths:
Path 1 involves solving your own problem:
- You probably need a personal website to host a portfolio (check these portfolios for inspiration) — watch a tutorial and build a website for yourself.
- If you find yourself constantly looking something up, create a cheat sheet/reference for it (e.g. htmlreference.io)
The benefit of Path 1 is self-evident: you know your own problems better than anyone else — and you’ll also be the most motivated person for the job. However, you can also choose an alternate approach, i.e. Path 2.
Path 2 involves choosing a common project idea and implementing it your own way — an extensive list of project ideas can be found here. Last but not least, contributing to open-source projects is another solid way to acquire practical knowledge.
- Honing your coding skills: One of the most important ideas of programming is this: “‘Code is read more often than it is written.” Hence, another essential skill becomes important: balancing code complexity/brevity with readability.
Step 3a: Picking a Framework… or Not Picking One
Let’s recap the main points we’ve outlined in this article:
- Practice your knowledge: Escape the endless loop of theoretic knowledge and build something.