Beginner's guide: How to learn to code
How can I become a developer? How did you start coding? How did you do? Are there any resources for beginners? Those are questions I get all the time on social media. I'm going to try to make a complete answer in this post.
Everybody can learn to code
Learning to code isn't harder than any other activities. If you want to, you can, and you should learn to code. Why not make it your passion or your day-to-day job?
Learning to code is an expensive hobby — how to choose the hardware?
The hardware you'll need to code will depends on what you actually want to code.
But for the basics — aka starting to code, learning to code — you won't need more than a personal computer. And in terms of PC (Personal Computer), the sky is the limit! No need for a war machine. Even the cheapest computer allows writing text, and code is only text writing. If you already own a computer, chances are you won't need to buy another one.
However, avoid too old pieces of hardware because you could have bad surprises when it comes to hardware and software compatibility.
Do not fall into the second trap: buying a mac to learn to code. It is not needed at all. Even if this is what you see on every picture on Instagram, that's not the truth. So, why? See it like an expensive car for a taxi driver. He doesn't need a BMW to do his job, but since he has to stay in his car all day long, he might want to buy one. Long story short: it is often a comfort thing. They invest in their job.
When I wanted to learn guitar as a teenager, I asked my mom to buy me one. The guitars I chose were costing between 300 and 1500 euros, my mom said no. She explained that I didn't know to play, and I didn't even know if I'll actually like to play guitar. She wouldn't buy a 1500 euros guitar to see me stop playing it two weeks later. My mom decided to buy me a 50 euros classical guitar instead. This guitar allowed me to learn to play, and I bought better ones years later. I still own this 50 euros guitar, by the way.
It is the exact same thing for computer. You know that today you want to learn to code. And that's great! But you don't know if you'll still want to learn to code in two weeks. Avoid investing too much money for now. You'll be able to buy a mac later if you still want it. It won't be too late.
There are several low price computers in specialized store and e-shop like Staples, iBUYPOWER, etc. One tip I can give you to lower the price is to not buy a Windows license with the computer. Instead, you can use a Linux OS. Except for those who code things specifically for Windows platform, Windows isn't needed. Most developers agree to say Linux is better than Window for coding purpose (even Mac users)
For the smallest budgets, I would recommend trying a Raspberry Pi. It is a credit card sized computer. You'll only need to add a keyboard, a mouse, and a monitor. By doing this, you could have a computer for 100-150 euros, and maybe less.
Learning to code is way too hard — Should I be good at mathematics?
That's one of the wrongest thing I've heard in the past few years. I agree to say that programming is related to mathematics, or that a computer is nothing else than a powerful calculator. But I would argue that even if you suck at mathematics, you shouldn't still be able to learn to code.
Most people who have a car don't know how a car engine works, and it doesn't prevent them from driving the car.
Learning a programming language means learning a new syntax, a new grammar, a new logic, etc. Basically, I would say that if you followed literature classes, you might even benefit from it.
Obviously, there is more. You'll have to learn how to split a problem into smaller ones, how to use design patterns and architecture concept that are better for your use case, and several other things. But again, this is not about math.
To be fair, I'll add that it depends on your industry. If you work in the financial industry, on a rendering engine, a physics engine, etc. you'll definitely need some mathematics. For the other fields, I'm less confident.
Learning to code is too hard — do you need to study for years ?
Having to study for a long time to learn how to code is also wrong. If you want to be a computer science engineer you need to study for five years but knowing to code doesn't mean you're an engineer.
The computer science engineer degree includes :
- Knowledge of several programming languages (I learned about 15)
- Knowledge of several frameworks
- Knowledge of computer networks and their protocols
- SEO knowledge
- The knowledge of a lot of Design Pattern
- Team management
- Business management
- Basic knowledge of accounting
- Knowledge of Microsoft system administration
- Knowledge of Linux system administration
- Hacking ethic knowledge
And I'm pretty sure I forgot plenty of them. Learning to code is only a part of what students in computer science learn. The Computer Science Engineer degree isn't needed for you to be able to code.
When you want to learn how to code, there are a few short and specialized training websites like OpenClassrooms or FreeCodeCamp. On these platforms, you can learn step by step and at your own pace. There are also projects and exercises you can do to put into action what you've just learned.
I won't even talk about the superfast training that promise you'll be a computer science engineer in less than two months. I don't believe in that. And from what I've witnessed, they don't keep their promises.
If you want to code just for fun, then don't bother with all the different training possibilities. Internet is full of coding content for all levels. Whether you're a beginner or already know some things, you'll find tutorials, videos, and courses on the Internet. Some of them are free, and they'll help you learn what you need to learn. This is how I got started!
You'll never stop learning
If you like programming, you'll never stop learning. If there's one good thing about this job, it's this one.
Today, IT is everywhere. For almost every job you can name, I'm convinced we can find an IT job related to this job. The scope of application is so wide we need a lot of developers, and it induces a lot of innovation from those.
In the IT world in itself, there are a lot of specializations! Programming, network administration, system administration, etc. Then, if we take programming, you can divide that into several categories : web developers, mobile app developers, game developers, low level developers, embedded technologies developers, etc. This can also be divided again in more precise jobs.
It's a simple fact, you'll never know everything. There's too much to learn, but it's also a good thing about that job. Project after project, you'll learn new things.
Whether you decide to learn on your own on the Internet or sign up for a training course, the result will be the same. You'll need to keep learning. Don't think about it too much, pick something you like and stick to it.
Where do I start ?
Here comes the time to share a few links. If you want to learn how to code, and you're motivated to do so, I'll encourage you to start with free online resources. You can still pay for courses later when you're sure that's what you want to do.
I like to start by longer tutorials and courses, they focus on one specific goal and are quite general about it. For example:
- JavaScript : OpenClassrooms / FreeCodeCamp
- Creating a static website : OpenClassrooms
- Creating a dynamic website : OpenClassrooms
- Coding a program using C : OpenClassrooms
- Machine Learning : FreeCodeCamp / OpenClassrooms
- Coding an app in Java : OpenClassrooms
- Designing responsive websites : FreeCodeCamp
This type of courses will give you the basic necessary knowledge to understand a lot more resources.
You'll also find a whole lot of developers sharing their knowledge by writing blog posts or tutorials on more specific topics. Just like I'm doing here. And there are so many more! Here's a list of great tech blogs that will allow you to dig deeper into your chosen field of expertise.
I highly recommend using Feedly (an RSS reader) to keep track of all the blogs you'll discover while learning how to code. With this tool, you'll know when a post, tutorial, or course is published without having to actually visit the website.
Some developers like to write their posts on specific platforms. There are several of them. The one I've used the most is dev.to. You'll find the same type of content that you'd find on independent blogs, but it's written by a lot of different developers that you won't find elsewhere otherwise.
If you make a good use of all the resources freely available on Internet I'm sure you'll become a great developer.
Here are a few tips to guide you through this whole new adventure: learning how to code. It's not difficult, not expensive, and not only for the mathematics nerds. You can do it, and I'll be happy if this post helped you in any way.