Getting over my fear of coding. From teaching myself, to launch, in 6 months.


For some people, coding is the easiest thing in the world. They can whip across terminals at light speed and wield servers like there’s no tomorrow. Then there are others who are so mystified by the world of code and software that they believe any attempt they’ll make to learn will be futile and embarrassing. Less than a year ago, I was that guy. With no formal/real background in coding at all, something possessed me to write one of my own. In retrospect, I now realize that without even knowing it, I developed my own awkward (but effective) approach to coding. The approach which I’d like to share here completely removes technical feasibility from the equation for me, all that matters is coming up with an idea I care about – execution just happens. Today, I’m confident I can write and begin to test 90% of ideas I come up with within a week, and here’s how you can too.

If you want to learn how to code, don’t pick up a random book and try learning from it or sign up for a course. You need to learn exactly what you need to know in order to get what you require done as quickly as possible, nothing else matters. If your idea works, I’m pretty sure you can just find people smarter than you to help with the rest. The way to enter this mindset is simple:

Choose a project that excites you, make completing it your goal, and learn everything it takes to execute that vision and that vision only.

Don’t enter the world of code blind and without purpose. You’ll lose hope quickly because your learning will lack context, and you’ll get overwhelmed by a bunch of useless stuff that has no relevance to what you need to do. Who really cares how efficient your code is or whether your tests are perfect? Just get the job done first, focus on validation and iteration, and come back to those things later.

I just want to quickly touch on why knowing how to “code” is important, even if you consider yourself non-technical. From my perspective, if your excuse for not executing your awesome idea is because you don’t know how to code, you’re just lazy. No one is asking you to make a beautiful app, but at least get something out there and earn some respect. Aside from the fact that coding is fun and is a universal language, if you know the basics and understand the general workflow, you won’t feel so crippled and detached. If you’re managing a technical team, you’ll be able to understand and communicate with your engineers far more effectively, and perhaps even help out a bit! It doesn’t hurt to know stuff.

Here’s the truth: there’s nothing to fear, programming itself is actually quite simple and at times admittedly tedious – but what’s brilliant and worthwhile is how you adapt that simple system to do something really cool. The secret sauce is having, and sticking to, a vision – which not everyone has.

Let your inability to code be the last thing to restrict you from making your dream a reality.

When I started a year back, all these nebulous acronyms programmers throw around had absolutely no meaning to me. Git, Ruby on Rails, HTML, JQuery, AWS, Linux, Python, Javascript, SQL, Apache, Django, Node, PHP, CSS, and the list just goes on and on. I didn’t need a lot of the things I read or heard about anyway, but I needed a way to understand how all this stuff fit together.

Do I really need a Python (yes, I initially called it “a” Python) to make my application?

To find out, what I did was ask a tonne of questions. This is when I was introduced to the true beauty of the Internet for the first time – you could ask people you didn’t even know for help, and they’ll help you! You have access to the minds of millions of people at your finger tips, you just need the dedication to pick their brains and absorb as much knowledge as possible. My two favorite places for this are Stack Overflow and IRC (freenode, basically active chatrooms for everything and anything). I spent countless hours a day just listening to conversations, reading answers, and observing this fascinating world of, well … geeks – I’ve always been a geek anyway, just not a coder. Just remember to pay it forward.

As an example, I eventually realized that to build a web application, my best bet was to start with a web framework. Django seemed to be the simplest and very well documented, and to this day I swear it is the best open source project ever. I highly recommend it, check out their amazing tutorials here. Youtube (which stands right next to SO and IRC for me) was a huge help too. Especially Mike Hibbert’s tutorials, here is his first one. Keep in mind that this is just the back end framework, there’s a lot more that goes into an application, but I just wanted to give an example.

I really don’t want to get technical at all in this post, so I’ll just end by summarizing a few bits of advice:

1. Ask a lot of questions – Don’t be afraid to ask really stupid ones either, people may chuckle, but no one really cares. Everyone starts somewhere. Bottom line is, if you don’t ask, no one will tell. Again, Stack Overflow, IRC, and Youtube are great resources.

2. Stand on the shoulders of giants – If you want to see your vision far on the horizon become a reality quicker, climb on those shoulders. What I mean is, don’t try to do everything yourself. There’s tonnes of easily pluggable open source code out there that smarter people have written, use it.

3. Don’t lose sight of your end goal – Create a feedback loop with your end goal as the reference. If you don’t have a reference, you’ll get lost and spend way more time than necessary learning stuff you don’t need. Not that that’s bad, but it depends on what you’re in this for.

I founded PheedLoop and co-founded Pickelo using these ideas and principles, and they seemed to work well. Hopefully they’ll work for you too. Coming from an engineering background, I’m sure there’s some inherent bias in my experiences, but I don’t think it made a huge difference. Persistence is key.

Email me when Rahul Goel publishes or recommends stories