How to crack programming languages within weeks.
IT industry is not like college. Our syllabus is so old that people have already taught it a million times and there are enough resources online. The industry, however, is moving fast. There are millions of developers around the world cracking new technologies every day. There is a good chance of getting outdated if we stop learning.
This article is not intended to convince you, how easy it is to learn new tech stacks and adapt to it. Instead, I’m about to share patterns and processes that made it easy for me.
In college, I mostly spent all my time in hackerrank. I was addicted to it. Though I was not good at it, doing it kept me energized. There were times where I could not crack a problem, and the solution appeared while sleeping. I would immediately wake up, and I run to the system to solve it.
In my first job, my role was to build a chatbot and tools around it. At that time the chatbot industry was picking up, there were no tutorials or blogs to teach you how to do things out of the box.
But I could crack it in a couple of weeks, understanding its architecture by building simple bots. In the next couple of weeks, we had a prototype ready.
From there to learning MongoDB, NLP for chatbots, Pandas, Go, ReactJS there were a few common patterns in acquiring this knowledge. Here are a few.
There is always an amount of fear that holds us back when we push ourselves to try something new. The only way to overcome it is by pushing yourself to do it. This is a deadlock situation, and there is no way out. But there are a few facts that could kill the resistance.
Accepting and absorbing these facts and internalizing it will kill the fear and let you face reality.
The next layer of resistance comes with understanding domain jargons. When I took my first machine learning course, I didn’t understand anything. I dropped it. Later in a meetup, I overheard an ML engineer’s conversation. To my surprise, I understood most of their discussion. I joined the conversation and spoke their language.
Though you consciously think you don’t understand any of it, internally, your brain is creating a mind map of everything you learn, so keep indulging yourself with the concepts that you’re trying to crack.
There are an overwhelming amount of resources when it comes to technology. Every platform wants developers to use their packages to make their life’s easy. I will never write a “How to learn ML in 3 months?” article because there are already enough people writing about it.
The amount of resources adds up, not only to the amount of information but also to the fear of a beginner. The boon and curse of programming are that there is no one right way to do a thing. Hence, each tutorial follows its way of doing things, confusing.
Now that I have ranted about the state of the existing resources, there comes a question, how do you pick the right resources?
When I subscribed to Andrew Ng’s Machine learning course, I stopped in a couple of weeks. I knew moving further will make me hate machine learning forever. So I looked for a course which teaches it bottom up. I found ML A-Z course in Udemy and fell in love with it.
I’m not saying Andrew Ng’s course is bad, but if course material is boring for you, even a 4-star rating doesn’t matter. Just try and look for the ones which suit you. You will find how easy it is to soak it all in, once you find the right resource
Every time I teach programming to a complete beginner the first question most of them ask is “Why not write hello world in a notepad?”. After a couple of instances, I stopped teaching “hello world” as a beginner program. Hello-world is something that tells you whether the setup is right and it teaches nothing about programming.
When we introduce addition/subtraction, the question goes like why not use a calculator. There are even weirder questions when it goes to Fibonacci series, and more.
The point here is that the conventional way of teaching or learning technology is not going to help anymore. Don’t learn React because you get to land in a better job, learn it because you want to build a web application where you want a clean way of structuring a client application. Learn MySQL because you have data with relationships.
Take a technology, think of the simplest application you can build with that technology and accumulate knowledge as you build it.
Hitting a roadblock is very common regarding learning a technology. Especially when you crack it with a use case, the problems you face will be stitched to your use-case requirements. That is when mediums like Stack Overflow comes into play.
Type out the issue you are facing. Most of the times you will find a question that fits your requirement. If you didn’t, ask a question. Yes, you don’t need to be an expert to ask a question at StackOverflow. If you find a solution on your own, answer your question and let the world know you figured it out yourself.
Teaching others can sharpen your skills at a different level. Just like how I explained in the “hello world” program, only by teaching others you will get a world view of things you have learned. For instance, how do you take a concept as complex as a Machine learning and explain it to a complete newbie?
Propose to give talks about things you have learned at meetups. When we learned about chatbots, we conducted a series of workshops and sprints. It opened a wide range of possibilities that could be achieved with chatbots. Only by sharing what you know, you will realize where you stand.
It’s not an easy ride. But trust me, its worth it. There are times you will feel worthless; there are times you feel like the most powerful. It all comes as a part of learning. When the going gets tough, the tough get going. So start today and keep going. What is the technology you have always wanted to learn? Pick a project. Use that technology to finish the project. Ask for help when you’re stuck. Learn from the ones who had already figured things. Teach ones who have not. Become a learner.
Bhavani Ravi | Techie By Profession | Everything else by passion.