Advice: Just because you're not a "rockstar" or haven't been doing it since you were twelve doesn't mean you can't compete.
I have been programming for a living since the early 1970s - still love it and frequently try to talk friends' kids into considering computer science or engineering.
One thing that has been especially fun: I have become a pseudo-expert in a lot of application domains over the years. This is sort-of like changing careers frequently, keeping the working experience fresh.
When I was 16 (ten years ago) I had an IRC channel about a very specific genre of music. I thought it would be cool to also have a website about it. So I used one of those geocities type of services to host my first website. I started doing reviews and listing upcoming concerts and stuff like that and soon I found my self maintaining a music website (rather than an IRC channel website). I started learning HTML & CSS, reading A List Apart and articles by Zeldman, Bowman, Mayer Molly and 456bereastreet. That's when I really got into web standards (when CSS Zen garden was created) and unfortunately started focusing more on the technology rather than the contents of my site.
When I was at uni. I dropped my side-project due to studying and stuff but kept reading & learning about what's going on. That was ~2004 when table-less designs were all the rage. To some extend I regret focusing more on the technology (HTML, CSS, Javascript) instead of my goal (the music website) but I'm glad that I really know "how to make websites".
What I carry in my pocket (an ipod touch) is orders of magnitude more powerful than that mainframe was.
I mostly copied programs from Compute! and Byte magazine, but started writing my own things once I got the hang of it.
I liked games, but I was never really a game programmer. Most of my apps were and continue to be for businesses. I helped my dad write an app for his TRS-80, the handheld version, that calculated labor for tying rebar.
I think rails would be a great way to get started, but they abstract a lot of important pieces, that you'll eventually need to understand to be a good developer.
But nowadays, what I really think amazed be, and still does, is the way we are able to go from a thought to its implementation through the use of a programming languages in about no time.
Think of any other field other than software engineer where you can go from hypothesis to modelling and then testing in about a few hours or days ? There ain't many. (On a side note that's why its becoming more and more prevalent to use programming to model and study real world situation ; e.g. economics, standing-ovations, etc ).
I agree that the field is fascinating and I am having a hard time focusing on my classes as a side effect.
I've read a lot of blogs that directed me towards certain books and tutorials. However, I'm curious about how people start from 0.
Try to think short term here since you probably won't be full time on that, and so it won't replace your job in the short term -- i.e. get a goal that is both easy and fun to you
2- Choose a prog lang
Depending on what u want to do in the future with your skills, you'll choose another language.
For that, either ask around or here in HN I guess.
3- Google [language] tutorial
4- then Google [language] [goal/project] tutorial
glhf !
Therein lies the reason why you haven't gotten it yet...
If I told you I started in the mid 70's at the age of 8 with a teletype on acoustic couplers, it would only be a matter of time until someone older than me came along to tell us how I had it easy.
I can't speak for anyone but myself, but my drive has always been the same; I am absolutely fascinated by the prospect of making a machine do what I want. I'm just totally enamored with the very idea of it, and I always have been.
The current nudge could be wanting to build something, or wanting to fix something, or wanting to change something, or even just messing around to see if it explodes. The current nudge might be a friend in need, or a boss looking for results. It doesn't matter. The current nudge could be anything since the underlying fascination is always the real motivation.
Most all people sit around being annoyed by their software and hardware because it is beyond their control, or more accurately, they let it be beyond their control. You can see their frustration in the endless drivel of rants on the Internet. The rants fix nothing. The only way to ever solve the problem is taking control and making the machine do what you want it to do.
Today I finally figured out how to prevent firefox from loading CSS by default, along with adding key bindings to selectively load parts of CSS (in page style, same-host style files, 3rd-party style files, ...) when they are absolutely necessary. Some people thing CSS is a good idea and should always be forced on by default, but others disagree. Those opinions don't matter. What matters is I made the machine do what I want to meet my own needs. It was a fun challenge.
Many people would say I wasted my time... --They don't get it.
Many people would take offense, yes, seriously. By removing all CSS I basically just said all the UX/UI "designer" weenies are useless. I essentially deleted all of their "hard work" by making the machine do what I want rather than letting it do what they want.
When one is unable to make a machine do what one wants, the problem is not the machine, instead, the real problem is the person. Yes, the person operating the machine is ALWAYS at fault for the machine not doing exactly what the person wants.
I know exactly who is to blame when a machine is unable to do what I want it to do.
Do you?
I grabbed a copy of turbo pascal 3.0 and began figuring out how to program.
I ended up creating a silly little DOS text game that involved trying to make a smiley ascii character collect diamond ascii characters. If I recall, you had to avoid the ever-so-dangerous asterisk bad guys.
I've been unemployed for about a year. I picked up the O'Reilly Series of book for Web Development, and built my first site, which aggregates viral youtube videos.
It wasn't as hard as I expected. Now I'm teaching my 10 year old nephew how to build his own site. And we're both learning how to build apps for the iphone & android.
I’m more of a designer than developer now but I still appreciate what I’ve learned during that time, makes it easier to communicate ideas with hackers easier.
And learning was like this:
1) Reading a book and reading tutorials online
2) Asking question in forums
3) And asking people through skype. Half of them blocked me :) However, it was worth.
Good luck and don't give up when you face a problem.
Nowadays I do mainly PHP
I don't know why. Because I could, I guess.
Not sure what the librarian though of it...