There is a lot right, and a lot wrong here with general assumptions.
As someone that has been doing this for 16 years now, I would like to share some experience I have.
Next, being a developer is not really a good career choice because the constant rate of change on this field which makes your skills obsolete after a certain years. How many BASIC developers are in demand nowadays? Compare that with lawyers and accountants. The longer they are in the career line, the more valuable they are.
I have to disagree. I have been doing this for 16 years. I started out with html and moved into perl and php back when php was fi. php and perl are still in demand to this day. as a matter of fact, there are more php jobs online then any other language almost. granted, if i wanted to jump on the new shit i would jump into ruby and python and go, etc.. but as a developer you grow and every new language you learn only HELP you code better. i learned php as a hack, but yet i have coded some nice complex shit in my life and earned some good coin off it. learning python or ruby will only help me. a developer doesn't have a shelf life limited to their language of choice, a loser does.
And i also suggest to look for more as being a developer. As pure developer you are limited - you are limited in a company because
the higher positions are normally not filled with developers. You are the worker not the designer or the boss.
I vote this as well, learn some social and management skills, you will be higher then most of the drones. Better yet, build your own shit.
Make something that is useful to you. That's the best motivation.
^^ this, plus you can earn coin from it.
Personally, I wouldn't start learning how to program by using a framework like rails. I'd first learn ruby (if that's the language you want to start with) and all the programming concepts rails uses before using rails. When you start using rails you should be write rails. By doing it that way you'll really understand the core concepts of programming and common design patterns.
After that when you start learning a second or third language I'd say it's okay to dive into a framework, because you already understand the concepts involved. You'd just be learning the syntax and nuances of the new language. For example using something like django would be fine, because once you learn the syntax you could write django if you had to.
Personally, I'd suggest learning python first. You might be leery of the white spaces matter issue, but with a proper IDE it's really a non-issue. It's also an extremely simple language to learn and there are online courses you can take for free to help get you started. I'm not knocking ruby I just think python is a better language for beginners. I have no real facts to back that up it's just how I feel and I'm sure other people would disagree with me.
That is 100% incorrect. You can make a great living as a programmer. Personally, I've made a little over 100k a year just as a developer when I was doing it full time. I can still to this day go back to being a developer and pull that kind of salary, because I'm good at what I do. If you're a shitty developer with no social skills then yes you're correct. If you're a good developer with decent social skills you can make a good living. I pretty much maxed out my earning potential by the time I was 23, but that's not a bad thing in the grand scheme of things. Most people would give their left nut to make that kind of money. Personally, I wasn't happy with it so I went on to do other things. However, those other things did involve programming even if it wasn't the core part of my business.
^^ i agree with this, but what you earn is also relational to where you live if you get a "normal job". In the midwest/southeast, a .Net or PHP developer would be "lucky: if they got $40k a year, whereas the same person doing the same job in Toronto makes close to $85-$90k a year. Learn to work remote or learn to move to a big city.
I've been all over the place, but I would recommend something a bit more versatile like Python over Ruby.
3 months isn't enough to master Rails, or Ruby, especially not both.
I think you are asking the wrong question; what do you want to do? That will give you a direction to figure out which language to code in.
I can't say learn X over Y, I want to learn to be a better coder, not a XYZ coder. However, I agree 3 months is not enough time to master anything at all. Even doing this 40 hours a week, it is going to take you more then 12 months to really master any language, if not more. I don't care who you are.
Have you looked around at what companies pay junior developers? They'll start you at probably $30k/year, which is only $2500/month pre-tax. You'd make just as much if not more running forklift at a warehouse, without having the 6 - 12 month learning curve, the constant overtime / homework, and a boss who doesn't understand your workload but still rides you.
Freelance is a possibility, but lacks stability. I wouldn't bother with sites like oDesk or eLance, as they're a joke, and just a race to the bottom. Browse forums like WF and thousands of others, and you'll always see people needing some development work done. Also maybe contact a bunch of web design companies and freelancers, as alot of times they're looking for good developers to partner with. They're good with the design stuff, but need to pass off the development aspects of projects.
Start with a low wage, around $20 - $30/hour. Globalization has taken effect, so you're competing with people from all over the world now. If you're good, people will come back with return work. As your work load increases, so does your hourly rate. If you're a really good and efficient developer, there's people out there who'll pay $100 - $150/hour for your time.
Other option is packaged software, whether that's an SaaS solution like WordAi, or a distributable like xMarkPro. I've been doing development for 12 years, and I can quite safely say that's where the money is. If you have a good product, and get the word out, you can be making money off it for years. It's nice waking up all refreshed, check your e-mail and see a bunch of new PayPal e-mails. Just keep your eyes and ears open, find a hole you think you can fill, develop a product / service, and push it out.
Good luck!
^^ good god I agree with this. Jr Developers ( and even heavily experienced ) get the fucking low ball pay depending where you are and who you work for. The jobs are just not there in certain places and the remote jobs get picked up fast. Building your own shit is a for shit bet though if you can hang in while doing a normal job.
I am not saying you cannot make a good living from being a developer. I am saying you cannot make it a long term career.
^^ I don't know about that, I've been doing it for quite some time myself ( along with Internet marketing ). Good developers adapt and solve problems ( like learning how to adapt themselves to change ). I know a lot of guys that have been developing for 20+ years.
I love to create. I specifically have an interest in web applications. I have a feeling as my learning advances, I'll find myself in the middle as a designer/developer and I'll have to specialize (from personal experience, I like to take on both aspects). Chances are I'll choose dev > design.
I did some research into the Python vs. Ruby (or more specifically, Django vs. Rails). Ultimately, I like the Ruby route (not just for Rails). Saying I continued a path towards a professional Ruby developer, what kind of career opportunities are common beginning at the intern level, and how quickly can a new Ruby developer find himself over the $60k/yr mark?
Very black and white question, just use it as a frame of reference. I'm making some long-term decisions based on your quality input, so thanks again.
You sound an awful lot like me. I love to create. I was going to be an architect before I was online. A $60k a year job? you can find that tomorrow almost if you hustle. If you only want to rely on your skills, I would say at least 1 full year plus a couple gigs under your belt.
Hmm... I have been all over the place and am now head of IT.
Being a dev long-term is for some people, but those are rare. The excitement about every detail of new technologies wanes with age, so be prepared for that.
Do I love building things? Hell yeah, and I still code in private.
However, leading a team of developers gives me much more power to build new stuff than I'd have working as a dev.
BUT...
The years spent as a dev give me the solid background I need to get things happening.
If you love building web stuff, build your empire-building software.
::emp::
^^ this, so much like me too