

Ask HN: Non-CS/EE hackers? - rmundo

I got into Mechanical Engineering, stayed in it a few years longer than I should have because I wasn't too shabby at it. Now I write aerospace software for a living and code for fun in my spare time. Probably like many of you, I have lots of itches to scratch and ideas about products people might want. But I'm very aware of my lack of a CS background, and it's a constant factor in thinking about what I'd like to make and what I actually <i>can</i> make.<p>It seems like the majority of people on HN are CS majors or started programming at a pretty young age. I'd like to hear stories about people who "switched" or caught the start-up bug after investing in an un-related degree. Is there often a feeling of being at a disadvantage? Were you able to find a way to use your domain knowledge later on?<p>Thanks for sharing!
======
jacquesm
How about those that don't have degrees in anything?

Computer programmers (good ones and bad ones) come to programming from all
walks of life.

My personal collection of 'interesting' prior subjects are:

    
    
      - a dentist
    
      - a psychologist
    
      - a biologist
    
      - a banker (and pretty high up the ladder too)
    

All of them caught the bug when frustrated with the programs they had at their
disposal. Some started with excel (or even 1-2-3) and worked their way to the
limitations of spreadsheet models, and decided to take the plunge, others
started fixing some small problem in a program they had access to and took it
from there.

It's really interesting to see how many people were _not_ in to computers in
their schooldays that got sucked in to it.

The start-up bug and 'hacking' are two different things though, not
necessarily related.

All of the examples above used their domain knowledge in the different field
extensively and have made out very well because of that. (especially the
dentist, that guy really impresses me, every year he has pretty much all the
dentists in the country send him a check).

~~~
donw
How true this is; deep domain knowledge in a field that is nominally filled
with wealthy people who (a) don't program, and (b) spend money to fix problems
is like an express ticket to success.

~~~
jacquesm
I think it held true in the past, but I'm not so sure about putting that in to
practice today.

The period we're talking about was the mid '80s, pretty much the time when the
PC took off. Conditions that were present in the market then will probably
never repeat, even if you had all this knowledge today you'd find those now
two decade+ old companies very well entrenched, and most of those problems
solved for good.

If you could identify such a niche it would be interesting to see how you'd
fare with todays tools at your disposal.

The dentist guy is a good example, he basically started out writing a ms basic
program under dos to do some basic stuff and over time it grew to be the
standard package for this region. My guess is that for every niche like that
some guy has by now filled it and the company that grew out of it will be very
hard to displace.

------
donw
I may not be the type of person you're looking for, as I started with
programming when I was a kid. Then again, I decided that being a geek was
'uncool' after grade school, and didn't really start hacking on stuff again
until the end of high school.

In college, I got two degrees, one in Math, the other in Japanese, and while
there are some areas where I feel a bit behind-the-curve, overall I think that
not getting a CS/EE degree was the right decision, for two reasons.

One, because a lot of CS programs focus on writing code to satisfy textbook
exercises, rather than in solving real-world problems. While I'm sure the
experience of implementing quicksort in Java is useful at some level, it's a
hell of a lot less important in the startup world than having experience in
solving practical problems in limited amounts of time.

Especially when the solutions to those problems aren't 'known'.

Two, because my college experiences were shaped by a mixture of math and
language-learning, I didn't develop a case of correctness paralysis, which is
a big problem with CS people, in my experience. They get very stuck on whether
or not problems are provably correct, have totally known behavior, and so on,
rather than just thinking about the problem a bit, implementing something that
works well enough, and then improving it, which is much more an engineering
mindset than a CS one.

------
toddc
A lot of people get the CS degree and stop learning or lose the drive to write
or create anything interesting. Who knows, maybe they never had it: It's
easier to take a creative person and teach him engineering than it is to teach
an engineer to be creative.

Me: B.A. English and Classics. I'm getting a masters in CS--only because I
already read/have read many of the graduate texts. I started programming at an
early age, but I wasn't interested in CS because the universities were still
insisting on Fortran and Assembly, and I'm sure Cobol was on the list of
requirements too. Lastly, deep domain knowledge is priceless--no fancy
algorithm trick can beat it. Someone without specialized domain knowledge
can't even envision what he doesn't know.

Success in software and startups is largely determined by one's commitment to
keep learning and trying to improve.

------
count
I've got a BS in Econ w/minor in finance. I didn't take CS or engineering in
school because it didn't really seem interesting - I do it all day anyways,
and wanted to learn something outside of my normal scope of activity, that
would still be relatively useful.

------
csomar
"I'd like to hear stories about people who "switched" or caught the start-up
bug after investing in an un-related degree."

Start-Up are not related to Computer Science or Information Technology. There
are health, medicines, nano-technology... startups that don't deal with
computers or programming. It's simply a question of "What do you want to do?".

If you want to get a 9-5 programming job, a CS degree will help. If you want
to start a start-up, no one will ask you for your background. If you want to
have a deeper CS knowledge, you can just read books or watch free courses
online.

------
gphil
My degree was in Philosophy, and I'm able use that "domain knowledge" in any
situation, but that knowledge is generally more useful to me in a much more
abstract/indirect way than my software engineering knowledge.

I think that the most important factors for being a successful programmer in
the long run have more to do with personality traits, though: work ethic,
curiosity, resourcefulness, inventiveness, etc. than with educational
background.

------
imp
Mech E here also. Spent two years as a design engineer until I made the jump
for web programming. I didn't leverage any domain knowledge though. Light bulb
design doesn't have much to do with fantasy football :)

