Re-Tooling Your Skills for the Future?
nojayuk asks: " Over the decades I've re-skilled myself several times, from mainframe FORTRAN through minicomputer PASCAL to microcomputer C. In between I've done microcontroller development and programming in Assembler, robotics, graphics design and 3-D animation for TV, PC build and repair, Website design etc. Currently I'm looking for work and I'm wondering what new skills do I need to stay in the computing biz. What OSes do I need to know, what technologies do I have to have under my belt for the employers to come hunting for me instead of me passing my obsolete CV around and being told to get lost? I'm looking for advice, not just for next week but for a few years down the line. What can I do to acquire these essential new skills?"
Tragically, it looks like the only OS you'll need to know is Window$
It isn't the quantity that counts but the quality of your knowledge
Perhaps IPv6 is something you should look into. How many IT people are experts in that field?
The university I go to doesnt even look at it, which is a shame because it's got to be rolled out sooner or later. I think most people are hoping for the later.
Be you Admins? nay, we are but lusers!
By having to ask for skill ideas you are highlighting a much bigger problem with yourself - that is to say, you are willing to let your skills slip and then accept advice on the matter from random strangers.
No good will come from this - it will, ironically enough, hinder your progress. Possible employers shall note to ignore you in the future due to this.
Now, before someone else chips in, asking for help is a good personality trait, this much is true. However, "there's a time and a place for everything" would be rather more advisable.
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
Even in the slow economy, there are still quite a few companies looking for Java developers. I don't think it will slow down in the near future. 10 years from now who knows, but some decent Java skills should keep you employed for at least the next 3 to 5 years.
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).
It seems with all the hype, and all the layoffs, there are no shortages for anything in IT. You'll be lucky if you find anything at all out there right now.
.. 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.
Instead, you should find a good way to demonstrate your skills (and maybe learn a bit of something new while demonstrating). Maybe you could do that by contributing something significant to an existing open source project - or maybe by taking a challenge and implmeneting someone's idea.
I do think, and based on my experience, employers will contact you - if you can show evidence like this.
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
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
start with a new haircut :)
Slightly off topic.
You're looking for work. So are a lot of qualified and talented people.
I hate to say this, but a huge number of IT jobs are going to India, and other low cost places.
You may have heard about this before. But hear me, please. Major US corporations are signing huge deals with Indian, and other offshore IT firms. (Prudential Securities, Lehman Bothers, Citigroup, General Electric).
There are huge differences in salary between an Indian developer($8-$12) and his US counterpart(>$75000). Do the math.
Educating yourself about this important issue, IMHO, should come before diving into the latest O'reilly book.
These big companies are sending our jobs overseas a little at a time. This is a serious problem.
I don't have time to post any more about this, but please take the time to read about this. Join a local IT group. Network, and spread the word about this.
Maybe if we're organized, we can slow this train down before it's totally out of the station.
Huh?
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.
I'd also be interested in everyones answer to this. I started working in IT in 98 (which still makes me a little wet under the ears) where i started slaving at a helpdesk for a national ISP, and from there moved to another isp and eventually reached a position similar to systems support.
Now 4 years down the track and one bad decision later (that decision was to move interstate and find new challenging work) I'm now unemployed. When applying for jobs i'm either told i'm underqualified (according to my CV) or over qualified (according to my experience). Now as far as qualifications go i have none except my HSC (please dont ask me for an american equivalent i wouldnt have a clue) and so i releid upon a strong work ethic to try and make up for this by piling on the experience, which has worked until now. Industries that were blooming when i started out have dried up. Geeks have gone from being sort after to being a dime a dozen. Now i have thought about going out and getting some kind of M$ cert like every man and his dog but for some reason pride wont let me do it, instead i've always been in favor of some kind of *nix or cisco cert. Can anyone offer suggestions of ways to turn the tables back? i tihnk theres alot of aussie techies who know how i feel and would also like to hear from you all.
I've misread the title as "Ask Slashdot: Re-Trolling Your Skills for the Future?".
guru in training
Nevertheless, it is important to maximise your knowledge of the pervasive aspects of software development. For example:
Study some software engineering texts - newer ones about agile development and XP, as well as older ones that will cover the waterfall model, testing methodologies, and so on.
Learn about design --- many principles stay the same regardless of technologies. There are now good books on design, especially design patterns, and also case studies available. Open source programs can sometimes help you to understand how to build large systems effectively.
Keep up with the community - not just online...join professional associations - learn from them and contribute to them.
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.
But .NET is, sadly, the future.
.NET people who get headhunters calling or emailing them almost daily because of their .NET skills on Monster.com. I can't explain why, but it does happen. I've seen the e-mails. Just yesterday, I saw an e-mail where a headhunter hired by a HUGE, traditionally non-Microsoft, corporation in Silicon Valley needs six .NET "engineers" immediately.
I work with a couple of
It's really deplorable.
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!"); }
when that job is no longer what you love to do, change your job. It's just that simple. Things work out in the end and hopefully when you're old and grey you won't be saying "I wish I quit that job and done something interesting." But then again, a large percentage of Americans think of jobs as "puts bread on the table."
Manage H1-Bs. Seriously, dude, it's over.
You've been priced out of the market.
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
Go for a Unix Admin or a Network Admin job.
I am still gainfully employed! And the best part is
there won't be some Indian from india lowballing
you since most decent jobs in this area you need to be an American Citizen!
Indian work may be ok, but there are major language issues and and cultural issues. I for one know that they do no bathe often (Uh.. the stench!) and also
a bug to us is a feature for them.
Am I racist... no. They come here on a Visa and
work for peanuts (I guesst to feed the elephants).
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)
Solaris SA with some kind of specialization. ie, Oracle DB, Directory Server (Iplanet), Webserver (Iplanet, Websphere). Need knowledge of Solaris including OS, shell scripting. This is worth about 80k-130k a year in Ohio, and it's relatively easy to find jobs. It will take 3-4 years to get into and build the skillset you need from scratch, but offers stability and high-pay.
.net. If you catch it on the curve up, you can pull off some big cash, quick as companies try to implement new technology. Money here is limitless as the number of people who understand the technology is low, but the demand will be high (as Microsoft has a great marketing department.) Learning time is about 6 months, but skill usefullness is only about 2-3 years. (After 3 years or so, people will see all these other yokers making a killing the market will start to flood with knowledgeable pepole.
If you are looking more shorterm, pick up some
Check out veritos as well. I don't know exactly what it is, but I think it does high level disk management and perhaps some other high level datacenter functions. Pay starts at 100k.
This isn't the sig you are looking for... Carry on...
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.
The one thing that doesn't seem to have changed over many years, is the need for people experienced with setting up large database systems and keeping them running smoothly - from the days of the big IBM mainframe databases (IMS I think it was) to the Oracle databases of current times. Even if you don't want to be a DBA, having some basic knowledge is always helpful and appealing to a future employer (especially if you combine it with a bit of server/network experience).
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.)
I didn't realise that Indian developers were so cheap. At $8 - $12 dollers a year I'm going to buy myself an Indian spam filter pronto!
Where do I recruit from?
Where I work, we have a lot of people that can write software, but few have a good foundation in object oriented design, analysis and programming. OO languages are the future (Java, C++, C#, etc. - it's just another OO tool to get the job done).
Those that will be successful in the future will fully understand OO concepts, UML type design work, use adaptable development processes (like Agile development), and demonstrate good code, test and integration skills, and most of all - not be afraid of team design and code reviews.
Software engineers are a dime a dozen now, what will set one apart from another is forward thinking object solutions that minimize development time, encourage team participation and maximize company profits. Effective engineers comes to mind. Look beyond the implementation language for future skills.
Anon Coward (633k of some 52 years)
"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.
My friends and I have found the following skills essential for survival in the highly unstable world of corporate IT...
- endurance web browsing
- 150+ words-per-minute Instant Messaging
- juggling of various objects/equipment
- Photoshop (for fark.com's "Photoshop this image...")
- advanced buddy iconography design (for somethingleet.com
- Magic the Gathering (be able to play or discuss at length)
- random philosophical/political debate and discussion savvy (you should read enough about a subject to make jokes)
- master the yo-yo
- basic drawing skills (for those white board masterpieces)
- innovative "cube flair" collection and placement abilities (try Feng Shui for the basics, then develop your own "small-space" aesthetic philosophy)
particlesphere.com - quantum
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.
Learn to program for Microsoft Windows. And I don't mean Visual Basic. Learn the innards of how C++ and COM works in windows, and you will never want for a day of work again. With defense agencies standardizing a huge mission planning effort on Windows (search in google for JMPS... Joint Mission PLanning System) this will promise at least 2 decades of work.
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
The slow, clear and concise pronunciation of the phrase "Would you like fries with that".
Depends on what area you want to work in. For myself packaged software is important since I am a business consultant / Developer. XML, Java and any big CRM / ERP package are well in demand. C** is a skill that is less in demand in these areas, Java can do it all anyway. Interoperability is done through XML messages and SOAP over HTTP... etc. Business Process knowledge and optimization is the 'word' of the day and that is where the money is for the time being and .. for the near to long term future.
But then again... Siebel was big 5 years ago and is now lagging behind the bigger players such as Peoplesoft. SAP is still the biggest in Europe but Navision (Microsoft) is hopping at huge strides.
Just some insight. in short it depends what you like to do and if you're a 'nuts and bolts' guy or a high level business software architect.
First off, I always have this question for people being "hunted by employers": Say you get the job and you are brought on board as the one who will save the day, can you handle the pressure?
Given your background in HW/SW, large and small scale architectures with a smattering of web stuff, I'd suggest looking seriously into medical imaging.
Why you ask? 1) Medical imaging combines the HW/SW in the DAQ side, 2) data handling over a range of architectures, 3) presentation of results to users. The things that might be missing are a) killer math skills and b) the ability to render complex problems into bite size chunks that MD's can understand.
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...
And the fact is that C# leads to vendor lock-in like you've never dreamed of, even in your worst nightmares.
I think that with the technical experience you have it's important to train social skills. Having mastered basics of human interactions you will find it much more easy to convince potential boss without stressing his/her self-esteem.
If you can demonstrate your ability to competently work around complex social problems related to your main profession then you most probably become a very valuable worker in short time.
As far as i know it becomes more and more popular to point attention to communication abilities of team managers. You may claim position of high to top technical manager with such skill.
I'm not a brake. I'm an accelerator. Just a slow one...
Seriously, Congress has passed a lot of anti-American H1-B bills that are KILLING the tech workers of America.
Unless you want to offer yourself out at the same price as an H1-B: $25,000/year, no benefits, 12 hours+ a day, you're going to have a difficult time finding a job.
The only option is to manage them, and in that case, speaking Hindi would be a valuable asset, as many of them lack the English proficiency to take orders properly -- with one screw up by an H1B, and all hell can break loose.
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.
System admin
web programming
standalone applications
quick and dirty scripts
In addition, it's a lot of fun !
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.
if you have a tech degree then just sit on that... or you could go the management route. If you are asking what leadership, facilitating, coordinating, etc skills you need then you will not make a good manager. Remember, to be a "good" manager for large companies or government organizations you really just need to adopt some buzz words, close in some networking gaps (people not hardware) and constantly attend various meetings. If after a few years you have not produced any positive results but have in fact spent millions of dollars then you will know you are on the fast track to success.
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.
If you don't want to schlock code around, invest in learning more about Systems/Software Engineering. DoD just killed the 5000-series, so 40 years of 'the way we do things' is dead. Emphasis on items like CMMI, software quality, productivity, etc will give any of your future employers a competetive edge, if you are succesful in practicing what you have learned. Organizational culture and buy-in would be your biggest obstacles, so you need to be one heck of a salesman.
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
Stop posting your resume on /.
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.
I read what this guy has done, and I thought about all the crap I've done/am doing, and, "a van down by the river" doesn't sound half bad. I mean, is it really worth slaving away for PHBs? I'd rather contribute to bringing this absurd system down by NOT contributing tax revenue to the beast. Hey, they can't tax it if I don't earn it.
I've been doing practice runs. Trying to sleep in my car. Taking note of places to park at night. Using the Internet from Kinkos on my laptop. Finding open 802.11 networks. How many Slashdotters are homeless? How is it working out for you?
Before you mod this off topic, consider the fact that it really isn't. It's about updating one's skillset to live outside the PHB reality.
-Kevin
The subject sums it up. If you lived in the US (I'm assuming from your email that you live in the UK), you would be best to start/continue your MS education -- get those certifications every year, be sure to be able to regurgitate the latest MS TLAs and official lies. Given the DoJ "settlement", Open Source does not have long to live in the US -- closed ID protocols and software patents are just two routes MS can and will use to crush it. If, however, you live in a country not under the thumb of Gates (anywhere else), you should probably focus on learning Open Source and lobbying your elected officials not to sell out your country to Gates. Good luck in either case.
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
(I have been doing interesting work in computers since the sixties. Right now I also have a job with an employer that appreciates my skill set.) The problem you mention is always just around the corner. My impression is that there are others on "slashdot" that share the following opinion: The "web" came out of the area of high energy physics; and they are now working on something that is called the "grid." In the near term, many "double e's" are talking about "spintronics" and there is a lot of money being spent in academia for "quantum computing" and "quantum encryption." The quotation marks are deliberate, because they represent a certain amount of marketing. Like it or not, that is where the future is being revealed, even though many of the topics discussed by marketeers will never make it to the real world.
The most trendy stuff to learn, is defintely Java (all of them, applets, servlets, EJB, ...) and XML.
Everything that as to do with Linux is also very "à la mode". Think this is already enough learning for a few decacdes, so have fun.
n-e
Yeah, like Jon Katz..
Hey, where is JonKatz these days? I haven't read any of his stupid drivel for.. months? Has he been sacked?
Quality and quantity have nothing to do with it. Working for one of the telcom corps who is *still* hiring I can tell you this: HR and hiring managers routinely ignore the hundreads and thousands of resumes we get for each advertised job opening. Instead when we have open positions, they hit up current employees for references or candidates. Thats how its done in a lean market.
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?
All the jobs are in India now, aren't they?
I graduated with an MS in CiS in August (top of the class) and have yet to find a better job than the one I'm currently doing (and this one really sucks. Can you say ForTran??). The job market for IT people just plain stinks. If you're over 40 (I'm 38) you better start looking at your other skills because being a great programmer is worthless in the face of 200,000 H1B visas that will work for $35K. Management and HR have never had a clue what programmers do, much less who's good and who's bad. So the only think they have to go by is price. If I can get someone to do the job for $35K why would I pay $70K. At the same time, they never see the difference because the fact that the guy doing the job for $35K took weeks to do what the guy making $70K could do in half a day is never demonstarted because the 70K guy didn't get the job and there's no basis for comparison. What a frustrating business this is!!!
Talent is the key, the talent to post on the right board, first. The talent to be so damn busy that you kick ass without trying. Leave IT if you feel like you no longer have the talent for it. I suggest doing something you are interested in. Interest makes talent, even if that means being a father and a husband or an accountant or even going back to school. Now that you are looking for a new life it sounds like you could devise your interest around what you actually want! Who gives a crap about what jobs are out there. Most people don't know what they are doing and are easily enough replaced. Do what matters to you. Paying bills is nice but if you have to spend 40-60hours a week to pay bills, that means what you want to do with your life is pay bills. Time Talent and Treasure is all we have and where we spend them there is our heart.
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.
?pr? "style" LIEk fuddles.con uses on forums all over the wwworld? all you knead to do that, is to renounce any rights to your integrity.
we've had remarkable ?success?, riding on rob's coattails, by posting whimsical plugs for our gnu 'business', etc..... train as you go, what a skirma, no? the pay is not exceptional, but we do get to keep our souls.
of course, all that's changing now, ever since we were listed as one of the "Top 10 Companies of 2002"(tm) , on fuddle's search thingy. what a br\eak for US?
almost everything's gnu now. there's more...?
beat DOWn from trying to be a billyunheir/keeping your job? you may want to try some nice ktea. it's not snake oil, but it's still good for you.
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...!
I work in the financial software industry and the one thing that I've notice, is the majority of institutions that have no room to add any other staff will have one or two jobs that deals with security or digital compliance. Decent money, too!
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.
war is not good for the economy.
total republican control is not good for the economy.
be prepared to bend over and take it up the ass.
... hi bingo
What about hardware? Everybody is gabbing and rattling about software development, but nobody has yet to mention hardware development. Without the Hardware, there will be nowhere to code. imho, there will always be a place for people to work in hardware, either on development or maintenance. I know alot of people lament maintenance work, as it brings you close to dumb users, but if your willing to have fun with it, or have a ton of patience, there is no reason why that cant be a good possible career track. Lets not forget about networking either, especially things like advanced network design and maintenance. imho, different people groove to different things. I myself cant stand programming, but luv hardware.. anyway.
take my kharma, I dont want it anyway...FLAME ON!
I'm a little tea pot.
You sound like you've been around a while and done a lot of things. Do you WANT to keep up with the cutting edge? There are still a LOT of older systems that desperately need qualified people to maintain them. If you want to go cutting edge, that's your choice, but dont assume that newer will benefit your career more. Hiring people want young people to do new things. It's a shame, but thats how it works.
People who think they know everything really piss off those of us that actually do.
soap and xml
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
I got out of IT. I have two kids and I don't want to spend their childhoods chasing meaningless certifications and contract jobs that are headed for Bombay.
I am back in grad school studying Library and Information Science, the field I currently work in. It won't make me a millionaire but it won't be exported to India either and I'm home by 4:30 every day.
My advice is to find something where you'll always be in demand, recession or not, like auto repair. Forget B.S. slogans like, "Find something you love and you'll never work again." That's just not reality. For me, looking for work is agony and I don't want to ever have to do it again.
Life is what passes you by while you're worrying about your career.
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.
SOAP and Web Service Security.
I like-a do-the cha-cha.
Java exists for Smartcards too
More information
Ceci n'est pas un sig
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.
Start your own computer insurance business. Here's how it works: in exchange for a monthly fee, you promise not to break into business' computers. If they do not pay then you (a) bust their kneecaps (b) destroy their data. Should only take about 6-7 kneecaps before you're in the money.
Get fluent with all of these and you'll be in high demand. These are the things that everyone knows are great ideas but don't allocate the time to learn. If you walk into a place already knowing these like the back of your hand, you'll be in demand.
The most important and timeless one is "debugging". Get REALLY GOOD at debugging and you will become a much more productive and respected employee. Be the guy who can sit down with basically any debugger and do things like pick function call parameters out of ASM-style register and stack dumps or figure out hairy multi-threading issues.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
Why is .net the future? Because you say so? .net is a 'mother may I' type of product.
If you use it, you will loose all of your designs as MS will steal them. .net is failure, it is bad design.
It is corporate greed as software design.
do you work for MS? just because you see six jobs doesn't mean that they are hiring.
I won't waste my time 'learning' .net because you do your design and, if you need to you fit it into the .net scheme. But if you get your stuff working you won't need .net. .net is designed as spy-ware to steal your work.
There is nothing to learn except that if you use it you are giving your work to the MS for free.
And they will steal it from you.
So, I guess that means you should go learn Websphere or something.
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.
It'll serve you well, and enable you to see through the marketing hype of Java and XML to the pale reflections of Lispy goodness that they are.
Python. Dispite what SOME people say, python is on the verge of superiority. And with the way trends work, python is definitely ahead of the game.
There are a TON of positions in the DC Metro area. According to more than one article I've read, find a way to get security clearance, and you can easily nab a government IT job.
The problem (so I've been told) is that you have to get a sponsor (ie - a job) in order to get the clearance.
I know that doesn't help you with long term skill sets, but it can help you in the (government) job market.
Learn XML, especially how to write and apply schemas and XSLT transforms. Also learn how to process XML using SAX, DOM, and XSLT in one of the languages du jour (I recommend Java, Python, or Perl). Everyone is going to migrate to XML; I don't see any way around it. Probably the most marketable application in the near future is data infrastructure for web-based apps, but this will expand. Just do it. You won't be sorry.
So unless you want to compete with cheap off-the-shelf knowledge, you'll have to do better than just Java.
I've browsed various pertinent newsgroups, attended training seminars, etc., and have figured out that VB.NET is going to be the .NET "of choice" because VB is already the M$ language "of choice". And since .NET is byte-compiled, VB.NET executes just as fast as C#. Yes, C# is better to do work in but all those VB coders ain't gonna learn C#. So, if you want to fit into the herd of .NET programmers, however small or large it turns out to be, some familiarity with VB.NET will be wise.
just buy Sam's teach yourself Visual Basic in 21 days...
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
Just look at trends and Gartner et. al. reports for what is becoming much, much more important over time. - BI: OLAP, ETL and BI clients are going to be huge. Large companies are finally finding ways to deal with too much data, and BI is the way they do it. Practically every BI vendor is busting the seams in new sales. And hardly anyone understands a thing about these areas. - Open source: believe the hype, every large company in the country is looking into the advantages of saving big money with Linux, and pratically everyday you see a new article about a company that became a MySQL believer. - Security: just ask the guys the read 2600. As systems become more complex, so will the skills required to secure them. And here's some things I'd shy away from: Big Iron: Sure, Solaris certs are a guaranteed job, but every survey that comes out shows they are turning into a Novell as alternatives get cheaper and better. Java: Another batch of false promises exposed. Seems like once a week a major web company decides to go with PHP over anything Java. Companies that are run by their vendors still bring in Java apps, but for every one of those there's another throwing it all out for .NET or something else. It isn't the growth area it used to be.
- Web Services: Oh yes, it will be important to know, but within a few years it won't be something to seperate you from the crowd. Understaning them will be a basic skill.
Seems like these days (having just been through the layoff/search/hire cycle) there are a number of buzzwords needed on the CV, BUT, once you are in the door, having a good understanding of the underlying principles of networking (802.3, 802.2, 802.5) and TCP/IP can land you nice contracts (even steady employment) in network security. Throw in a bit of sockets programing in C/Java and you have a home...
I sorry, but its: "Welcome to McDonald's, my I take your order?"
The two big growth areas I see are security, and migration. The specs are very generalized, but Dubya's homeland security initiative is pushing to secure America's networks. Over the next few years, IPsec, DNSSEC, and encryption in general will be big. Also, migration. Specificaly, migrating from high cost Unix boxes to lower cost linux solutions. And in a few years, possibly even significant desktop migration.
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.
As more and more companies outsource, IT professionals have 2 basic choices.
1) work for the outsourcing company
2) work for the company itself.
The outsourcing company approach is generally more technical and is a good way to build and maintain skills.
Working for a company that outsources, is genrally less hands on but requires the understanding of technology in order to drive and direct the outsourcing company and insure the compaies IT demands are being met.
As others have mentioned, taking the technical route exposes you to foreign labor pools that serioulsy threaten your livelihood but IMHO option #2 is a great and reliable career path both now and in the future.
You can have every technical coding skill any tech employer could possibly look for, be able to design and code for and administer a clustered SQL database, have the best creative ideas for web site graphical design, be able to estimate to the precise minute time required for a development contract, have a doctorate in this, that, and the other, be able to fly a space shuttle, design bridges, whatever.. a recruiter still is going to say you're not good enough. fucking bloodsucking bastards..
Why don't you let some other poor slob get work in IT! As an unemployed GenX'er I really hate you old-timers. I swear I find someone has just got a job I'm qualified for, I'm goin' to slit his throat and take his place.
I work in a shop where most of the IS is in their 40's and life is just peachy. I think I understood what the gentleman was trying to convey with his illustration about the company picnic he witnessed but the line about no one speaking english showed a bit of a red neck flavor,which if is so easily identifiable via a post on
Perhaps it's time to pack it up, move to california and write humor for Larry David?!
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.
Man, that's a relief!
I was afraid that I was going to have to exert mental energy in order to make a living.
Brown Nosing.
However, to "technically" answer your question, I would learn both UNIX and Linux. Linux sure as heck isn't going down in popularity. I would also pick up Windows skills. Everyone is pretty much either running Windows or Linux/UNIX.
Novell is going down the tubes, and unless you know you're going to be in a Novell shop, don't bother anymore. I'm a Master CNE and am disappointed in the fact that Novell not only has dissed their technical base, but dissed their user base as well. The ironic part is that Novell 6 is very, very good from what I've seen.
For UNIX I would suggest Sun or HP. SCO is all but dead except for small customers who have had their machines for a while. Many are migrating to Linux.
I would also learn a database or two, like Oracle, SQL Server, and MySQL and PostGRESQL.
So, after you get your MCSE, Cisco, UNIX, Linux, Oracle, SQL Server certifications you should be ready to go.
But, the brown nosing is the most important in today's market. Trust me.
what does cutting the federal governmnet have to do with increasing REVENUE? He RAISED TAXES that is bad for revenue. economic activity gives more money to teh government. that is why Illegal alliens are a net benifit on the revenu of the government casue they work for low wages, do lots of work and produce lots of revenue for the company who then has to buy products in higher volume since they have more work being done and can afford more products since they pay them less....this extra economic activity addes more revenue to the US government than taxing the illegals would.
I am the Alpha and the Omega-3
It sounds like you base your decision of what to learn based upon the market and what gives you the most marketable skills.
.NET is where it's at - not necessarily the best technologies, but definitely the most employable ones.
Everyone knows that the folks on Slashdot ignore these concepts; it's all about the "geekiness" and the politics of the technology at hand. I mean, most folks here look up to Richard Stallman, whose driving philosophy is, "If it isn't free, don't use it - rewrite it from the ground up!"
For what it matters, I think J2EE or
The best thing about a boolean is even if you are wrong, you are only off by a bit.
Wireless is a hot topic today, and it will continue to be hot for the next 10+ years.
The number of cell phones greatly surpases the number of computers in the world. This is a huge market that is just recently opening up.
Or go learn Chinese and try to get involved somehow with that MASSIVE market which is just recently opening up to the rest of the world.
E V E R Y T H I N G I W R I T E I S F A L S E
God, do I hate the grinning gossipers of HR. Apart from yakking all day, and staring stupidly at resumes they don't understand, what do they do.
A buddy of mine in Ottawa nearly strangled his HR bunny last year when she changed an ad from"three years of Java experience" to "six" in order to get someone really qualified.
Wasn't it Dijkstra who said something like 'the teaching of COBOL cripples the mind and should be considered a criminal offense' ?
:-)
I'm a solid C++ programmer. Done MFC and COM these last few years. MFC's dying. COM's going down. Learn Java or .Net. If you go with .Net, learn either C# or Visual Basic.Net, and get to learn about the CLR. I used to detest VB; it was the OO language that wasn't. VB is now a more verbose C#, and is much better to develop with than the old versions. It's only problem is that it doesn't port, so if you think you're going to be developing .Net on a non-MS platform, do C#.
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.
nerdmaker.com
Oracle 9i
VB.NET
Dreamweaver MX
Photoshop 7
Coming soon
Flash MX
Expanded Oracle
Java
--- "Remember, there's a difference between bowing down and bending over." -Frank Zappa
I work at a company that, over the past two years, has layed of about 60% of our staff. Since I'm a level one embedded software engineer, I had figured that I would have been cut a while ago. But, I feel it's been my additional skills that kept me employed. In addition to being a software engineer, I also administer all of our Linux machines, do all of our automated unit testing for my group (while teaching my co-workers in other groups), and I write custom tools that are used internally... So, having a wide range of skills can help!
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
> Well speaking for some of the "West". We have
> NO problem competing with India on codeing,
> however we pay 60% of our income in taxes.
> Those taxes go to pay for stuff here in the
> west. Those coders over in India don't pay
> anything!
Hi! I am from India.
We also pay taxes on our wages, which approach the 60% you quote.
There are also many other taxes related to operating a company, etc, which are paid by the company.
" 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.
learning to spell is always a good starting point
Mindless automatons?
What do you think HR recruiters do for a living? They try to find candidates who match the skills for jobs they're asked to fill. They work to comply with the laws that regulate employment. They try to make it efficient and comfortable for those involved in the process.
They don't make up the job descriptions, or decide if a skill set different than requested would be more appropriate. "I know you asked for a bus driver, but I think you really wanted an airline pilot". WOW! Who's looking for work now?
If you have a problem with job postings, then you have a problem with the person looking to hiring someone. If they can't adequately characterise the skills they're looking for, then maybe you don't want to work there.
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
COBOL!
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
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
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.
There is no evidence to support your theory. In both the Reagan and previous Bush administrations debt and defecit increased in relation to the GDP (I do understand the concept, making the pie[the economy] bigger, so that the debt slice of the pie is relatively smaller, even though it may increase in size). However republican administrations have not reduced the size of government, they just change the fiscal priorities (our military budget is quickly moving to 400 Billion a year, we are outspending any other 3 countries on the planet, Canada and Mexico are not going to attack us, we are no longer threatened by the Soviets). In fact our national policies are being served to us behind the scenes by a bunch of sothern baptist fanatics looking forward to the rapture, when they can destroy all life on the planet, based on a 2,000 year old book that has been questionably translated and can be interpreted any number of a billion ways. The good news is that real time programming (lagely in C) jobs will be easier to get over the next 2 years because arms manufacturers will be building weapons like mad so we can kill brown people all over the globe.
IF the republican financial policy were real (and not just bushit) they would stick to a strickly defensive insular military (like Sweden) and spend our tax money on small business loans and education.
Until our children are no longer molded into castrated sheep democracy remains a fake and a danger. -A. S. Neill
--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.
I agree with all the other posts mostly but I do not see any suggestions for service based offerings. Like for instance performance testing web sites for clients using Load Runner or SilPerformer. Or how about a good understanding of web hosting and domain registration. All valuable tools for making the checks that pay the bills.
A hand up and a foot on every chest...
Now, before you start going off on managers, read on.
The tech world suffers from lack of good, trained managers. Most managers started out on development teams, then sort of got thrown into management positions.
I worked for a Fortune 50 company for 11 years, and while I was damn happy to leave it, I had some top-notch managers, who were truly dedicated to the development of the people under them. Why? Because if the folks under them succeeded, so did they.
Since leaving that company, I have dealt with some of the worst or most clueless managers ever. Is it any wonder we're reading articles about how buggy software is?
We need managers who can really lead, who can plan and schedule resources, and who can forecast. There's always a demand for that.
Specialists in all fields earn more money. They apply the "everything looks like a nail" because actually they work with nails only.
The minus is that a specialist is like a dinosaur: very successful creature, but far less adaptable to meteoric change and ripe candidate for extintion.
But we are not dinosaurs, if you know your niche and follow trends you may anticipate the meteorite that would otherwise had hit you.
Generalists on the other hand do many things, some of them badly, and get paid accordingly, but are more likely to be employed during hard times, the little mammals.
IANAL but write like a drunk one.
The best advice I can give you is this: Spend less time posting stories on Slashdot, and more time actually learning something. ;-)
A lot of our internal development is done by guys in India. They are good and they are cheap: killer combination.
IANAL but write like a drunk one.
Computer Security. Clearly this is another wave of technology, but while it is still here, perhaps the following skill sets:
* Basic networking and O/S knowledge (MS, UNIX)
* Networking security skills
* Application security skills (code review ability is hard to find)
Easier said than done. Also pursue certifications in whatever field you decide upon (for security the CISSP, SANS, etc...). Although they may not help you, not having them will certaintly hurt you relative to other candidates.
Good Luck!
Start your own business.
Anybody in his/her mid thirties should consider that as a serious alternative.
Failing that, independent consultant.
IANAL but write like a drunk one.
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.
In the last few years, I've found that my ability to write applications in the Apache/PHP/MySQL environment has been very useful for every small company I have worked in.
Those technologies have also been relatively easy to master.
Informally, if I was to compute an "efficiency" index as:
then I would have to say that Apache/PHP/MySQL have been the most "efficient" technologies that I have ever learned.
Because of their availability and portability, it's easy to justify making the investment to build your own library of solutions.
In addition, their open-source nature will give them long-term staying power, and their low cost makes them appealing to small companies.
(Large companies, of course, make their technology decisions based primarily on perception and the politics of business relationships, so my "efficiency" index is mostly moot in that environment.)
If you're really good, you don't need certification; and you don't work for the clueless places which don't know how to depend on anything else.
I think the "generalist" (not even sure I agree with that term) should tailor their CVs and cover letters for each employer and emphasize the parts of their skillsets that can help the employer today. That's not to say that you ignore your experience in other areas, but it is to say that your experience in other areas shouldn't be the focal point of your background presentation if they don't have relevance to the company you're interested in. Sending out one-size-fits-all resumes is a mistake, especially in the current economy.
Cellular technologies!!!
Behold, I spew buzz words from my mouth:
GPRS, CDMA 2000, 3G, Palm, Pervasive Computing, GSM, IHATEROGERS.COM, all means of cellular expertise.
Even Marine Biologists can make it in Mobile Computing.
1)
"eastern Europe combined"
WOW!!! That's like A trillion USD!!! CIA Fact sheet (i live in Hungary and feel offended by your ignorance!!!!)
2)
Java == Code reuse (At least its what they say)
PLUS!!! If i can make a program in 300 hours instead of 500 with Java the savings are more than a new
server costs!!
(For any replies to this! I do understand he understands that his statement was untrue, i just didn't like
it)
CIA Factbook 2002 (US):"Since 1975, practically all the gains in household income have gone to the top 20% of households
Communication skills are always important and the odds are that most of your future co-workers will be from India or China. I just saw another newsblurb stating that Bill G. himself was in India to 'woo' Indian programmers.Since you're not exactly a spring chicken, you might want to consider moving into management or consulting.
I didn't read all the comments due to lunch break constraints, so i'll just post my opinion.
Wireless communication is the future. Be it SOHO 802.11, 3G or any other version i've left out, they will all pave the way for the future of networks. Notebooks, tablet pc, desktop, PDA, cellphones etc etc will eventually become integrated into the true PDAcomputer. The need for this PDAcomputer to interact as well as your typical broadband internet desktop will be crucial.
Just like everyone knew that one day we would all have phones that we carried around, we know that our computers will one day fit in our pocket and manage our bank statments, fax documents, email, order lunch, turn the heat on at home, blah blah blah.
I can remember telling myself that one day we would all be using a single card to make all purchases. Paper money wouldn't even be valid. Look at atm/debit cards.. we are not far off.
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!
The best was already said in the first comments - it's not the quantity but the quality. I hire people and the first resumes to throw away are the ones containing every buzzword on the market - I do not call or contact them, at all, period.
If I see something that looks like something someone actually have put a little brainwork behind - that's my guy/girl.
It's not the tool in itself that's important, it's what you can do with it.
Lets be honest. Right now there are a ton of Indian IT professionals that will get certified in what you need for you applications coding and work from with in they're country to write your code. The only thing we need in America are project managers and sales people that will find out what American customers needs, develop the outline for the solutions and then shove it over to a global resource that is to cheap for you as an American in our economy to even try to do, meanwhile our baby boomer middle management shuffle around above our heads trying to keep they're over paid role in some fictitious or newly created department that they don't understand themselves just so that they can all pat each other on the back and make it to the next golf outing. The only way to survive in IT today is to put down the Coding and pick up the Management or Design stick. Only problem is, there are already to many managers in corporate America. So you'll just have to wait 20 years for all that middle management to hit retirement. Hay, you'll have a job now, only problem is, you'll be spending 3 billion dollars in social security to pay for the 5 managers that where keeping you from getting a job right now to, AGAIN, make it to the next golf outing.
Geeh, did that sound pessimistic? Just my 2 cents.
-- Disclaimer: I can't really back up anything I post on
Many BIG companies would rather hire newbies for less, and train/MOLD them into the skilled guru they are looking for.
You don't sound like a "newbie" looking for a job, yourself. From my experience looking for a job, even recent college grads have to have experience in several areas before most companies will even THINK about hiring them.
Have you read the Moderation Guidelines Addendum?
It might be hard to use an instance with no members. That's not even Black Box encapsulated. It's Black Hole Encapsulated.
Plastics
Table-ized A.I.
Its sad but true that in today's computing job market it is not skills or knowledge that will land you a job. In a world where many hundreds of resumes/CVs get submitted for every listed opening, the "trick" to landing a job is getting yourself considered for a position. It does not matter what is in your resume if no one ever reads it, nor does it matter how tuned your resume is if its in the middle of a pile of 1000 other resumes.
/. is not where you'll be meeting the people that will help you find a job. Network by attending all the professional meetings taking place in your area; make sure that everyone who knows you knows you are job hunting with intent; don't be shy... make sure the people you bump into as you go about your life know... I got a great lead while riding up a chair lift at my favorite ski area last spring... it didn't turning into an interview, but it was a quality lead.
You probably have heard this before, but the key truly is networking. And
Volunteer for stuff in your field... though make sure its something that will cause you contact with other people. Not only will you keep the rust off your skills, but people will see what you know and then if they know someone needing those skills, they will be instrumental in hooking you up.
SO, go do the things you like to do in your life. And all the time make sure you talk to the people around you and let them know you are looking. And, make sure you have a business card to hand them so they remember who you are and how to contact you. Its a lot easier to just hand someone a business card on a chair lift, or at a checkout at your favorite store, than having to pull out some paper and jot down contact info.
Have a good look into C# and the Common Runtime .NET is going to take off. With or without you.
;)
Language environment (CLR). If you want to go hardcore, look at the underlying intermediate assembly language (which is ECMA standardized).
If you're more the open source / GNU / Linux kinda guy, then you might want to look at Mono instead. Same thing, but free and portable - yet unfinished
--- Eat my sig.
Those who can, Do. Those who can't, Teach.
Haven't seen any mention of this yet. If anyone is working in bioinformatics, I'd be glad to hear about it. What skills are needed? What's the work like? Can a SW Eng make the transition?
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.
echo "this.thread.conversation" | grep BS | wc -l
now that is a skill and would be useful, "IX's"
those are OS's that require knowledge to use. Any Windows variant by default with the exclusion of a network management, require's zero skill, and no self respecting IT would not hesitate to roll over in convulsions if one saw "proficient in Windows XP" on a resume.
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.
ASIC design seems to be growing. I'd learn Verilog and VHDL. If you know C and synchronous hardware design then the jump to Verilog is trivial.
Sadly, I think security will one of the few growing areas in the near future.
Security usually has to be handled close to home, you don't farm out security work to somebody in India.
Also, security is quite so product specific. It usually doesn't come down to a specific version, of a specific language, on a specific OS.
Mainframe? There's your problem -- you're too old.
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.
I've been in IT for 12 years and like the original person posting the question, I started with Pascal and mainframes in school.
I did mostly Tech Support for a software vendor which entered the web wave with an early HTML editor in 1994. I had opportunity to see scheme in use, and I didn't get it. OO languages are event driven, and I can't wrap my mind around how to develop code in OO design after years of top down modular style development. I've managed to tackle some javascript that uses it, but that is my limit.
I've done some QA work, but it is tough to find work in that area right now. Both web and software development are in low cycles. Everything in the IT industry was being falsely fired up by estimates from Worldcom about the size of the internet traffic. People are very skeptical about computer industry claims now. They have been stung by Nortel stock falling, and stores selling them PC upgrades so they can run word recognition software that doesn't work usefully. They are not about to believe the next big market hype.
I've been through 2 boom/bust cycles in the Internet now, and I've decided to switch over to an area that isn't as full of marketing hot air: IT infrastructures such as net admin and sysadmin. In the post Sept 11th world, security is also a prime concern. This should lead to a growth in positions related to system security. But one has to build up some experience first in sysadmin duties.
I have a bunch of machines at home and I spend time taking on little projects to increase the scope of experience I have. Lately: IPSEC VPN, software RAID conversion on Linux, iptables, WAP configuration, Linux webcam. I just bought a used Sun Ultra on eBay ($150 USD) so that I can be sysadmin over a Solaris machine with true Sun hardware.
I expect my first job as a helpdesk/net admin/sysadmin is going to pay less than my previous web developer/software QA job, but that is a temporary effect of a minor career change.
As for faking it at the interview, forget it unless your employer is a joke. Modern day interviews are looking for certification, and in lieu of that they are asking for a verbal description of how you previously did a task. Sometimes there are also verbal or written test questions. They are laying traps for the posers, so you can forget what worked in the 1990's. A footnote to that, is that if you are still working in IT and have not been looking for work for awhile, take all opportunities to boost your knowledge and exposure to technology while you are at work. Telling them you read about it in O'Reilly textbooks only raises half an eyebrow.
As a recent college grad who's been hunting for tech/programming work since May I can say... without experience right now unless you happen to live in an area with enough tech companies who'll hire "local candidates only" work is almost impossible to find. You need 3-5 years job experience or more... so basically the people who are probably (note probably, I'm not one of these so I can't know for sure) position to be in right now is the 28-35 year olds with a degree who've got one/a few projects/jobs/etc behind them.
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
Learn Brainf*** You won't be more employable, but you won't care.
INTERCAL is the language for the 21st century. Its inevitable acceptance will drastically change computing as we know it - forever.
If you're older, this isn't an option, but if you are young enough (or young at heart enough), I'd say go back to school.
Pick a profession that won't be gone in a few years...if you think IT (this includes software development, too, BTW) will be a "profession" much longer, I think you are deluding yourself. Personally, I think programmers will rank up there with welders as far as job security goes. Maybe even lower. At least welders were smart enough to get some unions going, and there isn't rampant ageism in that field, either. As long as industries can send work to third-world countries like India, then this trend of joblessness will continue. There will be no dignity when you are "lucky" enough to be employed, either.
Like doctor or lawyer.
Uh...learning Hindi?
:-)
Seriously, if you're looking to do software development, then you'd better have more than just programming skills. You need to bring business knowledge to the table, dog, otherwise, you can be easily replaced by some dude named Rajesh in India willing to work for $2/hr. Know what I'm saying, homes?!
You may want to focus on C, C++ and Java, as these programming languages seem popular with the defense contractors, who, I assume, require security clearances for most positions. Which of course would preclude the aforementioned Rajesh in most cases.
Personally, I am thinking of getting out of IT altogether and get into the business of servicing some lonely ladies. Methinks there will always be a market for smackin' azz. 8-)
In any event, good luck, dude, and don't forget to wipe.
1. Learn poker. Learn to bluff. Practice your poker face in the mirror at home.
2. Start cheating at poker. As long as you win and nobody figures out you're a cheat, you're ok.
3. Watch the IT industry closely. As soon as you see something big coming along - steal it!
4. Get yourself a good corporate name. "Microsoft" is already taken.
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.
There are two universal truths in life that will
help you with any problem that you may face:
1. He who hesitates is lost
2. Always look before you leap
So what you have to do is make sure that you
focus on the general and the specific simultaneously.
Simple.
Don't forget Linux! With Linux, you can do some awesome stuff. I'm building a router with it (ISA NICs and a 486). Next, I'll build a print server. I know I can buy better ones for cheap, but buying stuff doesn't help in you in learning the stuff.
...as I said, it depends on your life, and in light of your comments, I will appreciate my present situation more.
;)
(Though I think building/securing/optimizing networks/computers can be a home improvement project
Sigs pose an operational security risk and help the baddies aggregate data. I guess commenting does too, oops.
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.
I think most of the posters are going at this problem from the wrong direction. Personally I'd spend a few days checking out all the job websites (monster, dice, etc.) then work backwards. Once you know what is in demand, train yourself to fit that. Personally I lean towards maintenance/support because they always need someone around who can fix the darn thing when its broken, and when have you ever seen a system that is maint free? Also you should consider what area you live in, I recommend moving to somewhere that has a high percentage of jobs in your area. For example there are 169 jobs for Systems Administrator listed on monster.com for southern califonia right now. Even for development it looks pretty good, over 284 jobs posted. You need to have a degree and the certs, but other than that, business is still good if you know what the heck you're doing, its just the paper techs, and people with overinflated salary expectations who are out of work.
We're educated by society to become good servants to corporations. The more specialized you are, the less job opportunities there are, and the less likely you will break the bonds of corporate servitude.
You have to 'get' the bigger picture. Programming alone is a very tactical, very focused thing. The goals of the managers includes more than programming, the goals of the executives includes more, the goals of the investors include even more yet. So what is the goal of the company to each of these levels? It's what the next higher level wants, and how to best deliver that.
Suggestions:
Expand your knowledge and experience to include more of what the company does.
Rewrite your resume to reflect how you can contribute to a company, and how you have contributed.
Think like an entrepreneur or small business owner
Though it hasn't been much in the press yet, I'm certain that those who can design and write code with security in mind from the beginning, rather than trying to tack it on later, will be in much higher demand in coming years.
Right now government agencies and businesses are complaining loudly, and everyone is scrambling to try to tighten things, after the fact though, rather than starting at the source (pardon the pun).
Soon though, requirements will MANDATE more secure approaches to coding, and the programmer that is already in that mindset and has developed that skillset will have far more opportunities than the other 99% who don't worry about that.
At least, that's what I'm gambling on.
I'm updating both my specific language skills (Java, XML, SQL) and my security related skills (SANS GIAC).
At least, that's my two nano-cents worth.
It's all about personality. More than anything, and employer wants to see that you are the kind of person they'll get along with. A lot of techie types are... well, socially inept. If are somewhat able to have a sense of humor and hold a conversation and look into their eyes when they speak to you, that can make a big difference. I've seen guys with PHDs that are real oddballs and have a hard time being hired because of it. Also, you need to be an advocate for yourself and not be too mousey. That way, you can bargain for a good position and the best pay possible.
There's always work for people willing to connect one more new whizbang thingy to the venerable old legacy thingy. That means swallowing the latest line of crap enough to understand how it works and applying the same old principles to connect it to the last 30 years' lines of crap.
At the moment that would mean pretending to think XML is cool and managing to emulate enthusiasm about using it to connect websites to TPF systems using J2EE appservers to fill in the gaping holes in that model.
In two years it will probably mean feigning bliss over tying an RFID system to an N1 stack through coreographed webservices using Jini to fill in the gaping holes in that model.
Two years after that it will be whatever replaces Java (and whatever DCOM/DNA/.NET is called by then).
Practice this over and over in a mirror until you can say it with a straight face: "We can leverage the synergies of our existing identity matrix and the XML based workflow engines to provide an improved ROI on our new TPF EAI POC."
That sentence will earn you $150k in the first year. ( That's a business k not 2^10 )
[-- Trust the Monkey --]
To the OP:
/.'ers know, the world was originally coded on a PDP-7!!!) :)
Be suspicious when thinking of basing your life-decisions on the arguments of any person whose opinions generate a Tastes Great!/Less Filling! type of argument. Learning to use new tools has always been one of the things that has separated humankind from the other animals, but asking the folks on slashdot is not far different from asking Floridians who should be in office. There are lots of opinions, almost all biased, very few informed.
No one on earth, nor especially on slashdot can accurately predict what's coming down the road in IT, EE, etc. Obsolete tools in one place are state-of-the-art elsewhere. Are you willing to move for a job? Now how about to Egypt? So look at what employers are demanding where you want to be, and tune up on those skills. Remember to aim your resume at the job you want. If half your experience is in EE and the other IT, and you're pursuing an IT job, downplay jobs and experience in the one less likely to get you a job, lest you seem overqualified, and your resume too much like the list of ingredients in a Twinkie. Besides, if company ABCXYZ Systems wants someone who can do Java, C/C++, Perl, Lisp, Visual Basic, or some crap from Misro$oft, they aren't going to really care about your EE, even if you personally did invented the transistor at Bell in the '60s.
Of course, if you pick up a new tool and get a job and hate it, was it worth it? If you have to sell your soul to Misro$oft (that's Miserable Software) where are you going to spend career eternity? In MisroHell. Slashdotters are going to be a Lin/Unix leaning group, who will give you all sorts of largely useless advice. Perhaps the best two comments I read in this tapestry were:
Location-location-location, and Follow Your Bliss.
All the rest of the Coke V. Pepsi posts you can chuck as personal bias. Useful to an extent, statistically, but not really useful just because Joeseph Shmoe speaks very forcefully on the topic of the superiority of C# or C$ or C& or C* or C@#$%^&*^%$# (current and future M$ products) doesn't mean it's really better.
As for me, I think I'll start a televangelism show, extolling the virtues of the divine, and UNIX! (Because, as most
Blue
Im a junior at college and im thinking about going for my ccna and eventually for ccie, but is it worth it? Is cisco still a good thing to go for? Is the demand for cisco high/low? Also, do cisco certs help getting jobs? Thanks, Dxfrost
It almost seems like /. readers think you don't actually develop something unless in the end you compile it ;).
Its a much faster learning curve to focus on platformless, uncompiled (usually) languages. Do a job search at monster or jobs.com or wherver for coldfusion, asp, html, xml. You will find a lot.
I've been using coldfusion for 4 years now. The best thing about it is I learned to design with it in about a week, and I'll guarantee that I can deliver information to my customers (healthcare) faster than any hardcore programming language (I disagree with that opinion, that C++ is "hardcore" whereas cfml is "soft".. I can do extremely complicated tasks with cfml.. anyway, i ramble)
I think this whole debate about "generalist vs specialist" boils down to business wanting people that can just friggin get something done. I think that the 90's computer boom and earlier we saw "engineering brain" type people being hired prolifically. It took ~10 years, but businesses finally realized that "generalists" basically can't finish anything.
Now, I'm the first to admit that I'm a generalist (Anthro major:), but rapid design tools, like cfml make me appear to perform like a specialist. Sure, I know c++, some java, and I suppose I could convince my largely non-computer literate customers that what they really want is some expensive "hard coding", but in the end, some "soft coder" is going to offer them the same functionality, done in half the time, and for half the price.
Get over computers for computers sake. Businesses are expecting you to crank stuff out. I'd choose tools that allow you to do so. The alternative is being a sardine in some office cube working on one module of some giant project where you have no control, no say, and are just a tool.
Forget computing.
The market for programmers is dead and will not return.
Everyone's talking about OOP this and OOP that. What about what comes before all that, like UML for example? Gotta design before one can produce.
All the jobs are being shipped to China, don't get left out.
"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.
Meanwhile, for the rest of you, we're working on a war between Pakistan and India, the first casualty of which will be the Indian IT industry.
Forget about learning the newest computer languages.
Step 1:
Learn Arabic.
Learn Japanese.
Learn Chinese.
Step 2:
Move to India/Japan/China.
Step 3
Work for an American company who decided that it was too expensive to hire you here in the states.
I think we're more or less in agreement. My comment with languages may have been a bit of hyperbole, but my basic point was that if someone is already an expert programmer (implying that they are expert in general design, system concepts, and understanding of how things all work together, etc.), then such a person only needs to learn syntax, and thus, as you syntax quick.
:)
For instance, when I am making a system and I think, "Oh, I need to connect over a standard ethernet network using TCP/IP." I know that, no matter what the language is, I need to find some library or package to manage sockets, and maybe a SOAP implementation or something. Understanding like that is 90% of the battle. In any language that you'd actually be using, I know that support for, or at least some instructions of how to do such things is possible. Therefore, all I need to know is syntax.
So, essentially, I'm saying if you know all these concepts, and at least one API in a lot of fields really well, you know what is possible and what makes sense. That's the most important thing. And, since many reasonable things are going to be done more or less the same way, you know a lot of the API (or at least all the ideas behind it) already.
With regard to learning OSes, remember I said a "better" programmer
(though I have met some good guys working primarily on Windows, it's where the money is, so maybe there's some smarts to that after all...)
As for expert vs. non-expert skills and resumes, I never really intended for the original post to sound as if I was advocating inflation of actual skills, though I see how it might come across that way. My real intention was something like, if I know synchronized multri-threading in Java, then I know how to do threading, basically, in C. So, even though I would say I was mediocre at best in C, I would list it on my resume. I don't list "skill levels" in my resume, because I think that detracts from my real skills.
Most employers look for "code factories" to churn out lines of text. So, there biggest concern is "who's the fastest code factory around?" But, I think we both know that the most important thing is not being able to avoid a lookup in a reference book, which, while an somewhat costly operation, is much more costly than flat misunderstanding of good system design.
So, I focus on what I have done and say as little as possible about technologies. My accomplishments speak much more to how good I am a programmer than my knowledge of whether Sun is big endian or not, or if you can have a static private inner class or not.
If my interview is all about syntax minutia, then I know it's a company I *don't* want to work for anyway. And, if I get asked a question like, "How do you synchronize two threads to read and write multi-word data safely, in C?" I'd say, well, the point of is to make sure that no thread can read data that may have only been partly changed. C is pretty low level stuff, so, there's libraries to do this many ways. There's simple semaphore's, their's p()/v() semantics, and... oh, you know, the one like Java where you can declare "areas safe to work in..." you know, it's a general term? Anyway, there's libraries for each..."
So, by the time I'm done, their impressed enough that they don't worry about the fact that I can't pull the syntax for any of those libraries from memory.
This focuses on one's strengths as a system designer, one who understands problems and how to fix them. I'm saying, prove that to someone, and if they still care whether you can name 15 major differences between SQL-92 and 99 or recall instantly all the methods in the JINI interface, and which throw what exceptions, then your dealing with someone who has their priorities a little out of whack.
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.
I think you misunderstood me. I think it could have been a little clearer. I'm pretty sure we're actually agreeing here, let me know if we're not.
What I meant with "bored and moved on" that the better programmer will want to learn many technologies. That staying in a single technology and doing nothing else for 5 years (ultra-specializing) is the sign of someone, often, doesn't really have that fire for tech. I couldn't stand to be using the same OS version, on the same machine, with the same window manager, running the same applications in 5 years. I need to see and try new things.
Again, with the language, I could have been clearer. What I mean with 98% is not that you'll know 98% of everything there is to know about it, but that you'll know 98% of everything you use typically. Even here, there's a bit of hyperbole, so don't hold me right to it. Let me give an example.
In JButton, in Java, there are probably 200+ methods. These allow the most minute control over the look of a button, from changing it's size, to the color, to focus order, and doing all the varioous callbacks defined at all points in the Swing framework. To learn everything, and exactly how it works would probably take a number of months to master.
But, what you need to know to use JButton is really only "setText()." Now, know how to add it to a container, and a little bit about layouts, and you're more or less done with a huge hunk of everything you'll use most of the time.
When I say "pick up," I mean that 98% that you'll use 98% of the time. Probaly 80% of any given, complex API is stuff you'll only use 2% of the time. So, you can learn that 20% fast. Then you'll have 98% of what you'll use. I agree completely that to "master" a language is a long, time consuming effort, but master knowledeg is accessed far less than basic knowledge...: "When we speak, we say 'is' a lot more than 'egregious.'
With applied cryptography, I agree. That's not really what I was thinking of when I said to technology. I was speaking more to Java, Perl, Weblogic, XML, things like that. I would call cryptography a specialized knowledge field. Indeed, it's a lot of high level math and extremerly specialized knowledge. It produces technologies like PGP and SSL, but again, those technologies are pretty easy to get the basics of. "Oh, you can sign, encrypty, verify... thise one uses third parties, and this one doesn't... okay..." To "pick up" SSL, you don't need to know how DES works or why this complex modding thing is hard to work backwards. That's hard. Knowing to get a cert, check it's signature, that's easy.
I wouldn't say one could learn the science behind SSL or PGP in a few days anymore than I would say you could become a qualified surgeon in a few days.
Duh, dude... like, Artificial Intelligence all the way man. Even fifth graders know _that_.
Well, you might need to know the following hot OS: - Winblows 3.1 till XP - POSIX (Linux, BSD..etc) - Sun Solaris - HP-UX - IBM AIX - Macintosh - AS/400 series (mainframe etc)
Thanks
Neo Gigs
"Follow the white rabbit..."
> the nice FreeBSd folks.
Wow? FreeBSd? Is that like a GPL fortune server?
Long before the internet died I believed this field would be hyper saturated and I decided to pick a very few technologies that have long range legs and be demonstrably BETTER at those than the rest. (i may not be but that's been my strategy)
Some I would recommend:
-Javascript - it's not just for browsers anymore. (freshly baked into something new everyday - mozilla_the_platform for one)
-Xml(perhaps a few applications of it - like html and web services and xsl)
-Databases(Pick a flavor - ideally an open one)
-Photoshop
Know what you know demonstratably better than the next guy and leave the acronyms to the rest.
my other sig sucks less
I work in the telecom industry - 3G actually. We program in C, not java ;)
it's in my head
Become an XML implementation and transition expert. During the last ten years corporations created outrageous numbers of online databases for their internal use. Anyone could do it - departments could do it or even individuals within departments. They have begun to realize over the past few years that these things take resources to maintain and operate. Budgets are being eaten up maintaining old systems while they scramble for more money to upgrade and build new ones. There is an overwhelming need to 1)find a way to link all this silo'd data to let everyone use it 2)reduce the maintenance costs of all those web-based databases, and 3)reduce the amount of repetative information that users have to enter into these multiple web apps. Implementation of XML for existing apps and setting standards for XML compatability in new apps looks like the most promising way this can be done.
You are hired for a particular skillset (that may or may not include full proficency of the English language).
If the machines/programs/database stuff you are designing/maintaining do not work you can use as much verbal diarreah as you want, you will be noticed as the bullshiter you are sooner than later.
Yes, one should try by all means to be clear and to the point using proper understandable language, but making that your greatest skill if you are a technical person is pretty telling.
Of companies that are currently running succesful business in that platform?
.Net in opossition to keep your current working infrastructure working?
What is its maturity?
In a shrinking economy and with IT budgets getting smaller what are the advantages of implementing
What about licensing and support?
Where are the experts with industry experience deploying this?
Great business proposition that of yours.
My point: the technology has to prove itself first and only when it shows its worth it may become a viable income generator for specialists in the field. As it stands right now it would be a big gamble.
IANAL but write like a drunk one.
Katz has moved on to something more profitable than dotcoms - writing books about his dog.
I have been laid off but I have never been out of a job for long. When I'm not configuring wans/lans then I'm teaching classes on how to secure them which there will always be a need for.
I would have to say that picking a technlology that has been around since the 60's such as unix (linux), routing & switching [connectivity] is where I never see people seeking a meal.
Good security is based upon reality and common sense. Common sense is a function of having common knowledge.
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?).
software comes and goes, know the hardware that software uses. know hardware decsriptive lung. like verilog, and VHDL it's all coding, but it's hardware based , you have to know and uderstand the hardware to be able to code it. you can always learn a new software to program, but you have to know the hardware.