The process you must follow learning to program
Here is a description of how a beginner programmer must learn how to program.
Since early school hood, everyone around wanted to finish/leave school to get a job, to be a millionaire, to start a business or whatever was floating in the mind back in the days. The same is true with learning to program, you want to run marathons before learning to walk the same distance a marathon will have. Thus it is very important to learn to program objectively in a way that is purposeful. I believe most novice programmers fall into this trap as I did. I kept learning, learning and learning non-stop. I was hungry for knowledge. However, as time goes on you will realize that no one was taught how to build a car at the beginning of it's invention rather it was made. It was made not from learning how to make, rather than just doing it. This is the same with everything around. You see buildings that would be impossible to imagine 50 years ago but they are here. They are real. Thus, my idea is that you the reader as a novice programmer should notice that the world is made from nothing. It all started from a desire to build. So, in my discussion here, I am trying to appeal to you a way that is worthwhile, a way to make you build. To build, you need to learn/self-teach how to build smaller things. You need to know how to lay a brick. So, you must study while building, you must delve deep into the code. You must dream about how to make your idea true, or perhaps clone an existing idea. ### Learn 20% of the time and practice with the rest Why am I saying that. Well because it is true. Learning is one thing but practicing is another. To truly learn, you must go through the harsh times novice programmers are presented with. Learning feels easy at times, you think the stuff is a piece of cake, but when you jump in, it is hell. It is hard to face your fear of practicing thinking you are not yet ready for it. The question is, when will you be ready? My answer is, as soon as you learn a new concept, open up the text editor and code. Just make anything no matter what, as long it is out of curiosity. You will feel growth, it will be intimidating. It is. It is like learning to walk once your still a baby. It is foreign. You need to be comfortable doing it. Growth is good. Hence, I suggest you follow watching/reading your tutorial and jump in to coding. You must prioritize coding. I spent years looking for the best language to learn. The reality is, there isn't any. Or maybe. It depends on the job. However, your job now is learning to do the job. Doing it is fine using an old hammer or a new, they are the same for a novice. Practice is actual learning, it is more likely to stick. You remember what you do using your hands not what you watch over the screen in between the ether of the air. ### Please show your work to others, feel the sense of creation My first real programming work was writing a virus to exploit someone. I was young thinking I can do the next big thing. However, nothing worked out. I ended up moving on to different things. Started making the next Facebook. I showed my relatives what I did. Although it was copy and paste, I did not learn anything other than how to copy and paste faster. Therefore, I recommend to anyone to make a piece of work and show it to anyone. IKEA's products are the best at this, people are phenomenal with making new things from parts and showing them off to their beloved, neighbors, visitors and etc... As is programming. Why not make a stock market watcher or any potential thing. Why not? Let's say you made it. Show it to your network of people. Why not. It is not the best and will never be. So just show it. When you show someone something you've made you feel the joy, the confidence, the magic of making rather than using. The passion deep within made it. This increases your confidence to make better things. To constantly learn to do newer things. Don't deprive your inside from the emotions of making something cool. Feel it. This will make you better. Will you make go ahead and not stop what you started. This will sparkle a series of future creations. ### Learn to read documentation, to stop wasting much time on tutorials 90% of the tutorials online are not useful to most people. Why you might ask? I have watched so many that they would account for approximately a year of my life. Tutorials most of the time are intended for beginners. A typical tutorial in a video or article form will take a good amount of time to assemble the basis of work. A lot of unnecessary things. Intro to sponsors and so on. On the other hand, reading documentation of what you want to accomplish is much easier done and is a better practice. Most of the time tutorials get dated quickly. Reading documentation is like going to the manufacture of a product and asking, how do I use your product, what is the philosophy of your design and etc... It is very useful to to know how to use the thing you're learning from it's own source (maybe a 3rd party source). It is even more useful to practice this all the time. My argument is that new libraries are so new that the chance of finding a tutorial on them is very slim right in their first month of release. And it will be worse if the technology you're learning is not so popular. Not to say that I only cover newer libraries, even old ones fall in this category. Maybe visiting a library's Github page will make you more knowledgeable. You can read existing issues available or the wiki. Maybe it is videos watched or ads in articles that you distract you. Therefore without much barbarian talk, my advice is to practice, get used to read documentation like reading code. So don't obsess your mind from video to text. Why not just keep it text only. Reality is, that is how it will be. Even visual learners like me find it hard, however books were how were taught in school right? It is just the way the industry is. That said, I don't mean to never watch or read a tutorial. I suggest to watch/read them. They offer a great overview of things, but tend to work way better on general ideas rather than niche things. ### Iterate... This is a big thing. Do not ever think to stop doing those 3 steps above. Never be thinking that you know it all. You never will. Chances are you don't remember how everything works in a website you built a couple of weeks ago. Even if you work on it daily. Keep learning to be better striving for a better future not recounting the past. ### Conclusion My way of thinking maybe skewed towards my own learning. You choosing to read this article, you probably thought that my article is worthwhile. So, you decided to chop a bit of time reading it. This is a way of learning. Not the only and not the best either. It is a methodology that got me out of the trap young professionals face, even though I am not a professional. The best way to learn is always to practice. It was never in reading the books. It was applying the reads. Thanks for reading.