“Any fool can know. The point is to understand.” –Albert Einstein
Do you ever feel frustrated when trying to learn something or identify yourself as a ‘slow learner’? I know how that feels because I was there too. Everyone wants to learn quickly these days and mastering the craft of programming can be extremely frustrating and time-consuming, especially if you’re just starting out.
To assist you, I have consolidated 8 powerful steps to take you from zero to hero in the shortest time possible. Step #8 will get you EMPLOYED!
1. Ask Yourself Why?
Sit down in a quiet place and think about why you have chosen to learn coding in the first place. This is the first crucial step that will determine which language you should learn first. Perhaps you want to stay on top of Bitcoin prices or the stock market. In that case, learning Python would be ideal because of the vast amount of libraries that exist for analyzing and displaying data. Maybe you just had a revolutionary app idea that could earn you millions. In that case, you could dive into Java or Kotlin for Android development or Swift for IOS.
2. Learning = Observation
Before getting our hands dirty we should take a step back and consider looking at snippets of existing code for a chosen language. Just type ‘GitHub’ followed by your chosen language and navigate to the source code.
Set a timer for 30-60 min and just look at the code.
Even if you struggle to understand it at first, try to dissect it piece by piece and figure out what’s going on. Adopt an impressionable, curious, experimenter mindset. Be patient and eventually, you will start to notice some common patterns and characteristics. Some new insights will surface and catch you by surprise. In fact, most part of your programming time will be spent not writing code, but reading it – Master this skill and you will be able to easily detect and solve problems which would otherwise seem impossible.
3. Play and Experiment
Build a very simple program that takes user input and spits out some numbers. Set a time limit and make that your primary objective for the day. You will be surprised by how quickly you learn. This is 100 times better than watching someone else on YouTube giving you the answer. It forces you to look up reference material and think like a programmer. You will become more efficient at finding the answers yourself without relying on others. The point of this is to help you get a general feel of the language to make later stages of learning easier.
4. 80/20 Rule
This rule states that about 80% of the effects come from 20% of the causes.
We should, therefore, strive to identify the fewest and most effective strategies which allow us to quickly become proficient at a given programming language. In reality, you are probably only going to use 20% of the information given in books, courses, etc. The tricky part is to figure out what that 20% is. I suggest to skim-read the book first and get familiar with it. Then when you are working on a project, you can quickly go back to that part of the book and learn it on the spot.
5. Work on a Project
By now you are probably somewhat familiar with the language you are trying to learn, or at least enough so you can tackle a personal project. Decide what you would like to create, preferably something you would personally use. For example, if you go to the gym often, how about creating a simple app to track your workouts. There are 3 main reasons for using this approach:
- It’s fun and enjoyable – We are more likely to stick to it.
- You can show off the project to any future employers, increasing your chances of getting a job.
- Forces you to think like a programmer and come up with your own solutions.
6. Take it Further
Congratulations on building your first working piece of software! Many people don’t even make it this far.
Let’s take this a step further and begin adding extra features to it.
Now you can open the book again, or refer back to any video series or training material you have invested in and start to go through it all in greater detail. Maybe there is a chapter in the book about databases, GUI and working with images or other media. Every time you come across some new feature, try and implement it into your application. I guarantee that you will be successful if you do this. Take another step further and learn to write your code efficiently. Learn about the common architecture patterns such as MVVM (Model-View-ViewModel) and how to test that your code is working properly.
“While we teach, we learn,” said the Roman philosopher Seneca. Teaching is an extremely fruitful and powerful way to learn. It forces us to deepen our understanding of programming and to draw vital connections that we might have previously missed. Simply choose an outlet platform such as YouTube, blogging, audio recording or even a simple PowerPoint presentation. Perhaps you have some friends who are also interested in learning to code. Why don’t you teach them? Who knows, they might even offer to pay you!
8. Attend Coding Meetups
This is also an option especially for those fortunate enough to be living in big cities. Check out social networking sites like Meetup.com. Here’s why:
- Meet experienced coders. This will give you an insight into what it’s like to work as a software developer so that you can best prepare for employment. They might recommend or even give some resources to facilitate your learning.
- Make friends! That way you can stay accountable and motivate each other to learn.
- Finally, you could attend competitive events which will sharpen your programming skills even further.
- If reading a book or doing a course, make the effort to follow the instructions as closely as possible and to do all the exercises.
- Go back to the book or course frequently, re-listening and re-reading it again and again.
- Be extremely consistent, patient, and outcome-independent.
- Practice writing code by hand. Interviewers will often ask you to hand-write code to solve various problems.
- Don’t spend more than 4 hours trying to solve a problem, get help. Or, leave the code and come back the next day with a fresh perspective.
- Learn computer keyboard shortcuts to save time.
- Practice mindfulness meditation to help reduce stress and filter out distractions.
I would like to end this post with a powerful quote:
“Don’t expect to be motivated every day to get out there and make things happen. You won’t be. Don’t count on motivation. Count on Discipline.” – Jocko WIllink
Actually the most important ingredient in learning anything faster is discipline. Becoming an expert in programming or any skill for that matter is going to require extra hard work and emotional labor. Be willing to fail and persevere even when you feel like giving up. This is a common trait you will notice in the top 5%. Without discipline, you cannot learn anything. Keep calm and carry on coding!