Sunday 1 November 2015

Why coding and Why CS50? And the method?


Hey there,
I am Arvind, an entrepreneur and I'm taking a 3 month hiatus from starting a new company.

Before taking this 3 month break, the question I asked myself was , what skill should I acquire that will be make me a super effective entrepreneur.

Let me give you a bit of a background about me. I am an Econ Major , who worked with McKinsey and Company for 2 years. In 2013, the start-up bug bit me, and I decided to jump in to it.

The first company me and my co-founder started was a company known as MondoBoard, a hyper-local social network which was to help you find sports partners and games around you. We ran MondoBoard for 16 months. Post that we started another company known as HopOn, which was in to carpooling.

These 2 adventures have made me pause for a bit, and re-assess what skills do I need to learn to be fucking awesome, the next time I start a company. And what the heck, I'm just 25 the world is still my oyster.


Why Coding?

When you are building a tech product, the fundamental responsibility of the founders is to build a product that people love. I'm sure Paul Graham and Sam Altman will pat my back when I say this. And the only way to build a product that people love is by talking to users and writing code.

The role of the founder can not be limited to talking to people, conversation needs to translate to action. Otherwise , there is a lot lost in translation.


Its frustrating in the early days, when you are not a part of the team which is actually making the product. The DNA of the company is defined by the founders willing to get their hands dirty.

Starting a tech company and not knowing how to code, is like starting a publishing house and not knowing how to read.

And spending 3 months to code, is tiny when you look at it, in terms of a career.

My Relationship with Coding-

My father is a computer engineer, so even as a child there was a little bit of coding taught every now and again. I remember making flow charts when I was 7. But my interest in Programming whittled away as I grew older and grew more passionate about business and economics.

After joining McKinsey my interest in coding piqued again, as a I became really good at MS Excel. And Excel seemed to be like coding ,with If conditions and functions etc. The only thing excel didn't have was loops.

But each time I tried to pick up coding the script looked to cryptic and arcane and I somehow never completed it.

I've made atleast 3 attempts to code, ditching it somewhere in between.. Because there was something apparently more critical that required my attention.


The Top Idea In your mind

The section above may bring you back to one of Paul Graham's posts. And that is something which has proven effective for me. " You only end up accomplishing the top idea in your mind".

Only the top idea in your mind is a must to have.  The rest of them are nice to haves. Therefore priority 2,3 and 4 are rarely accomplished.

Hence for the next few months, learning to code is going to be my sole focus.


Setting the Stakes

If I don't learn to code, I will upload my nude pictures online. Hopefully this gives me sufficient motivation to persist with my goal.



Why CS50?

So CS 50 is the introductory computer science course offered at Harvard, and its openly available through edx. CS50 takes a noob and makes him understand computer science.

The course starts with programming in C, and ends with web programming.

Most agree that C is the best way to learn programming, its slightly abstracted away from Assembly Programming ( Programming with 0's and 1's). With C, one really understands what's happening under the hood.

With that base being built, it takes you to web programming.

The course is taught by David J Malan, and I've just sifted through the first few lectures, the guy seems awesome.. And all reviews that I've read on Quora seem to suggest the same.


The goal is to complete CS50, and the project I make will be a prototype for my new idea.


The Method- 

The way skills are taught is typically top-down, a master teaching newbies how to do something. Even though the method is okay, I feel a more powerful method is to watch and learn a fellow noob master something.

A noob becoming a master helps you see the struggles one goes through, and the different mental patterns one develops, as you go along.

In order to accomplish this I will share my screen and what I'm doing each time I'm coding. Any new pattern I learn , you'll learn it with me. And I'm sure they'll be more turbulent weather than clear weather. But navigating through rough weather is what will make me awesome.


I've already one 3 problem sets with CS 50. Pset0, Pset1, and Pset2... I will take you all with me from the 4th problem set PSet3.

Lets kill this motherfucker together..


Lets Go!