1. Find the right motivation for learning
A clear rationale as to why you are learning programming helps you focus. Be sure to specify a specific goal for himself. Thoroughly consider your motivation. "I want to be able to", "it is good to learn" - is a bad goal. Examples of quality purposes:
- Move further in the current career.
- Change occupation.
- Earn an additional thanks to third-party projects.
- Develop your own product (game, mobile application), create a startup.
Whether The given points coincide with those that define yourself - do not forget about them. Remember that the ultimate goal would be to save in the most difficult moments.
To remember the purpose, you can record it on paper and keep on mind to do wallpaper on your computer or desktop phone (which I like).
2. Select the right language
In the beginning, it may be very difficult to decide what to study. Some programming languages are easier to learn, some have a narrow scope. However, it is not necessary to dwell seriously. It is better to start with anything, than to spend hours searching for the "ideal" option. Because mastering a programming language, it will be easier to switch to another.
If you already know your ultimate goal, determine what is necessary to achieve it. Learn languages, which are suitable for the purpose. For the development of three-dimensional games need some languages and tools for creating websites - others.
If you do not know where to start, try to explore the JavaScript language. Like it or not other programmers, JavaScript is becoming increasingly popular and is used not only in the development of web sites, but also in other spheres. Thus, you will cover the maximum number of applications.
3. Make a schedule
clear schedule training increases the likelihood of success. But set realistic deadlines for specific tasks. Do not expect to master the book Programming from the hundreds of pages in less than a week - unless you throw all the other duties at this time.
When I first started to learn programming by yourself, in every calendar cell I have been allocated a place for the 25-minute practice.
Engage in 25 minutes a day easily. It should get used to such a minimum, and soon you will not be able to break away from training for several hours.
4. Engage in one thing at a time
Many people try to do a hundred things at once. A huge mistake! Engage in one thing at a time. Do not study in parallel HTML, JavaScript, Swift and something else. You will drive yourself crazy!
This item can be given to you with difficulty (I speak from experience), because you always want to learn everything at once.
In his book "Start with the main!"Gary Keller (Gary Keller) said:" The extraordinary results directly determined by how much you can narrow your focus. " This can be applied to anything, including programming studies. Do not be afraid to be late - languages and technologies are not going anywhere. Start small and move forward.
5. Divide everything into small portions
As with the previous tip, you do not need to push a once very large amount of information, even if it is on the same topic. To learn something new is much easier when it is broken up into smaller portions.
Focus on one topic and divide it into digestible pieces. Make sure that you fully understand and learn some concept before moving on to the next.
Entrepreneur Tim Ferriss (Tim Ferriss) coined the acronym ABC - Always Be Compressing. The idea is that each piece of information is necessary to try to formulate as concisely as possible. Then summarize it in a paragraph, create a chart or an image, use the mnemonic scheme - anything, if it will help you to quickly recall desired.
6. change your ways
Studies show that the more types of perception of information you use, the more likely her grasp. This will help the book, video, interactive lessons, quizzes, podcasts and more.
Soak up the information in any way possible. According to Judy Willis (Judy Willis), author of the book "How to teach a child is easy to learn"The more areas of the brain stores information about a subject, the more relationships are formed. Redundancy gives the student additional opportunity to get information from different repositories brain. Such cross-data communications mean that we learned something, and not just memorized.
7. educate others
The need to explain to someone the concept or process gives a guarantee that you are fully internalize it. This can be done in different ways. One of them - to teach a course or workshops for teenagers. You can make your videos on YouTube with explanations of some concepts. I do not like the idea of a video? You can do without it. You can teach a variety of ways. As an option - write. For example, with the help of his blog, I not only help others, but also trained much more effectively than if I learned one.
In any case, teaching others what you learn for yourself helps to strengthen the concepts formed in the mind.
On educational platforms, as a rule, it has the opportunity to help others. Usually this is something like a forum with students' questions. Check it out, and if there is a question whose answer you know (or have at least thoughts on), - write, do not hesitate. On good educational sites reigns healthy atmosphere, and appreciate your help. And do not hesitate to ask questions yourself! Give others the opportunity to explain to you anything.
8. find like-minded
This can be realized through a personal appointment or online. You can try to team up with a friend or family member who also wants to learn programming. Just as people go to the gym with the other and with the goal to lose weight, you can also find a partner on the Internet.
9. find a mentor
Chat rooms and forums educational platforms - good places to look for like-minded people and possibly teachers.
Online forums - it is certainly a valuable source of information, but nothing can compare with personal support, when you can get an answer directly.
10. Make the gameplay elements
Think for a system of rules and incentives, it will help to make learning more enjoyable. Promotion will help to develop a positive reflexes in the brain when you successfully perform an important task. They can transform the learning process of the routine work in the game. For example, after you finish the specific programming book, buy the same bag, which thought for months.
To set goals and work on them. Reward yourself when you reach them.
11. Redo someone's code
See how someone else has implemented a solution that you want to develop. Look into open source projects on GitHub. community of programmers can be a very friendly place to read (or modification) of someone's code - it is absolutely normal. Just browse through it line by line, thinking how each of them works and combined with the overall picture.
Use someone else's work for inspiration and ideas.
12. Practice. Do not focus only on training
A very important point. With that always stuck newcomers. You need to start writing your own code as soon as possible. I know it's difficult, but at some point should move away from the lessons and begin to create real projects.
Figuring out how it works - it's your own test, and the error - that will radically change the rules of the game. This leads us to the last tip.
13. Do not be afraid to fail
There is such a thing - the failure of productivity. The more complex the given study something, the better you'll remember learned information. Unsuccessful attempts may help you gain a deeper understanding, because you will be involved in the search for their own mistakes and correcting them. To act and learn something yourself, criticize yourself and explore new - this is extremely important.
Even if you've never done creating your small website or app, you will learn a lot, trying and making mistakes. This approach is much more effective than a mechanical repetition of training examples, where all answers to his nose.
Output
The key to successful self-learning - it is confidence. If you believe in yourself, the more likely you will succeed better than expected. Stop doubting yourself and your abilities, and you will break like a true champion!
The game is played only if you give up.