Ask HN: Should I learn to code first then cook up startup idea or vice versa?

3 points by edwardshui ↗ HN
Hi HackerNews Elites,

I am a biomedical engineering major, so I only have very little programming knowledges. I sure don't know about any advanced programming skills. But I do have a little bit of experience with languages like MATLAB.

As a matter of fact, I have been wanting to start my own startup for quite a while. But I was at the crossroad of not knowing whether I should learn to code first and then think up startup idea, or the other way round. During these past few weeks or months, I have been struggling as to which to choose. But at the same time, I have also been cooking up some startup ideas and reading a lot of Hacker News posts to get a better idea of the startup world.

Since Hacker News has the best people in the startup world, I would be really grateful if you could offer some insights so that I could have a better idea of what to pursue.

Many thanks! Ed

10 comments

[ 2.8 ms ] story [ 29.6 ms ] thread
I've had no big start-up yet, but I've found mini-start-ups a great motivation and learning experience. If you have something that you want to make you can learn while you make it, it will give you the motivation you need to learn (get your site done) and it will provide a great learning environment (building your product).

I'm in school for web development, since I got the basics of programming down in my second semester, I've learnt more from my own projects then school.

Thanks @thatusertwo. Mini-start-up is surely a great motivation and start! My present lame startup ideas are all in this category:)
Just do both. Your early code will probably suck. Your early startup ideas will probably be quite flawed. But working on real project will make coding more fun, and all your "failed" startups should teach you something for the next one.

I've been coding for a long time, and sometimes my code still sucks but it's better than it used to be. I haven't been bootstrapping "startups" for quite as long but I've already made a ton of mistakes, and learned from them.

PS. Wouldn't call myself an HN "Elite" by any stretch, but my $0.02 nonetheless.

Thanks @fooandbarify. Looks like I really need to get the coding engine going now! I certainly think I will have a lot of lessons from my foreseeable "startup" failures!
You will gain programming skill far more quickly if you have an idea you're trying to implement as you learn. Read tutorials and change them to try suit your needs. It will probably be horribly broken and ugly but you will learn a lot faster.
Thanks @slysf. Yup, tutorials is what I need and code implementation too!
Great to read from someone who has startup ideas and is prepared to learn to program. My two bits worth: It's like a bar stool, best to have three legs.

1. Choose the startup idea that you feel most passionate about. There will be others as you progress, but stick to the first one (unless your customers vote with their money to go for a different one).

2. Pick a widely used, well documented language. My suggestion would be Python as it supports most paradigms and comes with a comprehensive collection of standard and additional libraries. Buy at least strongly recommended book. I recommend the ones from the O'Reilly series.

3. Be prepared to go off and explore particular issues with the programming language as well as your idea. You will probably end up with a lot of small point solutions. I frequently end up with two or more solutions to specific problems before selecting the one to integrate into my key project.

Other considerations:

* It's a good idea to establish test driven approach and incorporate your tests from point 3 in your code libraries.

* Use version control, I prefer git, but others are good as well. It's not so much which one you choose, but to use it consistently.

* If your idea is very web centric, then you might have to seriously look at JavaScript and Node.JS. But JavaScript is a difficult first language.

Thanks @CyberFonic! I am kind of inclined towards building web app in the beginning as I conceive it as a "broader" user base.

Another great lesson learnt! Looks like I better start picking up some Python skills asap.

Many thanks for your tips again!