I'm about to quit my job to learn to program.
quora.comWow, the advice on Quora is really poor here. Here's the second highest response (in part):
6.TOP TECHNICAL CHOICE: Look at Javascript / Coffeescript. Why? Technology Trends: What are the most 'future friendly' web application frameworks to select in 2011? ... Javascript is easier to learn than Ruby or Python and runs on significantly more platforms that matter, ...
WTF? They're completely different kinds of language technologies with very different canonical uses. After spending a bit of time reading I'm convinced that most of the people there haven't actually written any code and only read PG's essays.
I don't think it's such bad advice. Javascript and Ruby/Python have a lot in common underneath their surface differences and with server-side Javascript on the rise their problem domains are becoming increasingly similar.
Javascript also has the advantage that you don't need anything more than a browser to start learning it and that you can easily visualize what you're doing. It's not my favorite language but I think it's a good first choice.
It's a great first choice, but Javascript on the server is extremely rare, despite the popularity of some very useful frameworks. Anyone giving advice to someone who is quitting a job and learning programming certainly isn't suggesting server-side JS and if they are they are almost certain to be explicit about it, since few resources will mention it.
I think this persons advice will lead them immediately into a point of confusion as they will think that Ruby/Python are actual alternatives to JS. So if this person has some frustrations with JS are they then going to say, well I guess I'll try to get Ruby working in the client... hmm... Ruby in the client doesn't seem to work here. That guy said that Ruby isn't supported on as many platforms so maybe if I change browsers/OS I can get it to work. Hmmm... that doesn't work either. Oh, it turns out that canonically they're used for completely different things!
Ruby and Python are certainly good first choices, but I don't think that Javascript is a bad choice. It may be rare on the server-side today but with the momentum it's building I think it may be a lot more common by the time a beginner is ready to write something non-trivial.
Any working dev is going to have to learn Javascript sooner or later so you may as well start with it, IMO.
I don't really like the endless discussion about what languages are suitable for beginners or not. I think PG's advice is spot on: pick something a programmer friend that is willing to answer the occasional question recommends.
As to JavaScript as a first language: it might be popular, but (like Visual Basic) it is prone to misuse and doesn't force (or even teach) good habits to a new programmer in the way that e.g. Python does. Also, the quality of advice in regard to JavaScript varies a lot and so do the example snippets you find online. JavaScript is a nice language (unlike Visual Basic ;), but you need a background in programming before you can use it well. That being said: go for it if you're roommate is a JavaScript buff.
The more dramatic the move the worse it ends, he can very easily stay up an extra hour a night, cut some TV and learn. Looks to me like a basketball player opening a record label...just because some have become rich and famous with it.
I disagree. One hour a night or a Saturday here and there do not add up to the required amount of effort for doing something completely different with ones life. Plus, it's very easy to be too tired or have other interests or whatever. When you burn the bridges, you're going to find out much more quickly whether you have both what it takes and the interest to make it work.
I recently quit my well paying job for exactly this reason. For years, I've told myself I'd learn X or do Y or whatever. Instead, I keep waking up Monday morning and trudging into the same soul sucking job I have. On June 1st, I wake up and get to find out a few very interesting things about myself. You might argue that I've already found them out because I can't find the time to do it now but I've saved enough money to be financially able to. When money is of no or little object, I think the truth will be a lot clearer.
I used the one hour as an example. They are 24 hours in a day and anyone that says "I have no time," is probably lying or not interested enough. Dell was founded in a college dorm and so was Google. Even Obama finds a few hours to go and play golf, basketball or take his daughters for ice cream. This guy wants to quit his job to become a programmer. What programmer? He doesn't know. Money doesn't buy you programing skills, you can learn a lot more with an old 386 computer at home if you truly want, than at MIT if you aren't as motivated.
But there aren't 24 hours in a day, that's the fallacy that people get caught in all the time to keep doing something they don't want because they are afraid. People sleep for 7-8 hours, they work for 9-10 more including lunch and at a minimum, there are now only 6 to 8 hours in a day, M-F if there is no commuting. Even if you have no other commitments and prefer to spend all your free time pursuing the idea of becoming a programmer, you're severely limited from a time perspective.
Your advice might be useful for someone with a wife and 3 kids plus a mortgage and a car payment. This guy is operating from the assumption that money is no object for at least 24 months. You can learn a lot more with an old 386 computer and 10 hours a day than you can with the same computer and 2 hours day. If you have planned and saved well and have no dependents like this guy does, I don't see anything wrong with what he's doing at all.
I agree that a few hours a week is not enough. Plus, having your back to the wall financially is a huge motivator.