Re-Tooling Your Skills for the Future?
nojayuk asks: " Over the decades I've re-skilled myself several times, from mainframe FORTRAN through minicomputer PASCAL to microcomputer C. In between I've done microcontroller development and programming in Assembler, robotics, graphics design and 3-D animation for TV, PC build and repair, Website design etc. Currently I'm looking for work and I'm wondering what new skills do I need to stay in the computing biz. What OSes do I need to know, what technologies do I have to have under my belt for the employers to come hunting for me instead of me passing my obsolete CV around and being told to get lost? I'm looking for advice, not just for next week but for a few years down the line. What can I do to acquire these essential new skills?"
Tragically, it looks like the only OS you'll need to know is Window$
It isn't the quantity that counts but the quality of your knowledge
Perhaps IPv6 is something you should look into. How many IT people are experts in that field?
The university I go to doesnt even look at it, which is a shame because it's got to be rolled out sooner or later. I think most people are hoping for the later.
Be you Admins? nay, we are but lusers!
Learn some solid OOP and modern languages like Java, C#, C++. It takes years of experience to write well designed OO code.
C# .Net is the biz. But the slashdotters will knock it since it comes from Microsoft. Doesn't change the facts tho ...
Computers (or more generally IT) is a broad playground these days. Its simply not possible to do everything anymore, much less to do it well. The answer is to specialise, even if only a little.
Your history suggests a good deal of experience with embedded systems. This is a good field to be in right now - there are plenty of opportunities, from special-purposes devices to cell phones and PDAs.
If you want to stay in mainstream development, you probably need to skill yourself up in C++, C# and/or Java. For the former you're going to have to be familiar with the operating system under which you are developing; for the latter two, you're going to have to be familiar with the language and the platform, especially when it comes to enterprise systems.
If you want to move away from development, you have at least three choices: networking, design and management.
Networking moves you in between development and users -- you use, but you still have the skill ;) These is a lot of opportunity in network security in the future.
Design is a step "above" development, in which you're going to have to learn about formal methodologies, OO and patterns; how to control a development team effectively; and how to manage customer requirements.
Management is, well, management. Enough said.
My advice would be to decide what you want to do, and then investigate further to determine what skills you need.
i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
About 6 months ago I left my System Admin / Level II support position at a local ISP and went into business for myself with another guy, our business is aimed at specialising in a key IT area that few local businesses do, that being UNIX consulting and specialist networking.
I think the only way to stay current and have something good on your Resume/CV is to diversify, not neccisarily specialise in a technology but be across many current technologies, read the literature - read mailinglist digests, visit as many free seminars as you can (visit some that you have to pay for if you think its worth while and you have the cash) if you know what the current products out there are, your better prepared than most people that are in the industry employed to work in one narrow area.
Just my 0.02cents
-- If at first you don't succeed, lie!
Comment removed based on user account deletion
As the guy you'd be seeing who does the interviewing, here are my five tips for a long and interesting career:
.NET, etc), read the other 500 posts. As you already know, they mean nothing in 5-10 years. My tips will last a lifetime.
1. Do whatever YOU like, but do it well.
2. Only work for employers that you want to get up in the mornings for.
3. Dedicate at least 10% of your "work" time to professional development, even if you have to pay for it. Go stale = out of job
4. If you're not having fun, leave. Life is too short to put up with crap.
5. Don't choose the boring staid job unless you want to retire. Be different. Work for Microsoft*.
If you're after buzzword compliance (j2ee,
Andrew
* by this, I actually mean for *you* to pick the most interesting job you can find. A friend of mine interviewed for a job in Antarica, for instance. Think about it.
Andrew van der Stock
Just find an employer who understands that your vast experience should be enough to master any new interresting field. IMHO you just need to run into the right employer, not the right additional skills.
Five years ago, that would have been good advice. The problem is that now employers don't have to train folks. I have a fairly diverse background including everything from EE type jobs in the embedded sector to MIS jobs with few technical requirements and everything in between. Many employers went through a downsizing in the last two years, and now they are loathed to pick up "General talent." Despite my wide range of experience and obvious skill inventory, I was passed up for people who had 5 straight years of development experience with a single technology because the employers I talked to couldn't justify hiring general talent anymore. If they were going to make the expenditure to hire someone it had to fill an immediate need.
All that said, hang in there. There are employers out there who still see the value of the "engineer brain." Just dont hold your breath waiting for them to find you. Also, unless you have a major objection to it, focus your energy on smaller companies. Companies with 5 or 6 people can much more readily see the benefits of having a swissarmy knife instead of a T40 Torx wrench, whereas a big company sees that it has a bunch of Torx bolts to unscrew.
For waht its worth I was unemployed for a year before finding my current job. If you have a job now you may want to consider trying to find a way to be happy in it rather than moving on.
This too shall pass.
The mindless automatons in H.R. need to see the right words and letters on the resume before they will forward it to a hiring manager.
Sometimes it isn't even a human doing the processing these days - OCR for the few that still snail mail their resumes (a red flag in itself), coupled with full text indexing and data mining determine which resumes are deleted and which are forwarded.
I am very small, utmostly microscopic.
I'd say get a firm grasp on .NET. I've been on all of the job sites lately and all I see is C# this, ASP.NET that, etc, etc. It's a Microsoft world, and, unfortunately, we're just living in it. My .02
Whenever I'm recruiting, I'd much rather interview someone who has a solid technical mind with a splash of creativity and self-motivation. This will go a lot further than someone with a bunch of paper qualifications but no true passion for the subject.
Those who have self-motivation and a passion for technology, whether this is networking, MS Windows, Unix, whatever, will generally pick up whatever technology you throw at them. i.e. a solid investment for the future.
Contribute to the online videogame encyclopedia: GamerWiki
Your running in a rat race... Get skills which will be almost timeless. Like Managerial skills...
If you already have a bachelors, it will only take 2 years.
Or start your own business...
Free Web based FTP
I think the best skill you can adquire is the skill you have now. The ability of learn new things.
The IT field will always change, and because of it the best thing you can lear is the skill of learning new things. (uf)
You sound like you have been around the block, more than once. If you are getting on in life (say, mid-fifties or older) you may find that it is more and more difficult to keep up with all the changes in technology nowadays. And learning a new skill is getting harder and harder also.
Neverfear, it is just Mother Nature kicking in.
The solution? Move up to (technical) management. There really *IS* a need for technically competent managers to guide the young hotshots. Your experience counts, even if you don't understand the latest and the greatest (have your hotshots explain it to you in their own words).
Yeah, management can be a drag, stuck in the middle between the upper-level and the people who actually get things done; and good technical people don't necessarily equate to good managers; but it is worth looking into. Even if you wanted just to be a techie-nerd for the rest of your life.
Of course, you could always become an instructor (assuming you have some communications skills) and pass your experiences and techniques on to the next generation.
Just some thoughts...
(From a fifty-ish longtime technical instructor)
1) Less and less software will be developed in US, just like less and less steel is produced. Unless you vote for that to change
2) You must learn sales skills and, whether you continue to stay in code or truly move to sales, you must learn the #1 lesson of sales: truth and quality don't matter
3) See your politics through your job prospects and your job prospects through your politics
Your "obsolete CV" might serve you better than you think. With all of the skills you listed, there is an implied skill that you left out, that will serve you and your future employers better than any stack of certifications will.
That is the skill of learning new skills. Flexibility and adaptability will always be in demand. Sell yourself on that.
True, a lot of employers put together a laundry list of skills for each new position. But they rarely find people who are a perfect fit for those kinds of lists.
I am not your blowing wind, I am the lightning.
You haven't really said what you want to do in the "computing biz". If you want to code, learn the flavour of the month language (Java, C++ or probably C#), OS (Windows or Un*x/Linux,FreeBSD), grab a couple of good books and start learning. Somebody with your experience will be proficient in 3 to 6 months. But if you want a career as a programmer, that's a lot tougher. You need to know the language, the OS and probably some other technology. But more importantly, you need to really understand how to design a software system and how to apply your technology toolkit to a problem. Being able to understand the problem domain, empathise with the customer and maybe even communicate with them helps too. IMHO, the art of what we do is in the design; the programming language is just a way to express, and manifest that design. It takes years to build up this level of proficiency. Programmers at this level are rare and worth their weight in gold.
There is a new emerging paradigm for programing, Constraint Satisfaction. If you like to learn a new tool with an estimated important future and possibilities on AI, hardware design, logistic, expert systems, distributed agents and computer training, take a look at Constraint Programming Languages and CLIPS.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
With your background across different systems you sound like a good candidate for getting into the security game. As you might expect, this is becoming big business at the moment.
Security is a process, so you wouldn't really have to learn much new technology. There's a lot of value in talking to someone rich in experience when it comes to security, especially if you're trying to secure legacy platforms.
If that doesn't sound like fun and you want to stick with programming, I'd suggest picking up either Java, C#/.NET, or Obj-C/Cocoa. Learning these technologies will certainly keep you relevant and will probably be fun too!
(Since you already know C, Obj-C/Cocoa would be really straight forward, and we can't have too many Mac developers you know.)
I'd recommend that you either go into systems engineering (that includes architecture and can include business-process re-engineering) if you want to stay technical or go for an MBA if you want to plunge into the business end.
The next big thing will probably be mobile application for PDA's and Phones and anything else, so I'd learn Mobile Java next.
thank God the internet isn't a human right.
Without actually naming language. You need to find methods of producting stable quality code more quickly. Get use to OOP Programming. You have to realize now that computers are getting smaller faster and cheaper it is the fact that it is now cheaper for a company buy a less efficient program that took less time to make then to buy extra hardware to to make the program run faster. So brush up on styles of programming that improve programming speed then working on ways to make you code more optimized. I like nicly optimized code as much as the other person but you have to realize if it takes you an extra week to code at $85 an hour that is an additional $3400 in the cost of the program. Which may or may not be broken up by multable purchacers. But if you are making a custom application for 1 customer. That extra week to make the code run 25% faster cost as much as a second systems that can split the work load and make your code twice as efficient.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
if you have a tech degree then just sit on that... or you could go the management route. If you are asking what leadership, facilitating, coordinating, etc skills you need then you will not make a good manager. Remember, to be a "good" manager for large companies or government organizations you really just need to adopt some buzz words, close in some networking gaps (people not hardware) and constantly attend various meetings. If after a few years you have not produced any positive results but have in fact spent millions of dollars then you will know you are on the fast track to success.
Perhaps why this approach works for me is because I am an exicted engineering student w/ a lot of projects. (how many other people have their own linux based MAME in their basement and a music server in their car?) This approach works for you because you don't have a wife and three kids who desire some of that time for them to get attention and affection. I bet many of us here that attempt some semblance of pet projects do this in lieu of home improvement-type work and have to balance their self-learning with their family. And it is a balance; you love them and should expect that they want to spend non-geek time with you.
I think with the interesting people, their lives can't possibly be wrapped up into a nice little package.
As always, especially in the tech industry the best thing you can do is tailor your resume to the specific place you are applying to.
:)
Yes, this takes more time than emailing the same resume 1000times to different places.
A large company (like IBM), might want to see you as a specialst in one particular aspect of programming. Like an expert in C, and compiler design.
I'd think a smaller company might want to see more of a "Jack of all trades". C/Java developer, web applications, Unix administration.
Worst thing you can do, is assume you know what MOST companies are looking for, and tailor a single resume because of that.. or make generalizations such as "They want quality, not quantity". Many BIG companies would rather hire newbies for less, and train/MOLD them into the skilled guru they are looking for.
Of course add in the "economic slump" factor.. and things get a bit more difficult.
Perhaps the "Iraq" factor, will smooth the economy a little
--noodles
Well speaking for some of the "West". We have NO problem competing with India on codeing, however we pay 60% of our income in taxes. Those taxes go to pay for stuff here in the west. Those coders over in India don't pay anything! So much like cars that are taxed on import, code should also be taxed. Will this happen? No. Will Unions happen? Yes.
The real problem is greed. Do coders over here deserve 70+k a year? Most don't. However, does top management of companies over here deserve >100k/year? Very few do.
That management wants to protect their jobs and salary so they see an easy solution. Farm out all development to slave labor err I mean India.
Now if that development out of the country was taxed at around 100-160%, then both sides would win. The Indians would still get some jobs, the "West" could comete and still pay taxes over here for schools and hospitals etc.
The more I learn about science, the more my faith in God increases.
Maybe a good skill to learn would be making good java user interfaces. Emphasis on good. If someone made a good, fast java gui toolkit which was cross platform, people might use it more, which would help java's long term security.
I just retried the websphere installer - done in java - and I couldn't believe how utter crap it was. This from a company which is supposedly supportive of java, and is behind linux, and has more money than most of eastern europe combined.
That's what most people think of when they hear the word 'java'. Slow, clunky interfaces. Could only get websphere installed on one machine here, and even then it was still horrifically slow, reinforcing java's 'slowness'. Whoops - sorry, that machine was 'only' 600 mhz with 512 megs. I guess we need real 'enterprise' machines to get moderate performance, right?
If java is to have long term viability, it needs to run faster on commodity hardware, otherwise it will remain a marginal player which increasingly only the elite few will be able to afford to run in production environments.
creation science book
Those that really can, teach. You have a wide variety of experience and knowledge, why not pass it on the to next generation.
You will stay cutting edge and help a few young folk to not make the same mistakes you once did. You will learn the newest technology from them, too.
I'm amazed how much I've learned from students. It is sometimes a challenge to keep up with their knowledge, if sometimes misdirected. Above all stay openminded.
Please pardon me for throwing water on the OO must be learned paradigm: It is very popular to believe this as if OO was the second coming. It always seemed to me that OO was just a rewrapping of MODULAR programming. What is the difference? And didn't BIOS calls mimmick what we call proxy objects? OO was a great boon for publishers and for folks in accedamia. The truth from the trenches is that code that works is what is desired in the real world. Yes, OO is awesome, and a great new vocabulary. But there are plenty of EXCELLENT old-time programmers who didn't learn the vocabulary of OO and still design awesome modular code. A lot of folks who have OO as their mantra neglect the fact that a lot of very good software engineers never learned the vocabulary of OO but still write rock-solid code and engineer incredible products. So, if a guy is good at what he does, why send him back to school to learn a new dialect (which is all OO really is) when the dialect that he currently speaks lets him say what ever he needs to say. I would suggest to our friend that he follow his bliss and learn something that he likes to do.
war is not good for the economy.
total republican control is not good for the economy.
be prepared to bend over and take it up the ass.
... hi bingo
This thread is interesting, and shows the dichotemy between "what should be" and "what is." I would say that the underyling problem is not the questioner's skills, but (as some have alluded to in the HR-filter for keywords comments) is the mindset of businesses.
What most fail to realize is that 5 years in a single tech is probably a bad sign. A "better" programmer would probably have gotten bored and moved on, or moved on because it's highly unlikely that a single technology remains the best solution for that long a period of time.
My advice would thus be this: if you're good, don't worry about it. It takes a few days to pick up 98% of any language/tech., a few hours to learn 98% of the commands and interfaces for an OS etc. (unless you're administering the thing, which takes us back into the few days bit). So, just skim a Java reference, a Linux book, etc. and throw them all on your resume.
If you're not that good, you can hang yourself with this, but, then again, most companies don't know what they're doing with tech anyway (even the experts within the company), so you can get away with just being mediocre.
And, if you find a company that thinks the right way about technology, they'll understand it's a fluid thing and they'll be looking for smart people, not people who've memorized wasted their time memorizing reference books that are available for $20 or online for free.
Though I resent that a lot of jobs are sent to India these days, and I do agree that Indian programmers are no different than programmers in the United States, it is just short sighted to say that you will NEVER send work to India. I believe that the problems that are legion in the software industry will crop up in India as well. I have always seen that a very few software developers do the lion's share of the work. Why would this be different in India? There are obviously a lot of very capable Indians who will be able to crank out the golden-code. Our industry is plauged by being run as if it is a Fuedal enterprise. We have money-managers and bankers who promote hack-coder-psycophants to management. These butt-plecos don't want competence, they want loyalty. They hire people are generic programmers based upon the number of years in the industry that a candidate has. And they have destroyed the American programmers by putting our jobs in India. But they build the same kind of fuedal businesses in India (Indian are big into caste system, "were better and higher born"). But since fuedalism is a brain-dead philosophy, and since competence always wins out, all we need to do is to wait and the jobs for the good programmers will return. The fakers and the frauds will be exposed. We are only part there now. Scandals keep cropping up, and the bankers (ie the 'fuedal lords' of the modern day) knee-jerk and lay off everyone. There will be programmers working in India and in the United States. There will not be these fuedal work farms with the cadres of generic programmers. The competent programmers will return. So, don't blame the Indians for a fault in the way that capitalist bussinesses are run. There were so many software jobs because the venture money whores do the math: each 'prgrammer' added so much to the bottom line of the valuation given to the money mongers at the banks. And then they could go to the IPO with a larger value. The whole scheme is fraudulent and all of us programmers got burned in the process. They threw away all of the gems with glass (ie there were a lot of fakers in our industry, admit it, who couldn't code or design software) The diamonds are still diamonds. And bankers and money mongers being greedy, they will sort through the rough of the diritis of what they have done and pull out the valuble programmers from the mix. So don't dispair, all of you good programmers. But also, don't blame the Indians. There are obviously a lot of very awesome 'diamond' programmers there as well as the fake 'glass' programmers. Keep your chin up, this stuff isn't over. There will be a lot more layoffs before things turn around. And if there is a war, we don't know what will happen. What we need to do is to keep programming, keep our skills up and also to debunk the management model that has lead to this dispairing situation.
Find a good University that has a large variety of CS classes for continuing education. Enroll each and EVERY semester. Stick to it. Make sure the programs you select are challenging, interesting and relevant. Don't stagnate in a job that is often a one-trick pony..You need to find knowledge outside the pigeon hole of work.
Networking. Not computers. People.
I was recently laid off, and I just got a new job yesterday. Out of the dozens of places I applied at, only one even bothered to send a rejection letter. (plus another one sent a rejection email).
Where did I eventually get a job?
A place where a friend works, and pulled some strings for me - they looked at my resume and created a position for me.
Yes, I realize that I am very, very lucky - but it just goes to show; that if you aren't exactly what someone's already looking for, and if you aren't exactly the strongest candidate, your chances of actually getting a job, whether you have all the skills you need, or whether you're so technically good that you can pick up new skills in a trivially short time, are exactly zero.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
...richie - It is a good day to code.
It's unfortunate that many companies hire using keywords and other BS. I was reading a good article in Men's Health last month. They were interviewing the CEO of a, still successful, dot-com company (can't remember which one). He said not to hire to fill a position. Hire good people (read: experience and good thinkers) and find a job for them.
UNIX/Linux Consulting
In today's world, skills are resources. The marginal utility of adding another laguage is less than the adoption of a completely new skill set. Become a lawyer, or get your MBA. Add value by geting out of the hacker box into someone who can bring the programming skills into another environment, where computer skills have not been as completely utilized as in the pure programming market.
I'm a generalist. I've been a Microsoftie, Netware Engineer, Unix and Linux specialist, LDAP/NDS guy, I've worked hard on email, I program in Perl and Ruby, a little in C, C++, Java, adminstered the Backup Tapes, written an SMS Server system... There's no way I know everything there is to know about computers, and there's no way I could do any job going, but I'm always keen to learn more, and I'm always prepared to give my best shot. The trick seems to be that every employer wants someone who mostly fits the bill, but might easily fill in a few gaps for other jobs, so they don't need to hire/train someone else -- money, money, money. And it's a big bonus if you get to try new stuff.
On top of this, it seems training and experience has become second to strong people skills. The CV might get you the interview, but the interview will get you the job, and your social skills will help also you progress. There are lots of people out there with skills which will fit any job, more or less -- only experience in the specific job will help you fit better -- but there seem to be fewer people who are prepared to put the social/psychological effort into the people they work with and for.
I know I'm not explaining myself all that wonderfully, but I do know that these skills have benefitted me at least as much as my knowledge and abilities in computers, and they seem to be neglected more often than not. And I don't mean the rubbish 'team-building' courses. They always seem to be more destructive than constructive, in my experience, unless the team forced to go on them already has some sort of good dynamic to build on.