Hacker News new | past | comments | ask | show | jobs | submit login
Sorry Dan Shipper and other coders, you are wrong. (crranky.com)
48 points by zipop on Aug 17, 2012 | hide | past | favorite | 58 comments



Doctor: You seem to be in good health, what again did you say you need me to do?

BizBrah: Well, I'd like to be several inches taller, and have four arms.

Doctor: I don't really, uh, do that sort of thing, if it were even possible.

BizBrah: Listen, this is a one in a million idea, I just need someone to implement it. I'm the idea guy, you're the doctor.

Doctor: It's not impossible per se, but none of my colleagues would actually attempt such things on a human subject. Perhaps you should read up a bit about the current state of medical science, and maybe become a doctor if body modification research is your calling.

BizBrah: I looked at what's available at the pharmacy, but it's all too hard to understand. I love tall people. I love the dynamic nature of juggling many things at once. Am I forever cursed to be uninvolved in the medical community because doctors keep shooting down my ideas?

Doctor: ...

BizBrah glares demandingly.

Doctor: Actually, I can help you out! The kind of doctor you're looking for is called a psychiatrist. I know a good one, here's his card.

BizBrah: Bingo! I'm a people person, persuasion is my strength.


Having been on the dev side of the conversation with many (mostly MBA students), I can agree with you here. However, this is only one suits v. nerds issue.

Often, I can see that the idea will be large-impact, but the job itself is boring. Sometimes, it's even a simple CRUD app you could Build in a Weekend* but hmm... what I'm doing now is quite exciting so.. "I'll pass. Btw, if you learn Rails, you could build it in a week or two yourself".I can see why this gets people angry. But it's the way demand-driven markets work.

The other side to the coin is that if you knew a little about programming, you could make your project (at least sound) a lot more interesting. (It's a CRUD app, but it needs to be always consistent, and we're trying to offer a zero-downtime service with queues for when the data store goes down, yada yada).


The problem there is the fundamental misalignment between a boring CRUD project and a technical founder. If the project isn't technically challenging, then the success of the business doesn't even depend on the technical skills, so equity isn't an appropriate incentive for the technical contributor. What they really need is a contract/salary programmer, but are attempting to sell it as "you'll get rich with equity" to avoid paying up front. In essence, they're attempting to raise seed funding from a naive engineer.


could not have said it better


This is a flawed comparison because you do not need to "become a doctor" or read up on medical science to know that there is currently no way to get another pair of functioning human arms on top of the two you already have.

By the way, there are surgical options to grow taller by lengthening the limbs [1]. I'm not a doctor.

[1] http://abcnews.go.com/Health/york-man-grows-inches-surgery/s...


I believe the strength of the joke lies in its cunning lesson, not in its details.


The comparison is spot on. You do not need to "become a developer" in order to understand what is within the realm of possibility for developers to do.


And a BizBrah who was somewhat versed in the medical vocabulary would have the ability to research a problem the dotor says is not possible, provide a link to an implemented solution, and the whole project benefits.

The medically educated patient knows just enough to challenge the patient rather than blindly asking for the imposisble


Thanks for the reply zipop I really appreciate the other perspective. That said, you said some things in your response that make me think that the way I wrote my post may have lead you to misinterpret the point I was trying to make. Sorry about that, let me try to rephrase slightly.

To be clear: I know how tough it is to teach yourself how to code. When I was teaching myself as a kid there was no StackOverflow, no Code Academy, and no W3Schools. It was just me and my programming book, and either I figured out the problem for myself or I had to give up. It was really hard.

The point I was trying to make wasn't that you could become a master engineer in 6 months. That's absolutely untrue. The point I was trying to make is that you can teach yourself enough code in 6 months to build SOMETHING, to move yourself along far enough to get to the next level.

I know this is possible because I've seen people do it. One of my best friends from school went from not knowing a how to write a single line of code to being the lead technical founder on a YC company in less than a year.

The real point here is that it's very easy to tell yourself something is too hard, and that you don't have enough time to learn it when that's really just a personal constraint. The point is that it's easy to get distracted doing things with short term rewards (going to events) rather than doing things with rewards that are played out over the long term (building skill). It's more written as a way to shift perspective than anything else. Again thanks for the response, hopefully that cleared it up a little bit.

EDIT: Original post is here if you missed it: http://danshipper.com/the-now-syndrome


I read it as coding just being a particular example. The argument works equally well for a pure-tech founder who needs to pick up some marketing to take his project to the next level.


That's absolutely the way it was meant to be read.


Not everybody can learn to code -- even "basic" stuff like a blog -- even though the tools now are better than ever.*

More importantly, not everyone should learn to code. Some people who teach themselves do so very poorly, then cause more trouble than if they had just left it up to someone who is better at it in the first place.

* - This is always true at any point in history, so it's a pretty meaningless point.


Not everybody can learn to code

While I know that many programmers have this attitude, I have not seen any evidence for it. Nor have I heard of any attempts to verify it. Certainly many people don't care enough to learn to code. But that's a different point that one of aptitude, which implies that programmers are a special breed. That's an attitude that I reject.


For some reason this reminds me of the movie Ratatouille, and the "Anyone can cook" theme.

For those who haven't (and won't) seen the movie, one of the themes (as I see it) is based around two different interpretations of the phrase "Anyone can cook"

1) The looser interpretation that upsets the "ultimate food critic" would be better phrased as "everyone can cook"

2) The interpretation that the movie guides us to (not quite as heavy handed as I'm phrasing it!) is that a cook can come from any background, we shouldn't think that the best cooks can only be found in the trappings of a well respected multi-Michelin-star restaurant kitchen.

The parallel for coding seems obvious to me, we often have very preconceived notions of what it takes to be a "coder", what background, personality type, etc. and we should reject that. The "suits vs. nerds" concept is a form of deception, because it leads us to think that "coders" must be "nerds" and "suits" can never be "coders", neither of which are true.

We should judge people by their ability and capability, not by the fashionable trappings with which they drape themselves; often suits, or nerdy/geekish behavior is merely a social camouflage with no deep correspondence to skill set.

Just my 5c


I think your point is pretty hard to argue with but it doesn't have much bearing on the original point; not everybody can be a programmer.

Yeah a programmer can be a hipster douchebag, a Star Trek loving nerd with Asperger's or a stay at home mom. But not everyone will ever be able to do it.

PS - I love Ratatouille.

EDIT:

To clarify further; anybody CAN have aptitude for programming, but not everybody DOES.


This.

I think (in your edit) you are stating the point I'm trying to make rather better than I did.


It depends what your standard is. If your standard is merely memorizing how to get a compiler or interpreter to spit out "Hello world!" then, yeah everybody can do that.

But if you're talking about really learn how to program, for example to learn the skills necessary to create a basic blog with a database, login, posting, commenting, etc. Then, no, not everybody can do that. If you get some experience in the real world and try talking to people who aren't technical, it will become readily obvious that not everybody can do it.

It's not that programmers are "a special breed", stop being so coder-centric. There's plenty of things you're not good at and can't do as well. Or do you believe what we were told as children; you can do anything! Sorry, but you can't.

You'll never be a Formula 1 driver. You'll never be a fighter pilot. You'll never play in an international level orchestra. You'll never be an architect or civil engineer. Et cetera.

And billions of people will never be programmers.

It's not that programming is so intrinsically special, it's that it's one thing among many things people have varied proficiency for (the origins of that proficiency I have no idea and won't get into), and some have no proficiency for whatsoever.

This is all really obvious if you've spent much time with people who aren't programmers.


There are plenty of things I am not good at. But, yes, I believe I have the aptitude to do them. I am capable, but not willing. There is an enormous difference. The importance of the difference is: anyone who has to the drive to learn to program can do so.

Whether or not they'll be good is a different question. I'm just talking about competency.

To repeat myself: there is a difference between things you can't do because you have not pursued them, and things you are not capable of doing no matter how much you pursue them.


> To repeat myself: there is a difference between things you can't do because you have not pursued them, and things you are not capable of doing no matter how much you pursue them.

I would agree with this statement. And my point is that for some people, programming is one of those things that even if they pursue it they will never be any good.

I think that applies to pretty much everything that takes training/skill/practice. That's my whole point.


And my point is that that is a belief you have about human intelligence. I am not aware of any support for this belief.


Try getting to know more non-technical people I guess?

It's mostly the abstractness that people have difficulty with.


I know lots of non-technical people. And I still think that if they wanted to learn, they could. I'm thinking of one friend in particular who avoided technical subjects as much as possible, studying history in college and public policy in grad school. And I submit that the kind of reasoning he has to do in public policy, and to navigate the bureaucracy of the State Department, is similar to the reasoning that a programmer does.


That's ridiculous.

The only thing stopping me from doing any of those things is my own lack of interest in doing them. Likewise, the only thing stopping other people from programming is their own lack of interest.

Could I be the "best" architect ever? Probably not. I can't be the best programmer ever, either, but that's never stopped me from programming. A person doesn't have to be in the top 0.0001% to do something successfully.

If you're going to have a shit attitude, then you're probably right, and you're a loser and you'll never do anything.


> The only thing stopping me from doing any of those things is my own lack of interest in doing them.

That's some powerful positive thinking you've got going on there.

You obviously have no idea the work and training involved in some of the examples I gave (fighter pilot, F1 driver.)

Yeah, maybe you could spend the next 4 years getting a degree in civil engineering and maybe you'd be good at that one, if you're already an engineer of some type. But that was just a random example I chose. There's plenty of other fields where you do not have aptitude.

I'm not saying you have to be in the top 0.0001% to count. My point is that of all the things you can do, you have varying aptitudes for all of them.

And whether you accept it or not, there are some things out there that you are going to be completely worthless at. That's just reality. Everybody's great at some things, and shit at others.

Some people are shit at programming. Some people are shit at football. Some people are shit at painting. Nobody's good at everything -- despite what some overly romantic biographies about historical figures might have you believe.

> If you're going to have a shit attitude, then you're probably right, and you're a loser and you'll never do anything.

Nice ad hominem, buddy.

I don't have a shit attitude, I'm a realist. I think everybody's probably good at some things. Some people unfortunately never find what those are, or they don't pursue them, which is sad.

But not everybody can play the piano. Yeah everybody can memorize how to play "Twinkle, Twinkle Little Star" or "Chopsticks". But that doesn't really count as playing the piano, unless you're defining your standards so low that a cat can play the piano.

Likewise, some people are never going to be able to program beyond following rote instructions -- which, IMHO, doesn't really count.

But unlike some people, I don't see that as a bad thing. It's just how it is.


I like how you went from comparing passable skills in programming, to being international level experts in other areas.

I know plenty of people that are both programmers and in orchestras, that race cars, and fly planes, paint beautifully, can do UX, and many other things. These people aren't geniuses. They just don't give up immediately when trying to learn something that is difficult.


It's good that you're rejecting that attitude, but that doesn't necessarily invalidate the grandparent's point. Some people can't learn to code because their mind just doesn't work that way. Just like they probably have some skill that we probably can't learn because our minds don't work that way.


Some people can't learn to code because their mind just doesn't work that way.

That very assertion is what I am saying is false. That is a belief you have about how our minds work. I have not seen evidence for it.


Want to see evidence?

1. Go to a mental hospital.

2. Find the most insane person there.

3. Teach them how to code.

Once you've done that, I will grant you that anyone can learn to code.


I'm talking about people who do not have severe mental disabilities or disorders that prevent them from even doing basic things.


"You can teach yourself enough code in 6 months to build SOMETHING, to move yourself along far enough to get to the next level."

What is "the next level" in this case, though? Is the idea that if you can slap together a proof of concept it will be easier to find more experienced coders, and then you can stop learning to code and go back to being a non-technical partner? Or is the idea to continue coding after the six months? Because the latter seems like a bad idea to me - if someone doesn't want to code, and they have other skills which coders may not have, it makes more sense for them to focus on these other skills; if learning to code helps them get to a place where they can use their non-coding skills, fine.


Point well taken. I will take encouragement from it. Thanks.


I'm a developer with extensive experience in building technology solutions and scaling them at all levels, from Fortune 500 all the way down to hobby game (400,000 lines of C / Lua) with a couple of thousand users running on a single PC. I love all aspects of building up a platform and can't get enough of it.

I'm drawn to the idea of being a technical co-founder and even have the financial resources to take a calculated risk on equity over initial income for a good amount of time. I don't live in CA, don't particularly want to move, and really struggle with these online "find a co-founder" sites when it's so hit and miss.

I feel like I have decent business sense but would prefer to spend my time building rather than dealing with VCs and fund raising and board meetings and paperwork so I just focus on small sites making "pocket money" and let the bigger opportunities pass by.

I guess my point in all this is that it isn't just "none technical co-founders" struggling here. This whole area of "partner discovery" is still wide open for someone to come along and find a better way to do things. Do any of the VC companies themselves do any kind of "partnering up"? If finding a technical co-founder is a challenge for so many people then perhaps there's a way for would-be leaders on the technical side to make themselves known to VCs up front, complete whatever interviews were necessary and let the VCs (or another 3rd party) do the matchmaking at a deeper level than just filling in forms on a site? Definitely open to suggestions in the meantime...


I agree the problem is still open. It's a very difficult problem. Partners have to trust each other. It is hard to build that kind of trust ethereally, and startups, by definition, don't have the capital to have people travel around "dating".

Solving that problem would certainly open many doors, and not just in the startup world.


I'd love to see a blog post along the lines of this thread.

One question I have is that each partnership in my experience has a different mode of operation. For some, it's a lot like a marriage. For others it's a "I can work with him. I could never stand him in a social setting."

Then there are the well-known partnerships of the past: Jobs and Woz, Larry and Sergey, ...


When I was about 11, I bought this book: http://www.amazon.com/Teach-Yourself-Game-Programming-Cd-Rom...

I had never touched programming before. I read the whole book, and did the lessons, but C++ was just too hard for a beginner.

Then I found QBASIC sitting on my computer. QBASIC was easy, it was idiot proof. I learned all the basics (pun) of programming in 1 day. The problem is not that programming is hard, it is that these days there is no easy starting point. To an experienced developer, Javascript might seem easy, but after trying to teach it to my brother for the past few months, you can see how complex it really is for beginners. He took every course at Code Academy and is still struggling.


Opening up your browser's JS console and typing alert("hello, world!")

is way easier than running GORILLAS.BAS


How much of programming potential is innate? Is saying "I'm not built to be a coder" more like saying "I'm not built to learn a foreign language" (which is implausible and smacks of laziness if you're at least moderately intelligent), or more like "I'm not built to be six feet tall" (which is true for most of the world's population)? I'm interested in the truth here, not in just-so answers based on personal experience. Are there good scientific studies answering this question, and do they agree? And if programming potential is mostly innate, is there a simple test for it that doesn't take 6 months?


I'm repeatedly surprised by how often good coders take their skillsets for granted, as something everyone could learn in a short time if they set their mind to it. They think that just because computers make intuitive sense to them, and they can learn any new programming language or paradigm in a few weeks, a newbie could do the same -- albeit in a matter of months, perhaps. They learned their most important skills from toodling around on the internet, or deconstructing simple machines or programs or something, and they think that this means you don't need formal training, it can come to anyone with time.

The thing is, I don't think people appreciate how much of a deep skill thinking logically is. It's not something you can pick up in a weekend: there is a monstrous gap between the basic common sense appreciation of cause and effect that nearly everyone attains in their lifetime, and the rigorous analytic mind that can look at a series of instructions and deduce all possible outcomes. This is a skill that doesn't require formal training, yes, but it is a skill that must be mastered, with all its requisite 10,000 hours of training beforehand. The best programmers have all been doing this for years, deconstructing the world and its workings whenever they can, and learning the mechanical structure behind their every experience. This training has given them a unique mastery, and while it's not for me to say whether this skill is fundamentally innate or purely a result of practice, it certainly takes years to develop the right modes of thinking. All I can say is that mastery the ability to think logically is a prerequisite for programming in any deep sense, and not everyone has this skill. This is why when I ask my mathematician and physicist friends to look at a program, they can decipher it in minutes even if they don't consider it particularly gripping, while if I ask my writer and even medically trained friends they blankly stare at a wall of gibberish.

Sorry if this answer is more anecdotal than you are asking for, but in my experience there is a fundamental skill in programming that must be mastered that many programmers take for granted, and you can't expect people without it to pick up deep programming in a reasonable amount of time. That's not to say there's no useful place in a place with colleagues for someone who can't really synthesize new bulletproof code, especially in this age of Google and StackOverflow, but the kind of skill people need to whip up a prototype of a novel application on their own without outside assistance takes years. I think Zed Shaw is right in his response to this blog post, if you really are a "people person" than perhaps coming to a programmer with a completely thought-through user experience designed out matches your skillset better, and it's every bit as valuable to the final product as programming knowledge.


This is one of the best comments I've read on this topic. Again, anecdotally, I look at the world in a massively different way than other people in my family (other than my brother who is also good with computers). This way of thinking is repeat with looking under the hood, analyzing why things behave the way they do, and imagining other outcomes that could occur. There is also a lo more questioning, followed by needing to know the answer.

I wonder how you could define a study to determine corellation versus causation here. Maybe I think this way because I've spent so much time fighting computers. Or maybe I've been willing to spend so much time fighting computers because I think this way. It's a fascinating question to me.


The limiting factor for people isn't some innate attribute, it's time.

You need x amount of time coding, debugging, refactoring before you can call yourself a programming 'expert'. This is time that could have been spent learning some other skill like how to cook, how to fly a jet, how to bungee jump while flying a jet, etc.

The real question is, how much time is the person willing or able to invest in learning how to program?


You don't think that some people are simply better suited to tasks that require a high degree of logic than others? Really? I would think that day to day interactions would teach you that much... We're not all born as blank slates with near unlimited potential.


I distrust the blank slate theory as much as the next guy, but have some doubts specifically about programming. For example, in the programming profession you can find many folks who are similarly clueless about cooking. Would you believe if one of them said to you "You know, I just wasn't built for cooking"? Maybe the mindset necessary for programming (and logical thinking in general) is just very difficult to communicate, and some people just stumble on it by accident? That's why I'm asking for citations.


I don't think the message us technical guys are trying to get across is that you need to become one of us and strive for the full ability to implement your idea all by yourself. Hell, the less people that are awesome programmers the better, keeps us in high demand.

After my experience with a very-non-technical co-founder before, I dont think I would ever again agree to work with someone who couldn't at the very least know how to read the source code and manually tweak database entries. Working with someone who has read the basic rails tutorials makes it infinitely easier to communicate and mutually understand technical and temporal restrictions on a product in development.

I'm a programmer, but I sure as hell read Inbound.org, dribbble, forrst, and other sites besides just technically oriented ones so I at the very least can use the same vocabulary to describe and understand what a a partner is doing and why they're choosing to do it that way. I expect anyone I work with to be similarly versed.


I think you make some valid points, and as somebody who self-taught, I get the pain. That being said, I also agree with the common sentiment here "help yourself a little first".

If you consider yourself a technology company, you need an understanding of your technology and what goes into making it. You may not be a master at each part, but you need _something_. It doesn't mean you are not marketing, but like marketing a technology implementation has several nuances that can't be overlooked. Tension always arises when these aren't well understood. Times this problem by 10 if you want "magic" / algorithms which little concept of how they will work (note: you don't need computing studies to figure this out, generally).

Note that I said 'consider yourself a technology company'. There are many companies based on technology that are not, themselves, technology companies (you can argue either way whether this is the right model, but it works). From my experience, these are the companies hunting less for technical co-founders (and who have less excuse for no traction pre product).


If you have a great idea, and the value you bring to the table in executing it is "sales", start by selling it to a developer. I'm not sure what we're arguing about here.



I'm a business student and I feel ashamed the rise of non-technical people in the startup field acting like they've got incredibly valuable skills. I learned more in introductory compsci classes than all the BS in my business classes combined.

In regards to startups, technical people are so much more valuable than non-technical people. Non-technical people keep on perpetuating this: http://whartoniteseekscodemonkey.tumblr.com/ -esque mentality by saying things like this:

>"I am the nontechnical founder of several great startup ideas (I didn’t say startups) sometimes very poorly executed."

The founder of an idea? That doesn't mean much in my mind (then again, I don't know much about the author at all, nor could I did up much). Execution is key to a startup - and technical people are largely the ones that get the important shit done.

Non-technical people can add value for sure - but I think only a small margin of them have valuable skills that rival technical talent in a startup setting.


I think it's a mistake to equate all "non technical people" as "idea people" which is what I seem to be reading in your post. There are people who are just "idea people" who have no particular skills in terms of technology OR business.

But real "business people* provide a TON of value. Someone who understands marketing, distribution, sales, fundraising and all of those things? Tremendously valuable to startups (at least some classes of startups). Find me somebody who can construct and execute a solid marketing strategy, craft a good "core story", do market research, develop solid positioning, and who understands PR and how to get stories placed, someone with an extensive personal contacts list which includes the kind of customers you're looking for, someone who understands the fundraising process and has connections with investors, someone who can cold call a customer, get a meeting, make a presentation and close a sale.... find me that person and I'll offer them a significant equity stake in my startup, to join up as a non-technical co-founder, even if they've never written a line of code in their life, and have no interest in doing so.


Using your own example, you don't go to newly graduated doctors and say, "I have this great idea for a general practice. Let's open a shop together split it 50/50."

I think Dan's point is that if you believe strongly enough in your idea, then it ought to be worth the time investment required to personally execute it. At the very least, take it to a level advanced enough to be able to sell the concept (and yourself) to prospective partners/employees and get them excited.

If you don't think you have the aptitude to learn the nuts and bolts of the particular execution, then you should probably refocus on another idea for which you are qualified. Alternatively, you could try and convince someone else to execute your idea and hope that he or she takes you along for the ride.


To be a programmer is non-trivial and takes skills and learning. To understand the basics of web development is not. There are too many half cooked coders out there without necessary skill or education to properly engineer complex solutions. That do not mean you can't dabble with coding and still not be a programmer, just like I can dabble with painting - need not be Picasso. That is why specialities exist.


While I can't empathize with you because I am a programmer, I feel like PHP isn't a great language to start on simply due to the fact that you have to coordinate a lot of non-programming things (servers, remote editing, HTML/CSS, etc.). I think you'd be more successful starting with Python or something else with a REPL.

PHP might be easier to learn on now than it was for me 8 years ago, I don't really know.


It's not hard to learn to code.

Start with Scheme as your language and SICP and/or The Little Schemer as your instruction books.

A smart person can become a competent coder if there is as little friction as possible between him and "holy shit, this actually works, aren't I awesome?"

When you're ready to try more practical stuff, then it's time to dip your toes into Python.


Ok, but what are you bringing to the table? Coding is hard. Talking people into giving you money is hard. Either one is sufficient for making a demo.


It's because you're a fucking idiot.


You have made five comments on Hacker News. Three of them are extremely rude and vulgar (the language doesn't bother me, but the sentiment behind it does). The norm here is civil, intelligent conversation, which is the opposite of "It's because you're a fucking idiot." If you keep going this way, you're going to get hellbanned. Just a friendly heads-up.


Why warn him? Let them bring the hellbanhammer down.


Some people are capable of more, but for whatever reason have fallen into a rut of uselessness. For those people, a warning can help and they might even go on to become productive commenters. I've even made good friends out of people I nearly wrote off in the beginning. If he/she's not one of those people, the warning will do nothing, the hellban will come soon enough and my comment will have done no harm. I like to see people have a chance to better themselves, even if they probably won't take it.


You are a better man/woman than I, then.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: