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?"
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!
Unfortunatly many IT employees have more hanging out and over their belts as apposed to under them..
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 ...
Class hasn't started yet, BTW.
The simple truth is that interstellar distances will not fit into the human imagination
- Douglas Adams
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.
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.
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
Well the brief CV that you have presented it seems that you haven't done a lot of OO in your programming life - it maybe a good thing to learn as OO is a beast it is still one of the best programming paradigm available today.
;-p
Don't worry about the programming lanaguage - as you have learnt so many new langauage in the pass I don't think you have problems picking new things up - have a look at C# and Java - they are the "same" aren't they
I say: Operating Systems and Programming Languages come and go, but good Software Engineering and technical understanding never dies. I mean file operation is the same principles in Unix, Windows, "Java", BillGatesMustDie OS (I make it up) - the difference is really whether they call it new File("hello").open() or open("hello", READ_ONLY).
.. that's all you need to know. Really - that won't disappear for a very long time. A lot of people are getting sacked in the IT-business today, but competent C/C++-programmers that can do non-Windows (non-desktop, really) programming are still in demand.
it's in my head
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
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.
Actually it sounds like a joke but you shouldlook for buzzwords : :)
Learn Java, XML, or try to convert yourself to System Administration... You can also get some Oracle DBA certification or, if you don't mind the philosophico-political issues, get an MSCP (Microsoft Certified Professional)...
Well, the choice is yours but look for whatever sounds the most expensive *and* the biggest : Programming a desktop computer is not as promising as administering a cluster of Sun E10k...
Bon courage
Trolling using another account since 2005.
As a new CS grad who knows lots of the latest technology buzzwords, I've been surprised at the number of openings there are for mainframe COBOL programmers. There are enough big mainframe apps out there (and few enough who know how to work with them) that there will probably be a demand for COBOL programmers for quite a while yet.
On the other hand, the same can probably be said about C or FORTRAN. With that many years of experience in the industry, I'm surprised you haven't gotten into management or consulting of some sort.
The requested URL
Your submission doesn't mention your formal education. How about looking at picking up a certification like an RHCE, CCNA, etc?
Sure, it is more expensive than teaching yourself if your boss won't pickup the tab, but would be beneficial regardless.
-----
taco taco, taco taco, ____________________ I love that ad.
it is best to get hold of as much knowledge as possible. Don't target anything trendy, but strenghthen yourself with basic computing knowledge such as server administration, network implementation, and computer repair & maintenance. Although it does sound blue-collarish but believe you me, in the IT business, they are a must.
Since you already have good programming-based skills, you should just keep them polished.
And when you actually apply for a job, don't over-pimp your skills, they will then have a reason to categorize you as over-qualified. It's suffice just to exibit your ability to handle situations from hardware to code and vice-versa. This will make you appear more all-rounded and project an image that you will be beneficial in the long run.
Just speaking from experience watching all my Masters degree friends stay home because of lack of work whilst I have a fixed income to look forward to at the end of every month.
Best of luck in your endeavours!
Welley Corporation - SLM Scammers
Whatever
Given the fact that he reads slashdot, the people here are NOT total random strangers. No doubt he knows they are more technically minded than most.
Some here are very familiar with the IT/computer industry and have a good idea what's coming down the road technically in the future. Of course I'll admit that some advice here should be ignored, but I'd be willing to sift through it to find the good ideas.
Personally, I am very interesting in finding out what the slashdot crowd has to say about this.
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
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.
Do whatever interests you.
You sound you have plenty of experience under your belt and a good understanding of things.
I've seen people make a living off of just about any computer specialty out there, good economy or bad. Find something that can get you some clients and do what you love.
Just stay involved in the community around a product or technology, and you'll have no problems. I've found that posting intelligently to a newsgroup or mailing list leads to job offers when you are not even looking for work.
Conformity is the jailer of freedom and enemy of growth. -JFK
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
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
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
are all based on Symbian OS and if you can program that you won't be short of work for a while. See Symbian's web site for details. I'll let you work out how to find it.
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
Firstly, forget C. This language is hardly ever used, so you might as well leave more room in your brains for something a little more useful. I'd also avoid learning Java. It's a mature language. Nobody is interested anymore unless you have at least 10 years experience.
Up and coming technologies are the more specialised areas such as Occam and INTERCAL programming. People witht these skill are rarely out of work
I'd also suggest singing lessons. A more formal working environment like that in IBM's early days is becoming typical, and as we all know, IBM used to have company songs. What better way of climbing the career ladder than showing this sort of team spirit.
THis might be more appropriate for europe/asia, but I suppose the mobile messaging market is gonna explode in the states as well as it has done elsewhere.
Learn stuff about SMS Messaging, including the protocols used (SMPP, CIMD, EMI, SEMA, etc, etc).
Nokia got a opensource CIMD API, Logica got a OS SMPP API, both in Java, good place to get some code to look at.
Also try to get into the MMS stuff (nxt generation SMS - gonna take a few years to break through - if ever!)
good luck!
if (!signature) { throw std::runtime_error("No sig!"); }
I've been self-employed for 7 years now, and wouldn't dream of going back to the paycheck.
Hurts a bit at lean times, but it's better than sucking coc^H^H^Hup to idiots and trashing your self-esteem.
With your device-level skills, you could team up with other IT-ers with complementary skills, have a few bourbons or cafe lattes or acid trips, whatever works for you, and brainstorm up some ideas.
Put the 20 best ideas into a list, and sleep on them. Get together into a renovated garage and create something that'll blow everyone away. End up in a position where you don't ever have to touch a keyboard again (except where it gives you pleasure).
-- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
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.
You've got embedded systems, web site design and animation. That looks like a good fit for programming mobile devices, like phones and PDAs. 3G was an embarassment to all concerned the last time around, but phones are gradually getting better bandwidth, better displays, faster processors and more memory. This time around, telcos and vendors are going to know that adoption will be driven by real applications, not by trying to shoehorn PC applications like email and web browsing onto a tiny screen and keyboard.
Wow, he managed to get his job ad on slashdot! Ten bucks this will get him a job!
Martin
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)
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?
:-), and more importantly this allows you to present a specific skillset on your CV that younger (and therefore cheaper) profiles simply won't be able to match. I think this is where the battle lies, otherwise you might well just spend your time brushing off "overqualified", "under-experienced" ("Yes, sir, I understand you have several years experience in, errr, Fourtran, is it? But we're looking for an XML guy, and you've never actually used that.") or "too expensive" objections.
I don't know what jobs you have been looking at exactly, but generally people in your position are better off presenting their ability to uderstand and solve problems, rather than aiming at specific technology posts. The amount of skills you have should be presented to a future employer as proof of your ability to understand and solve problems, regardless of any underlying technology specifics (which will be farmed out to underpaid technology specific implementors:-) ). Perhpas you ought to think about Project Management qualification/certification, or Consultancy work. You'd be able to feed off your wide IT culture to understand the relevant technologies well enough to manage projects, and deal with a team of techno "underlings"
Try NetBSD... safe,straightforward,useful.
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
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.
Ok, listen I am a sysadmin but this goes for almost all IT jobs.
_ _
I got into linux before anyone was officially using it in the workplace.
These were skills I wanted to use at work so what did I do?
I learned the Solaris way of doing things and got Sun certified. Now, I do as much linux as I do Solaris and if you throw in a bit of the DEC Unix experience and BSD experience I got in one other jobs I feel like I make a pretty good all around Unix admin. They don't go away and will not for awhile.
As a programmer, learn or bone up on your C/C++ skills and then learn something else related that interests you like Java. Listen java is not going away and it is not up and coming like linux was at the time but solid C/C++ skills have been useful since the languages first appeared. Get a good base in something and then branch out to things that catch your interest. That is the key.
_______________________________________________
ACK
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.
Java. All you need is to visit Sun. Start with the tutorials, download the jdk, and get a decent text editor. Download Apache and Tomcat. Then move onto Netbeans if you desire a development environment. Nothing to buy. No classes to enroll in. No proprietary system to learn. No silly license issues to deal with. A great start.
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.
I've found some of the biggest improvements in my career, lately, have come by reading and using two books: Modern C++ Design, by Alexandrescu and Generitive Programming by Czarnecki.
IMHO, these two books are two of the most important books to be written in recent years. The first book is C++ specific, but the second is not. Both talk, in there own ways, about ways to improve software design and implementation by more clearly expressing design in code.
I think that, regardless of your language or field of choice, the increasing complexity of software development requires that you move towards an expressiveness that is richer and puts more responsibility on the automated tools at your displosal to generate correct software. Modern C++ Design talks about doing this via C++ constructs like templates.
Both will make you a better software developer, and both are time consuming reads. I think, with your breath of knowledge, that the important thing for you to do is to stay current with modern techniques of software design and modern implmenetation technologies. Languages and implementaion details should be something you can pick up quickly.
Hopefully, you can find an employer who will value these skills.
JC
C8H10N4O2 | Developer > Code
If you started with mainframe / FORTRAN then frankly the old brain cells just ain't what they used to be (Hey, I'm 42 and it's happening here too) - it's hard to compete with youngsters who are quick on the uptake and plenty of cerebral elasticity. However, you have LOTS of experience. I'd leverage that into an exhaustive search for an upper level position with a big budget and ability to hire people to do the nuts and bolts. Of course it's dealing with people instead of bare metal which is a whole different world but I'm sure you can pick up public speaking, organization, etc. All you need is a vision, a plan of what you want to accomplish, something challengingly big enough, and farm out bits and pieces of that to others (consultants, contractors, temps, etc) while maintaining control of the system to fit your employeers IT needs. I.e., switching from a tactical to strategic career.
/could/ do tasks himself but anymore gets much more done thru others.
For example, a Professor I've been exchanging email with, quite a successful guy, gets a lot done by handing it off as projects to students. He
try { do() || do_not(); } catch (JediException err) { yoda(err); }
I'm hedging my bets. I've taken the pains to learn both
That said, perhaps a place to look-n-see what you might need to study are some of the tech job postings via a source like Monster.com or the Wash.Post tech page?
--- have you healed your church website?
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.)
"There are huge differences in salary between an Indian developer($8-$12) and his US counterpart(>$75000). Do the math."
Firstly dude the average Indian developer of equivalent experience to the one making > $75000 would be earning about $20000 or more in India. And lets say that the company where this guy is employed will charge the US company about double his salary, so about $40000(thats the norm).Its less but not that much less.
Secondly, did you know that there are more CMM level 5 spftware companies in India than anywhere in the world? And normally such companies produce extremely high quality code. Atleast that has been my personal experience. Ofcourse there are many small no-name companies too, which I dont know anything about.
And I will say thats capitalism. I think the west preached capitalism to the developing countries mainly to get their markets open. Listen to what IMF is always telling Argentina and other such countries. So effectively capitalism is fine as long as the Western companies get access to developing world market, as long as they can charge the developing world high proces for their patented drugs and things like that, but when the developing world tries to do the only thing it can do, i.e, provide cheap and qualified manpower, the west starts having problems??
What's under yellowstone?
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.
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
For those who came from Pascal's golden years and later, FORTRAN may look as some crappy language that once fed iron dinosaurs. Well, some years ago I got convinced that this is not the way things are. FORTRAN is still a language that is in high demand. However, in very specific but very hightech areas - main supercomputing and clusters. As far as I see, there is a big lack of experts, here as many good FORTRAN gurus are in their late 50's and early 60's and unwilling to get back to the rooms. Anyway, if you are skilled in FORTRAN and willing to remember your old times, maybe you should try something on this field. Surely it will not be exactly like old good times. Things changed a lot since then, and there are a lot of new things to learn. But your FORTRAN skills may be an arrow that will put you ahead of many younger candidates.
BTW I saw a small job fever in one organisation when they set up a small cluster for chemistry analysis. They could not find anyone younger than 34 to catch the task of programming the monster. The guy who went there, passed 3-4 months blaming the skies for the headache they gave him but later was happily playing the role of guru...
Tragically, it looks like the only OS you'll need to know is Window$
Not at all true. As an IT manager in my shop (which is fairly typical) we have a lot of 98 desktops but the new ones all have XP (MS first good OS IMO) this OS is very different from 9X series so get a little familiar with it. We also use Unix (AIX and Unixware) as well as Linux. Most other MIS guys I talk to have similar content though maybe different flavors.
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.
...using primary buffer ...using primary buffer
2 channel(s)
16 bits/sample
---- sound initialization ----
Initializing DirectSound
Creating DS buffers
sound sampling rate: 22050
=== InitGame ===
--- Server Initialization ---
27 entities inhibited
1 teams with 2 entities
Changing map...
reconnecting...
Outer base
]give all
]give cells 4323313
]USE BFG10K
In all seriousness though I have used Assembler almost exclusively for over 20 years and it has never failed to get me bucks...
From excellent karma to terible karma with a single +5 funny post...
From the masses of laid off geeks that still have enough money in their pockets to read slashdot!
Cmon... how many of you have real jobs?
5-10 Years from now the likelyhood of anyone in the US being able to write software AND be paid enough to live looks very grim. Become a product manager or development manager. Its every developers hope at ever having a decent salary again.
No guarantee that any of the knowledge you acquire will actually be something that you will use, but it may make it less likely that you experience the sudden realisation that your current skillset is past its sell-by date and that unless you have at least some familiarity with newer stuff then many employers are going to automatically drop your application at the first filtering stage.
I wonder if businesses will ever wind up realizing that with the India import programmers, you tend to get what you pay for.
I'm surprised how true this has held up. Don't get me wrong, about 1/4 or so of the Indian developers I've worked with have been topnotch--and, as far as I could tell, paid about as well as me. But those other ones? Terrible, terrible developers. Between the language barriers and a general scattershot approach they to every problem, they're really worthless.
SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
Programming a desktop computer is not as promising as administering a cluster of Sun E10k...
Fortunately, 90-whatever percent of businesses and users use clusters of Sun E10k, and not desktop computers!
That was sarcasm, incase you were wondering.
"Would it kill you to put down the toilet seat?" -- Maya Angelou
I've said this before on a similar Ask Slashdot, but really you should figure out what you want to do regardless of the technology used. Don't try to keep up with the latest buzzwords. It will only lead to frustration (like you're dealing with now), and you'll get a lot more satisfaction from accomplishing the real goals you have in mind that are independent of the method used to accomplish them.
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
SAP if you like to use business and computing skills
You have to leverage your existing skill-based assets to synergize with strategic technical learning opportunities so that you are empowered to become the mobile information architect of the future.
Duh.
And case mods. Make sure you have lots of case mods. Those are cool. You can be a web typist in no time!
It's 10 PM. Do you know if you're un-American?
A lot of people consider it to be a stepping stone position, where you put the new developers so they can get an overall idea of the product. I don't. That is good for me, because companies want people who are serious about the position. They don't teach QA in school, they teach programming. I went with the odds that I wouldn't be fighting for my job every year against a fresh batch of bright-eyed programmers.
Some people aren't suited for QA, others are. I think I am, because I get to problem solve quite a bit, and even write a little code. I am currently working on QA process, and test automation. You get to really be anal-retentive and picky, which I am good at. If you program, you only know X number of languages, but I can test pretty much anything you throw at me. My job is based on methodologies that I can pretty much apply to anything. I admin my own Linux system on my home network, which I find really interesting, but I don't think I want to be an admin. But it helps me when I need to talk to the admins, or other tech people I come across in my job.
No matter what your job is, I think you should always pursue what you really like outside of your job. Maybe they are the same things. Develop YOU, because no matter where you work, you will have to interact with other people.
My beliefs do not require that you agree with them.
As such and admin, let me summarize the market condidtions:
Admins: 4 for a $1
Programmers: $2.49/lb
Seriously, there's not that many people left that *need* admins any more. They are either huge and already well staffed, or they are small and have their programmers do the admin work. Putting people out of work by automating their job is ALWAYS in season; it's computing's promise to the capitalist. This includes automating IT, and as such, IT IMHO is a doomed career choice. Think of all of the "computer operator" positions that used to exist. That has almost disappeared, and very soon, so will the network/system/database administrator positions.
So ignore his advice about being a sysadmin. Let me add my advice; it's not what you know, it's who you know. Trusted human networks are far more profitable than trusted computer networks.
Democrats and Republicans only disagree about how to enslave you
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
Come on, guys, it's all ball bearings these days!
BH
Fools! They laughed at me at the Sorbonne...!
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.
I distinctly remember job hunting in late 95, and I saw an ad in the paper that wanted someone with 5 years Java experience. I wish to goodness I'd kept that newspaper section. :)
creation science book
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.
Wrong, small wars are good for the economy. Weapons need to be made. That means General Electric gets a nice check for a few bombs. People will be hired to transport these weapons. People will be hired to obtain the raw materials. People will be hired to design new weapons. Contractors are hired to do all sorts of things for the economy. More soldiers means more people taken out of the civilian job market. Dead soldiers are taken out of it permanently. We are doing imperialism the smart way here. We conquer without conquering. We get the benefits of controlling say, Afghanistan, while the local government takes care of the day to day details. It's markets and natural resources are ours for the taking. War and imperialism may not be ethical but as long as it doesn't force us into a so-called "war time economy" and we come out victorious, it is good for the economy.
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.
I think the outlook for software dev in the US is looking increasingly dim. I've watched more and more layoffs at my company and more and more outsourcing to India to cut costs and keep up with development schedules. Most of the people I know who were laid off have not found a new job in the industry. Other Engineering (Electrical, Mechanical) careers are fairing much better because the dev work is done in the US and only the manufacturing in Asia. For instance, I was looking at a couple of med-tech companies ('cause I dislike working for anyone with "routine" layoffs) and all either one wants is EE majors (and most of these are for programming positions, because that's what my search hit on). Med-tech at least is mostly stuck in the US because our high prescription costs pay for the R&D here, and proximity to R&D is important for most of the rest of the industry. When I looked last week at available programming jobs, all I saw was a couple for COBOL and three senior positions that required 10-12 years of programming experience(which I don't have). At least the poster might be qualified for those.
It's sad, but we're watching the computer industry do just what the clothing industry did in the 80s - move to the cheap labor of Asia.
Ya know...
I recently came back to Smalltalk (Squeak, specifically) after being away for a few years (10?).
Yuck. No thanks. This realization pretty much slapped me in the face: it's a scripting language. It's essentially untyped, transforming all your type errors into runtime occurrences that depend on dynamic data. Ewww. I want my compiler.
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.
A working knowledge of SQL is also a good thing to have for Java developers, as many Java projects will involve databases. And using Java will give you a springboard to start investigating Web services, which may become increasingly important soon.
Perhaps the best advice I can give is to start an open-source project in Java, using SourceForge or a similar site. That way, you can legitimately put the project on your resume, and potential employers can actually see what kind of code you're writing. I'm pretty sure that my project was at least partially responsible for getting me my last two jobs, both in Java development.
All in all, these days, you can't go too far wrong if you're "livin' la vida Java."
Be who you are...and be it in style!
The most important thing is that you are not
over 25 and that you have at least 15 years
of experience in the field of the job you
are applying for.
God is REAL! Unless explicitly declared INTEGER
...richie - It is a good day to code.
For example, Try joining the Rebel alliance in a fight against the evil empire. Sure, you want to make money and have skills that are in demand, but it's a big world and in the computer universe you are here as much as you are in Khatmandu. and we are talking about the future here right?
Head over to Mozilla.org and scope out the Mozilla Hacker's Getting Started Guide . the Mozilla community works inside of a tool they've created called Bugzilla which is just so great other projects have started using it. Bugzilla lets you follow anyhing you're interested in and even follow around other coders to see what changes they're making. I myself am something of a bugzilla Lurker watching features I'm interested in, it's like the celebrity coders show. The animal book people have done a great thing and open sourced Creating Applications with Mozilla which seems to sum things up pretty good and gets updated frequently as readers point out errors and such. Using the Mozilla environment is great for apps that run anywhere (mostly anywhere) and you can jump in to Mozilla at many different levels javascript to C code. you could create browser addons like those at Mozdev.org or standalone applications. Best of all, when Mozilla and it's Kindred have 80% of the worldwide browser market and IE is only a bit player, you can tell people that you've been a Mozilla Hacker sice 2002 and it isn't new for you.
Help us Obi Wan, you're our only hope...there's more to a job skill than the money you make with it.
May the Source-Force be with you!
"The Most Fun Possible on 4 wheels" is at SunBuggy in Las Vegas
" 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."
I don't know if I agree with that. If you just ment syntax and begining functionality, then yes, but proficiency takes much longer. How can you expect to learn, for instance, the entire Java standard API? You can learn about advanced constructs such as IPCs and threading and networking, but I wouldn't say that you knew 98% of a language, unless you've written programs that take advantage of 98% of the standard libraries.
In regard to OSes, you can't tell me that a windows person has any hope of becoming proficient in a Unix environment in a couple days. A year maybe.
In my resume, I separate the skills that I am proficient in and the skills that I have rudimentary knowledge in. I believe this is wise because what if you read a beginners Java, and in the interview they ask you about syncronized multithreading?
I wouldn't put anything on my resume that I just picked up in a couple days. It only takes one slip up to make you regret that you did put something you know nothing about to make you regret it big time.
Why, o why must the sky fall when I've learned to fly?
In today's rapidly changing and down-sizing business environments it is often the MIS and development people who find themselves on the short end of the stick for the simple reason that they generally do not generate enough cash flow to cover their employment expenses. Exceptions might be in smaller software firms where their only business is contract development.
When a company falls on hard times, rather than expanding your skills in whatever your specialty is, try talking to sales people or some of the tech writers or try coming up with some business ideas to present to your higher-ups or generally try to demonstrate your flexibility and "swiss army knife - like" ability to do multiple things well.
Particularly in the software field there are a large number of people who's primary language is not English. It may be politically incorrect of me...but here it goes. English is the language of business. If you have better English skills (reading, writing, communication, bull$hitting) you will have a leg up on your peers. A well written email with some industry buzz words and a few $2 words thrown in for flavor will likely impress people. Use spell check every time!!! There is nothing worse than trying to impress people with your verbal skills and getting a word's, or worse, a colleague's name wrong.
Are you a hard-core engineer? Try writing a white-paper on some piece of technology you have expertise with. Your initiative and competence will likely be noticed by someone, and if it isn't, keep a copy and add it to your resume as another selling point if you ever find yourself looking elsewhere for work.
Communication skills are key for getting, keeping, and excelling in any job. All the technical expertise in the world in useless if you can't express to you your employer exactly what you can, and are willing to do.
Now, I have heard of success stories where engineers are now at the vice president level doing just what they want to: architecting systems and solutions.
But I've also heard from a mechanical engineer who has seen his friends who went either into management or into law with patent/IP work "surpass" him (in terms of money!)... (BTW: he's now in law school and clerking)
There is some truth to this. And I can't help but be drawn to the idea that computer programmers in the future will be viewed like automechanics: once revered, now looked at as "misfit motorheads" (until you car breaks down!!!)
Personally, I'm getting my masters part-time and I plan on doing this engineering thing 'till I die... however I can view everything as an engineering problem and that includes management. You can take the tinkerer out of the workshop but you can't take the workshop out of the tinkerer.
In the future, I would want to not be isolated from my friends in the Space Station.
I'm assuming that you want to stay in some sort of development type environment.
Part of my duties is to plan and assess procurments of enterprise apps for the biggest public sector authority in Europe. Looking at what we, and other public sector bodies, are buying right now the big field for the next 3-5 years is systems/data integration. The beauty of this from a devlopers point of view, especially someone with a good history who's looking to the future, is that you are usually reusing your existing skills (interfacing to the old legacy apps) whilst also picking up skills in the bleeding edge OSs and fields (where the new apps are running) and getting a really good workout for your problem resolution skills.
If you're looking for specific skills to develop then I'd have to go with a lot of other people who've commented and say OO, probably concentrating on Java and C++. On top of that I'd reccommend getting comfortable with a few different flavours of UNIX (Solaris and HP-UX seems to be the big ones or enterprise level boxes right now with Linux taking a big bite out of M$'s share of the datacentre in the small server arena), a couple of RDBMSs (Oracle for sure) and some SAP skills wouldn't hurt. A solid understanding of networking and IP would be very useful, as would XML knowlege.
Stephen
"Don't write down to your readers, the only people less intelligent than you can't read" - Sign on Newspaper Office Wall
I don't necessaily mean Linux embedded systems though dont exclude it. Anything from a thermostat for the furnace in your home to the air bag trigger system in your car is an embedded system, The market is HUGE. Your "nuts & bolts" experience fits very well in the embedded market along with your diversified skills, Which implies you're not oppossed to learning something new. Also you wont have to learn addtional languages since you already know C and ASM, thats really all you need. You'll learn your OS's on the job. If not pick up Linux in the meantime and if you can get your hands on it, vxworks. You don't have to reinvent yourself, just refocus what you already can do well. There will ALWAYS be a market for embedded systems. Oh, The salary and contracts a fscking ridiculous :)
One more thing. Since you mentioned robotics. Do you know CAN and/or CANOpen???
That's an emerging market here in the U.S. It's also 'the' standard for motion control and industrial automation.
Peter
www.alphalinux.org
Or perhaps management doesn't really care about quality of the product. Perhaps they only have the short term in mind and don't really care about the quality of the end result. This would be consistent with my experiences with H1Bs.
A Pirate and a Puritan look the same on a balance sheet.
I've been into computing since the Sharp MZ700 and Pc-1402 days. Now I'm a Software developer.
:-( ).
I switched to Linux on my PCs a year ago. Completely.
Yeah, it's commandline, ancient Unix quirks and all that. But here's the one major and main reason I did it:
I will never ever have to learn how to deal with yet another new OS!
Read that again. And let it sink in.
You don't honestly think that people will pay for shrinkwrapped software in five years from now? At least not enough to make a living from it. They will pay to have the job done. No matter what OS, no matter what Platform. End-user distinction of OSes in the everyday buisness is fading to non-existence fast. They're becoming nothing but a bare nececcity (spelling??
To me OSS is the only answer to your question.
We suffer more in our imagination than in reality. - Seneca
Are you talking about Ohio, or Cleveland?
A Pirate and a Puritan look the same on a balance sheet.
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.
--this is for the guy who submitted the questions, it's different in a lot of ways from the techie answers he's getting, but perhaps it's useful to him
--biggest problem I am seeing here is lack of understanding of what to DO with IT skills. companies are in the widget business. They USE "IT" skills to make and sell widgets. The PRIMARY goal is to make and sell widgets, all the IT skills are to be used as TOOLS to make and sell the widgets. Just IT in and of itself is only a market that sells the tools or builds the tools, but it's NOT the primary end market. The thinking should focus first on identifying a niche in the widget market that needs to be filled and isn't adequately yet.
Now the problem is there's a sort of depressed widget market. Along with IT, widget making is being outsourced, mostly to china and some other asian nations.
OK, now this is a double problem, short thinking bean counters and owners/managers only want their loot now, they could care less about eventually losing their customers, as they DON'T CARE that every outsourced job is also an outsourced consumer. They get their loot now, later on their plan is to live on that loot, they are fully prepared to drive by you huddled on the sidewalk begging, just like they do in any other technofuedal 2nd world nation now.
THINK on that aspect of society and the job market right now before you proceed.
Don't expect any of them to be loyal to you, so don't work for them. You'll just keep getting screwed, over and over again. if this wasn't true you'd still be employed, yes?
The only person who will be loyal to you is YOU, and only YOU will keep yourself employed.
Figure out a widget niche, then use your OWN IT technical skills for your OWN business model. You need your own business, and I DON'T mean just consulting for someone else's business.
Here's an analogy, it's rough (crappy really) but it might get this concept across.
Joe is a car/truck mechanic, over the years he's learned how to work on a lot of cars.
Joe worked for years for belchfire motors, but they gradually switched to using foreign parts and foreigners in general, eventually moving their factories and finally even outsourcing any repairs. His job got to be less and less hours until finally one day he got his last check, then was unemployed, despite being this great mechanic.
He then went around applying for mechanic jobs, but all over it was the same scene, mechanics not needed unless you today have this exact single thing we need and once that's finished good bye, see ya later.
He picks up a day here, a week, there, but it's rank and not really steady.
He's still a good mechanic.
He thinks, "hmm, what was I working on again?" "oh ya, I was a mechanic to make cars and trucks work"
He thinks again, "what do people use cars and trucks for to make a living with, something besides generic transportation?"
"Well, taxicabs, delivery, construction specialised truck-tools, etc".
So he gets a brainstorm, he goes into the commercial application vehicle business, he notices locally there's an unfilled niche, there's no light duty delivery service. He gets a fleet of small trucks, hires drivers, and uses his previous mechanical skills to keep the trucks running so he stays profitable. He starts with one truck, builds from there. he knocks on doors, gets contracts. he fixes his own truck at night if it needs it, and does deliveries during the day, always stopping at some new place to pitch his business. He's relentless.
He's not getting paid as a mechanic per se anymore, but he's still using his mechanic skills to "make money", but this time he's the boss and can make better decisions, like, he knows such and such a truck has a better track record for not breaking as often. Done, that's what gets decided. Other companies have the bean counters decide on the cheapest truck, so they suffer breakdowns later on but blame anyone but themselves. He knows that aftermarket part A is better than OEM part B, so he uses that part if needed. He knows that preventative maintenance is a good idea, so instead of running his vehicles x-thousand miles from tune ups and oil changes like his competition, he runs them in sooner-yes, higher short term cost, better long term average cost, it's cheaper in the long run to do it intelligently.
and etc.
Hope this helps, think one step higher in "business" mode rather than concentrating on "tech" mode, as being self employed is what's going to count in the future, not the overly niched skill set. use your skills to do business for yourself, don't make the money for other people. If they can afford to pay you x thousand, they are making x + thousand, might as well get the whole amount.
The handwriting is on the wall as to the two class global society coming, best you can do is to stave off the timing, get as self employed as possible, in at least two different areas, and for sure (this one is my really only serious detailed recommendation), make sure you move rural and own property outright that has it's own water, garden area and woodlot. Commute if you have to now or tellecommute, but DON'T stay major urban bound in a piped in reality apartment or house.
Look around, the %^&t is getting bad out there.
All the tech in the world won't eliminate the basics of being a carbon based lifeform. In times of economic or social crisis or depression, having the ability on site to feed, water and heat yourself and family will be more valuable than any number of high tech gizmos. Don't think in terms of just representative wealth in the form of money, think of what the basics are you use that "money" for, and get ahold of them now while still possible and affordable.
I listened to the stories from my grandmothers and great aunts about the great depression, it was no joke, there's no guarantee it won't happen again. People in the city who lost their jobs lost a LOT, those in the rural areas might have been poor but at least they had food and water and a place to sleep. Cover your basic human needs, proceed from there. It's real insurance, a great adjunct to that piece of paper in the file cabinet.
And anyone who don't think it can happenm, here's some clues.
Large corporations get a tax break to relocate outside the US. They are doing so. This is a bad idea and is part of the great economic snakeoil salesmen's spiel. Check the daily headlines, you aren't seeing "xyz corp anounces a new plant and hiring thousands" you are seeing "xyz corp announces layoffs". this is across the board, every sector you can point at practically. This is single major clue # 1.
The government cooks the books on unemployment to avoid panic, we are over double digits now, it's not the 5-6% they spout on teevee, it's double that. It's 10 to 12%, they DON'T count people who have exhausted unemployment benefits or who have been out of work past a few months.
Look at the major US banks derivatives exposure.(scary)
Look at the fortune 500 (and government) pension exposure(ditto, scary)
Look at where the major insurance carriers have their eggs piled now(nothing that's making any money beyond theoretical poker chip bond money. bonds can only be paid if people are working. bonds can default same as anything, and government printing press money won't help if the work itself defaults.)
Look at projected energy demands and what is related to what and where it comes from(we have a certain amount of cheap to extract by the BTU energy, hint, we don't own much of it anymore)
Look at which nations are going to be needing how much energy and when, timewise (china, 1.5 to 2 billion people, ramping up manufacturing and all those people demanding jobs and to become sort of kinda middle class, at least to have some bones thrown to them, projected crisis level roughly 2010)
Do that, you'll get reality religion and get self employed and move rural most likely. Most guys won't, the concept of "not having" and "$%^&* this is bad" hasn't been hammered in yet so it's "not possible". Latest release of quake and who won the ball game is still tops. Don't go there.
good luck and better skill
I have noticed many people mentioning Java and C, but few talking about perl. Am I the only one here who uses perl at work on a daily basis?
http://www.windmeadow.com/
I'm an academic purist, so normally I'd tell you that if you want to know about something new: get off your ass and learn it yourself. However in the case of networking I'd have to agree with you.
Let's face it: TCP/IP and UDP/IP are the only protocols worth a damn. Networking courses are filled with archaic ideas like ATM which clearly has no future (QoS will be implemented on top of TCP/IP). You could argue that learning about the good old days will teach students general design principles, however so would learning about the exotic ideas that might not be here for the long haul.
So rather than spend a bunch (it's okay to spend a little) of time on history or cut back the low-level portion of networking courses, I'd rather see students learning about things like IPv6, IPSec, and Mobile IP.
Also, develop some people skills. Go interact with non-engineer types. Join the local Sierra Club or softball team. This will also open up introductions to jobs that you would never have thought about.
if ( I.amIgnorantAboutJava()) {t orial");
if ( I.amIgnorantAboutOO()) {
I.buyAndRead(new Book("Thinking in Java"));
}
I.browseAndUse("http://java.sun.com/docs/books/tu
}
I.buyAndRead("Effective Java");
I.buyAndRead("Refactoring by Martin Fowler");
if (I.amInterestedInWebServices()) {
get("JBoss","http://www.jboss.org");
get("Tomcat","http://jakarta.apache.org");
}
The best advice I can give you is this: Spend less time posting stories on Slashdot, and more time actually learning something. ;-)
You can charge $100US per hour and more to plop content into FrontPage wizards and create "state-of-the-art" websites for stupid people.
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
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.
My point is that you do NOT pay any tax here for work done in this country. I have NO problem with Indian coders over here working and getting paid. They help pay for our hospitals, schools and military...
It doesn't make sense to tax a car built outside this country and not tax something like software development. The only difference is that it doesn't take much effort to "move" code in to the country. This is why it needs to be taxed much higher than an automobile.
Lets turn it around. Assume that I have a bunch of coders over here; say prison workers doing software development. I then "offer" those services to companies over in India for 1 Euro or 1 dollar an hour. Hmmmm..... I don't have to pay any taxes on that development do I? But YOU pay close to 60% of your income. I could even offer "early release" programs for these guys if they wrote good code and it worked well. This would help quality.
The more I learn about science, the more my faith in God increases.
This may not be what you're looking for, but why not apply your already well developed technical skill set to some other subject?
Financial Industry Tech.
Medical Industry Tech.
Manufacturing, Retail, Biological Research, Education, the list is endless.
If you can get really good at applying your skills to a certain broad industry you'll have quite a leg up on job applicants who's technical skills are similiar (or better) but have no depth of experience
A: Applying those skills to particular business models.
B: Using industry specific tools and implementations.
C: Navigating the vastly different cultural and political landscapes of a given industry.
D: Dealing well with industry specific vendors.
E: I'm sure the list goes on.
So pick an industry of interest and attack it with gusto.
Of course YMMV.
Operator, give me the number for 911!
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.
a PhD. My professors work, in a long week, 3 hours a day, 3 days a week. Their pay is pretty decent too. You can sit around calling your students morons and basically do things to piss off all of your students for a nice laugh. It sure sounds fun.
I've spent a lot of time recently looking for work. The big questions posed by most companies seem to be Oracle, Java, Cisco, and ASP. However it was my Linux, MySQL, Perl, PHP, Python skills that actually found me a job. If you cover all those bases you'll probably do okay at finding a job now and in the near future. For long-term I'd say Oracle, MySQL, Linux, Cisco, PHP, and Python are probably the most useful.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
Knowing all about various languages and such is great, it will get your foot in the door, etc - but what you really should know (and if you have done half of the things you posted, you should know this) is how languages work. In other words, the logic/mindset/etc behind general purpose computers. You should know enough that you could at least conceptualise how to develop a compiler or scripting language interpreter, using your "favorite" programming language (I am not saying it has to be optimised, but you should be able to know how to do it). Think of it as a mid-point of knowledge between that of a programmer and a comp. sci. individual - a melding of the theory with the practical.
Find and read books and articles on these "abstract" areas. Right now I am reading (and attempting to understand the main concepts behind) Stephen Wolfram's "A New Kind Of Science" - I don't know how it will help me later, but I am sure I will learn something interesting from it. I try to read and understand various books and articles on topics like that, and work that into my knowledge base to better myself in programming and other development work.
Believe me, if you can get the interview and can steer the conversation to such a funky topic, and describe how "simple cellular automatons can describe high-complex behavior, signifying that simple programs can create complex outcomes" and "as such, I can apply such knowledge to create better, smaller, and faster software systems", etc (ok, maybe not in those words, but you can see what I mean - be honest, no bull, but tell them what you know and take an interest in) - eyebrows will raise, and you may rise a few notches in consideration.
If you get the job, continue learning, and continue talking - and above all, build funky projects at home (I get the strangest looks when I tell people at my work about my current building of a homebrew electric vehicle using bicycle parts, custom welding, an surplus electric motor, etc - they just don't know what to think, BECAUSE IT ISN'T IN THEIR WORLDVIEW that somebody would do that).
I am sure you already do at least a little of this already, but if not - do it. If so, take it up a notch (ie, say your project is an AI for a game - well, why not just a generalised AI to compete in the Loebner prize challenge?)...
Reason is the Path to God - Anon
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.
:-) The quickest I've seen someone become competent for a reasonable range of tasks was about 2 years (and she was an extremely intelligent cryptography Stanford post-doc). Even for very bright and experienced programmers (10-15 years of experience), it more typically takes 3-5 years to start designing good cryptographic protocols and systems.
There is probably a bit of truth somewhere in this statement, but there are some real problems with it too. Perhaps this is the view of a system administrator, but it does not match my experience as a developer. I enjoy technology, but at the end of the day I'm being paid to accomplish things. Technology is merely a tool that helps you accomplish your goal. There are a lot of reasons why people can enjoy their job, and why they should seek out new technology. Speaking from experience, boredom is rarely solved by new technology, it usually has it roots elsewhere.
It takes a few days to pick up 98% of any language/tech...
I won't comment on the language part, but from my experience it is wildly over optimistic for a technology field. I'm a generalist by nature, and pride my self on my ability to investigate and use new technology quickly. Over the years I have specialized in a few areas, and most of them can not be mastered in a few days. Perhaps that is because I don't consider any area that can mastered in a few days worthy of being called a specialization. I'm talking about things like embedded system development and developing/analyzing cryptographic protocols, or even managing the software development process.
For example, it takes years to get good at applied cryptography (and this is not based just on my own learning rate
I'm sure there are technology fields that are less demanding, but to be frank that is part of the fun of specializing in this field. It does not take much reading (recommend Schneier's Crypto-Gram as a good starting place) to start seeing the flops made by people who thought they could learn cryptography in a few days.
LOL... are you trying to imply--even though sofware engineering jobs (arguably much more difficult than network administration) weren't "safe" from outsourcing--that network/unix admin jobs are somehow impervious to the cheap labor coming from Russia and India? Dream on, buddy.
First - start your own company. You can do it on-line now-a-days for next to nothing. If you know how to fix errors companies pay big money for people who can walk in, take over a problem, and fix the problem. Basically, you become your own consultant. Get some business insurance ($500.00 a year can buy you quite a bit of insurance). In this way other businesses will be less leary of hiring you as a consultant/independent programmer because they know that if something goes wrong they are covered.
:-) ) so the police know where to go to give out tickets. (Not that I would REALLY like anyone to do this - it just popped into my head.)
:-)
Second - write a program others will want to use. Like EverQuest. Only start small and work your way up to something as large as EverQuest. Pick a game that the patents and copyrights have expired on and go to town with it. Or write a variant. Make it Java or browser based so people don't have to buy the game. Make it look nice with some graphics (you can get free graphics off of the web too!) and do a very cheap subscription fee (like a dollar a year or something). You are looking for volume. So yeah - you only get a dollar a year from someone. Well, 100,000 someone's is still $100,000.00 and there are places which will host your site for very little. Some, I am told, will do it for free.
Remember that big companies like Microsoft, BMC Software, and the like all started out with only one or two people who wrote or bought programs and then just marketed them well. That (IMHO) is what you need to do. Because it sounds as though you have reached a plateau in your life. You are at that point where you can do the computer stuff but the business end of things isn't your balliwick. So maybe its time to invest some time in learning that end of things. You do it right and you'll end up like the owner of SAS Corporation, Microsoft, and the like. Or - you can just keep on beating your head against the wall which doesn't care if you live or die. I'd climb over it, go around it, under it, or blow it up. Stop going "I need a job" and start saying "I want to make money and here is how I'm going to do it."
I know it sounds like a "Ra-ra-ree, kick'em in the knee" thing but the truth is that a lot of people are in great need of a lot of good software and no one is making that software. Well, you don't have a job? Ok - then you do have the time to work on some personal software which you might be able to market. Here are some ideas:
1. Scheduling program for pet boarding houses. All of the software currently available will not allow people outside of the company to request days for their pets, to see the status of their pets, or anything else. The current state of scheduling systems are closed ones (ie: they only work on the computer systems in-house). Write one so people over the net can do things.
2. Same as #1 but for dentists, doctors, and the like. Why can't we make appointments to see the doctor via the net? *shrug* I dunno - you just can't.
3. My mechanic has one of the crudest systems for keeping track of his inventory. Write one for the small businessman. Charge him $50.00 a whack. Sell him a complete system for more.
4. Hispanics in Texas who do not speak english have an awful problem because every program I've ever seen is in english. We also have a large asian community. Using the capabilities of Java (and some help from a friend, etc...) write programs so they are in other languages or even multiple languages. Error messages and all!
5. Write a program which looks for things like fires. Couple that with video input. Now you have a way to tell if a house is on fire via video. Sell that to cities so they can monitor areas for fires automatically.
6. Write a program to note changes. Hook it up to video cameras. Use it to denote whether traffic is moving or standing still so it can automatically update TV and radio stations on traffic conditions. You could also use it to monitor where people are speeding a lot (boo! hisss!
Ok - there are six programs you could work on and sell. Remember that in selling you will get a lot of no's but just learn from them and keep going. I know the guys who work on my car really wish there was a Vietnamise version of their software. But there isn't. So they make do. It is one of the reasons why I am working on quitting my job. I've found enough things to work on and get out the door to make me money that I no longer want to stay where I am working. So I'm planning on selling my house, moving out of the city (so it is cheaper to live), and working on my software. Once through I will begin selling it on-line as well as door-to-door. I know it will be tough going at first but I also know that I can sell myself as well as the software. Especially since I plan on toting around my own laptop to demonstrate things and I plan on making everything web based. All they will need is a browser and nothing else.
Just my $0.02 worth.
Someone put a black hole in my pocket and now I'm broke.
Heheh. It is around here when my wife is going through an 'ebay' period and wants to look at it from our rolltop desk in the living room; otherwise it is just my 'learning time' that I should be spending at an auction with her
I think with the interesting people, their lives can't possibly be wrapped up into a nice little package.
"player 4 hit player 1 with 0 stroms"
...it sounds like you're already far more qualified than I am. *grin*
I'm an embedded systems engineer. I dabble here and there with hardware, but I mostly do software. At all levels, but mostly the deeper levels of things. I've done everything from web user-interfaces under Linux, to custom BIOSes and bootloaders, to firmware to drive network adapter's MACs. And all of that so far has been C and assembly, both of which you already know. Space constraints rarely allow me anything more extravagant than that. If I have it available, I'd probably implement any given thing in Perl, but it's all good.
I'm saddened that CV buzzword compliance takes precedence over simply knowing the tools that would allow you to do the job you're prepared to do. The future is a big place, especially the computer industry. Are you seeking something on the applications side of things, on the bare-metal side of things, or where?
As an engineer who definitely tends towards the bare-metal and hardcore embedded end of things, I'm sure I would recommend far different things than a webdesigner or GUI head or SQL jockey would. Though I think embedded devices will play a large part in the future, I'm sure the other subfields will be right there with it.
Paranoid
Bwaahahahahaa.
Yes, we are probably in closer agreement than I first thought. As I look over my examples, a lot of what I was thinking about was at the "design" level, while you were really talking about the "coding" level.
:-( no special programming knowledge is needed.
To expand upon your SSL example: It should not take long for a competent programmer to add SSL to an existing program using the OpenSSL library. The protocols and libraries already exist, and there are a lot of existing examples. So long as you can avoid adding any buffer overflows
It is quite another thing to design and implement a new cryptographic protocol (hmm, should I XOR those values together before or after I encrypt them?).