Idan Cohen on How to Be a Highly Valued Computer Programmer

In Chapter 13 of 19 in his 2012 Capture Your Flag interview, Boxee co-founder and head of product Idan Cohen answers "What Separates a Good Programmer from a Great One?"  Cohen looks back on his own experience writing code as well as what he has learned managing programming teams.  He finds two paths computer programmers may take to be valuable to their groups.  The first is working quickly to iterate, produce, and iterate.  This is especially useful on front end design.  The second is a more reasoned approach that is built on efficiency.  He finds this more relevant to back end coding and design. 

This is Idan Cohen's Year 1 Capture Your Flag interview.  Cohen is co-founder and head of product at Boxee Inc, an online video software company.  Previous to Boxee, Cohen held telecom software innovation and developer roles at Comverse.  He was a Captain in the Israeli Defense Force (IDF) and graduated from Tel Aviv University with a Bachelors of Science degree in Geophysics and Art.


Erik Michielsen: What separates a good programmer from a great one?

Idan Cohen: I’m a very bad programmer, but I—And I haven’t been writing code for a few years, but when I was writing code, and the best thing about it was that I could do it very fast, and I could—like really, really fast, horrible, horrible code, but just make something work. And I think that that’s a very important character in a programmer, so either you can weep out things very fast, and make them work in some way and then a little bit have someone else, you know, delve into it and just make it work better, and, you know, work the right way maybe, from the back but just making sure that you can do it at the front end, and the—much more creating the experience as fast as possible ‘cause that helps people understand what you’re making. 

Then on the other hand, there’s people that can really dive into it and understand how it works in the back end, and how it should work, and what’s the right way and what’s the efficient way which I definitely don’t know anything about, because I was never really interested in. So I guess it’s hard for me to judge exactly how that should be made, I think that there’s more technical people that can say that, you know, could answer to that. 

But I think that these are 2 things that are important, so even if you’re not a good programmer, if you can weep out functional things very fast, it’s still a huge advantage, I think there’s people who just dive into details too soon, and—not the wrong details, the back end, not the front end functional details, the back end  functional details and that’s sometimes not the right thing to do.