Returning To Software Development?
north.coaster asks: "I haven't worked as a software developer for about 10 years, but back then I was a pretty decent C/Unix programmer. Now I'm thinking seriously about getting back into software development, but I don't have much expertise in the latest technologies (Java, XML, etc.). What are the job prospects for a 40+ year old who has been away from the field for that long? Short of quitting my job and going back to school for a while (which is not possible in my case), what can I do to improve my chances at landing a reasonable job?" Yesterday Slashdot was asked "Does Age Matter?" when it comes to youngers getting a fair shake in IT. Now this question proposes a look at this from the other direction. You've already got the experience, but you've taken a break from the field for a time and want to jump back in. What things should you do to prepare yourself, and what kind of responses should you be prepared to get?
Since you do not mention what your recent past experience is, my general suggestions are this:
Look for a company in your business area of expertise
Go in as a Business Analyst or Project Leader. You can then move within the organization to reclaim your skills and experiences in the current technology.
Expect to break even, salary wise, at best. You may do better than that but the market is fickle these days. Everyone wants to buy experience in the technology. (While claiming they want business experience)
I find small companies are a better option that larger or contract type work in your situation. Small companies are often happy to let you do more, regardless of what you were "hired" to do. I have found larger companies try to keep everyone in their "job codes", while contract work tends to hire technology.
If you want to lead the pack, I believe you may be better in XML technologies. The market is thinner and just getting off the ground. Someone who has the experience to recognize sale over substance is a godsend to many companies.
Be optimistic, you will be able to learn the technology faster than the person who needs to learn business. In addition, you have a track record (good or bad) that will make people hiring you feel more secure in predicting.
In addition to the other posts, I'd recommend learning an emerging technology. One where there are few, if any, experts available. Something like WAP (which relies on XML). Learn about generating WML (WAP's equivalent to XML) from Perl or Java.
Now, that's quite a bit of learning, as you'll need to learn Perl or Java (focus on Servlets or JSPs for Java--this is how server-side Java is usually done) in order to generate WAP.
Build a little application in your spare time that integrates stock quotes and Slashdot headlines. This will take a while. All told, if you're spending 2-4 hours a night on this, you're looking at 3-6 months, I would suspect (learning curve included). When you're done, start applying for jobs doing WAP programming. There aren't tons now, but it's growing exponentially. And the good thing is that there's a much higher demand than supply. Oh, and if they question your abilities, you also have a demo that fits in your pocket. Bring your mobile phone with you to the interview.
That's just one way. There are lots of emerging technologies. Of course, the problem with any emerging technologies is that they usually rely upon one or more established techologies. Don't be afraid to learn, though. Moving from C to Java might open your eyes up a little. And the move from C to Perl really isn't that great a leap.
--Be human.
Just my two cents, but having had experience with C and C++ before learning Java, Java "feels" more like C than C++. If you can learn well on your own, I'd suggest Thinking in Java by Bruce Eckel, since you aren't a newbie programmer. It isn't really a syntax book, but it helps you understand how to think about problems in the Java way (like getting use to Strings instead of char arrays, as a trivial example; using objects instead of functions to organize code as a less trivial example). For a syntax book, definitely check the Java (tiger) book by O'Reilly, and the companion Java Examples book.
XML is kind of a nebulous field. Sort of like HTML in the 96-era, it is far from certain how some of that stuff is going to settle out. Moreso becuase by it's very nature the XML you use on the job may not be the XML some other company is using, so you sort of have to know what you're going to do with it before you start learning it. "Just XML" by John Simpson is pretty good as a general overview from first principles. The XML pocket reference by ORA is also good; and I'm looking forward to reading their Learning XML book too (think it was just published).
Also, keep in mind that Unix and C are still very valid skills to have[1]. Searching on dice.com or monster.com will surely underscore this (alhough Java and XML are of course nice icings to have). If you want to brush up on Unix cheaply, get an inexpensive used x86 box or use any spares you might have combined with a free unix like *BSD or linux (www.cheapbytes.com for uber-cheap media, www.used-pcs.com is a local (Austin, TX) store, good example of how cheap a perfectly capable machine can be).
Of course if you have a hard time learning on you own (I sort of do, I didn't really grok java until I tooks some classes on it), there is always local community colleges and/or tech training classes. The advantage here is of course flexible scheduling.
Take this next statement with a grain of salt, as I just turned 23: I think that a lot of the old-worker-bias-in-tech is sort of self-inflicted by the older workers. I know that as you get older and have a family and stuff, you may not have as much flexibility as somebody my age to learn every new tech that comes down the pipe. But taking a class or two a year can't be too impossible. In other words, if you're whining becuase nobody wants MVS or JCL or whatnot wizards, well, what can I say but that you've had a good 10+ years to realize that those things were falling out of favor? Keeping reasonably current may just mean looking at the job ads in your area every six months or so to see what the trends are and then taking a class at night or buying a few books if it looks prudent to learn a new skill or two... Programming is technology-driven, but there are I think many things in the field that are made considerably easier by the maturity that additional experience (both with managing a project and time[2], like a professional engineer, and with thought patterns like "oh, well, X alogorithm is a good idea for this data, hmm, how do I write that in the language du-jour?") brings (much like the concept of "mathematical maturity" whereby the more math classes you've had, the easier they get even if they're in different areas of study because of the common mindset; if thatmakes any sense).
Anyway, best of luck! :-) (last sidenote: www.bookpool.com for heavily discounted tech books, esp. cost-effective if you're ordering multiple things becuase shipping works out to be a fraction of what sales tax would have been)
[1] Of course the unix landscape has probably changed a bit in the ten years you've been outside the field. But probably not so much that you couldn't quickly bridge the gap. Again, free unix to the rescue (x86, sparc, alpha, basically any arch you can name is supported by something free). And solaris is free (x86 and sparc, see ebay for cheap sparc stuff, but you'll probably want a sparc5-170 or better to run solaris 8) to hobbiest folks, as is SCO (x86), as is tru-64 (alpha), etc. (many commercial unix vendors have responded to the linux tide by offering hobby and noncommercial licenses for free or cost-of-media; leaving the only barrier in the form of getting the proprietary HW to run it on). I imagine that to a large extent the changes have been more in user environment than on the programmatic level (yeah hardware has mutated a lot, but C #includes still do the same thing, and I bet printf() wasn't much different then... ;-) ) I think I was looking at a career survey on dice.com and the most frequently requested Unix-type skills were on Linux and Solaris, in that order; followed by HP-UX and AIX roughly tied in 3rd.
[2] the best code in the world doesn't count for shit on a stick if it's released six months late. Language proficiency is, off the cuff, maybe 10% of release time. The rest is all time/project/people managment and skills, something I think many people my age aren't clued into just yet... 80-hour-a-week code binges are a sign of poor managment.
--
Fuck Censorship.
News for Geeks in Austin, TX