Hacker News new | past | comments | ask | show | jobs | submit login
Noob to Ninja Programmer. Possible?
4 points by Major_Grooves on Feb 20, 2009 | hide | past | favorite | 8 comments
Hi. First post here. Please go easy on me! :)

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! ;) )

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.

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.

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.

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.

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!

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.

If it is feasible, where do I start? I've seen plenty "beginners guides to <<insert language>>" etc., but they are all for people who already code. Not complete noobs off the street!

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!




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


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 ..


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.


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!


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.


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.


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.


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




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

Search: