Programming is hard no matter which programming language or technology stack you choose. It takes time, dedication, and hard work. There is no overnight success. You will not understand everything at first. You'll think about giving up a few times or wonder if you've chosen right industry.
There is no such thing as overnight success. According to Malcolm Gladwell, it takes about 10000 hours to become an expert in specific field. Spend that time smart!
How to Start?
I started learning programming in Primary School, continued at High School and University. Classes weren't enough, so I stared studying outside the school.
Books were quite expensive and hard to find in Croatian language, so I had to read books in English. Not everyone had internet access at home, so I borrowed books or bought them at IT shows or book fairs.
Getting started to learn programming has never been easier!
Yet, much has changed since and unlike me, you have more options. I will present those and discuss them in more details.
Programming languages have improved and matured. Good quality content is available on the internet. There are plenty of learning resources.
Tutorials are good starting point. They are easy to follow, with step-by-step explanations and a source code on a GitHub. Make sure to do a basic research on the author. You want to learn from someone credible, trustworthy, and authentic.
To understand programming in depth, you will need to read some books. Yes, I know, not something you are looking forward to. But remember, I said there are no shortcuts and learning programming takes time.
Some of the books that I recommend are:
- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer: your journey to mastery by David Thomas and Andrew Hunt
These books will be useful if you're learning any programming language. There are many more terrific books, but you will get the most out of those two. At least to get you started.
I must admit that video courses have become my favorite way of learning. There are many platforms where you can watch courses for free, for a monthly fee or buy them.
Courses often come with a source code, access to discussion forums or author.
Learn by Doing
You can read tutorials, books and watch courses all you want. Without hands on experience, you won't be making much progress.
So how to start?
Get outside your comfort zone. This is the best way to learn!
What does it mean? While you were following tutorials or courses before, now it's time to make something on your own. You can start small - add a new feature or expand on tutorial. Make a small app? Explore concepts and try to apply them.
Idea is to try something new that you haven't done yet!
Often, I learned the best while doing the actual work on a project. Sometimes I would get deep into the topic that I wasn't yet familiar with. Other times I would find new and better way.
Maybe the title should have been Stack Overflow, which is one of the most popular developer websites ever. To put it simply, it's Google for developers. Whatever problem you have, there's a high chance that you will find your answer there.
Stack Overflow is useful and can save lots of time, but be careful.
Instead of copy/pasting the code from Stack Overflow, try to understand it. Read comments and don't always assume accepted answer is the best or even correct one.
Official documentation should be one of the first stops when you get stuck or need to look up the syntax. Most major software vendors provide good quality documentation with lots of examples.
Document Your Journey
Having a blog is one of the best options. Keep a public record of what you have learned and help others at the same time. There is also exposure, so you might even land a job or a freelance gig.
Learning programming is a long journey. Make it habit to learn something new each day and study as much as time allows. Combine many learning resources and don't over depend on a single one.
Be realistic and don't give up! Good luck!