One of the most exciting things about getting into coding is all the possibilities that open up. There are so many different languages, frameworks, and applications for coders to choose from, there’s something to fit every style. This is also one of the hardest things about learning to code… until you have the experience to know what aspect will best suit your interests, how do you know where to focus your time and energy in learning?
My journey is very typical. I started with HTML and CSS, arguably the easiest to learn because of the distinct lack of logic required. Compared to other languages, HTML and CSS are very straightforward, making the leap into coding a natural progression for anyone that already speaks English. If you’re an aspiring coder, this is a great place to start because you’ll learn many of the “tools of the trade” like text editors and online help forums, while working with code like <table> and <header> that are intuitive enough that you won’t get overwhelmed.
From there, things get interesting. Many front end developers proceed from HTML and CSS into frameworks like Bootstrap and JQuery, or into a front end language like JavaScript. All of these take what you can already do (make a basic webpage) and give you more tools to make it look better and respond to the user. This is also where the road starts to fork though.
Because JavaScript is a language that will take much longer to really master, many new coders will be tempted to “shop around” instead of staying focused on JavaScript alone. Especially when the learning gets hard, it’s easy to get distracted and think maybe another language will be easier to understand or offer better opportunities. Or you start to think that maybe you now know enough JavaScript to start learning Angular, React, or Node! Or maybe go a different direction and learn PHP, WordPress, MySQL, or on into other back end languages.
Ok, maybe I’m still just talking about myself here… I think I’m not alone though. There is good news. All of this dabbling with other languages, learning a bit of this and then figuring out how that one works… it turns out it’s really helpful. The logic of programming is basically the same from language to language, although the syntax and some of the specific rules change. Once you’ve learned the basics of a language like JavaScript, a similar scripting language like PHP isn’t too hard to pick up. The bonus comes in when you get just a bit further into PHP, and then come back to JavaScript and find that what was tricky when you left off is now easy to understand.
I see advice to new coders often that says to make yourself stay focused on the task at hand, in my case JavaScript, and really master it before getting distracted in other directions. That definitely seems like sound advice, and for sure making yourself push through the challenging parts is part of the process.
I want to offer another perspective though. Working over the basics again and again helps to solidify them, and doing them in more than one language can be helpful. Of course, spreading yourself TOO thin or trying to learn TOO many at once will be really confusing, but when you start to get stuck or frustrated, find something new and exciting that makes the learning fun and interesting again. It’ll start you back at the beginning with concepts that are familiar, and it’ll give you a chance to practice those basic concepts a few more times, really solidifying the foundation for you. You might find that you even fill in a few holes in your foundation or gaps in your knowledge.
Keep that mental fire fueled with new material, and you’ll find yourself spending more hours reading and typing and trying things, and it’s all valuable learning. That curiosity in dabbling helps keep the brain engaged in the process, and in the long run, even if you don’t end up sticking with some of the things you dabbled in, it IS valuable to have a sorta-understanding of how they work so that you can see how they’d fit into future projects you work on, whether someone else on the team does that part, or you see an opportunity to better solve a problem by implementing a new framework.
It’s also in the course of this dabbling that you may find something that gets you really excited, something so interesting that it changes your course entirely and you dive in and REALLY learn the in’s and out’s of it. For me it was WordPress. As I started making my first from-scratch theme, there were definite moments I wanted to retreat back into the comfort of doing static HTML/CSS pages, but the allure of learning “the system” was too strong. I watched tutorials, explored the Codex (I mean, that just sounds cool, doesn’t it??), and persevered. Once that first theme was done, I finally understood how PHP and HTML worked together to make a page, and how WordPress worked its magic to weave the different pieces together to make a complete website. It really wasn’t *hard*, it was just different! And so I continued, and with each new feature I discovered, I got more excited about the amazing things that were possible with WordPress, and so was driven further into learning PHP, but also pulled full circle back to learning more JavaScript to allow my new creations to DO more…
This is the joy of coding!
There is always more to learn, new techniques to discover, and multiple ways of doing the same thing. When something ignites that part of your brain that is really, deeply curious, insatiably mesmerized by the possibilities, intrigued to discover the inner workings of a language or framework, here you’ll find the energy to fuel countless hours of learning, of pushing through the hard parts and making mental leaps. Here you’ll discover why so many others have found such a passion for coding. And the more you learn, the easier it becomes to learn more.
So dabble, explore, and ask questions. Watch a tutorial on this and that, and let your mind be teased by things you don’t understand. You don’t have to get it all at first, you just have to get used to not getting it all, because that part never changes! There is always more to learn, and the eager mind will be entertained for years, so go ahead and develop that right along with your coding skills. Find the part that really excites you, that makes you want to understand how it works, and then dive in. Maybe it’ll be the longer road towards “mastery” (how do you define that anyways?), but maybe not, maybe you’ll develop a more complete understanding of how all the languages and frameworks work together and that’s what lets you really “get it” in the end. And maybe there is no end, and it’s merely all about enjoying the journey….
Happy coding!