Get Back to Basics

Get Back to Basics

The greatest football coach of all time, Vince Lombardi, used to start his pre-season training the same way every single year. He would hold out a football, stand in front of his men and say, "Gentlemen, this is a football." These weren't just any other players, these were professionals but his message was this: "Gentlemen, we're going to focus on the basics. We're going to get really really good at the fundamentals."

In a book, When Pride Still Mattered: A Life Of Vince Lombardi, the author describes Vince Lombardi,

He took nothing for granted. He began a tradition of starting from scratch, assuming that the players were blank slates who carried over no knowledge from the year before. He began with the most elemental statement of all. "Gentlemen," he said, holding a pigskin in his right hand, "this is a football."

His message to his players was about getting back to the basics, starting all over from the bottom and working their way to the top, step by step. Although Vince Lombardi was referring to football back in the 1960s, I feel this is a powerful and essential ingredient for one to excel in pretty much any aspect of life. And especially in technology and programming where things keep changing every day, it's of great importance to get back to the basics from time to time and master the fundamentals.

Don't skip the fundamentals

jump-react.jpg

A good chunk of developers when starting out lack a proper learning path and often times find themselves jumping from one tool/framework to another, and what this does in the long run is hurt their learning and growth a great deal. When learning, they evade the core language and jump straight into its shiny and more appealing libraries and frameworks. Those learning Python would avoid learning the core Python and instead jump right into Django or Flask. Those following a Frontend development path would evade JavaScript and jump into React/Vue/Angular library/frameworks. This could be as a result of lack of patience which is a key trait to have or the thought that it's possible to get up and rolling with a framework without knowledge of the core languages.

Patience: Learning to code takes time When learning to code, patience goes a long way. You need to understand that coding is hard and will take you some time master it. You're not going to master a language overnight or be a professional developer in days. It will take time and a lot of effort. But if done right, it's usually enjoyable and smooth. These frameworks and libraries are cool and allow you to write code faster but you need to understand that they're built on top of the core language and that to be able to understand and effectively use them, you need to have knowledge of the core language. Of course you don't need to be a master in the core language to pick up a framework, you need to know at least its basics. But where's the loss in knowing a little more than just the basics?

Picking a library/framework when you already have a fair amount of knowledge of its core language sets you up for success really fast. It makes your learning curve smooth and the entire learning experience enjoyable. Learning Tailwind feels like a breeze if you have knowledge of CSS. Writing React makes a lot of sense if you have your JavaScript fundamentals right.

A lot of technical interview tests focus on the basics and test out your knowledge of the fundamentals. They test your understanding of Data Structures and your problem solving abilities. If you avoided learning the basics, you end up having a really hard time during these interviews.

Frameworks/libraries keep on changing, they come and go but the fundamentals rarely change. Get back to the basics. Learn the fundamentals and work your way from the ground up.

*"Gentlemen, this is a football."