Learning to code is an exercise in persistence. Based on my real-world experience, it’s easy to see that most people who want to learn to code will simply give up after trying a single language. For most, at the beginning of their journey, the idea of learning multiple languages seems nearly impossible. The syntax looks like a jumble of letters and characters and even just the setup required to get a basic “hello world” running makes the entire process extremely frustrating.
So if you’re in that place right now, I’m here to let you know that IT GETS EASIER. There IS a massive learning curve to learning to code, and today I’m going to share with you what that curve looks like and how, by the time you get through your THIRD language, you’ll even find the process of learning a new language ENJOYABLE.
So it all starts with that first spark of interest. You want to make something and you know that you’ll need to be able to write code to do it. You may at this point even go do some googling for terms like “learn to code” or “what’s a good first language” and I promise you will find no less than hundreds of thousands of opinions on how to start. Which, makes it all even more confusing. Try not to get caught up in what language to learn. No matter what you pick here, it’s going to serve a purpose and that purpose will become obvious later in this article.
Ok, so now you’ve picked a language and it’s time to learn. This first language is always going to be difficult because not only are you learning the nuances of the language itself, but you are also learning, in general, how programming languages work. I couldn’t possibly go over how to learn every language I mentioned, but let’s go through the things you should learn when doing this for the first time.
- First, Learn how to make the language work on your computer. Every language has a website and generally has a “setup” section that will get you started on getting it running on your machine. Some languages are super easy to set up (like Go and Node), others are more difficult to set up (like PHP), but allow you to simply save a file and see your changes instantly.
- After you have the setup complete, find yourself a good crash course on the language. Start with the language’s website tutorials and after you go through that maybe pick up a book or an online course. I’ll save you the sales pitch here, but I’ve placed some great resources at the bottom of this article. Some are free and some cost money. The ones that cost money are very fine-tuned and focused so if you are trying to move fast it might be the way to go.
- Once you have some basic understanding of the language’s syntax and features, just make something. Don’t try to go huge and make your dream program yet. Just make something that works. It will leave you with the feeling that all of this work so far has paid off.
Ok so now you’ve made a simple program and now you have a choice. You can either choose to deep dive into the language you’ve chosen or jump over to a second language to expand your skills. No matter which you choose right now, you will eventually have a need to learn another language, it’s unavoidable and also a really good idea if you are looking to start a career in coding. Many employers will ask if you know a language, but the truth is that they only really care that you can use any language well and apply your learning towards learning any other language.
So once you decide to learn another language, it’s going to feel at first like you are starting over again, but here’s the part where I’m going to save you a ton of time, so are you ready? I mentioned earlier that learning your first language involves learning the nuances of the language but also how programming languages work in general. Unfortunately for most self-taught programmers, you may not realize the second part of that statement. The important part to realize while learning your first language is that at their core almost all programming languages do exactly the same stuff, but just in slightly different ways. When tacking your second language, try to see learning it through that lens.
Start out the same way you did with the first language. Figure out how to install it and how to run it on your computer, but then, instead of just diving into the code, find the similarities and differences between language one and language two. Here’s the stuff to look for.
- Every language is going to have loops and conditionals. Figure out how to do a for loop, a while loop, an if statement, and a switch statement.
- Once you have that stuff, dig a little deeper into the “object-like” parts of the language. Not all languages call their structures objects, properties, and methods, but they all certainly have something that acts like them.
- Look for how you can store information in collections and make instances of those collections. Figure out how you can write functions that act on those collections. Figure out the differences in syntax between your two languages but still aim to accomplish the same outcome.
- Finally, once you know the pieces that are similar, you can learn about the parts that are different. These things are what make certain languages better than others for accomplishing certain tasks. For example, some languages have great support for multitasking, while others don’t. Some languages have automatic garbage collection, others don’t. Some languages require that you declare the types of your variables when you initialize them, others don’t.
Ok so now you have two languages in the books. You should be able to see now that you can apply your method of learning a language to literally any other language. Once you know two of them, the third will happen naturally. You should be able to just dive in and apply the same pattern again.
So now that you’ve seen how the learning curve works, tell me in the comments: where are you on this curve right now? Are you just getting started? Are you just learning your first language? Are you already on language 3 or 4? If you’re just getting started, don’t give up! Ok. I’m going to leave it there. Until next time, happy coding!
- WordPress All-in-One For Dummies - https://amzn.to/39Bt8vr
- Beginners guide to php mastery - https://skillshare.eqcm.net/9W3d33
- Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques - https://amzn.to/3OnrAUz
- https://nodejs.org/en/download/ https://nodejs.org/en/docs/guides/
- Go (Golang) CRASH COURSE: https://skillshare.eqcm.net/153d3m
- Learning Go: An Idiomatic Approach to Real-World
- Go Programming - https://amzn.to/3HAOWnk