This post first appeared in my weekly newsletter where I talk about Product Management, How to Code & Life Lessons. Not a subscriber yet? Sign up here
A subscriber to my newsletter asked me the other day — “How did you learn to code? What are the technologies that I should know to build a web app?”
Her questions got me thinking, and I decided it’d be interesting to organize and structure my thoughts and (a) Write about my journey learning to code and (b) the key technologies that I use today to build stuff.
Now because these can be big topics to tackle — I will break this post in 2 parts.
Part-1 is about my journey with code for anyone that is interested
Part -2 will be about the key technologies that one should know to build web applications.
Quick Note: If you want to get Part 2 straight to your inbox once it is available, signup for my weekly newsletter 📩 below 😊
OK, let's get started.
Computing in School
The year was 1995, and my school had a newly constructed, and much talked about computer lab. All the kids looked forward to visiting the lab once every week. We would queue up, one kid behind another and begin marching towards the computer lab with much anticipation — What might we learn today?
Visiting this lab was like an otherworldly experience — built in the basement of our school building, it was like a secret air-cooled bunker. A welcome respite from the scorching Indian summers and those baking classrooms.
The protocol for visiting the lab? Everybody taking their shoes off before entering its revered precincts, and 50 kids in a queue waiting for their turn, 2 at a time, to touch one of the six IBM Personal Computers — plastic covers still adorning their keyboards, just so they remain brand new. You only got to 5–10 mins of actual computer time.
So, what is it that we learned? It started with implementing simple math algorithms such as addition, subtraction, etc and then at some point we graduated to writing somewhat longer algorithms that repeated themselves — loops and such.
From 1999–2002 — I didn’t write a single line of code. Neither at home nor at school. I actually opted out of Computer Science as a subject and opted for Economics instead. Why? I have no idea.
This was also the time when social networking sites such as Orkut were gaining popularity in India. Upon learning that you could talk to absolute strangers across the world about stuff that didn’t matter — I did get myself a few email addresses and a couple of social media accounts.
During this time, my only access to computers was in “Cyber Cafes” — at the time in India, a cyber cafe was mostly a hole-in-a-wall styled setup that charged you for computer time by the hour. Again, one had to queue up and wait for their turn to connect with strangers across the globe on chatrooms such as MIRC. Much like our old computer lab from school I talked about.
MATLAB in Engineering school
But in 2003, into my 3rd-year of Electrical Engineering course work and specifically for the Digital Signal Processing Lab work one had to code on this super powerful tool called “MATLAB”. I have no memory of the actual code that we wrote — except we’d write some stuff into MATLAB terminal and it would then generate amazing 3d plots of some functions that I have no memory of either.
Today, I have nothing to do with MATLAB — I don't use it to build anything. But the reason I remember MATLAB is because it’s become this flash memory in my brain — a reminder of the things that you can do with code.
In my final semester of Engineering school, I did sign up for C++ classes but that was mostly a mistake. It was a bunch of theories that I couldn't apply to any real-world problem and so I don't remember learning anything from those classes.
C++ is one of the most powerful programming languages around, but most web apps are not built in C++ these days. I’ve never built anything on C++ thus far, so that's that.
Joining a ‘Software Company’ with no little to no “real” coding experience
As I said, I was trained in Electrical Engineering, but for some reason, I ended up joining a software company in India. But why would they hire me? I had little to no coding experience to speak of. I could build nothing.
But this company didn’t care as long as you had an engineering degree. They would teach you how to code.
As the western world began to outsource non-critical, mundane and repetitive software jobs to India, India’s software exports started to boom and the industry saw dizzying growth. There was huge demand for low-cost Indian software professionals across the globe, but supply was limited. The industry needed more people that could write code — and since it couldn’t find them — it started to hire thousands of fresh engineering graduates like me and threw them into a software coding and testing jobs with “on-the-job” learning tools.
I was one of those freshly minted graduates. This was my training ground on really learning to code. Now a software engineer, I was working with ‘real’ computer engineers on the team — on a certain project assigned to us.
For people like me, the next 5 years were like learning to code on steroids. There was never any theory involved — instead just a goal that needed to be accomplished. A feature that had to be built because the customer wanted it. On numerous occasions, I didn't know where to start. There were deadlines.
But with some help and some experience, things started to make sense.
Learning to Code is like learning to ride a bicycle 🚲
You start with one goal in mind and that is to successfully ride that bicycle without falling. You may know all about the physics of classical mechanics and gyroscopic effects but that wouldn't help you learn to ride.
There is only one way to learn to ride a bicycle — and that is by riding the bicycle.
You fall a lot, but dust yourself up and try again — until one day you just get it. You know how to move, how fast to go, how to turn without falling off the bicycle.
Learning to code is the same way. Start small, code little things, maybe just a couple lines, and be consistent. You may not build anything meaningful right away and writing “Hello World” programs might even seem silly in the beginning — but the consistent pursuit of learning to code and doing incrementally complex things will help you learn in no time.
That's how I learned to code and build things — like this AI-Powered Email Assistant web app.
Technology changes quick — learn constantly
Even the best of the best coders and software developers are constantly playing catch up with new technologies and coding styles. So how is it that coders learn new technologies so quickly?
Again, learning to code is like learning to ride a bicycle. Once you know the basics of “a” bicycle, with a few adjustments you can ride any other bicycle — big or small, fast, slow, with comfortable or uncomfortable seats and handling, etc.
In sum, any new technology is simply that — a new, improved and/or more efficient bicycle.
So that’s my story. I am by no means an expert coder and of course, I am still learning, but I know where to go and what I need to build pretty much anything I want to. I keep a tab on new and emerging technologies to make sure I don’t miss any major technological shifts.
Alright, thanks for reading this far! As I said, Part -2 will be about key technologies that one should know to build modern web applications so stay tuned !!
😎😎😎To get the next article straight to your inbox, simply signup to my weekly newsletter below😎😎😎😎