How did you learn to code?
The Snippet is a Weekly Newsletter on Product Management for aspiring Product Leaders.
First of all, I hope this letter finds you and your loved ones in good health.
Like many of you, I have been working from home for the past several weeks. I was writing a post for this week’s newsletter on a totally different aspect of Product Management when I found an email from a subscriber in my inbox asking -
“…..How did you learn to code? ……What are the technologies that I should know to build a web app?”
The email got me thinking. I decided to drop what I had actually planned to write for this week and decided to organize and share my journey and thoughts on learning to code and building things with code.
Now, these can be big topics to tackle — So 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 might want to know to build a simple webapp.
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?
something like this one, but darker and cooler
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 quickly — learn constantly. It also keeps it fun.
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 on learning to code.
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 am not missing any obvious technological shifts.
Finally, I’d love to hear what you “learning to code” journey has been like. If you’ve always wanted to learn to code and build things and didn’t know where to start just reach out - I’d be happy to help!
The Snippet is a Weekly Newsletter on Product Management for aspiring Product Leaders.