How to understand concepts better?
“You need to brush up your concepts!”, said your teacher at school.
Looks like it might be the time we all start listening to our teachers, because they were right! From our teachers at school to all the companies we want to work for, everyone seems to favour people who are conceptually strong. Being “conceptually strong” is just a fancy way of saying that you know what you’re doing, in great depths. It means you are capable of solving the toughest question in the exam or coming up with the most efficient way to run your application.
If you have a strong foundation, you and the others around you can trust you to build a tall structure on that foundation, right? But how do you build that kind of strength? Simple, just change the way you look at any concept 🙂
A concept is just an approach to solve a problem: There are loads of problems in the world, and people come up with ideas to solve them all the time. Every idea is a concept, the goal of which is to solve a problem at hand. An example? Nothing is buzzing more than ‘cloud computing’ today.
The problem was that it is an expensive affair to buy big computers that can host and run the applications for your business. It’s not just the initial investment which is huge, but think about the cost that goes into server management, maintenance, security, having a specialized team that just takes care of these big computers.. and the list goes on. The goal was to make this computation more affordable. To eliminate this problem, a new concept evolved called ‘cloud computing’. Now, you need not burn a hole in your pocket to buy an entire server, instead you just need to pay any cloud service provider for using the computational services provided by their computers. No worries about managing and maintenance, plus pay for only as much as you used, and that’s the concept of cloud computing for you!
But the next question would be, cloud isn’t that simple! How do I wrap my head around a concept as complicated as the cloud? Well, be it cloud, or any other concept you’re trying to learn, ask yourself these 3 questions:
1. Why does the world even care about this concept?
A concept is just an idea that solves a problem, right? So, wouldn’t it make more sense to understand the problem first? The reason is you will get a clearer idea of what the big picture is about. Why are you even doing what you’re doing? It helps to get a deeper understanding of the thing at hand. But instead, we often get caught up in understanding tactics before we can understand the why behind the idea completely.
Say, someone told you about an uber cool AWS service called Lambda, and you want to learn more about it. Instead of jumping right into what it does and how it does it, let’s first try to understand why is the world even using Lambda? You see, the world is full of busy people. The problem is that even when someone purchases an affordable server as per their need, from a cloud service provider, nobody wants to waste their time configuring that server, managing its operating system, adding security patches and provisioning it according to the load. It’s a chore. So these cloud companies went a step forward and introduced something called “serverless architecture”. You want to run an application, but don’t want to be bothered about the server? We got your back. Using these “serverless” services, you can completely forget about the infrastructure, and focus only on your application. You might have guessed by now, this is the exact problem that AWS Lambda solves. Run a piece of code, when it is required, on a server that is completely managed by AWS. That’s all!
2. Okay, now how do I implement this?
You’re nodding your head, it seems like you now have the answer to the question “Why AWS Lambda”? Well, you’re absolutely ready for the next step then! Now is the time when you should delve deeper into nitty gritties. Understand how it works. How can you use it? How to implement it?
Continuing on our example of AWS Lambda, once you know why it is used and what it does, you can move into details. On a higher level, Lambda helps you to create a function which can be triggered when a specific event happens. Say, whenever a new image is inserted in the database, a function should be executed to resize it. The moment a database entry happens, the Lambda function would be triggered, and your code to resize the image would be executed. All you need to do is add your code in the Lambda function, without thinking of the infrastructure. Lambda itself provides the server environment for the code to run and scale, without us needing to worry about it.
3. Can I explain all this to a 5 year old?
The best way to retain what you’ve learnt? Try teaching it to someone else. In fact, imagine you are teaching the concept to a 5 year old. How would you do it? Tha answer: simplify, simplify, simplify. The more you simplify a complex concept and relate it to the real world, you will realize the faster you would get a hold over it.
Let’s get back to our example of AWS Lambda. Now, if you were to teach this to a 5 year old, you would tell them something like – Imagine you want to eat some candy. You ask your dad to bring candy for you. He goes on his two wheeler and brings the candy. The next day, you get greedy and want to have the candy again. You ask your dad again. But this time, your mom also hands over a big list of groceries to dad. Now, dad decides that a two wheeler won’t be enough, he needs to take his car instead, to bring both the candy and groceries. In this entire situation, you, as the user, only have to express what needs to be done, and when. Your dad, on the other hand, takes care of what vehicle he should use to serve your needs, how to drive that vehicle and how to maintain it as well. And that is none of your problems. AWS Lambda can also be thought of the same way – you just need to provide the code that needs to be run, when it needs to be run. How and where it should be run, will be taken care of by AWS. Sounds even simpler now?
So anytime you feel like it is the toughest concept you’ve come across, try following these 3 steps. First, take a step back and try to look at the bigger picture. What is the problem that this idea is trying to solve? Next, once you’ve understood the ‘Why’, move on to ‘How’ is this idea solving that problem? And once you’ve gone through the entire thing, try explaining it to someone or even yourself, in the simplest way possible! Yes. It’s that simple. Now go ahead and impress your interviewer with your concepts 😉 Happy learning!
Author: Simmipreet Kaur