This article will help you start programming. It will tell you how to motivate yourself to learn and where to gain valuable experience. Beginner programmers, go for it!
There are many resources to help you start writing code, learn the basics or learn a new language or framework. But there are two problems: How do you really get started and not just feel like it? And how to do it really effectively?
In fact, there are only three rules to remember for a successful learning strategy:
Go for the habit, not the goal.
Studying alone brings suffering.
Now, more details on each of the items.
- Focus on building habits, not goals.
We are used to seeing the purpose of any activity as an end in itself (sorry about the tautology), but this habit needs to be disposed of. If you set yourself a goal to lose 30 kilos in 3 months, you can earn a strong aversion to all the fitness clubs in the world, hate diet bread and oatmeal and shudder from a dream burger. It’s not gonna work that way. It is much more effective to form a habit in yourself – to a different diet, a different lifestyle, a different schedule, not running every minute to the weight and not counting the calories in the restaurant.
It works the same way when you learn to program. If you want to become a web developer in 21 days, you will get nothing but disappointment. If you say to yourself, “I need to dedicate 20-30 hours a week to programming and do it every day” (not “to do it”, but “because I like to do it”), you will eventually achieve a goal you never even dreamed of.
Here the principle of gradual increase in load works (yes, yes, like in sports). Start with 15 minutes of exercise per day. If you feel you can do more, increase the duration to 20 minutes. Don’t try to jump your own limits with a 10 hour coding marathon – it may give you a false sense of satisfaction, but you’ll end up tired.
Your goal is not to set a goal, but to develop gradually.
- Studying alone = pain and suffering.
Everyone who is already a developer will tell you that programming is a social thing. There is a community and a more experienced companion in it.
An experienced mentor
While at university, I worked at a small start-up. It so happens that in one summer of working there I learned much more than in a year of study. There is some magic in working together with a more experienced colleague, which really speeds up the learning process. Collaboration reveals secrets that you couldn’t learn by studying the subject theoretically or even in practice, but by yourself. That’s why mentoring doesn’t go anywhere, no matter what independent learning you do.
A community of like-minded people
For me, the starting point for joining the developer community was my university’s local student organization and online membership in HackerNews.
And here I learned to not only work as a programmer, but also to feel like one.
- Create it!
In my first year of web development training, I created several projects:
- The Digg clone;
- An online store application (on Rails 4, joint development);
- GeekSquad style app;
- Online class;
- Application for learning foreign words
Developing real projects is important for many reasons, but one of the main ones is really fun and enjoyable.
In traditional education, little attention is paid to creating independent projects, and for nothing.
- Do not die out.
It’s a secret, fourth item that’s available to those who finish the post.
There’s probably a moment when you want to quit writing code to hell. Like anything that means anything in this life, programming can be complicated at times and sometimes makes you feel like an idiot. That’s why the first point is important: don’t worry about how far you have come and how long you still have to develop to reach the ideal. Just remember what you’ve already done. Remember that this is part of your daily life. Then you won’t burn out or disappear.
A long time ago, I said that 80% of life is a showcase. People kept telling me they wanted to write a play or a script or a novel, and some even said they made 80% of it. Everyone else fell out of the loop without even starting. They didn’t start or finish, so if you do it, you’re halfway to the end of the story or the novel. And that’s one of life’s major lessons. All the other lessons have failed me.
Just a few more tips that might be really helpful.
Find a site on the Internet where the tasks are collected, including olympiad tasks on programming.
For example, SPOJ or USACO. USACO also has algorithm tutorials, and is great for beginners; SPOJ has a wide range of them.
Do not try to learn any language right away.
So far, you don’t need to know all the nuances. You need to learn how to solve problems with a programming language. Instead of digging through textbooks, try to solve problems in practice. Read about algorithms first. For example, the book “Algorithms in Java” by R. Sedgvik. Develop logical skills and be confident in yourself. Everything has been through it, so it will work out for you.
Participate in competitions, Olympiads, hackatons.
Find something that inspires you, it’s you. But I guess what newcomers shouldn’t start with is C++. This is not a language that can inspire the exploits of a person who previously had nothing to do with the study of computer science and mathematics.
You may have noticed that many paths in this infographics lead you to start programming on Python. There are several reasons for this. One of the main reasons is not that there are some unimaginable number of cool functions in Python. The main secret that Python is really good for beginners is that Python allows you to get started quickly.
Anyone starting to learn something new can often experience a feeling of frustration, failure, everything falls out of hand, and you don’t want to continue. A beginner needs minimum efforts and expectations between writing code and its execution. To make a beginner wait for a compilation like in C is to voluntarily lose a future new specialist. And if a newcomer has to compile on Mac OS X, where Xcode must be installed, overcome all compatibility problems and read half the Internet for a solution to another compiler error – what pleasure can we talk about?
Scripting languages like Python let you see how the code works right away, whether you’re on Windows or Mac OS X. Yes, and another important detail: to start working on Python, the user just needs to go to the website, download the file and run it. How much friendlier is it?
In addition, a large number of easily embedded libraries for Python will help the novice to try them all quickly and painlessly.
Actually, that’s why those who start programming from scratch should start with Python.
And finally, a small comparison of various popular programming languages by analogy with the heroes and characters of the “Lord of the Rings”.
To view the whole picture, click on the picture.