Ph.Ds in IT - Good or Bad for a Career?
LordNimon asks: "I'm thinking about getting my Ph.D. (I currently have a Master's) in computer engineering. I've heard all sorts of stories about Ph.Ds being less likely to find a job than their less-educated counterparts, but not a lot of credible evidence. So, I was hoping to hear from Slashdot readers on their experience. Do you think getting a Ph.D. in CompSci or CompEng will improve or worsen my career outlook in the industry? Has anyone witnessed someone being turned down for a job because he had too much education? If you're a hiring manager, what is your opinion on someone who has a Ph.D. and is otherwise already qualified for the position?"
It's conceivable, sure, but you're a lot more likely to get turned down for a job for a lack of education than too much education.
"If I could live to be several hundred
I could take a walk and really wander, really wonder."
Well i have some experience in this as my mother has two master degrees. She has alot of trouble getting her foot in the door because of her education. Most heads of departments do not want someone with better backgrounds then them.
Where ever you go, there you are.
99.9% free of PhD's, is this even a relavent question?
So, yes, having a PHD means that you will request a higher salary (which is ENTIRELY normal), therefore reducing the number of opportunities you can have. But is it a bad thing ? I do not think so. Maybe you'll end up looking for a job a bit longer, but you'll most likely get a high-pay job, with many benefits, and a job you will like, or in which you'll have some type of control/supervision.
the last professor that I had was a PHD. He was a moron. I think that your knowlege base and work experience should stand on its own.
Is a job the only reason why you want a Phd?
--jeff++
ipv6 is my vpn
There are at least two people holding PhDs in my department (I am in the MIS department of a large retailer). Both of them are worker bees, although they are definitely well respected. They are not part of the "good ol' boy network" so they probably won't make management, but management around here definitely listens very closely to them.
Be excellent to each other. And... PARTY ON, DUDES!
And since the number of people with PhDs is relatively small to begin with compared to the other groups, the perception that they don't get indistry jobs as often is easy to understand.
I'd say you should go for it and get the degree. I don't see why it would decrease your chances of getting a job in industry, and in the case of a tech downturn (again,) you could probably still turn to a job in academia.
Take it from a guy that's been in I.T. for 15 years and doesn't have a degree in anything... it's easier if you have an education. Though A PHD might be a bit much for the average I.T. shop.
I dont think you should get your PhD unless you know you want a job that specifically requires it. That would pretty much be college professor or running a large research group. It is true that people will be reluctant to hire you for jobs that do not need a PhD if you have one.
If you want to go back to school and learn more about computers, perhaps you could pick some other field and get another masters applying computers to solving problems in that domain. Not only might that be fun, but it will make you a lot more marketable as well.
A Ph D (in engineering and science) is a certification in the ability to do research. Generally theory based, and often without a "real world" product in sight.
Read lots of papers, write some papers, get published.
This has as much to do with computer engineering in most companies as having your IBEW (electrician) certs.
If you want a career in research -- either in an academic institution or a semi-private or private lab (think Bell Labs or Lawrence Livermore Lab), then get a Ph D. If you want to "do" computer engineering, than a Ph D won't likely help you.
It is certainly not likely to result in a pay differential from a master's degree equivalent to the time lost earning the Ph D (4 - 6 years generally).
P.S. I'm a Ph D student in Systems Engineering (similar to operations research)
Support a few technologists in Washington.
Well, maybe not exact same, but currently I am a college student working for my BSCS from a technical school. They have a 5 year masters program, and given the current market, I can see where that might be the wise move. However, I have heard some things that give me pause, mainly that people with a masters fresh out of college don't get the jobs.
The reasoning is that a masters demands more money, after all, I've been to college for longer and know more. However, I don't have the work experience to compete with other people who have recently gotten their masters (after being in industry for 10 years). Also, it sounds like I will get the same job with a masters degree that I'll get with a BS unless I go into some academic area (like research).
I don't know how many of these apply to you, but I know I'll take a good hard look at the market next spring and decide whether I should stay in school for another year.
If you want to do research, a Ph.D is a must. If not, it is a waste.
I have interviewed 1000's of potential engineers for my company, and I have learned one important fact while doing so.
In engineering education doesn't amount to squat.
You either have it or you don't. It seems to be like art. Education can make a good artist a better, but the raw talent must already be there.
In fact of my 3 best engineers 1 doesn't have a degree and the other 2 do, but low level and not in engineering.
I am also as yet to interview a EE/SE PHD that has any ability or talent, and I have interviewed hundreds of them.
Evil Man
My experience as a Ph.D. (though in cognitive science and robotics, not computer science) is that you do tend to become disqualified for some kinds of work. Essentially, grunt work programming, run-of-the-mill system administration and so on will be pretty much off-limits to you.
:) ). It's your call.
There are three reasons, generally, for this: first, you spent years in school whereas your peers went out and got work experience (or just learned a lot about unemployment benefits), so you will compete with people that have experience, whereas you do not. Second, your prospective employer will fear that you will want a higher salary (or other benefits) due to your degree, and they won't want to hire you when they can get a cheaper programmer that can do the job just as well. Third, they will (rightly) suspect that you will not find the work stimulating, rewarding or career-enhancing enough, leaving them with the need to do the hiring process all over again in six months or a year.
That said, a Ph.D. opens up whole new career paths that you really aren't qualified for otherwise. You of course have the research and teaching career path sort-of-open (though that is for masochists only, the way academia is going). You are also suddenly eligible to pursue an R&D career in big corporations. Last (but not least), the added knowledge and insights you get, the contact network (especially if you do a post-doc as well) and the skill you get in doing research means it is feasible to go out on your own with your own company R&D-oriented company (alone or with colleagues).
So, you lose some opportunities at the lower end, but gain some at the top. Of course, doing a Ph.D. is also a lot of fun (at least afterwards
Trust the Computer. The Computer is your friend.
I've been in the IT field for about 17 years and I've seen all kinds. The only consistent issues I've had with individuals with a Ph.D., and I mean people that have 5 or less years of professional experience, is the attitude. They seem to think that because they've had more schooling than most they actually know more. Well, maybe they can explain a left handed grammar better than I can, but most of us out in the real world find little use for the finer points of some theories (I've got a BS in Computer Science and have taken my share of theory classes - RIT in case you're wondering). Yes, there are certainly exceptions and having a good theoretical understanding of Computer Science/Engineering is a good thing - I'd even go so far as to say the more the better. But good professionals have continued to develop their skills and knowledge and new Ph.D.'s would do well to listen to what they have to say and not look down their noses at the rest of the world.
On the contrary, its about experience. Graduate degrees are wonderful with those that already have lots of experience in the field first (ie - don't go from freshman year of college to PhD without some work experience put in).
The reason is, if you apply for a job with a Masters and someone else with a bachelors and 3 years of experience, you won't get the job. Why? Because experience is more important than extra education; plus, the bachelor is cheaper. With higher degrees comes higher expected pays!
So, I always tell people to get a job with a bachelors and have your company pay for the graduate degrees. That way you get what you want (your grad degree) with a bonus (your grad degree for free!) and your company gets someone with experience AND a grad degree for cheaper than hiring one straight outta school.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
There is such a thing as being over educated. Unless you want to teach I.T. at a university level, a PH.D will just get you pegged as an ivory tower eggheaad who thinks he knows it all, but has never had to deal with the real world. Don't believe it when colleges tell you an advanced degree will mean a higher paying career. They just want your tuition money. Advanced degrees are for purely academic fields. Associates degrees, or at most, bachelor's degrees are for job-related fields. The stuff schools are teaching in quickly changing fields like IT is already dated anyhow.
How ya like dat?
If you want to work at Microsoft Research or at the very top of your field doing truly NEW security work, get a PhD.
If you want to be a heads-down enteprrise software programmer building the very latest Java edition of that old VB/COBOL application, then a PhD is definitely a liability.
The assumption is that a PhD is interested in new research, and so yes, it limits you because as a hiring manager, I don't want you running off to teach Discrete Math at the local university because you're bored with 10 hour VB.NET / Java Programming days.
Even a Masters puts you in that category to a certain degree.
so.. you want Ph.D because you want the better pay? or better job? Why don't you get Ph.D for what you love to do... don't even get Ph.D because you think you can make more money and make your life happier... There are smarter people out there who needs that kind of education because they want to do what they do.. I hate people going into study field for money... it ruins the whole point of education... darn!!!
And over-qualification is definitely one of them.
We recently searched for a part-time office admin for our company, and got _lots_ of CVs. But we rejected them all: far too qualified for the job. It sounds bizarre but when someone has too much experience they get bored doing banal things, and when someone has too much training, they often become too arrogant to do banal things.
And banal work is the bulk of it.
Then there is also the question of money: people with more experience and more qualifications expect more pay, and if the job does not justify this, there is a mismatch that will often cause problems.
Finally, many companies have a specific culture (social, business, technical), and it takes time to learn the culture. Extra training and experience can be useful but can also simply get in the way.
Lastly, as people get older, they appear to become more cynical and (in some cases) corrupt. "Sure, I can steal from my employer, after all everyone does that, right?" Perhaps it's an attitude that is there in young and old alike, but I've seen it much more in older people.
Give me a smart, young, motivated mind and I can do more with it than with an older mind with experience and training.
Sad, but for me (and I have lots of experience, ironically), true.
Ceci n'est pas une signature
In the short term having a PhD may be an impediment. Spending between 3 and 8 years (sometimes even more) in an academic environment is in some sense "wasted" time when you could have been gaining experience of the commercial environment. The academic world is very different from the business world.
In the longer term it can be a tremendous advantage, if you work in the field you studied. There is no doubt that getting a PhD is genuinely hard work and most companies know this and respect it. You will be an acknowledged expert in your field. If you specialize in an area that can be applied to commercial problems - for example security, parallel processing, AI, visualization - then a PhD is a almost required if you aspire to be lead the technology division of a company that specializes in that area. A very disproportionate percentage of CTOs of high tech. companies are PhDs.
That said, if you just want to be a software engineer or a sys admin, the PhD isn't going to help you much and you will perhaps always be seen as overqualified.
Finally my most important advice: don't start on a PhD if you don't have a deep interest and genuine passion for the work. You will spend several years of your life learning and discovering more about some arcane corner of the universe than all but a handful of people in the world. It is an enormous amount of hard work and requires true dedication. If you aren't energized by that prospect you won't make it. A PhD is not something you do because it will enhance your career, its something you do because you need to do it.
Sailing over the event horizon
Personally I would hire (and have hired) someone who has an extra 2 years real-world experience over someone with a Ph.D. Any day.
The fact that you're already interested in seriously pursuing a doctorate would already start to make me nervous.
Although theory is nice, I've all too often seen educational types create truely horrible software. Grand pie-in-the-sky designs that have no place in the real world (and rarely function properly anyway). Overdesign is a bad thing (see: PKCS#15, ASN.1, CORBA, GNU "configure" crap, etc).
So unless you're only interested in the research and education fields I would spend the time learning how to write and design good solid software in the real world.
The ratio of people to cake is too big
I have experience with this at our company. It's probably an isolated experience. It more applies to hiring PhDs that have lots of experience teaching that go into the real world.
Our company hired a professor from UNC. This is a professor that took over one of Fred Brooks' classes.
At first we left him to be a zealot for software engineering. We have a great process in place, so he was more the zealot for the entire company. Then the politics came down and forced him to work on a deliverable.
The product took about twice as long as expected. All that software engineering theory just didn't apply in the real world. Build environments, makefiles, message files, and all that stuff you use in the real world were foreign concepts. Unit testing was another issue - most builds that came down the pipe had a simple bug that prevented testers from using the build. It could be argued that much of his code was not readable as well. Lots of one letter variable names, and wrapper around functions that didn't need them. I mean, he did the equivalent of wrapping strlen with a function named StringLength. This was to improve readability.
He's already stated he wanted to join the bandwagon for teaching and instructing in the company, proclaiming the merits of process and all that stuff. He wants to tell people how to avoid the mistakes he's made. Bottom line: he's instructed for so long, he thinks this little experience further qualifies him.
In short, I can't say I recommend hiring a lifetime professor at a major college as a programmer. There's too much unlearning that needs to take place, and too little awareness of how software engineering process works in the real world.
Companies offering development positions for their run-of-the-mill applications may not be greatly impressed in your PhD. However, some organization do take PhD's in their research labs. SAP AG (www.saplabs.com) comes to my mind.
blue_teeth
The guy helped write a pretty decent search engine for NEC, and continues to refine his work there. During the last three years' worth of economic ups and downs, one thing has remained consistent: he has had to fight off job offers with a big thick stick. I don't think the guy will ever go wanting for work.
That's the real question. Are you getting a phd to get a better job? If so - you should find out what that job might be before getting the advanced degree. If you're getting the advanced degree and then will just be applying to regular run-of-the mill sysadmin jobs or some such - then that sounds really weird to me. Isn't the idea of a phd that you actually contribute to the body of knowledge that you've been studying? So that you become the world's foremost expert in some hitherto un-explored nook, and are able to defend your're theories and assertations, etc. So if that's the case - why would you become the world's expert in something to then go and be a sysadmin? If you're gonna become an expert in some interesting nook of Computer Science - genetic algorithims, solid state storage, whatever... then there are companies doing cutting edge research that will snap you up if you're contributing to those fields. But if you're just going to go and try for regular technical jobs - then I think that's fucking retarded.
A lot of people have already mentioned the PhD-is-good-for-research theory, so I won't rant on that.
I've seen a lot of people lately who are staying in school rather than throwing themselves at a tough labor market. Personally, I think staying in school to escape "the real world" is a really weak excuse. If you've only been in school and don't have practical experience then I highly suggest getting out and getting a job. I don't get along as well with my friends who are still in school (I graduated five years ago with a BS). A lot of them seem to be in perpetual procrastination about putting together a resume, interviewing for jobs, and in constant pursuit of the next easy part-time job.
Now, having said that, perhaps you have some personal goals you'd like to accomplish or a certain area of study you really want to pursue. Doing that in a non-academic environment can be rough and then it makes sense to stay in school.
There's lots of exciting things to do in this world besides working on a thesis. While I think pursuing a career (you do have a grad degree) is good, I'm sure you could come up with something more original. Go work on a cruise ship for a year. Take off and lay on the beach in Thailand for a while. Spend the winter skiing.. of course that's what I did and accidentally never left.
----- obSig
How exactly do you define implementation? In my company, it is much easier to rise in the ranks with a higher education above a bachelors degree. From my experience and what I have seen of others, the higher level coders may come up with ideas, but they are still in the trenches everyday helping with implementation.
I cannot see getting a doctorate as precluding you from implementation (or a job for that matter), but instead adding the responsibilities of research, development and mentoring lower level employees through implementation.
The cancel button is your friend. Do not hesitate to use it.
So I have had to choose
between a person with a PhD who had just learnt C++ and a person with a Master's
who's spent 2 years coding in C++ then the Master's wins.
so you are an education snob then?
what about the guy that has his Associates Degree and has been coding for over 10 years?
He's full of experience that the school-boys can not have base completely on the fact he has been ther eand done that.
I hire on experience first, denonstratable skills second and education dead last.
Just because you had the money and time to spend on college time does not make you an expert, and it never is an indicator of how well someone does the job.
Do not look at laser with remaining good eye.
If you feel you aren't a candidate for the job market, no matter reason why, start your own company. That's what I did. Over or under-qualified, it doesn't matter. The worst it can do is fail, and then you can start another or go back to academia, unlike careers with large companies.
I forget what 8 was for.
Yes, I have a Ph.D. in computer science. Yes, I got a great job from it. But the Ph.D. is not an instant credibility pill - you have to build your credibility the same way as anyone else.
Advanced degrees are for purely academic fields.
I need to disagree with this statement. In general, most serious engineering design involves many PhD level people, either in managing the MS/BS guys or in solving really hard problems. Walk through GM or Ford or Nvidia or Intel. There are lots of Drs. around.
Now, a PhD in I.T. sounds overly broad. The area of specialization is key with advanced degrees. My advanced degree is not in engineering or even mechanical engineering...it is in computational fluid dynamics. A PhD in security or networking or algorithm design could be highly useful and lead to well paying positions doing that sort of work. A PhD for someone who is changing network cards and installing Windows service packs is a complete waste...
I'll throw my .02 in here. I've got a good chunk of work experience both on the technical and the business side. I have a pair of master's degrees... MBA and a Master's in Electrical Engineering. In my hiring decisions I've always tried to hire the guy with the most real world experience. I'm sorry but anything beyond a master's is really just love of the subject matter. You'll work like a dog and spend a lot of precious time in school to go from Master's to a Ph.D... and you'll be lucky to net a couple grand a year more then a master's starting out... and that's if the hiring manager wants to deal with you. Usually they're looking for the eager bachelor's who want to start their career and will work like dogs to learn. Heck when I hired engineers... I always did way better finding the ones who had a life. Yup I believe heavily that its better to hire the kid out of school with a 2.7gpa/3.0 gpa who worked part time through school... who was active in their community/fraternity house/sports/etc... If they were enthusastic about the job/interview... they tended to be much better workers who brought a lot to the table. When I was hiring the more experienced guys... it was all about what did they do (Ie... previous projects, what did they accomplish... could they explain what they did clearly and succinctly? What sort of things did they patent? How long had they been doing X? What was their shortest tenure at a company (Yeah its true... work at least 2+ years for each company... it looks really bad on your resume. I didn't care about their degree or what their gpa was... it didn't matter. If they had a Ph.D all that did for me was some extra bragging rights. I could tell marketing to spiel about all these brillant PhD's working on UberProject X, etc... but really it didn't buy much.... we didn't pay more for the degree.. it was just a little bonus/checkmark that's all.
The short and sweet:
1. Education is great... its a stepping stone to that 1st job (the entry fee). But beyond that its for your own betterment.
2. Once you get that 1st job kid... its all how hard you work/what you put into it from that point on that matters. If you're smart you'll worry more about who your boss is and his integrity... who your mentor is and the advice they give you then why didn't you get a phd. The best thing you can do is pick a good boss... it'll make all the difference in your job.
-Been there done that... now a silly PHB boss.
Most of the posts you're seeing here are along the lines of "well, all the PhDs I know..." or "when I see a guy with a PhD...". And they're bull crap. I *have* a PhD. In computer science. Specializing in AI. And I also hack code rather well, thank you very much. So here's my two cents.
The whole premise of the question being put before us is broken. Will a PhD improve your career. I mean, really. NO ONE FINISHES A PHD WHO STARTED ONE SOLELY TO IMPROVE HIS CAREER. It might improve it. But that's not why you get one. If you're considering a PhD because of its job opportunities, then I have one thing to say to you: get a job!
You get a PhD because you want one down deep. Because you like being a scientist and a researcher. Because it's a goal you've had all your life. That sort of thing. If you don't care about a PhD, then holy cow, DO NOT GET ONE. What are you thinking?
It's going to be a painful half-decade too, consisting mostly of salaries around the $18K mark, or a whole-decade's worth of night classes and stress if you go the part-time route. People who try for PhDs because it will improve their employment position are the first people to drop out of the PhD program.
Experience is NOT more important than education. Lots of self taught programmers will have difficulty finding a job because just claiming you can do that job is much different from producing a 4 year college degree.
A Masters degree is a "Specialization." It means you can do the bachelors stuff, and especially this one particular topic. So if you find a job in that particular "topic," THEN you get payed more, and are valued more.
A doctorate is not so much a further specialization, but a doctorate dubs you an innovator in the field. Excellent when budgets have money for research and development. But I must warn that anything Non-product related will be the first thing to go when budgets get tight.
A former co-worker of mine had just finished his Ph.D. in math from Georgia Tech and proceeded to look for a non-research position in the computer field. His experience was that it would have been much easier to be a job without the Ph.D. as most people thought he was over-qualified, to theoretical, and would ask for too much money. He did get a job as a systems analyst, but I don't believe the Ph.D. has benefited his current carrer.
Also, consider the lost wages and lost time spent persuing the degree. It typically takes much longer than 4 years to get it and I can almost guarentee that from a pure financial perspective that it will not pay off. You have to want to do research or teach, AND love the subject matter. That is the only sensible scenario for getting a Ph.D.
The problem isn't a matter of you being overeducated, the problem is how you are likely to perceive the job you take. When a company hires you, they want you to like the job and feel like you are being fulfilled because you are more productive that way. If you take a job implementing technology and you have a PHD, their reasonable concern is that you will not feel it is worthy of you. That you will become bored and restless and quit or become unproductive.
I mean, lets face it, would you feel fulfilled working in a burger king if you had a PHD? No. At some point there's a level where you will feel that, and many companies may believe that your credentials will put you above them.
This sig has been temporarily disconnected or is no longer in service
And I am unlikely to hire someone with an ABD for any job for which I'd consider a Ph.D. I've known quite a few ABDs from my time in school, and the universal trait was a lack of ability to focus on their problem for more than a few months. Ph.Ds are about persistence.
I wasn't gonna contribute, but since you're the one who asked the question and the original didn't limit it to IT, here goes:
...
(My PhD is in Mechanical Engineering)
Having done a PhD myself, the first question I would ask you is "Do you want a career in research?"
If your answer is definitely no, then don't even think about a PhD - you will be far better off getting the 3-5 years experience in the work force.
If you do want to go into research, particularly academic/university, but also increasingly government, then you really have to do a PhD (and be prepared to enviously eye off the paycheck of all your mates who work in private industry). As for private (corporate) research, my perception and what others have told me, is that the US (and Japan) seem to be far more willing to accept the PhD as a higher qualification. Europe/UK is not so bad, but there can be some tendency for the attitude of "why did you waste your time doing a PhD when you could have gone and gotten 3-5 years experience instead". It varies by industry, and I have noticed it a little more in those industries (like mech/civil/ee engineering) where a "certified practising" qualification or professional membership tends to be experience based. I should add that this is certainly not the majority of employers and is less likely at large multinationals than smaller consultancies. Australia on the other hand (where I got my PhD) is terrible for that attitude, which is why most PhDs eventually end up overseas doing research in another country, ironically enough. Sorry, I'll get off my soapbox now
The fact that you are asking the question probably means you are somewhere in between the two extremes. In hindsight - and I know this will sound very elitist although it's not meant to - I don't think anyone who has not done a PhD can really understand just what is involved and what comes out of it. Depending on your motivation and how much spoon feeding you get/ask for you can gain an awul lot of valuable skillsets that will benefit you in industry - reading, presenting, communication (no, that doesn't include slashdot!), time management, planning, experimental design, writing, not to mention software packages (I benefited enormously from this) etc. You will also be highly specialised, which could actually work against you in terms of jobs because the jobs simply don't exist. You will lose 3-5 years of experience (most employers will not count your PhD as experience) and probably a large dose of sanity at the same time. When (if) you finish, you will have something you will be immensely proud of while being totally unable to explain to anyone exactly why this is. I honestly don't believe that the academic/intellectual side of a PhD is all that difficult (if you're applying for one, you're probably capable of the actual work itself) - the hard part is sticking at it for 3-5 years and all the roller coaster psychological/motivational ride that goes along with it.
My honest opinion is that unless you are seeking to work in research, you will benefit more (as in "the employer is more interested in") from the 3-5 years experience on your CV/resume than from having a PhD. The exception is if you are applying for work very related to area of your PhD.
Hope that helps!
"Because it's there." - George Mallory, when asked why he wanted to climb Mt Everest, March 18, 1923 (New York Times)
Dykstra, Turing, Bessier, Knuth -- outdated? Damn! I guess I've been doing this CAD development work completely wrong for the past five years....I should read SIGGRAPH more closely.
In general - someone who has a BS in CS (for example, myself) and leaves it at that and enters the work arena (well, this applied not since 2001 since there is no work arena currently) is, in my view (and apparently the view of many companies I've been with) better qualified as PROGRAMMERS than someone who has spent most of their time pursuing higher education.
Indeed, I've experienced people who didn't go to college but were computer savy, and who entered the work force and have gone to the top of the list in their companies - and in some cases gone on to head their own corporations.
In general, and in most conversations I've entered in on concerning this topic - the feeling is that a GOOD programmer (and I stress the word GOOD) who begins the work force early has much much more practical experience.
In the 25 years (I'm 45) that I've been professionally programming, I've written literally hundreds of compete applications - some with teams but most on my own or with a single partner (PC games, image processing systems, paint systems, medical software etc). In many cases, not only written the applications but supported them and marketed them myself (or with the team).
In some occassions, teams I've put together have included Masters and Phd's... and while very bright they often tend to lack the ability to see "the entire picture". Now, there are two types of programmers out there... first, there are the ones that code routines and are merely told input and output expectations and they deliver. The second set of programmers work with entire application concepts, and have the ability to understand what is required in a full application and how to go about designing it, as well as coding it. In my experience, most (not all of course) masters and phd's fit better into the first category as PROGRAMMERS.
Indeed... a Phd shouldn't be used as a programmer, more over they should be used as a visionary. Keep 'em away from the code layer because they have LITTLE practical experience designing REAL-WORLD applications. They often don't understand time-frames - since they havn't experienced real-world programming conditions and requirements (e.g., shitty management decisions ;). On the other hand, they have MUCH experience in pushing boundries and concepts. So as a VISIONARY - that is where they are better off in my opinion.
So it comes down to what you want to do... do you LOVE programming for the joy of programming? If so, get out of college and get to work! On the other hand, do you enjoy thinking about possible concepts and pushing the boundries of understanding? If so... than a masters or phd might be perfect for you.
One last thing... small companies rarely have use for a Phd or Masters. They cost too much and don't provide the small organization enough bang for the buck (unless they're going after venture capital and want a pretty-face). It's your larger corporations that have more of a need for the Phd level visionary - and can afford it. Think IBM FELLOW for example.
Aloha... over and out
Do you also avoid hiring experienced developers? Some of us non-PhD folks have learned the hard way that quick, expedient fixes are sometimes disastrous, and spending a few more hours thinking about what you're going to do BEFORE doing it can really cut down on the number of "hotfixes", "security patches", or what-have-you.
Where I work, our customers tend to be concerned with having our software work correctly. Maybe this doesn't matter much to you...
That's "Mr. Soulless Automaton" to you, Bub.
"Advanced degrees are for purely academic fields. Associates degrees, or at most, bachelor's degrees are for job-related fields.
.Net. Very few people who don't have graduate level knowledge of the concepts mentioned above are even qualified to make the comparison, let alone an educated descision over which platform is right for their application.
That's a silly statement.
I am amazed when I see enterprise systems implemented without any thought whatsoever when it comes to concepts like scale, distributed cache coherency, distributed deadlock, distributed transaction management, right down to the basic concept of protocol overhead when chosing the communication medium.
I see a lot of talk about J2EE vs
"The stuff schools are teaching in quickly changing fields like IT is already dated anyhow."
You mean like Linda? (JavaSpaces)
Athena? (Kerberos)
Andrew? (OSX/MACH)
Those are all concepts taught in a single Graduate Level class from research done years ago. Yet they are "new" in the commercial world--and that's just a few off the top of my head!
I took a Geospatial database course years ago....and I see Oracle finally started shipping their GS enabled prduct.
Implementations come and go--concepts live on. If you don't even understand the concepts, then you will truely be lost come implementation time--and the performance, scalability, and stability of the resulting system will surely betray your lack of education.
I got my CS Phd in 1996 and haven't found a job that uses my research skills until just a few weeks ago. Read that again. I've waited seven years. BTW, I graduated from some of the top engineering schools in the country (Stanford and CU at Boulder).
Short story version of my post: employers don't typically need research skills, so they won't pay for them, and those that do are very hard to find.
Don't expect the jobs to come after you graduate unless you're already well-connected in the research community. Is your mom or dad a PhD? Then maybe you'll have a chance to stay out of the slow lane I found myself in.
Here's some free advice on whether to get a PhD after I spent 6 years getting mine.
Don't expect industry to find your research experience valuable unless they're hiring you as a researcher. You'll probably get paid the same as a MS candidate if you're a normal developer.
Even smart people don't make it through a Ph.D. program because either they don't have good chemistry with their advisor, or they can't sustain interest in their thesis topic. You've probably never had to study one thing for more than a year. Imagine studying it for 4-8 years.
If you don't hit it off with your advisor, you're probably sunk, so spend a lot of time networking and getting to know your potential advisor before starting.
Be fired up about a topic before you apply! It's not like BS or MS where you show up, read a lot, remember a lot, and get through. If you're not passionate about your subject, then after two years, getting through your thesis will feel like pulling your own teeth out.
In case you're interested, here's what happened when I left school. I didn't have connections or serious prospects for research jobs. As it turned out, my first job out of school was writing numerical C++ libraries for an internationally recognized software company. I got paid $50K/yr for creating two libraries that made the company some serious bank. After two years of working there, I was making $54K/yr. I only got offered a 20% raise when I threatened to leave, which I did anyway.
Then I taught at a university for two years but hated the fact that most students were only interested in the diploma, not the actual subject matter. So I had to deal with lots of cheating and poor performance. Remember, this was 1998 when someone with a 2.0 GPA could get hired as a network admin. I lasted two years there. My pay finished at $44K/yr as a full-time, tenure track professor.
I've slowly jumped around to government contracting and private consulting, which have paid better, but I probably would have gotten paid the same with an MS degree.
Now, I've finally found a job as a researcher in an industry setting. I waited seven years to find it. It will pay around $85K/yr with benefits.
Thing is, if you've chosen to study computer science to develop complex algorithm to solve a real-world problem, are you/have you also studied the art of developing software so that your implementation isn't hindered by common development faults. This means that you'll gain (or have) a deep understanding of the software development lifecycle and all the possible failure points in that lifecycle. You've also developed a tight personal software development process the likes of which SEI has championed over the years via the CMM, or some other framework such as the Microsoft framework for development which the MS consultant division use (hold on, it's actually very good! Just wish Microsoft developers themselves would embrace it :-o ).
The average developer hasn't even considered the fact that developing (near) bug-free software on time,on schedule, and within budget is possible, so they either don't bother trying to find a better way to peel the potato or are in a corporate environment where deploying poor quality software and using the customer as a "free" QA dept. is the norm.
The ability to develop tight code is paramount these days. Locking down complex algorithms which your research has yielded will allow your future employer to realise that your education and academic research has huge real-world value.
An fully developed software engineer has a much better chance of securing employment in the current climate here and around the world.
Formulate a clear intent and then jump of the cliff.
I see a lot of talk about J2EE vs .Net. Very few people who don't have graduate level knowledge of the concepts mentioned above are even qualified to make the comparison, let alone an educated descision over which platform is right for their application.
I think you over-estimate the benefits of an education against relevant practical experience.
I know architects (and the above issues are architectural) who don't have any degree at all, who are more than qualified to discuss all those issues, and who have written and deployed systems in at least one (and sometimes both) of J2EE and .Net. Quite frankly I'll believe their recommendations ahead of someone fresh out of uni with a PhD in whatever you choose.
This doesn't mean a PhD is useless - it's always good for getting higher pay, and impresses the girls. Heck, it may occasionally even be directly applicable to the work at hand.
Usually though, a PhD is in fluid dynamics, or string theory, or some other intellectually high brow area that the average business IT department just doesn't care about. Universities tend not to teach people how to architect, write and deploy a system in fewer weeks than originally estimated, in the face of changing requirements, when your team is forced to attend corporate monkey days, with ever-reducing headcount, while supporting the systems the guys before you wrote, under the management of people pushing their own careers ahead of all other concerns.
For the record, I only have a BSc, it's not in IT, and it's not holding me back at all at the moment - probably because I also have immense demonstrable practical experience.
~Cederic
First of all, bear in mind that getting a PhD in Computer Science is not the same as following a career in engineering. Edsger W. Dijkstra once said, "Computer Science is no more about computers than astronomy is about telescopes." This little (almost pedantic) phrase reflects the importance of recognising the difference between a career in education (research) and professional studies. A Ph.D. in Computer Science is typically immerse in mathematics, not "just" in software engineering (please, do not read in a derogatory sense). Researchers aim to different jobs from those usually obtained by engineers. This does not mean you're over-qualified, this means you were trained to do something else (research). Getting an advanced degree (Master in Software angineering, Doctor of Professional Studies or similar) will certainly leverage your career. Becoming a Doctor of Philosophy (Ph.D.) in Computer Science will not necessarily train you for an IT job. You may, however, apply for the R&D department - Ph.D.s are not "condemned" to work at Universities, National Laboratories or Research Centres.
Walk through GM or Ford or Nvidia or Intel. There are lots of Drs. around.
Unfortunately, doctor-employing companies such as GM or Ford or Intel employ a very small fraction of the world's population. Ph.D.s are really and truly only intended for the people really and truly motivated enough to get them without second thoughts. These are the people heading up the design labs, and not the people who got the Ph.D. because it was "something to do after college."
Healthcare article at Kuro5hin
There is *no* better point to a PhD.
It's called having a life.
There is some truth to this:
B.S. does NOT mean Bachelor of Science, it means BULL SHIT!
M.S. does NOT mean Master of Science, it means MORE SHIT!
Ph.D. does NOT mean Doctor of Philosophy, it means PILED HIGHER AND DEEPER!
First you have to carefully evaluate your career goals. Is this what you really want to do? Next, is their a job market for Ph.D.s? I've been reading about the mass exodus of high tech jobs over to India and Asia, not good. Second, it matters significantly where you get a Ph.D. in science, in addition to any experience you have acquired. Do you have a really good track record of success? Any failures? How did you handle the failures? What types of companies do the graduates get to work at and for how long? Is the turnover number high for a particular job position or company?
A masters degree may be all that you really need. If you have the desire to get a Ph.D., an alternative to getting a Ph.D. is launching your own business as an independent programmer, consultant, etc... This too can be very rewarding both personally and financially. There's nothing quite like being the boss. Plus, you get to use travel and luncheons, dinners, small vacations as business expenses. In addition, after you've had several successes with a business venture, casually mentioning it to your employer may indicate you're more competent than the average Borg Drone and could make you a candidate for promotion.
Another alternative is to go back to school and get an M.B.A. The M.B.A. was designed for non-business majors, professionals in science and many other fields to work in administrative positions. Again, where you the M.B.A. also matters.
I was told by my undergraduate academic advisor NOT to get a Ph.D. from a non-ranked chemistry program. At the very minimum, one would want to get a Ph.D. from Ohio State University or the University of Michigan in AnnArbor, because the Ph.D. is a terminal degree, meaning there is no other degree above that, and with a Ph.D. you will be expected to perform with the same level of expertise, competancy and detail, and responsibility of your peers graduating from Harvard, Yale, Stanford, MIT, Columbia, Brown, (Ivy Leagues and many second-tiered schools).
So, very carefully evaluate what you think is best for you. Don't get a Ph.D. just so you can be called "doctor". Being called "doctor" from a non-ranked program can be more embarrassing and humiliating than the greatest on-the-job screw up you've ever done. When you go applying for positions that require Ph.D. experience, you may be at the interview to make the other candidates who graduated from better and more selective programs look better. I know, I've earned a masters degree from a non-ranked program (which is "OK" for most careers in chemistry), however, my next goal is to get an M.B.A. because that will take me further and get me out of the laboratory.
ALL YOUR CONSCIOUSNESS ARE BELONG TO YOUR GENETICS AND ENVIRONMENT.
That's a silly statement.
Actually, it isn't.
I am amazed when I see enterprise systems implemented without any thought whatsoever when it comes to concepts like scale, distributed cache coherency, distributed deadlock, distributed transaction management, right down to the basic concept of protocol overhead when chosing the communication medium.
You might be suprised to learn that "enterprise systems" jobs are relatively rare taking the world as their context.
Regarding the fact that most employees don't know squat about scale, transactions, etc., well that is the fault of the company for not recognizing the shortcomings of their employees and providing TRAINING. These concepts don't require advanced degrees--they usually require simply educating the people about the issues. Rarely does transaction processing require a mathematical proof--people simply implement it, ideally knowing beforehand what's at stake.
Schools, at the employee's expense, are simply the wrong place to learn about domain-specific issues of a particular company at a particular point in time.
Healthcare article at Kuro5hin
As someone who does some hiring of IT professionals, a few things come to mind:
1. Generally, a Masters is the most useful, because it sets you apart from the field while not pigeon-holing you in one specialized are or as a "researcher".
2. Depending on your desired area of study, it may help or hurt. Esoteric fields of study will likely peg you as a "researcher" and thus not suitable for the practical.
3. In a tight economy (like this one, at least in CA) one can be perceived as overqualified or desperate. (I've seen people with Ph.D.s apply for technician work.) When companies are short on cash for salaries, many tend to shy away from those with Ph.D.s since they expect a higher salary.
4. I've found many people with Ph.D.s make lousy programmers, frequently trying to make everything research or "perfect" when "good enough" is what's required.
5. Unless you get it from a highly rated University and/or with a noted advisor, it may not even count for much and your time would be better spent broadening your skill-set.
6. Particularly in CS, I've found (and many people in Ph.D. programs I've talked to agree), that it's more an exercise in persistence than intelligence.
7. Consider an MBA, it can make your more marketable, especially if you want to move into leadership. (You may not now, but what about in 5-10 years when you are perceived as "old", i.e. over 35.)
8. One thing that is valued is people with both hardware and software expertise. Consider an additional Masters in Electrical Engineering or Computer Engineering.
9. Depending on your industry, learning a foreign language can be a big plus.
I don't know, but it works for me.
I don't follow to that conclusion. Do you have more evidence? All I hear you saying is that he was smart and crazy organized. This makes him worthless as a regular employee?! WTF? Sounds like he'd have an edge over others in tough times to me.
Of course I have more evidence, I didn't base that conclusion on just those statements. But I didn't want to write a book here. :-) On paper, the guy was qualified. In person, he was out of his element. He was used to working at NASA, where process is strict and extensive. We were in a more laid-back environment (to him) and he had trouble dealing with it. He became frustrated easily because of the environment. His experience and extensive knowledge didn't help him in this case, it was detrimental. When you have to think on your feet, you flounder if all your thoughts are on color coded index cards.
This "overqualified" management speak is such a load of rubbish. Underqualified? Yes, we call that "not qualified". Overqualified? Huh? That's "qualfied", with extra breadth, character, untapped potential, etc. That's life. If you have a brain, if you're well read, if you pay attention and analyze the life that streams past you, then you're "overqualified" because no position could possibly tap all that knoweldge, widsom, experience, etc.
Holy cow, nobody has ever referred to something I have said as "management speak". :-) Technically, he had great experience in engineering environments. He should have been able to tone down to fit the environment, but that wasn't the case. You can't unlearn certain things. Once you are used to working in certain environments, it is very hard to go backwards, so to speak. If you are used to working in a slower paced, government organization where everything is triple-checked, you may not fit into a small company where decisions are made quickly. Maybe you are right that someone could be conidered "unqualified" instead of "overqualified", but overqualified implies something that unqualified does not. The person may have the technical skills needed, but perhaps they aren't a fit into the environment. Overqualified may also mean "you know too much, you have too much experience, and we aren't willing to pay you what you are worth".
My beliefs do not require that you agree with them.
I even agree with the +1 funny, but yes. Doing something for yourself instead of the man is what having a life is about.
Don't let Education get in the way of your learning.
Thaths
Just the horribly arrogant ones who feel a need to point out they have...
You get a D- for leadership and teamwork. This will go down on your permanent record. Good luck. You'll need it.