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?"
Even in the slow economy, there are still quite a few companies looking for Java developers. I don't think it will slow down in the near future. 10 years from now who knows, but some decent Java skills should keep you employed for at least the next 3 to 5 years.
The most important for every developer in my opinion is Java. It is the current foundation of the general programming (no flames, please). A second step will be the Java-releated technologies - J2EE, XML processing and so on.
You probably already have a solid knowledge of SQL, relational databases and C (C++).
Then XML, HTML, the different CSS and DOM things and so on.
Also some TCP/IP and basic Unix administration will come handy.
This I think is more than enough for a good start. Java + C + C++ + XML + HTML + TCP/IP + SQL + relational databases are going to be around for a very long time and a lot of BIG and small systems are going to depend on them.
About the learning - a good book (finding a good book may be hard), a lot of interest and trying to understand the underlying principles should be enough.
these days, if you're an application developer you have 2 main choices. you can learn .NET, or you can learn java. general java is good, but you'll be the one doing the hunting. if you have very solid j2ee experience under your belt, you'll probably be sought out. (conversely, if you've got 9 months development experience using .NET you'll probably be sought as well as people are starting to flirt with the devil on this technology front.).
in most other software development fronts, c/c++ are still the languages of choice, and your edge is in knowing how to use certain api's (visual c++, com+, unix threads, rdbms, etc) within those languages.
I am going to suggest something different, work different:
Fin some thecnology problem that is interesting to you to solve thast you have no skills in, do the research, gain the skills, and solve the problem..
If you do all these steps, the job wil find you..its alonger process than job hunting in a good economy but I think you may be more satisfied
Don't Tread on OpenSource
In the current American economy, skills *are* the problem. 25 words or less:
:(
1. dot com bubble: HR hires anyone who can say "IT"
2. dot com bust: Grim Job Reaper takes many, some deserving, some not. Many HR people are also "downsized", especially those who hired those who could *only* say "IT".
3. today: Given a glut of engineers, and a smaller HR pool who are gunshy, you don't get your resume seen by Those Who Hire unless you match the job description EXACTLY. If this calls for someone who is MS and Cisco certified, who has 4 years expert experience with C++, XML, Crystal Reports, and Oracle, and oh who also speaks swahilli, well, I guess you're SOL if you're "merely good".
O.K., that was more than 25 words, but that's not the point!
Now, for what you "should" do. The best advice is to try to sharpen yourself in an area that you already like. "Follow your bliss", as the pop-psych people like to say. If you're just in it for the cash, get database experience. Failing that, look in the paper and see what people are asking for. The biggest problem I ran into was employers asking for experience in tools that cost mega bucks.
and dont' give up...
I curently studying busines, because it is all good and dandy to know how to write code but if you can only tell a computer what to do how far will you get. By Studing busines a person is opening them serves to the world of better self emploment and the option of posibly maneging thier own sucsefull busines.
Befor going to schooll I hadrun my own web design company for a number of years. Seeing as I had started it just out of highschool I and it hadn't floped over the 4 years of it's life I think I did prity well for my self. Yet at the same time with the new thing that I am lerning about managment, I am realizing that while I was with the company I could have done so mutch more.
If your the type of person who has some interpresonal skill ontop of you computer skills thik about busines.
Take this advice at your own risk:
This requires that you are really crazy about technology, but so far it's been working out ok for me.
Learn everything and then master one part at a time.
Read/Skim a lot of books. No, I'm not saying RTFM, I'm saying there are many good books out there that can get you up to speed quickly (don't need to waste time and money on fancy classes-though perhaps it would be worth your time to get certified in a few areas [RHCE, MSCE, and A+ is a powerful combination])Be fluent in M$ Windows (9x/NT/2k/XP), OS X, and Linux/UNIX and be able to code with some decency in Perl, C++, C#/VB, PHP(or ASP I suppose), and XML per say. You can pick and choose to favor your interests somewhat. Once you have something like that going, then you peek at the market out there, to see what the 'big need' is. Say it's XML devels-then you get the job, because you know your XML enough to get in, but while you're there you specialize in that so they don't give you the boot. The key is to have many skillz in many areas so you are "multi-purpose"
I think a lot of people will disagree w/ me and say that this requires too much time and is a waste if you only need to learn one skill to get a job. On the contrary, so far this has worked for me, and as long as you stay up on what you know (DON'T FORGET EVERYTHING YOU KNOW JUST BECAUSE YOU DON'T USE IT!) and get educated about the latest and greatest technology, then you will never need to "start from scratch" (like perhaps where you are now) you will simply need to master another area.
Example:
If you get a job as a web devel, your *ML skills will become excellant along w/ perhaps your PHP/MySQL and JavaScript abilities. However, if you don't practice them, your sys/net admin skills will waste away along w/ any others you let the dust collect on, so be sure to keep up your other skills at home, such as linux/perl. You could say, set up an automated backup server on your network or something.
This prevents you from forgetting everything and it lets you have some fun w/ other technologies then your forte.
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?)
I hope that's good advice, again, depending on who you are this could help you or confuse you. GL
Sigs pose an operational security risk and help the baddies aggregate data. I guess commenting does too, oops.
Your skill base mentions technologies from over 20 years ago, so you are probably pushing 40 if not over. The tech field is very ageist, presuming near senility over 35 or so. Yet another NY Times article complaining about this.
My recommendation would be eCommerce and all that revolves around it: Here's some ways to get started:
You'll need to know how to work in a operating system that runs on servers. Maybe install and get used to working with Linux?
If you don't know how webserver's work, now is a good time to install one and play with it, how about Apache?
If you don't understand the scripting languages that make the internet work, learn one, how about PHP?
If you're not at least a little familar with how datbaases work, you should at least know how to get info from a database to a webpage, why not learn some SQL, so install and play with a database, how about mySql?
With a few more basics (security + content management + etc) you're now fairly versed in what you need to develop websites using LAMP (linux + apache + mySql + PHP)
The best part, you don't have to spend a dime to use any of these technologies. They are all free (as in beer). What I really like about all these technologies, is the ammount of documentation and help you can also find for free. Be sure to kick back a little, answer a couple questions after you've found a few thousand answers.
And if you need links to find mroe (alias more mroe) info, you haven't heard of google. (i.e. look for LAMP)
M@
Krispy Cream is people
There are 3 main options you have here in order to stay in IT and do the type of work you love:
1. Read the Market
2. Lead the Market
3. Find a Niche
1. Read the Market
This is probably the easiest but involves a lot of research and retraining on your part. What you do is find out what the HR types are looking for and acquire those skills. Sounds hard? Well its not as hard as you may think. You go to a load of job sites e.g. Dice, Monster, etc. and find which skills are consistently requested e.g. for a Support Analyst typically a CCNA, MCSE, etc. and then train yourself up in these skills making sure you back them up with real experience of using them in either a paid or voluntary role. Do this you are essentially a market trend follower.
2. Leading the market, now this is a bit trickier you essentially have to predict what is going to be the next "big thing". This carries some risk because there are a lot of "silver bullet" technologies that never make it off the ground or take years to come into their own. Your best for finding these is to read the industry press, check what the analyst are saying or look for the early adopters of that technology and carefully research the benefits they acquired from the technology and evaluate whether it's a "good thing" to press ahead with.
3. Find a niche, there is quite of lot of this about and your skills may be best suited for it, there are still a lot of shops running legacy technologies or very specific vertical industry applications e.g. Geology s/w, Automotive s/w. You'd be amazed how many shops still run cobol and in Y2K those old cobol programmers came into their own again, so a cobol programmer with a second high level language and a specialism in migrations would be worth their weight in gold when there are changes in the legal or economical framework of an economy e.g. Europe and the implementation of the Euro.
I've been in IT for 9 years and I have to admit that from my point of view experience is king and counts for a hell of a lot, in fact its amazing how much experience of these older technologies helps you when migrating to these newer technologies (as they say there's nothing new under the sun).
But now you have a new adversary i.e. the HR team who have no idea about IT and all they do is look for those certifications so you need them to get your foot in the door (yep I know its a pain).
You also have face the what certification has done to the industry a key example is the MCSE once regarded as a high level certification now regarded as a entry level one, Microsoft and the industry in general really screwed the pooch on this one, they really should have got the MCSA out the door before the MCSE now we've got a huge back peddling job going on while trying to re-alter the perception of the MCSE.
Next you have to face the IT manager who really needs 3 people but because of cut backs he can only have one, so what does he do? He lumbers "all" his requirements into one job spec.
All the above combined with the sheer number of people you are competiting against with the same or similar skills because of a soft economy doesn't paint a pretty picture but you can survive if you play it smart, ditch a bit of pride and box clever (we are no longer the Princes of the Universe)
Its hard being in IT at the moment and its going to get harder coming up to Christmas so I wish you luck matey
-Martin
I got out of IT. I have two kids and I don't want to spend their childhoods chasing meaningless certifications and contract jobs that are headed for Bombay.
I am back in grad school studying Library and Information Science, the field I currently work in. It won't make me a millionaire but it won't be exported to India either and I'm home by 4:30 every day.
My advice is to find something where you'll always be in demand, recession or not, like auto repair. Forget B.S. slogans like, "Find something you love and you'll never work again." That's just not reality. For me, looking for work is agony and I don't want to ever have to do it again.
Life is what passes you by while you're worrying about your career.
The one problem we did have is that we couldn't do source-level debugging on an HP emulator we bought. When more tools are updated to support C++, you'll see lots of embedded systems development switch from C to C++, just like it switched from assembly to C many years ago.
What a fool believes, he sees, no wise man has the power to reason away.
As the "networking" one might do to find those positions is quite different than looking for a position at another big corporation, his comments gave me something to think about in organizing my own job search.
First of all, I suggest you learn Java above anything else, and here's why:
.Net tools).
1. Learning Java automatically frees you from having to develop for a specific platform. If you know Java you can develop for Windows, Linux, Solaris or any other OS. In other words, you can target 99% of all available platforms. As an example, now all you need to learn in Linux is simply "how to get around" in the command line, but for actual development you won't have to dig in and learn all the Linux libraries, or all the Windows libraries, or all the solaris libraries, etc...
2. Learning Java gives you a consisten way to access most new technologies. Once you now Java you can for example use Jave Server Pages very easily afterwards (and therefore save a step by not having to learn a new technology like PHP (which is GREAT by the way, but I'm giving you the path of least resistance here)).
3. Likewise, if you know Java you can access mySQL, Oracle, Sybase, SQL Server, or any other database with the same JDBC interface. This gives you access to 99% of all databases in the world, without having to learn any one in particular (besides the obvious administration tasks).
4. Java also gives you direct access to Web Services (I recommend a product called GLUE by a company called The Mind Electric, above Sun's own implementation of Web Services). With Java and GLUE *anything* you code or have coded before can be transformed into a Web Service automagically, with no coding. And for new Web Services projects you can also tweak to your heart's desire. It is the absolute easiest, most powerfull Web Services tool in the market (believe me, I've tried them *all*, even the
5. Java also gives you consistent APIs for anything from GUIs to sounds, to networking across all platforms. As an example, we developed a *HUGE* Java-based distributed application with Java, using everything from JSPs to Swing and custom socket programming, and to our customer's surprised, after the whole application was developed and tested on Windows, we tried "for the heck of it" to copy the class files to a Linux machine. Guess what? The darn thing work 100% perfect (after we modified a small configuration file with directory names and things like that of course)!!! No recompilation, no code tweaking, no nothing. As a matter of fact the customer quickly opened her eyes, decided to stop paying licenses to Microsoft, dropped Windows, and is now using a farm of Linux machines with the new app. In the future, should some new OS that is better than Linux come out, she'll have the chance again to simply move the class files and everything should work.
6. Java protects you from the future. You bet that as soon as Grid Computing takes off that IBM, Sun, Bea, Oracle, HP and others will provide a Grid Services API for Java, and again since you already have the Java foundation, all you need to learn is the new API for Grid Computing and forget about the details of where it will run.
Note that other technologies like PHP are great, but it does not integrate all the functionality that Java offers you, and certainly not across so many platforms. However if all you want to do is dynamic websites, PHP is also a GREAT choice for the job.
As for C and C++, the biggest drawback is how easy it is to create bugs, how problematic it can be to port applications (little endian, big endian, 16-bit, 32-bit, 64-bit, order of operations left-to-right or right-to-left, etc), and it just simply does not behave the same across platforms. Sure a very experienced programmer can greatly reduce these hurdles, but why bother really if Java gives you garbage collection, no pointers, a small and simple syntax? In other words, it gives you what you need to get the job done.
Note that TONS of people will tell you how Java is "slow". This was true 4, or maybe 3 years ago during the dark ages of Applets, but nowdays with Just-In-Time compilers, and Dynamic Compilation, I dare anyone to compare performace of a typical C/C++ application to that of a typical Java application. Is Java still slower, maybe yes (specially in the GUI department), but remember that Moore's Law is on your side: today *any* PC you buy will run Java apps more than well enough for your needs. As for big server farms, I rather have a 15% performance loss than having to maintain the same app over many different operating systems, or even modify the app everytime the same operating system comes up with a new release, or than having to spends hours or days hunting down bugs lurking in hard-to-decipher C++ code.
Bottom line: Java gives you simplicity, access to 99% of all Operating Systems, databases, Web Services, and media and networking APIs you'll ever need, so learn it and shield yourself from the deep technical details and instead concentrate on your business solutions.
Side note for other geeks: Yes, I *do* know the importance of sometimes you having no choice but diging in into the tech details of things, but that's something I asume the person I'm trying to help here already knows from his own experience.