Rabbit Hole Of Learning, And How To Come Out On Top
July 18, 2019
We live in an age where if we set out to learn something new, you need to learn basics first. This is true when you are out to learn it deeply.
A shallow understanding won’t take you far. But acquiring deep knowledge takes considerable effort and requires you to learn consistently for a long time.
Let me present an example:
Kubernetes is one of the hottest techs at this point. I have to try to get a better understanding of it for some time. Now knowing kubernetes requires you to master these.
- Understand the networking stack, subnets, DNS
- Understand containers, docker
- Commands for the tools required to talk to Kubernetes like
- YAML (you need to get proficient writing, reading and debugging YAML)
- Understand latency, redundancy, and scalability.
- Write and Understand Go(Kubernetes is in Go) so it will help you to know go so that you can script some part of it using the same stack.
- Read enough horror/war stories using Kubernetes, something like (https://k8s.af). Those who don’t learn from other’s mistakes are going to repeat it
- Another example could be learning backend development with Django.
Django comes with batteries included, but they are not free. The features come at a cost of you learning that.
- Understand how the model layer works. Also, means that you understand how SQL works behind the scenes. One can’t be a master if they know the ORM and not the SQL underlying it.
- Understand the basic HTTP Request/Response Cycle if you want to build efficient web services
- Understand Caching(Redis/Memcache) to scale a production website.
- Understand the Queuing system like RabbitMQ, Celery to run a production-grade website
- Learn Python (preferably Python3) and the meta-programming well to program Django app efficiently.
- Learn important libraries like DRF(Django Rest Framework) to build correct and RESTful APIs.
- Authentication. Authorization and Security are important as well.
The key here is to plan for the long term and not short term learning. Shallow/Little knowledge is dangerous and always comes back to bite.
Hello Hello! I am Vinit Kumar. I am a software engineer who loves making computers do things and admires good books, music, art and coffee. You can read more about me. Find my resume, values and code here.