Ask Slashdot: Best Approach To Reenergize an Old Programmer? 360
StonyCreekBare writes "I started out programming in Z80 assembler in the 1970s. Then I programmed in Pascal. Then x86 Assembler in the early '90s. Over time I did a smattering of C, Basic, Visual C++, Visual Basic, and even played at Smalltalk. Most recently I settled on Perl, and Perl/Tk as the favorite 'Swiss army Chainsaw' tool set, and modestly consider myself reasonably competent with that. But suddenly, in this tight financial environment I need to find a way to get paid for programming, and perl seems so 'yesterday.' The two hot areas I see are iOS programming and Python, perhaps to a lesser extent, Java. I need to modernize my skill-set and make myself attractive to employers. I recently started the CS193P Stanford course on iTunesU to learn iPad programming, but am finding it tough going. I think I can crack it, but it will take some time, and I need a paycheck sooner rather than later. What does the Slashdot crowd see as the best path to fame, wealth and full employment for gray-haired old coots who love to program?"
Modern Stack (Score:5, Interesting)
I think you just need to add a modern stack to your resume and put out an example project on github, you'll be ready to find work. The stacks that people are hiring for right now:
A solid web application based on bootstrap.js in any of the first four frameworks will get you an interview. A sample application for IOS should as well, at probably any one of your local agencies / design firms / app shops.
If I were in your shoes, I'd skip the big enterprise languages, like Java / C# -- if you like Perl, you're going to hate working in those languages, and much of the work in those languages sucks, to be honest.
My money-shot idea: learn kdb+ and q and go pull in $250k a year working for a hedge fund / investment bank. Also, it's fun and brain-bending.
To Re-energize an old programmer (Score:5, Interesting)
I find myself in a somewhat similar situation, except that I started with IBM 650 machine language, then the SOAP assembler, back in the later fifties, then for a while was a wiz in FORTRAN, so have been programming for 54 years now. I found that same natural evolutionary path through Perl a pleasant adventure. Forget the money. Forget the fame. Take that early retirement at 60 to collect the government pension, minimize the lifestyle if you have to, and just enjoy programming as a recreation. Then help others.
Always wanted to learn Python, but never really had the compelling need for it. Now amusing myself taking the Edx.org/MIT introductory course in Python. I'm at the stage of wondering if as a language, it starts out trying too hard to be easy, and ends up being just as complex and un-intuitive as brain teasers in C or Perl except a bit less possibility of really dense code. Even Cobol used to get that way. Anyway since the EDx course is graded, it gives one a nice challenge to test oneself against. 'Course it's easy for me to learn one more language, after the first 49, another one isn't hard. I feel for the kids trying it for their first introduction to programming. Some of them stumble so badly, and maybe forget that Google is their friend, so they find it even a bit scary. In the old days we never had Google. Ah for the days of McKracken, or Kernahan and Ritchie, when explanations were so crystal clear. Good luck!
You have mixed goals (Score:5, Interesting)
Not necessarily conflicting, but definitely mixed. I picture a 2 circle Venn diagram. One is "enjoy my job", and the other is "get paid". You'd like to be in the middle overlapping bit.
I have no idea how to tell you how to enjoy your job. Only you know what you like. As for the language? Completely irrelevant. Any decent coder can learn a new language. If you've gone from Z80 to Perl, then you already know this and you are most likely the right sort.
But only you can know what you would enjoy. What would energize you and make you happy. So here is a strategy for you to find jobs in that middle area.
Look at job postings like you are looking for a job. Check the job resources you like in the way that you normally would. Now print out and save the jobs you think you would enjoy. Look at their requirements. If you do this for a few months you'll see patterns emerging. I want to be a _____________, and every job posted for those kinds of positions has __________ as a requirement.
Keep notes. Eventually you'll see what you need to learn. Then go learn it.
Then if you can, hook up with a temp agency. Tell them you are looking for temporary work doing _________. Do that for a while and do it well. Be sure you impress at least one person at each assignment. Get their names and numbers. When you are done ask them if they would not mind being a reference for you.
Then when you are ready for your salaried position above, mark that time on your resume as consulting (because temp agencies on your resume aren't desirable). Then send out those resumes.
And from one greybeard to another, best of luck!
Re:Coldfusion (Score:5, Interesting)
ColdFusion is a viable language and there is room for more developers.
ARM assembly (Score:5, Interesting)
Seriously. Learn ARM assembly, practice hitting the bare metal in an Android phone, and get a job working for someone like Nvidia, Qualcomm, Broadcom, Samsung, HTC, or someone comparable. You have a skill almost nobody does anymore, and you know how much more fun assembly is. Screw Java and boring corporate productivity apps. You can have more fun with assembly writing drivers, and make more money while you're at it. :-)
the good news... (Score:3, Interesting)
(bah, rick, you beat me to it. ; ) )
For mentioning TK, Visual C++ & Visual Basic, the basic assumption is that you look for something related to GUI applications.
In this case, IMHO:
In any case, the (formerly future, now) present is still the web. Whereas the future is difficult to predict.
Good luck!
Re:If you were comfortable with Smalltalk (Score:3, Interesting)
Is Ruby *actually* used for anything outside of math/academia?
Is there something on a scale of SciPy for Ruby ? I am not even begin talking about something like BLAS or LAPACK. I see some python jobs for academia, ruby jobs almost all belong to rails jobs in "new social media startup" space. Yes there is some mysterious oriental island in the Pacific where ruby may be used in academia. Somewhere else? I don't think so. But I would like to be proved wrong, however.
Why? (Score:5, Interesting)
But suddenly, in this tight financial environment I need to find a way to get paid for programming, and perl seems so "yesterday".
To me this suggests that the poster has NOT been working as a programmer for the last 50 years, but has been working doing something else. Does this change or influence what helpful answers might be?
Re:Listen up newbie... (Score:5, Interesting)
Incidentally at 61 I don't think anyone would want me for a permanent job, but I prefer freelance and [frankly] permanent job security is pretty bad anyway.
Good luck and may the force be with you!
Re:C/C++ (Score:4, Interesting)
""C/C++" is frowned upon."
Not where I come from it isn't. If someone puts it on their CV we test them on their C knowledge, not just C++.
"And attempting to write in the common syntactical subset of C and C++ makes as much sense as doing it for C and Perl."
Don't be a total fucking ass. Sometimes you need flexibility about where your code can be compiled and a common subset gives you that. Anyway , its a pretty damn large subset, virtually all of C.
"But in any event modern C and C++ have diverged drastically"
If by modern C you mean C99 and beyond ITYF almost no one uses it outside of academia and a few specialist areas. Almost invariable C90 or ANSI C is the global standard which plays nicely with C++.
"When a resume crosses my desk with "C/C++" on it, I know exactly where to put it---in the dumpster."
Then you're a moron who'll miss out on hiring a lot of good staff. However I must admit that if I ever came across your CV then it would probably head for the dumpster pretty quick.
Re:Old standbys (Score:4, Interesting)
And no, Mono is not .NET the same way Wine is not Windows.
I hear this kind of statement a lot; but I'm still waiting for someone to explain to me a real world programming task they've done in C# where mono couldn't be used.
C# is my day job (mostly - there's a little C++, Java, and Python from time to time) and I've never run across any problems using mono with production code (primarily Linux server environments (not web stuff either))
Re:I'm 30 and I already want out. (Score:5, Interesting)
Switch to hardware. Do chip design.
Sounds like a plan. A change of discipline is as good as a rest...
What I did in 1990 after 20 years in programming (Fortran, assembly, COBOL and C on assorted "big iron" mainframes) was a complete change. Management was not an option, since that's a job for someone who doesn't have the skills for anything more worthwhile. So I went back to school and did a double degree in biochemistry and biotechnology, which for a tired old fart like me was fucking hard work, but it's way out there enough on the geek scale to be interesting, even if the pay isn't always quite as good as in IT.
If I were doing it all over again, I would possibly choose analytical chemistry or mathematics, but no regrets...
Re:But those are rough to enter when new to langua (Score:4, Interesting)
Consider moving? (Score:5, Interesting)
Another way in with PC programming skills is to work for the tool vendors (CAN tools, or micros) which have a path to lower level stuff if you want to go there..
At least do the job search and see what's available. Unfortunately job postings have become buzzword mania and companies will "require" everything from driver development to CEO. Obviously a given position doesn't require all that. C and Perl together will likely get you a job somewhere here - there are several people with that pair of skills down the aisle from me who are gaining other experience on the job.