Long time lurker.<p>Of late I've come to realize that I should have done computer science. I didn't, and studied engineering instead: now I find myself in a (good & hard to get) post-university industrial career, but ultimately uninspired and dissatisfied. I by no means hate what I'm doing, but I can feel my inner hacker bursting to get out frequently (e.g. today as I tinkered around with some VBA at work i enjoyed—pathetically—the most satisfying part of the week so far!)<p>I have a semi-relevant background, in that alongside engineering in university I did a lot of freelance (frontend) web design, and developed a real passion for UX, design, typography, etc. I am also very numerate and have a basic grounding in programming (C, Matlab, Basic). My dream would be to be involved with a web app startup.<p>The long awaited question is: how best to proceed? Should I learn Python or Ruby and brush up on my front end design again, and attempt a few small projects in my non-work time? Should I quit my job tomorrow and go back to university for computer science? Can the hacker ethic find a home outside computers? Are faraway hills always greener?
Code, code, and then code some more.<p>I've read quite a few similar posts over the last few months and that has been the answer almost every time. Can't say I disagree.<p>Going back to school will take years, cost you some good chunk of change, and when you're finished you'll likely look back and realize all the programming you learned was in your spare time anyway, not due to class.<p>Pick a language/framework, a project, and start learning.
What kind of engineer are you? You mention having foundations in C and Matlab; is this something that you would be interested in building on or do you want to leave the engineering world completely? I spent a lot of time hanging around the Image Processing / Computer Vision lab during university and pretty much everything they did was in Matlab and C / C++ (ImageMagick and OpenCV).
You don't need a compsci degree to do web development. Learn python and pickup <a href="http://www.djangoproject.com/" rel="nofollow">http://www.djangoproject.com/</a>. Sure there are many alternatives, but beginners often are overwhelmed with choice. Take those two and go build!
Can you make your existing job more hacker-y? Can you work your passion as a hobby, for a non-prof etc?<p>If your dream is to be involved in a web app startup, polish your skills, start small and start one.<p>Don't quit your job because of that though.
Im not that good at just reading about a language or going through tutorials. I typically have to have a target project to keep me focused and use that to learn new languages. Decide what you want to build and start building it.
Sounds like you may be in a good position to do a startup that makes life easier for people in your profession. There's always need for good designers, too. Give your skills a go in the freelance world and see what happens.
I asked a similar question recently and the best answer I received was to start coding on the side, then once your side project can bring in an income that matches what you make now, you can pursue it full time.
If you already have an engineering degree and you are numerate, then pick up Knuth and start reading. After that, Abelson/Sussman.<p>It is advisable that you do this <i>before</i> picking up "Learn Ruby/Erlang/Clojure/node.js In 13 Seconds" or whatever the latest shiny toy is that the startup groupie kids are fapping to this month.<p>Between Knuth and Abelson you will have a solid foundation that 90% of web app hackers lack, and will likely be capable of becoming good with whatever tool you choose to use.