
Ask HN: Start-up success as a non-technical? - pjmurray
Do you need the technical skills to succeed or are you better off gaining the complementary skills (marketing, pricing etc) and partnering up with people with the technical skills?<p>Why I ask: I'm a grad. civil eng. who wants to get out of the industry, saving up hard to start my own business/further my education. Would my money be better spent on a MBA or MSCS? I see a Stanford MSCS doesn't require a CS background (although I may be hard pushed to get in anyways). Neither is also an option but I see huge value in the networking potential of going back to school.<p>Really interested to hear what you guys reckon! Any (potentially life changing) advice is greatly appreciated.
======
edw519
_Would my money be better spent on a MBA or MSCS?_

Neither.

1\. Find someone who needs something.

2\. Start building it.

3\. Trust that when you need to learn something, you will.

The education you will receive this way will be way better than any formal
education for multiple reasons. First, you will automatically triage your
lessons; you will learn what you need, not what someone else (who probably
doesn't know) thinks you need. Second, almost all the "data" you will need in
this education is easily available and free. Third, for the education you need
from other people, you will begin building a network you'll need anyway. And
finally, this is exactly what you'll have to do _whether or not you get any
more formal education_ , so just skip the unnecessary step and get on with on.
From your own self description, you already have way more formal education
than you need.

This may not seem intuitive, but believe me, this is the way things get done
in the real world of software development. At this point, the creme rises to
the challenge regardless of education. Save your money for living expenses and
start-up expenses. You'll probably need it. Best wishes!

~~~
dmix
Exactly, if you're serious about startups, you need e-school not b-school:
<http://www.justin.tv/startuplessonslearned/b/262670582>

I dropped out of my business program after creating a startup during college
and realizing I was learning far more from my startup. My classes began to
seem so non-relevant by contrast. The only selling point for school is access
to smart people.

------
alizaki
I'm a civil engineering grad too (08). Started two companies, both are
profitable and doing decently well (timesvr.com and gameventures.com). I don't
write code myself (wish I could), but I've learnt a few things along the way.
One of those things is that an MBA would be utterly useless.

I'm not good with long posts, and I'm sure you'll get plenty of solid advise
here, but if you'd like to chat, email/IM me on alizaki (at) gmail.com

------
mahipal
Note that my answer will be hugely biased, but then again so will everyone
else's. ;)

Nonetheless, I'd say to go for the MSCS (or similar). You're looking for the
networking potential of going back to school, and you want to start a start-
up. In a technical master's program, you'll be around exactly the sort of
people you need to meet for this to happen. In an MBA program, you'd network
with a bunch of other business guys, many of whom wouldn't be interested in
start-ups at all.

You'll obviously also gain a lot of truly valuable technical skills. You might
not be able to single-handedly carry the technical side of a start-up by the
end, but you'll definitely be able to make meaningful contributions and
decisions about the technology. This helps your future partners as well, since
they know you can contribute to the tech while working the business side.

If you're worried about missing out on the education side of the MBA, don't
be. I think you could get a better version of an MBA education by just buying
a pile of books [1] and starting a company. You'll learn everything you need
about business along the way. And, as for the networking part of an MBA,
you'll get way more interesting conversations out of "I'm running a start-up"
vs. "I'm working on my business degree."

[1] Possibly a topic for another thread, but here's an example of such a
reading list: <http://personalmba.com/best-business-books/>

------
SaasDeveloper
Take your money and move to the Valley. Network, join meetups, and tap into
the community. Try to get into a startup that is founded by someone who has
been successful in startups before. You will have to convince the founder you
will do anything asked and then bust your ass. Don't expect a lot of money
from a startup especially if you don't have the skills they need. If you are
hungry and stay focused you will gain experience, knowledge, and the
connections needed to do something on your own one day. My advice for you on
going technical is only go this route if you truly enjoy technology, coding,
etc. because you will be spending a lot of time on it. You can become a
startup founder without technical skills but if your product\service is web
based then find a technical partner.

------
sachinag
I'm non-technical and co-founded a startup. I would never do it again without
a technical co-founder or learning to code myself. So I'm learning Ruby. You
can do a full-on MSCS from Stanford, or you can just teach yourself how to
code, but that's the path I'd take - _and I'm going to business school to get
an MBA in the fall_ : [http://www.sachinagarwal.com/why-this-startup-guy-is-
going-b...](http://www.sachinagarwal.com/why-this-startup-guy-is-going-back-
to-busines)

------
dave1619
I think it matter on what interests you more... the business side, or
technical side? Whatever is more interesting, start investing in it right now
by learning and taking some risks.

------
rnugent
It's not what you know, it's who you know. Invest in your network and
everything else will fall into place.

------
strlen
I highly suggest going the technical route. Ask yourself this: would you
prefer to be a software developer in a start-up (including your own), or a
manager in a more established firm? If the only sort of management you see
yourself doing is in _your own company_ , I don't see an MBA as being very
useful to you. You need to be some self-sufficient, meaning you should know
how to code and not _just_ how to manage. It's easier to bring in outside
managerial talent to a purely technical firm rather than vice versa (I
personally would _never_ be the first programmer in someone else's company,
many other hackers are similar).

You already have a strong background in a quantitative discipline (CEng). It
means you'll have an easy time picking up either. Don't forget the advantage
that this gives you. That means you'll have an easier time with statistics,
mathematics and numerical analysis: this opens up a whole new world for you
that's closed to many programmers who are only good at programming.

That being said, there's a lot you still have to learn. Start with learning C
(you might not develop your application it, but a) you need to understand how
physical memory works in order to be a programmer b) C is the lingua franca of
programming languages which means you'll have no problems learning whatever
_other_ language is better for the task at hand), then learn algorithms and
data structures and at least three of (compilers, operating systems,
databases, computer networking). Then specialize: machine learning/NLP/IR
(given your "real engineering" background, you might have an easier time here
than most programmers), further into systems, further into databases, etc...

That's a multi-year project and you have to be ready for it. Don't under-
estimate the value of experience (by experience I mean working in firms whose
product is software i.e., _not_ consulting or internal IT development) in
doing a start-up: it's possible to start without "having done it before", but
several years of work experience (alongside people much smarter and more
experienced than you) is extremely useful. Experienced developers have a huge
role to play in a start-up: partly by making it possible for apt junior
developers to be recruited (they want to work alongside "hard core" hackers)
and mentored.

If you join a start-up, it's also a chance to be exposed to the "business
side" as well -- although certain types of established firms (in my
experience, those who build software for other developers) will give you
exposure to customers and sales/support cycle as a developer too.

If you prefer a more structured environment in which to learn (as do I --
there is absolutely nothing wrong with that), an MSCS will serve you well.
It's also a chance to meet hackers, show your "worth" to them (they'll have
collaborated on lab projects with you) and make connections without looking
like a "shmoozer". It will also give you credentials for employment (getting
initial experience), although I'd have zero hesitation in hiring a self-taught
hacker with a degree in Civil Eng (software development is really an
engineering discipline rather than a science).

~~~
hga
" _I personally would_ never _be the first programmer in someone else's
company, many other hackers are similar._ "

Including myself; the one time I inadvertently violated that it ended in tears
(the idiot penny pinching salesman who was the founder tried to put off really
hiring the first programmer until he got at least 1 other programmer ... and
the first got a better offer; I think the only benefit I got out of that was
by the end of it I could port code between subtly different versions of UNIX
in my sleep (1H83)). In that case, it turned out to be impossible to hire the
2nd programmer and the start-up never started up.

As for your sequencing recommendation, I think it's better to learn
foundational CS with something like SICP/6.001 and then reifying it with C
(this CMU course looks _damned_ good:
<http://www.cs.cmu.edu/~213/index.html>). I think it's easier to make your
mental tool box bigger if you can do it this way.

~~~
strlen
> As for your sequencing recommendation, I think it's better to learn
> foundational CS with something like SICP/6.001 and then reifying it with C
> (this CMU course looks damned good:
> <http://www.cs.cmu.edu/~213/index.html>). I think it's easier to make your
> mental tool box bigger if you can do it this way.

Thanks for pointing out SICP/learning a non-imperative language. It's very
important to learn a functional programming language and Scheme is the best
choice because a) it's the language SICP (one of the best computer science
books) uses b) it's "pure-enough" (you still have set! if you need it, but
tail call elimination is a part of the language specification) as a functional
language and doesn't introduce too many other (important, but unrelated) ideas
(unlike Haskell or ML which have strict typing and unlike Scala or F# which
have OO).

I would, however, disagree with you that it should be the first language: it
should be taught before "blub damage" takes place (e.g., before students think
only in terms of OO) but it's good to be familiar with programming and data
structure to some extent (it helps to understand cons cells as pairs of
pointers). C is a great language to _precede Scheme_ : it doesn't force the OO
paradigm and teaches students to differentiate between the value of the object
and the address of the object (thinking in terms of multiple levels of
indirection).

The reason I argue _against_ teaching SICP to complete newbies is because
otherwise students tend to think of functional programming as some sort of an
academic exercise and not as an approach to solve the problem. I am basing
this on actual observations of students that I know at UC Berkeley and at my
own school (where a Haskell based course served the same role). Unfortunately
in general I find that students don't appreciate the value they get out of a
non-"Blub school" ("why am I messing with pointers and recursion instead of
writing GUI apps") until much later in their career ("oh, I know how to reduce
the state to take advantage of all the cores!").

(1) I use "Blub school" rather than Spolsky's "Java school", as teaching C#,
Python or Ruby as _sole_ languages would have the same effect (it's trivial to
learn all of these languages once you already know C and Scheme, it's an
uphill battle do the reverse).

~~~
hga
First on the Blub School note: it's interesting that MIT is now a Blub School
since with the purging of Scheme from the curriculum a student can graduate
having written code only in Python and Java (shades of the changes to US Boy
Scouting that for other reasons drove me out of it, one could become an Eagle
Scout without ever having camped out, built a fire or cooked food over an open
fire). Wrapped in cotton batting, as it were, I wonder if they will even learn
recursion well enough....

This was an entirely political exercise (the command to entirely purge Scheme
from the base undergraduate curriculum), now that I think about it an example
of not letting a crisis go to waste, for the department panicked over the
enrollment crash and SICP was replaced with flashy robots for students to play
with.

Anyway, the old official philosophy was that functional programming should be
learned before imperative (serious OO wasn't even taught, that got added to
6.001 but not SICP later when the OO mania took a firm enough hold); in spring
1983 6.001 Sussman stated with a variation or subset of this famous quote by
Dijkstra:

" _It is practically impossible to teach good programming to students that
have had a prior exposure to BASIC: as potential programmers they are mentally
mutilated beyond hope of regeneration._ "

You _do_ have a good point about sequencing. Many have noted that the people
who learn and appreciate functional programming best are those who have been
thoroughly scared by imperative programming experiences. I for instance took
6.001 exactly 7 years after my start with punched card IBM 1130 FORTRAN "IV"
(only numeric IF statements) and by then a lot more imperative programming
including a fair amount of C, and I sort of got it. I get it a lot more now
that I've gotten many more scars (back then I sensed there was something
really big here, now I feel it in my bones).

I can well believe what I've heard from others as well as you that many less
experienced programmers don't get it when they do SICP early in their
programming careers. On the other hand, there's a _lot_ more to SICP than
functional programming ... and there's pretty much no way to give students
enough scars in 4 years of undergraduate programming so that a late functional
programming course will be certain to "take". So for those who aren't
autodidacts I'm not sure what to recommend....

------
hga
My strong bias is towards getting the technical background.

If you have that, partnering with more technical people is a lot more likely
to work, otherwise the only possible posture that works is blind trust, which
most people aren't capable of.

However this is coming from the son of a businessman who started reading his
_Wall Street Journal_ in 3rd grade, so I've found partnering with business
people to be easy (amusingly, in many of the startups I've worked for I've
helped the point man procuring office space, since unless you have a
background in that area you e.g. have no idea how slow the real estate clock
cycle is).

To finish, when you think of the historical hardware and software long term
superstars many if not most were founded and lead by at least one person with
serious technical chops, perhaps even uber-salesman Larry Ellison of Oracle.

Obvious examples are Bill Gates, Jeff Bezos of Amazon, the founders of Google
and the Chairman/CEO they picked, Ken Olsen of DEC, H&P of HP and I'm sure I'm
forgetting many others.

Tom Watson, Jr., who saved IBM with his massively successful push into
computers, is the most famous exception to this pattern ... but seeing that he
grew up in the predecessor punched card industry and undoubtedly absorbed a
lot of technical stuff including most especially attitudes he's got to be a
special case.

As you probably know, the list of technical companies ruined by non-techie
leaders is nearly infinite, but it's balanced at least in part by techies not
getting the business side of things. Can any of you think of major
counterexamples of complete non-techies who massively succeeded over a long
term, including retaining their initial key technical people?

Steve Jobs is the only one I can think of off the top of my head (and he fails
the retention test, e.g. he burned out the Macintosh development team, didn't
he?) but he clearly has unique relevant design talents that make him a special
case.

~~~
mechanical_fish
I've said this before, but: People only think Steve Jobs is a "non-techie"
because he went into business with Woz, next to whom almost anybody would have
looked like a non-techie.

~~~
hga
To the extent I've studied this, which has very little to do with Woz, he
doesn't pass _my_ threshold of "techie".

Your mileage will vary and my information is woefully incomplete, but on the
other hand I sure don't think he's in the league of any of the techies I
cited, although I'm willing to believe he's significantly more technical than
Thomas Watson, Jr. was and _perhaps_ a bit more than Larry Ellison is (don't
know much about that aspect of the latter).

~~~
shadowsun7
What exactly is your threshold of "techie"?

~~~
hga
In this context, the beginning would be designing, building and debugging
(getting to work) a "serious" digital circuit or piece of software. Woz's
analog work, e.g. the critical switching power supply for the Apple, is a bit
beyond that.

I'm not sure how to define the threshold for a digital circuit in those days
(that's not my field, for one thing, and the Lisp Machine ones I was vaguely
familiar with are _huge_ in comparison to a personal computer of that era).

For software, I'm not sure how to define it in words, but "I know it when I
see it" ^_^. Certainly more than "a few thousand lines of C code" ... maybe,
it depends on the code. More than you're generally required to do to get an EE
(sic) degree....

However, for Jobs, as far as I know he hasn't come close to the thresholds in
either domain. Famously, he hired Woz to do that block of Atari digital design
work, and as for software, I'm not aware of any programs he's written, and
there's these tidbits for backup:

Woz: "Steve jobs never programmed in his life."
(<http://davidweiss.blogspot.com/2006/10/woz-at-microsoft.html>)

This one may be folklore but it's just too fun not to include:

"It's a pleasure to meet you, Professor Knuth," Steve said. "I've read all of
your books."

"You're full of shit," Knuth responded.

[http://www.folklore.org/StoryView.py?project=Macintosh&s...](http://www.folklore.org/StoryView.py?project=Macintosh&story=Close_Encounters_of_the_Steve_Kind.txt)

