If you're a programmer, it is good to periodically learn the basics of new languages. You won't be expert in them, but it is less work than you probably fear, you'll know how to find your way around, and you'll come back to your main languages with greater perspective.
Whether it makes sense to learn one for your startup is a different question. Beware of the fact that while working on a startup there will always be plenty of opportunities to engage in yak shaving. (See http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gs... if you don't know what yak shaving is.) Letting yourself get consistently sidetracked is a quick way to fail to produce anything.
However it is also true that there are many technologies that your startup might benefit from which require you to know specific languages. For example you might want to use Puppet, but that requires you to know some Ruby, which you might not know. (Ditto Chef and Python in the same problem space - so you get a choice of new languages to learn!)
With all of that said, here is my answer. Ask yourself why you want to learn the language, what the benefit will be, and how long you'd give yourself to do so or pull the plug. Decide that up front. If you decide that it is a worthwhile investment of your time, then plunge in, but DON'T TRY TO MASTER IT! Instead recognize that for whatever you need to do you likely only need to understand some subset of the language. Try to identify that subset, learn that, and then get done what you need to get done. (A reasonable way to learn that subset is to focus on learning what seems necessary to start working on your problem, then learn everything that you encounter as a blocker while trying to solve said problem.)
But put boxes and limits around this task. Because your goal should be to get something out there and iterate. Anything that distracts you from that goal needs to be removed for that goal.
In most cases, no. If you are very early, you can achieve product market fit for almost anything, with any language. Then, you can change the language later or develop tools to make the language better fit your needs.
I have an idea and want to implement it myself. I'm confused between web and mobile prototypes of my future product! to make it on mobile I have to learn a new programming language such us Objective-C.
Learning a new language for a new platform is a little bit different.
Learning a new language when you have an existing skillset that can do the same job [eg switching from ruby to python for fun] is a costly investment that probably won't pay off.
I don't agree with the 'real startup' comment. For howareyou.com I learn't Ruby, and chicly.co.uk I learnt Objective-C and I would say, although maybe bias, both are 'real startups' :) Choose the right language for the job and be prepared for that language to change as you encounter different challenges.
If you are not a programmer, then get one for your startup but if you are, then stick to the language you already know because thats the best way you can express yourself (provided a startup is concerned). You can learn a new language later but not during startup.
Starting a startup is a journey you can only go with familiar tools
14 comments
[ 1.7 ms ] story [ 36.0 ms ] threadIf you're a programmer, it is good to periodically learn the basics of new languages. You won't be expert in them, but it is less work than you probably fear, you'll know how to find your way around, and you'll come back to your main languages with greater perspective.
Whether it makes sense to learn one for your startup is a different question. Beware of the fact that while working on a startup there will always be plenty of opportunities to engage in yak shaving. (See http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gs... if you don't know what yak shaving is.) Letting yourself get consistently sidetracked is a quick way to fail to produce anything.
However it is also true that there are many technologies that your startup might benefit from which require you to know specific languages. For example you might want to use Puppet, but that requires you to know some Ruby, which you might not know. (Ditto Chef and Python in the same problem space - so you get a choice of new languages to learn!)
With all of that said, here is my answer. Ask yourself why you want to learn the language, what the benefit will be, and how long you'd give yourself to do so or pull the plug. Decide that up front. If you decide that it is a worthwhile investment of your time, then plunge in, but DON'T TRY TO MASTER IT! Instead recognize that for whatever you need to do you likely only need to understand some subset of the language. Try to identify that subset, learn that, and then get done what you need to get done. (A reasonable way to learn that subset is to focus on learning what seems necessary to start working on your problem, then learn everything that you encounter as a blocker while trying to solve said problem.)
But put boxes and limits around this task. Because your goal should be to get something out there and iterate. Anything that distracts you from that goal needs to be removed for that goal.
Learning a new language when you have an existing skillset that can do the same job [eg switching from ruby to python for fun] is a costly investment that probably won't pay off.
If you can afford to hire a programmer to code for you it'd be fine, so you can focus on other things.
but for side projects a new language is absolutely a must!