All scientific work is incomplete– whether it be observational or experimental. All scientific work is liable to be upset or modified by advancing knowledge. That does not confer upon us a freedom to ignore the knowledge we already have, or to postpone the action that it appears to demand at a given time — Sir Austin Bradford Hill

Learn to code, not be a pro dev // Sorry @crranky and Dan Shipper, you’re both wrong.

Posted: August 17th, 2012 | Author: | Filed under: Advice, All, Meddik, Startups, Thoughts | 1 Comment »

In response to Sorry Dan Shipper, you are wrong.

@crranky, you are wrong. (post linked above)

Dan Shipper, you are wrong (referring to The Now Syndrome).

Jeff Atwood, you are wrong (referring to Please Don’t Learn to Code)

But you’re all also right. Step back and see the full elephant.

Preface: I’m still very much a novice when it comes to both programming and start-ups, but I’ve learned much in my short time in the field. The “how do I find a technical co-founder” conversation has become a well-choreographed mantra for me, and as my audience is generally composed of physicians and medical students — people who (like in many other fields) have little time for.. well, anything.

To recap, Dan in his post says that:

When I ask many non-technical founders why they haven’t learned to code this is a pretty common response: I don’t have time, I want to get this out now.

He then goes on to explain the ultimate decisions these non-technical founders face: to hire a dev or to learn to code. From their perspective, the former seems like the more time efficient option. They then spend monumental amounts of time trying to find a developer, spending more resources than they would have if they’d just learned to program in the first place.

@crranky rebuts in his post, saying that there sometimes there are legitimate unsurmountable constraints. He/she says that learning to code isn’t a ‘few months’ ordeal. He compares it to learning to become a physician or some other profession. It’s not just a one-off task.

I want to learn to code. But what if I’m not built to be a coder? Guys, am I missing the point here?

So, Dan and others, they’re not false constrains, really, seriously, they are not.

This discussion reminded me of Atwood’s post, where he asked people to “please don’t learn to code”. He does advocate learning a little code for the sake of understanding what code is, but does not want everyone to market themselves as a developer.

The “everyone should learn to code” movement isn’t just wrong because it falsely equates coding with essential life skills like reading, writing, and math.

As someone who didn’t pick up web development until December 2011 for the purposes of starting a company, let me reiterate the answer I always give non-technical founders.

  • Learn to code. @crranky, the point of this is NOT to become a full-fledged developer; becoming one does involve some very real constraints. However, high level languages + architectures like Ruby on Rails and Python / Django has made building a simple app almost trivial. I’ve yet to meet a single person who is incapable of going through a basic tutorial. Follow the recipe and you’ll automatically learn something passively. If you’re not willing to take a few weeks or months to at least attempt to build the product that solves your problem, then apologies, you’re not ready for the hustle that’s necessary to start a company.

  • You’re learning to code for understanding, not to become your own dev team. @Dan, you separated the ‘find a dev’ tasks into hiring a coder or learning to code. They’re not separate tasks. Your chances of finding a good dev increases exponentially if you know how to hack something together, if you’ve coded before. It’s not just so you can speak the speak and fool your hires with fancy technical words. No, it’s to prove yourself and your developer partner that you understand the pains and difficulties of development. You understand that developers don’t code for the sake of coding; it’s a tool to solve a problem that you and your developer both believe in. Your tools might be your sales ability; his are a terminal window and a text editor. Your tools are different, but your vision should be the same.

  • Jeff, the ”everyone should learn to code” movement sure might be sullying github with more poorly written code than ever, and I agree that learning to code b/c you want the nice paycheck and lifestyle is ridiculous (it’s the same reason I deter people from arbitrarily going pre-med even though I’m a medical student myself). However, I very much do support companies like Codecademy or others that “try to get technical” (in the words of Fred Wilson) — the keyword here being ‘try’. No, not everyone is made to become a professional developer, but tools like these make it easier for people to get out of their comfort zone, to show that they have the balls and gumption to do whatever they need to to solve their problem… even a seemingly monumental task like coding. The companies just make that tasks a little less scary and offer the window necessary to the 1% of people who would not have otherwise thought of becoming devs, even though they’re adequately suited for it. Ultimately, if they’re not made to be a coder, they naturally won’t be one for long.

tl;dr. Learn to code for understanding. Stop whining. Sack up.

  • http://twitter.com/jaywengrow Jay Wengrow

    You’ve hit the nail on the head. As also one who started a business before knowing how to code, and who is now a professional developer, I cannot imagine going back to hiring a developer and remaining totally in the dark about what he or she is doing. Developers almost never create what is in the mind of the CEO the first time (and often not the second time), and that is because it is just plain hard to communicate exactly what is in one’s head. I know this from the CEO perspective, as well as being on the developer end. It’s not necessarily anyone’s fault, but it is the reality. As a developer, you can just create what’s in your head, and get the quality you’re looking for, and not waiting on someone else to accomplish what you want to be done right now.
    Often, people are just intimidated by learning to code, assuming that they need tons of training, background, and brilliance to be a successful programmer. They don’t realize how programming can be learned by anyone, as long as they start from the beginning, and practice practice practice. Programming is really just a lot of common sense – there’s no need to be a math whiz.
    Good resources for beginners with no previous programming experience include: http://learncodethehardway.org , codecademy.com, pine.fm/LearnToProgram/ , and anyonecanlearntocode.com/screencasts . One can move on from there to slightly more advanced tutorials like ruby.railstutorial.org and be ready to really build their own web application.