Decisions
As I walked out of work with a soon to be ex-coworker, talking about the future, he mentioned that a friend of his was still working on his degree. After digging a little more, I learned that this guy is working writing loaders in java, while going to school part time. His employer is paying for his education and allows for a flexible schedule so he can attend classes.
Why is this important? My plan is to return to school part time in the fall to finish up my degree in either computer science or software engineering and will take about four years to complete. So the question this discussion brought to mind was, do I make an effort before the fall semester to find a new job, with a flexible schedule, tuition reimbursement and a management team I enjoy working for?
My current job offers me a regular paycheck, some sense of stability, tuition reimbursement up to $1000 or $1500 per year, and a pseudo flexible schedule. With more detail, I am paid in the bottom 25 percentile of all software engineers in Dallas with 6 to 8 years experience; the stability can hardly be guaranteed for the four years it would take to graduate; the tuition reimbursement is less than the cost of one semester of classes part time; and the flex in flexible is being able to leave at 4pm. I also have standard medical insurance, 15 vacation days, 6 sick days and 5 holidays per year.
For comparison, the other company that started this thought offers 20 PTO, 10 holidays, $5,000 tuition reimbursement, flex time, telecommute, decreased hours or any other arrangement that your manager agrees on, career training, preformance bonuses, stock options, employee product discounts and stock trading would not be restricted.
I am almost sorry I looked that up.
So here are my options. I can drop my math review for the time being and start studying java or C#, the two big programming languages in demand right now, and hunt for a job at a mega corp that has similar benefits to the one listed above. Or I can keep my nose to the grindstone for the next four years where I am at, and drown out my misery at work with an increased work load.
The decision seems obvious, so it really is a matter of if I can find what I am looking for. I loved Java for about a year when I worked with other people taken in by the hype and they hyped it to me. Back then, it really was hype. Java was slow, the AWT was kludgy and it was difficult to do a good job. Java sucked, everyone would realise it, and move on, so I thought. Yes it sucked, so they started fixing it. After leaving Motorola over six years ago, and not keeping an eye on java, it has now got some really cool things going for it, and it has mostly stopped sucking. Brook and I both have java apps we use on a regular basis, and they are just good, something I would not have thought possible until recently. The other option is going the C# route. Visual Studio.Net’s C# IDE is just amazing. It totally rocks. Either path I am probably going to have to develop on Windows for the first time in my career. After eight years of Linux, Solaris, HP-UX or Irix, it just seems strange trying to develop on Windows. How do you do it? I have already accepted the fact that my two code windows, one database window, one log window and one root window is unlikely to make the transition. Someone is going to have to teach me an effective development methodolgy to do work in windows. I think the world of Windows alt-tabs a lot.
I would really like some input on this next thought. My current mindset is to learn java and pass one or two of the certification exams. My resume lacks professional java development, and I am thinking that maybe a certification or two will get me into an interview that I would have a tough time landing right now without a voice into the hiring manager’s ear or out right lying on my resume. Does this sound reasonable? Is there a reason C# would be a better choice?
Another reason java is my first choice, C# guarantees that I will be working on windows. With java there is a shot that the backend will be on a unix box. Backend or middleware is where I would like to stay. Leave the frontend to the make pretty guys who give a shit about round.
