Hi there,
So... I take it you want to become a programmer. Programming has dramatically grown over the past 20 years and will keep growing even more. Seriously, we are living in the technological era! I mean look around you and try to find something that is not relying on a computer to work.
As cool as it sounds to be an amazing developer, learning how to develop software can be difficult, especially if you don't take the right steps. Every person has a different way of learning and a different pace at which they learn, but there are certain steps that everyone must take no matter what. In this article, I will try to get you to the correct mindset that you should have before starting to learn how to program.
1. Mindset.
Have you ever looked at a GitHub project and thought to yourself, 'how the heck can these people that have made over a thousand commits of well-written code know all of this stuff?' The answer to this much simpler than you think; it's time and dedication. You need to get rid of the thought of shortcuts because they don't exist. Shortcuts are superficial and are not an easy way out. If you want to learn something well, you need to understand that it's going to take time and effort.
2. Results.
One thing that is important to understand, is that you are not going to see results after 1 day. If you are learning a programming language, it will not take you 1 week to fully learn it, rather you should expect to learn in months. Also, it depends on the difficulty of the language, C++ can even take you years to fully master. Something that you should pay attention to, is that learning to program is not just about learning a language. It is about learning the workflow, concepts, and techniques behind your code. Do not think that after you know the syntax you can already start making the next Facebook. When I say fully master, I mean it, I don't just mean that you can do certain stuff only in certain cases. I mean that you would be able to complete a project from scratch and understand every single thing behind it. You are going to hear a lot of people that say they learned it in 2 weeks and that programming languages are easy to learn, and don't get me wrong they are not difficult, but you do need to spend your time on it.
3. Why are you doing it?
Before you start a project or learning something, you need to make sure that you have a goal. Trust me, there are going to be times where you ask yourself, 'why am I learning this?' and you need to make sure you have an answer to that question. It is hard to keep focused on something that you don't know why you are doing.
4. Understand what it is you want to do.
Programming is a very big topic. There are uncountable things you can do once you learn a programming language. That might sound very tempting but you can't just start learning everything. You need to choose what it is you like most when developing software and focus on it. It could be developing games, web apps, operating systems, kernels. These things all have different requirements and different languages with which they are developed. It is up to you to research all these things before you start doing anything.
Well, what now?
Now it is time for you to actually get started. Here are some awesome resources that will help you through your journey!
Codecademy.com
Codecademy is probably the first website you'd want to visit. It is a nice way of learning to code in several languages by following thoroughly designed steps that will take you from basic to intermediate level.
Udemy.com
Udemy is one of the best platforms for video classes with thousands of courses. Instructors compete and design their own courses which are offered to anyone. Some courses might be expensive, but don't worry prizes often drop to 10 euros per course!
Coursera.com
Coursera is a professional website which offers plenty of courses at all sorts of levels. I would personally use coursera for more advanced courses and topics. This is because Coursera gives you the option to buy a course certificate. Many of coursera courses are made for university students.
Youtube.com
Youtube should go without saying. Youtube is so big that there should be a video of anything you need. Try to find a youtuber that you like and stick with one!
Codewars.com
Codewars is a website that I would use once you know some coding already. Codewars lets you challenge yourself with very interesting problems at all levels and allows you to see solutions from everyone that has completed the same challenge. It is a good way of looking at other people's way of solving the same problem so you get used to approaching a challenge from different points of view.
Codefights is something I would use to just have some fun to play live 1v1 with some friends. I am not a great fan of their challenges and their way of structuring certain things, but some of the challenges are great! Codefights tries to get you confident in every aspect of a programmer's duty, which includes:
- Finding bugs
- Adapt to someone else's code and continue from there
- Write your own code
Hackerrank.com
Finally, hackerrank is a place in which you can code in order to get hired. You can complete challenges and show off your skills to other people.
This is it, I hope that this article helped you get started and that you now have a slight expectation of what is awaiting you in the awesome adventure of learning how to program.
Stay focused, and good luck!