Recommended programming subfield for job / money?
Get out of the rat race. Leave. Go somewhere where you can have a decent life on a decent wage.
Ask yourself what is your end goal? Money is great, but it's not much use if you never see the outside of an office. If you want a good life (and yeah, you can still have a big house, car, tv, etc if that's what floats your boat), there are places in the world where you can do that on a developers wage (assuming you're good at what you do). Australia, New Zealand, Scandinavia for instance.
Antheus will come into every discussion with tales of unpaid internships and impending doom for any kind of career in development, and I have no reason not to believe him (he's clearly smart guy) but having worked for 13 years outside the US, I can tell you that is anything but the norm.
Hell, even in Ireland, friends of mine are telling me there is plenty of good work in development.
Work for a financial institution.
It'll probably be mind-numbingly boring, the hours will likely make you psychotic, and there will undoubtedly be lots of other disadvantages. But you can't beat the money.
This.
Or insurance, real estate, or other corporations with a high profit margin.
But just remember, money isn't everything. You can be making a lot of money but be absolutely friggin miserable in the process. Quality of life should always come first -- and money doesn't always guarantee happiness. Mo money, mo problems
I think you should always be toying around with new languages and paradigms. If you are used to programming games, try your hand at web development. Any and all of the things you learn will make you immediately that much more marketable. If your sole goal here is a better income, take a look at craigslist or some other job board and try to find something that fits your financial desires and pay attention to what kind of skills they are looking for there. Get familiar with the tech jargon you see thrown around a lot (J2EE, SOA, N-tier, yada yada). Odds are with a lot of the technologies and paradigms you might not be all that familiar with them all -- but you can learn more about them and find experiences in your past that might demonstrate equivalent scale.
Most likely you will have to settle for an internship or a junior level position and you'll just have to work your way up -- but there's no shame in that. That's just how it works. Most of the higher paying jobs require management experience and/or experience with designing large systems that will scale.
Work for a financial institution.
It'll probably be mind-numbingly boring, the hours will likely make you psychotic, and there will undoubtedly be lots of other disadvantages. But you can't beat the money.
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
This.
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
Or insurance, real estate, or other corporations with a high profit margin.
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
But just remember, money isn't everything. You can be making a lot of money but be absolutely friggin miserable in the process. Quality of life should always come first -- and money doesn't always guarantee happiness. Mo money, mo problems
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
I think you should always be toying around with new languages and paradigms. If you are used to programming games, try your hand at web development. Any and all of the things you learn will make you immediately that much more marketable. If your sole goal here is a better income, take a look at craigslist or some other job board and try to find something that fits your financial desires and pay attention to what kind of skills they are looking for there. Get familiar with the tech jargon you see thrown around a lot (J2EE, SOA, N-tier, yada yada). Odds are with a lot of the technologies and paradigms you might not be all that familiar with them all -- but you can learn more about them and find experiences in your past that might demonstrate equivalent ability.
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
Most likely you will have to settle for an internship or a junior level position and you'll just have to work your way up -- but there's no shame in that. That's just how it works. Most of the higher paying jobs require management experience and/or experience with designing large systems that will scale.
[/font]If you mean there's no chance of hitting it big and making millions, then yes, sure that is true.
A possible middle ground is to work for a small startup. It means you don't have to set it up yourself, and other people are working with you, nor do you have to risk your own money, but typically you'll get shares that mean in the small chance of the company doing very well, you'll benefit too (maybe not making millions/billions, but far better than just a salaried job) - I do know one person who did this.
http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux
Do not believe the hype. Start your own business. Hire yourself out as a contractor at an exorbitant rate ($50 an hour and up). Know your stuff. Know how to explain your skills. Save as much money as you possibly can (you need to be OBSESSIVELY socking money away) and NEVER stop looking for new clients.
The alternative is to be in debt and unemployed. There is no way to avoid this no matter how skilled you are and no matter how cheap your rates. Give the employer what they want: a no-obligation temp with top of the market skills, then charge them a ridiculous amount for it. Jack your hourly rate into orbit, then double it. Always be prepared to be working somewhere else next Monday, because you will be anyway.
Sorry if this depresses you but being depressed now is a lot better than being unemployed later. All the best.
Reality check. You won't get a raise. Ever. You won't get promoted. Ever. Your job is a temp job even if the employer says otherwise.
Do not believe the hype. Start your own business. Hire yourself out as a contractor at an exorbitant rate ($50 an hour and up). Know your stuff. Know how to explain your skills. Save as much money as you possibly can (you need to be OBSESSIVELY socking money away) and NEVER stop looking for new clients.
The alternative is to be in debt and unemployed. There is no way to avoid this no matter how skilled you are and no matter how cheap your rates. Give the employer what they want: a no-obligation temp with top of the market skills, then charge them a ridiculous amount for it. Jack your hourly rate into orbit, then double it. Always be prepared to be working somewhere else next Monday, because you will be anyway.
Sorry if this depresses you but being depressed now is a lot better than being unemployed later. All the best.
I hope to hell you're being deliberately hyperbolic and don't actually believe this.
I know plenty of programmers - myself included - who work "corporate" jobs and have no problem with job security, promotions, raises, and so on.
As an interesting data point, I personally freelanced for a number of years before giving up and joining the rat race. I'll never go back to contracting, and if you're genuinely interested, I'd be happy to lay out why.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]
If someone offers you 200k
Just an example, I did think that no one will think about this sort of money as an entry-level salary though;)
[/quote]
The most effective way to get a pay increase is to switch employers[sup]1[/sup]. Gone are the days where you work for one company for your entire life. It doesn't matter if your pay is capped at X in your current job if you can switch jobs and get X+n. The important thing is to do things which will make said other employer want to hire you when the time comes and if your current job isn't making you more employable over time, then it may be worth leaving a little earlier than you otherwise would or engaging in open source projects or anything else that makes sure you'll be valuable enough to other employers that they will pay more than you currently make.
Also, learn to be a good negotiator. I keep reading about how people consistently accept much lower than the company was prepared to pay because they accepted whatever the company offered without negotiating properly.
[sup]1[/sup]Employers will give you pay increases if they're any good at all, but often switching will give you larger increases and sooner. If you really like your job and the people you work with and your employer does give you reasonable room to grow and increase your earnings, then by all means stay!
As an interesting data point, I personally freelanced for a number of years before giving up and joining the rat race. I'll never go back to contracting, and if you're genuinely interested, I'd be happy to lay out why.
I'd be interested to hear why, though I suspect I know already, since I've done both contracting and corporate employment myself (and am now doing a startup).
- Running a self-employment business is a huge amount of overhead. There's a lot of business administrivia and other garbage that goes along with it, and it detracts from doing what I want to do - programming.
- Finding clients can be extremely hard sometimes. I worked through my entire pool of contacts and essentially worked myself out of a job by doing excellent work and not needing maintenance/follow-up support very often. In the lean times, this means a lot of ramen noodles and frozen pizza - not my thing. It would have cost a huge amount of money to jump-start the next "tier" of networking and develop a broader range of contractual options, and at that point I already had two job offers on the table, so why bother?
- Most clients hiring contract programmers are looking for fast band-aids. I'm more of a holistic solutions kind of guy - I want to solve your problems, and do it right, not just slap a few haphazard bits of logic into your business framework and call it good. As I noted above, I'd rather do a good job than come back and do maintenance for a client 5-10 times a year. That doesn't really work with what most people are expecting, because it's more expensive up-front even though it's a lot cheaper in the long run.
- Hopping clients all the time means you can't stick with the good workplaces - you have to take a lot of bad workplaces too. If you find a great place to work and they decide you're done after 4 months, well, too bad. I wanted a job where I could sit down and enjoy a real workplace for a nontrivial length of time, and have some measure of guarantee that I could still come back after a few months.
I guess you could just say that the lifestyle didn't suit me.
There are other factors, too. Part of contracting is maintaining a client network, and part of that is letting people talk about you a lot. One good way to get new clients is by word of mouth: client A has a good experience, tells client B about you, and poof, more job opportunities. This is a double-edged sword, though. While it does net you new work, it also means that client B is going to have a certain set of expectations about you - including things like rate. If you start in a market with a low rate to help encourage business, word gets out that you're cheap, and it can become extremely difficult to increase your rates without starting to annoy people. This is where the business overhead comes into play, because really you should be putting your rates under non-disclosure clauses or something similar to protect from this sort of problem.
People talk, a lot, and sometimes that means that bad news travels fast. Nothing is quite as depressing as being turned down for a gig because the client heard about some other contract you were on where things went badly. Most of the time (for me at least) bungled contracts were nothing close to my fault - in fact I fought hard to save several projects that I can think of offhand. But when a client has a bad experience with a contractor, no matter what happened, the contractor is blamed. This means that if you have the misfortune to take on a job for a really... let's say, less than competent client, and things go south, you now have a black spot on your record even if you were totally heroic and almost salvaged the situation.
Last but not least, there's issues like non-salary benefits. I hit a point in life where I really missed having insurances and retirement plans and all that good stuff, and getting into the corporate world really helped with that.
So all things considered: as I said before, I'm not keen on ever going back into contracting. Across the board my quality of life is much higher holding down a regular job.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]
Reality check. You won't get a raise. Ever. You won't get promoted. Ever.
Except that this is not true. Not for jobs.
Your job is a temp job even if the employer says otherwise.[/quote]
If working helpdesk or similar, then it's more likely to be like that. But that's not majority of people.
($50 an hour and up).[/quote]
That's barely above McD rates. That's not high. That's miserable.
Effective tax rates are on the order of 40% Add to that business expenses, such as accounting, rent, etc and you'll be at $15-20 net income.
Consultant rates billed to customer start at $70 or so. Those looking for lower have better options in the $20 range - can you make living off $8/hour that makes to you? Or are you willing to forego taxes and such stuff.
But at same time, expect for sole freelancer doing technical work to top out just there ($70). Anything more and you'll need several diverse employees, accountant, lawyer and much more.
Ignore this if you're in mid-twenties with no dependants and such. Things are vastly different then and employers take that into account.
Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]