Suneel Chakravorty

Thoughts on learning to code, startups and personal betterment.



The 2 Biggest Mistakes I Made When Learning to Code

One year ago, I was fresh out of college and determined to take on the real world. I had so many startup ideas that I wanted to bring to life. But, I didn't know how to code.

Following the advice of Vin Vacanti , Yipit co-founder, I began to teach myself to code.

While I eventually learned enough to build my own prototypes, it was a rocky road. If you're on the same path, I hope you can avoid my mistakes.

Mistake #1: I spent too much time learning things that I didn't actually need

I had no clue where to even begin. There's just so much out there , so many buzz words and so many competing viewpoints that it was hard to get a sense of what was important. After trawling Hacker News, Quora, and StackOverflow and randomly pulling terms from the most popular articles, I came up with this crazy, hodgepodge list:

HTML, CSS, AJAX, PHP, Javascript, Heroku, Celery, SQL, jQuery, Django, POSTGRES, nodeJS, BackboneJS, Ruby, Rails, MongoDB, Python

I didn't know which components I needed and which ones I didn't, so I just tried to learn all of them.

I should've narrowed down the list to only what I needed for a working prototype.

Ultimately, I figured out what everything in the list actually did and reduced it to:

  1. HTML: structures a page’s content (e.g., this is a link; that is a title).
  2. CSS: styles the content (e.g., makes a link turn bold when you hover over it).
  3. Javascript: makes the content dynamic (e.g., launches a popup when you click a link).
  4. jQuery: a Javascript library with easy-to-use plugins (e.g., a picture slideshow).
  5. Python: processes the data (e.g., pulls users’ purchase histories from a database and recommends products they might like).
  6. Django: a web framework written in Python that connects all the above pieces and provides a lot of built-in, necessary functionality (e.g., a readymade login system and an easy way to access any kind of database using just Python). Use a framework. It makes your life easy!

Mistake #2: I didn't start coding right away.

I spent too much time reading coding books. I had no assurance that what I was reading would actually be useful for my project. Worst of all, because I wasn't applying what I was reading, nothing even stuck with me.

I should've learned by working on small projects from the very beginning.

  1. Actively take some tutorials and code the examples. David Sinsky, a fellow Yipit developer, has some amazing suggestions.
  2. Pick an easy project and code it. Try creating a simple blog or a basic polling app.
  3. Repeat #2 a few times.
  4. Build your startup prototype.

There are so many benefits to jumping right in. You'll quickly get over any fear you may have of programming. You'll start seeing the fruits of your labor right away. Most importantly, you'll rapidly develop the skills you need to build your product.