

Noob to Ninja Programmer. Possible? - Major_Grooves

Hi. First post here. Please go easy on me! :)<p>I know nothing about programming. I wouldn't know the difference between Ruby on Rails and
Python if it hit me in the face (remember - go easy! ;) )<p>I'm wondering if it's possible/feasible, for me to teach myself enough programming to start
making some software/website prototypes? This is from a starting point of knowing _nothing_
other than a little HTML and having some laymans appreciation of MySQL databases.<p>Thing is, I feel like a frustrated programmer. My actual training is a PhD in genetics (so
I'm not thick, innit!). This is intensely annoying, because I keep having "internet start-up" ideas. 
I know my ideas aren't too bad - as most of the time when I start researching them, I
realise someone else has recently started the same thing! However, most of them are the
sort of thing, where if I could programme (should I be saying "hack"?), I could make it in
my spare time and then test its potential. As I can't programme, all I end up doing is
getting frustrated - kinda like a burning feeling inside.<p>I have, kinda by accident, worked as a project manager on the re-design and re-launch of a
"business intelligence" tool - essentially a reasonably complicated database with business
information in it. I do enjoy all kinds of web-geekery, and I think I have a good
appreciation, if not understanding, of the technical aspects of web-apps, web-design,
databases and, to a much lesser degree, actual programming.<p>I'm trying to persuade the programmer, with whom I worked on the above project, to join me
in a start-up, but I'm not sure he's that keen. If he doesn't want to do it, I don't know
any other programmers and I'm left with these ideas burning a whole in my head.<p>I just wish I could do it myself. Oh If only I'd been born 10 years later I might have
taken an interest in computers as a kid!<p>So... in your honest opinion, is it possible enough for me to learn in my spare time,
enough programming, to make a prototype start-up website? I don't mean some crappy HTML
page, but something database-backed with some sophistication. Should I just forget it and
try to persuade my programmer friend, or just ditch the ideas altogether? If you think I
will just waste a year and then not be able to produce anything do say. I do realise that
good programmers have it in their DNA and have been hacking since they were knee-high to a
jumpy thing.<p>If it is feasible, where do I start? I've seen plenty "beginners guides to &#60;&#60;insert
language&#62;&#62;" etc., but they are all for people who already code. Not complete noobs off the
street!<p>If it's not possible (which I doubt it is), where does a man with ideaz and no skillz turn? If I had a bunch of cash I would pay someone to create my visions!
======
JeremyChase
Every programmer started as a 'noob' so it is absolutely possible to do so.
The question is how much time you have to devote to it.

It sounds like you really want to do this so I encourage you to try. If I were
starting out I would just focus on a single language and not worry so much
about a Framework. For example learn Ruby, not RoR. Personally I prefer PHP,
but I know Ruby is just so popular.

However, it takes brilliance or years of experience to really be able to build
things well. In the short to medium term I think you could expect to build
working prototypes on your own, but if you want to build scalable systems fit
for users it will be a challenge. That said, the more you know the easier time
you will have working with other tech people.

Good luck, Jer

------
triplefox
It can be done, it depends mostly on how you like to learn. You will never see
a lot of hand-holding in programming.

Manuals and references for programming languages tell you about the syntax and
major features but demand endless curiosity on your part to answer your own
questions. Tutorials may give you how-tos for certain specific problems but
usually fail to explain basic concepts. College courses usually give both how-
tos and conceptual information but are usually targeted towards the abstract.
In all cases you have to provide the "sweat equity" of writing stuff, failing,
testing, retrying, etc.

The most well-rounded introductory literature I've seen is in textbooks. Other
programming books are aimed at existing programmers that are transitioning to
new languages, learning new concepts, etc.

My suggested starter set for someone intending to write web apps would include
several textbooks, a book on SQL, the reference to the web language you wish
to use(don't fret too much about this, it's almost a coin toss when you
haven't tried using any), and a book on web frameworks for your language. The
textbooks will often want to use languages that are not popular web languages,
but that can be a benefit, as it teaches you what is really different between
these languages, and how to focus on the concepts.

You can start by making sense of the things described in the textbooks and
rewriting their examples in the language you want to use. Gradually the
frameworks will look more approachable and you can start working with the
examples in those. At that point - some months down the line - you may be able
to get serious about your app.

------
dusklight
Of course it's possible!

But recognize the uphill battle you are going to have.

To get to the level to be an actual real programmer in an actual real startup
producing code that doesn't suck, if you start now, and spend at least 4-5
hours a day every single day coding, and you really happen to be a genius ..
optimistically, you will get there in maybe 4-5 years.

The "real" hackers took much longer to get to their skill level .. I would say
most start around middle school? Guys you agree? (I started when I was 12) so
that was when I was a kid and could sit in front of the computer for 10+ hours
straight .. I am guessing as an adult you don't have that much time but you
have also the intellectual maturity of an adult so you can get there faster
than the kids.

I don't think it's a DNA thing .. although some argue that understanding
recursion is a "talent". I think you just have to allow yourself to think in
new directions and you can do it.

If you just want to hack out a quick me-too webapp in Rails you won't need
that long. it's theoretically possible, if you have a really good idea, for
you to come up with a website that works well enough for you to make some
money. Then you can hire someone to do the real work.

Just understand what you are asking to do is equivalent in terms of amount of
work to the kind of commitment it would take from you to get another phd. If
you aren't willing to make that kind of commitment maybe you can trick some
programmer to do it for you ..

------
eugenejen
I am going to tell a real story about someone that I know to refute the
general conception that "You are too old to learn new tricks".

He is a friend of mine. He was a jazz drummer when he was young and a
professional recording engineer. He only has a GED but he has been self
educating himself all his life. He masters logical reasoning more that most
C.S. students due to his love for philosophy. And he has two kids to raise.

He wanted to learn computer programming and he went to a tech school like
Chubbs institute. His first programming language is Cobol at the beginning in
1998. He was close to his 40th birthday then. But he wrote all exercises and
was a responsible student. Then he learned C/C++ and all sorts of Microsoft
Windows programming skills. He event wrote programs in his spare time just for
fulfilling his curiosity about chaos theory, cellular automata and all sort of
things. He is now a very excellent software engineer in his 50s in building
Windows applications for his employers. Though he is not as well versed in
Algorithms like those fresh out of school Ph.D. in CS. But he is capable of
fumbling out pretty good algorithms after he worked through some basic
algorithms, operating system concepts textbooks and grasped the essentials.

Back to your question: I think it is never too late to learn programming.

But consider your story, you have some business concern I need to address:

So if you have time to spend, you definitely can learn a skill to materialize
your vision. But if you really think your idea is a "if you don't do it now
then some else will do it sooner or later". Then you may need help from
others. The dilemma is you have no idea what others is doing unless you have
done it yourself! So you will have higher overhead in communicating out your
ideas to others and vice versa. And because you don't know the skill, it will
also be hard for you to evaluate your partners.

------
Major_Grooves
Thank you very much for the comments guys. Much appreciated.

If I'm honest with myself, I'm probably going to have to accept that everyone
has strengths and weaknesses. You have to play to your strengths and find
solutions to your weaknesses. My strengths are ideas, passion and a good
business sense. My weakness is... well... hacking!

I think I will still give the Ruby a go. I did download "it" a few weeks ago
and played with another tutorial. In the meantime, I'll also try to broaden my
hackers network!

------
andrewljohnson
I think it's really easy to learn django. Just do the my first django app
tutorial and you'll be on your way. Google for _first django app_

It also helps to have a good friend to review your code. And do reviews early
and often.

I learned this way and produced my first blog in a weekend, and I was a noob
then - about 2 years ago.

------
yan
I know this may seem very childish, but give this a shot:
<http://poignantguide.net/ruby/>

edit: my contact info's in my profile, don't hesitate to bug me with
questions, no matter how silly you might think they sound.

------
cpr
<http://norvig.com/21-days.html> (with tongue quite near cheek).

