You’ve been thinking about coding for a while and, these days, it seems like everyone is learning how to do it. You carve out some time on a Saturday afternoon, sit down at your computer, and decide that today is your day: you’re going to embark on a journey to become a programmer. Now, you stare blankly at the screen. A deluge of questions runs over you: “Should I learn JavaScript? Python? C? Should I use Atom or VS Code? Are indoor sunglasses and a trenchcoat a necessity, or just nice to have?”
The hardest part of learning to code is getting started. The biggest obstacle to getting started is getting ahead of yourself and obsessing over all the details behind every decision you’ll have to make. If you’re like me, you’ll think that everything sounds cool.
Building web applications? Awesome!
Machine learning? Sick!
Firmware? You bet!
Right there you already have at least three languages on your plate… JavaScript, Python, and C.
Next, you’ll have to select different frameworks and libraries to use in your projects. Let’s use web development as our example moving forward, focusing on the development of a full-stack application, rather than a simple, static site. You’ll typically need vanilla JavaScript, HTML, CSS, a frontend framework or library (e.g. React, Angular, Vue), a database (e.g. PostgreSQL, MySQL, MongoDB), a backend environment (e.g. Node), and a backend framework (e.g. Express). Then there’s hosting, deployment, testing, bundling, transpiling, security, and more.
Yeah, that can definitely sound overwhelming. But here’s the good news: none of that really matters right now. You must resist the urge to get carried away and think too far ahead. If you don’t, you’ll find yourself intimidated and discouraged and, a year from now, you’ll have just as much programming knowledge as you do today.
Simply put: It doesn’t matter which language you learn first. Personally, I recommend JavaScript because it’s (a) popular (in-demand on the market and high-paying), (b) easy to learn, and (c) extremely versatile. You can use it on the frontend, on the backend (Node.js), for machine learning (TensorFlow.js), for mobile development (React Native), and even desktop applications (Electron). The sky is the limit!
“Any application that can be written in JavaScript, will eventually be written in JavaScript.” – Jeff Atwood, Co-Founder of Stack Overflow
However, I’m just a stranger on the Internet and this is just a personal recommendation. If you have a particular field or role in mind, look up relevant job posts and see which language(s) they reference. But I’ll say it again: It ultimately does not matter which language you learn first, so don’t spend too much time worrying about it.
The most important thing is that you begin to understand the fundamentals, e.g. variables, types, operators, arrays, conditionals, loops, functions, and objects. Once you understand the core elements of a language, you’ll find it much, much easier to learn another. As you spend time programming, you’ll hone your logical thinking and problem-solving skills; you’ll learn how to tackle challenges, track down bugs, and do research to find answers to your questions; you’ll be able to learn new frameworks, libraries, and languages much more quickly.
When you first start coding, it can be easy to fall into the trap of majoring in the minors and allocating your time to all sorts of endeavors that won’t help you level up your skills. I’ve met people who do everything related to coding that doesn’t involve writing code. They attend every meetup. They share relevant content on LinkedIn daily. They’ve customized their bash prompt with emojis (🔥🔥🔥). They’re subscribed to every subreddit. But they’re never actually creating anything. They have zero green squares on GitHub.
Another common trap is what I call the “infinite tutorial loop.” The aspiring programmer goes from tutorial to tutorial, never breaking out and building something independently. I’ve seen cases where someone has been coding for less than a year and they are, frankly, more skilled and more knowledgeable than someone who has been doing it for five. This isn’t because they’re more intelligent or putting in more time — it’s because they’ve been pushing themselves out of their comfort zone, stretching themselves, and building applications and picking up necessary skills along the way. Meanwhile, the other person has been spending their time going through 75 introductory React courses on Udemy. One has an upward trajectory; the other is stuck in a loop.
If you want to learn how to code, just get started. You aren’t locked into your initial choices, so don’t stress over them. Learn the fundamentals of the language you selected, improve your logic and problem-solving skills, and always stretch yourself. Stay focused on your goals and don’t get pulled too far off course by the comforting siren songs of coding-related-but-ultimately-not-coding activities. Tutorials can be helpful but real growth happens when you build something on your own. Finally, never be afraid to try and turn something that’s in your mind into something tangible. If there’s something you want to create, give it a shot and learn what you need to along the way!
I hope you found this helpful. Feel free to share your thoughts below!
Thanks. It’s this kind of thing that I need to remember. I’m always getting bogged down in those little details no matter what I am doing. This time..maybe not.
What are your thoughts on project based learning? I’ve been following a lot of tutorials (like https://javascript30.com/ and http://www.craftinginterpreters.com/) and building cool things with the tutorials, but fear I’m having my hand held too much.