So you finally made up your mind? And finally kicked the procrastination that has always been holding you back. And you’re googling like a manic just looking for ideas on how to learn programming. To be honest, learning programming is one of the most frustrating and tedious task to do. You will get lost very easily if you’re a beginner. That overwhelming feeling will eat you as well as excite you.
Let me be honest about programming because this is very subjective topic. Everyone’s pace is different and there is no single way you can learn programming. But here I have explained a easy to follow pathway which might lead you forward. Also note that this is going to be quite long article. And I hope it will be worth your while.
Embrace the unknown be aware of it
Do you feel confused by the title ? What can I possibly mean by embracing the unknown ? Let’s find out.
There are some things you must be familiar with before you dive right into programming. This will be really helpful because it will let you gain insight on the workings and flow of a computer system. Programming is just the process of writing code for computer(s). But understanding how the computers work will be really great when starting to program.
Learn about the fundamentals such as: Compiler, Interpreter, etc. And how they work from a high level overview. The process will include the details of how it things work and how they all connect.
Understand what you’re getting into
At this point you have some knowledge about how computers work. And how they connect with users and the code that one writes. Programming is just the process of writing a detailed instruction so that the computer can follow along and accomplish certain task(s). Once you start getting comfortable you’ll understand how even those complex architecture can be broken down into simple non complex sub-tasks.
At first everything you see might look like a single entity. But as you crawl beneath you’ll see how everything is divided into sub-tasks. That being said at this point you should pick a programming language of your choice. And be sure to just pick one for the time being. Later you can switch or even take one or two languages paralleled. Though you must first learn a single language and all the concepts used, in programming and in that language itself.
Getting into the Object Oriented Programming ( OOP ) can help you immensely. Along the way you’ll come across something called Functional Programming which is a bit different than programming. I highly recommend googling and deeply exploring the term “concepts in programming“. As it will make you familiar with how every programming languages work.
Start easy, start simple
I understand how you want to build the next big thing in the world. But hey, everyone has to start somewhere. And the experts in the world now started by coding simple programs. The absolute beginner programs may include a non-scientific calculator, to-do app, recipe app, etc. Here are a list of apps which you can try to build as a beginner. You might feel these are useless things with no real value. But remember you’re learning to program at this stage and not to build something really great. Though the latter will happen eventually.
Having said that it might seem obvious and a bit redundant. But trust me, if you pay attention to details now. It will save you so much time later. Try to research as much as possible about the topics. Maybe you will not understand anything at first but eventually you’ll get to a point where everything will start making sense. And you’ll thank yourself that you paid such attention to details.
You need discipline and persistence
This is a bit philosophical and not a real technical thing to do. But remember that you need discipline to learn anything. You cannot learn anything in a single day. It will take you years to achieve near perfection skills. You cannot really master any language even if you try your whole life. But you will reach somewhere near the mastery over the years.
Break your learning into sections and sessions. Practice programming each day at least 1 hour. At the same time it is important that you do not overdo it. You will feel worn out and tired of it very soon. Always remember to take breaks even when learning. It’s important to be lazy too. You need to keep yourself away from programming. Consider it your learning vacation. Come back and you will feel a little more energized and refreshed because all the programming is tiring you even if you don’t feel it.
Practice practice practice
The most important straw to getting good at anything is practice. It doesn’t matter what you’re trying to achieve. The key to understanding anything and getting better is through practice. Write meaningless programs, watch tutorials on Udemy, edX, Coursera, YouTube. It doesn’t matter what you do and how you learn it.
Learn about the conventions of the language you’re learning. Conventions are a set of do’s (and don’ts) for any programming language. It will help you in the long run if you understand the conventions of programming. Your knowledge have no use if you cannot collaborate with other people out there. Having said that we come to our last important section.
Read other’s code
You might have built something, that’s really very great! But when it comes to real world scenario how well does it perform ? It may not perform as good as you might have anticipated. Well not to discourage your enthusiasm but reading other people’s code is the only way to improve the quality of your code.
But where do you even find the code to read ? GitHub is a really great site to explore what other’s have done. Checkout open source projects which you are interested in. Learn how people have written code in those projects. Try to observe the pattern and integrate it in your code. It will surely improve how well your code performs and looks for others.
Read more books
Tutorials are really a good start but once you reach a certain level. You might want to increase your grasp on the concepts. And what is a better way to get good at something other than reading books published by professionals. Not only books provide in-depth information about a topic. But also provides information on how not do certain things.
Habit of reading will really help you in the long run. You will develop a habit of reading which is crucial on this field of software engineering. Because, there are ton of ways on accomplishing certain things. But there is only a few ways how you achieve the goal in a methodical way.
So dear readers, those were a glimpse of how you can learn programming. It was my take on what might be a practical way to learn something or improve on your existing skills. You might have read the whole post or just have browsed through the title. But the most important thing is to try to grab what I may have been trying to convey through this long post.