Ask Slashdot: CS Grads Taking IT Jobs?
An anonymous reader writes "I'm a soon-to-be Master's graduate from a public university majoring in computer science — with all that CS entails. Of course, it's come time to start job hunting, and while there are a few actual CS-type jobs around, I've noticed that a few IT jobs would be substantially more convenient for me personally. But this leads me to the question (assuming they would hire me, of course) — would having IT experience hurt my job prospects down the road? Would future employers see that and be less likely to hire me — or pigeon-hole me into IT?"
Experience is good. Related experience is better.
Holding down a job as a wrench turner doesn't hurt you.
I can tell you that some will pigeonhole, others will bring you in and ask you questions. They will ask you questions based on your knowledge of whatever language they need, if you know them you will be fine, if you dont due to being out of practice... you will not be fine.
News flash. I'm a Comp Eng, I've been involved in writing software for all of my career, and I tell people I'm in the IT (Information Technology) business. Do you mean admin work? It shouldn't be a problem, unless you end up tailing log files and faxing the errors if you see them. Do you mean equipment/line installation? I wouldn't say the Cable Guy is in the IT business.
If so then get a job as a software developer when you graduate. If you want to go into IT then go into IT.
If you're trying to build a technical career then you want to start doing so, and on as close a path to what you really want to end up doing, as quickly as possible. If you want to end up designing network layouts and server farms, start with IT. If you want to be in databases (and if you don't find it boring as hell there's great money there) then start yourself off as a Junior DBA.
IT experience won't count against you, but it won't count as much for you either.
What type of CS would you prefer to hire for a "real" CS job? Someone who has spent the last 3 years doing software development, or someone who spent the last 3 doing IT? Hell, consider someone who just got out of school against someone who has been spending time in IT, and the new graduate will probably still come out on top. You're going to be perceived as being out-of-practice, and there will be worry around why you decided you had to take an IT job instead of a more CSish in the first place.
Not to mention that all that time you'll spend in IT could have been spent gaining experience in the field you actually seem to want. Take the easy job, and doors are never going to open. You'll never find the CS-type jobs becoming more convenient, because you can't progress unless you actually start.
It's not only my job but my duty to remind those in IT of how superior I am to them.
If you want a job in IT go ahead an throw your career away!
I'm reading this on the park bench next to my top hat.
This is not planking
Ryans Tutorials - A collection of technology tutorials.
Depends a lot on what kind of IT job are you talking about and on how much time you are willing to spend to stay fresh on CS topics. If you spend the next 3 years installing windows and laying cables, you'll find it hard to get a job in SW development. If you'll work in an IT or CM departments of a large company where they perhaps run som data-mining on their server logs, develop scripts for common IT problems etc, you'll learn a lot of useful things you can present to your future employer.
On top of that, you can run SW projects of your own in your sparetime - there's a lot of opportunities on sourceforge and similar sites. Employers love prospects who enjoy their topic so much they spend their free time working on it.
was your last job an IT position? Unless you want to start over, you're an IT guy.
You are making hardly any sense. CS is *the* degree you go for if you want to work in IT. The only "CS" jobs that exists are academic ones.
OK, so first, agree that I would also call myself an IT worker. I just have higher programming skills than the people I graduated with (which was some 12 years ago btw).
I'm an EE/CS grad and I've worked as a software engineer and also in desktop/network support. All I can say is, software developers get paid better, work better hours and have MUCH happier faces during their work day.
Languages and IDEs can be a pain. If the organisation isn't well... organised, then being a soft eng can be depressing and hard too. But working in desktop support, you will solve the same problems over and over again for ungrateful (or just plain rude) co-workers without ever being able to fix the root of the problems. Meanwhile your managers will (probably) be pouring endless amounts of money into the next generation of MS designed pain for you to deal with.
Tackling a hard programming problem can be frustrating, but trying to work around the bugs in Server 2008 or explain how to fix something over the phone to someone who is confused by terms like 'right click' is real soul-grinding stuff. ;-)
would having IT experience hurt my job prospects down the road? Would future employers see that and be less likely to hire me — or pigeon-hole me into IT?
Nope, those in charge of hireing doesn't know the difference between CS and IT and most of the time they just need someone to put together some stuff in .net anyway.
Do whatever you want to. Most of the time a programmer and a progamer is interchangeable anyway.
As you see, after roughly 15 posts everyone has a completely different idea.
Suppose you would work for MS and program/develop around the next Office Suit, then IT experience would perhaps not really be helpfull. However if you had a lot of IT experience you could indeed influence the development of the Office Suit into a better direction. Would MS want to hire an IT guy for developing, no idea!
My "career" at a glance is like follows: I started with 16 roughly 1982/1983 with programming, Basic, Assembler, Pascal, finished high school in 1987 and started studying CS. From 1988 on I worked as Programmer in C in the university on Sun OS workstations and switched a year or two later to Unix System Administration for Sun OS (not Solaris) and Dec Ultrix and a few Alphas (a year later or so). After that I was self employed / freelancer as developer in C++. And also did Unix and C++ trainings, a bit OOAD training (that was before UML existed) etc.
Anyway, around 1998/1999 I did lots of Y2K reengineering. After that I was self employed/freelancer again and did UML Trainings, Agile and Rup based project trainings / coaching and developed a few big Java Applications in the energy industrie. Then I joined a company that worked as software developing shop for the energy industrie and helped there with "everything" from testing, via build system, to continious integration, restructuring the software from one into a few dozen projects, coaching/training the employees, introducing Ivy and iBatis and a GUI driven UAT Test system based on FEST, solid requirements engineering, using an issue tracker (utilizing! it would be more correct) etc. pp.
After that I worked for a railway company, helping to fix bugs in a "burning project" and then finally I made a "face book clone", last year, for a big telco companies web presence based on SOAP, REST, Java, Linux, MySQL and Cassandra.
And now: now I do IT. Not "real" IT, but maintaining a few trading applications for one of the majour banks in germany. That involves DB administration, restoring or moving backups/dumps from production environments into prelife or development. Deploying Java apps, Restarting/configuring engines of trading systems, user administration and lots of problem research and fixing. Correcting errors the traders made but lack privileges to correct them themselves etc.
Maneuvering two data centers right now, as we have a big construction site nearby we test for safe fail over in case of power failures or other emergencies.
Anyway, I did lots more than this the last 20 - 30 years but it would completely explode the post and my point I want to make: my impression is that every single job I ever did I can/could do better than someone else because of my other jobs I did before. I'm not an expert in everything (or anything except requirements engineering perhaps) ofc. But I'm on par at perhaps a 85% - 90% level of an expert. And with my crossover knowledge I very often can pinpoint the root of a problem in minutes where experts did already research for hours or days. ;D the employer wanted 3 possible contractors in 3 interviews right after each other. The contractors where introduced to the employer by the same head hunter. So I guessed the job likely would go to the first one interviewed or the last one (as they wanted to make the decission right away). And so it was ...
Did I ever fail a job interview? Yes, once
Did my "shifting" from working area to working area ever hurt me in a job or in an interview? Certainly not!
So what would I propose? Either do what gives you the best option for the future (money wise, career wise). Or do what gives you the most fun. Or take the opertunity and do what is available right now and switch later. ...
If a future employer judges your abilites by your old jobs in a different field he either has a very good reason or is an idiot
I think regardless what you do, whether you go into a small company or a big one will influence your future more than what you do the next two years.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
It probably won't help you land a development job, but the skills you can pick up in an IT job can be extremely useful. My first job out of college was working in a network operations center doing network and systems administration. We used to make fun of the developers that worked downstairs because half of them couldn't figure out how to install the tools they needed for their jobs. After landing a software engineering position, I turned around and used my experience to set up all sorts of infrastructure that helped manage our projects (e.g. new version control systems, continuous integration, issue tracking, shared storage, etc.) While the IT experience did not really help me get the job, it helped make me a key member of the team.
Just adapt your title to fit the job you're applying for. The whole idea of a diploma (for most people) from an institution of higher learning is the flexibility it brings with it.
The people who know the difference between CS and IT will see it reflected in your resume and the people who don't know the difference.... well they don't know.
Either way you'll end up in the IT department.
tl;dr: Adapt the words to fit the job you want
Seriously, it's not nice out there right now. If it is a non-programming job, keep programming on the side so you have examples for later interviews that you kept up your programming skills.
Vote monkeys into Congress. They are cheaper and more trustworthy.
I took a temporary job in sys admin once and it took over 15 years to get back into programming. Employer would always look at the most recent experience and pretty much ignore anything before that. Of course if you are trying to break into programming, IT experience might be better than none at all.
Can you afford to be picky?
Get yourself into a nice safe government job plugging in machines made in China, don't start on a career which will relatively soon (two decades, i.e. half way through your working life) be done exclusively in India, Malaysia, China and wherever else looks the cheapest this quarter.
If you were blocking sigs, you wouldn't have to read this.
When strapped with huge loans (in the US, at least), would you rather spend two more years accumulating debt for a Master's, take a research job that's cutting-edge, but doesn't pay the bills or take a $65,000 job doing IT right out the bat?
I've been in the industry since 1995. I started as a glorified secretary that knew how to do a mail merge. (That was a rare skill in 1995.) After a year, I managed to get into helpdesk work. Then I did software testing. Then I got into client/server development. I took 18 months off to finish my BA. Then I went back to helpdesk work in a vertical market. These days, I'm splitting my time three ways between classic helpdesk work, business analysis, and development (mostly in SQL).
But it depends on what sort of company you end up working for. Some companies have very rigid requirements for job experience. Others, not so much. I prefer working for small companies. (My present employer has about 20.) They tend to like people that can wear multiple hats. If I wanted to do closer to something in pure development, my boss would support that.
If you are a server/DB Admin or work on Application Deployment projects or Information Security, then it can actually be helpful and you will have plenty of opportunity to apply your development knowledge (and you can even look like a super star due to your unique skills).
If you are simply help desk support, or field support, then you will be more challenged at showing how the experience adds to your skills for development work, but a job is better than nothing and I have seen people who wanted to do development work start out in both help desk and field support, but you have to be more creative with opportunities (like creating software that helps you do your job, etc)
Being versed and experienced in IT can be a selling point, if properly framed during a job interview for a programming position, as well as programming positions for IT jobs. With SO many job candidates these days having narrow focuses, one can sell having more diverse background by explaining to a potential employer how you have a greater view than just the narrow focused candidates. For instance, a person with a good OS support background can know more about the internals of how the OS actually handles programs in the real world, and can take this into consideration when coding. Also valuable from spending time in IT can be the first hand knowledge of the full product life cycle. If you spend some time in QA, you'll know what the QA team really needs from the developers. If you spend time with the support team, you'll know what they need to support the software in the field and by supplying it, help minimize the number of times support needs to contact the developers. It's all about how you spin it.
--- It's not my fault this post looks redundant. I just type too slow.
I've noticed that a few IT jobs would be substantially more convenient for me personally
Widen what you are looking for and not take the IT position, unless you can't move away from your current location and have other responsibilities. Just because it would be easier and more convenient right now, doesn't mean it's the best in the long term. Life isn't always nice and easy.
I would look into contract work first, to get some experience, before taking a straight up IT support job. The east coast has tons of software contract placement agencies. Many times these jobs can be converted to full time.
One job I interviewed for was admin for a swanky (well, they thought so) private school.
They ended up hiring a comp sci PhD.
I knew some staff there and I asked "you realize that you hired a PhD in a discipline that basically means you like to play with math all day do be the equivalent of a carpenter (or maybe plumber)- how long to you think they will stay?"
They didn't know there was a difference in the fields, and hey the one has PhD "plus" Computer in the degree, a sure win!
It sounds like you are an elitist... For most development work out there it is boring and lame. so have fun in your ivory tower. http://www.nhadat.vn/
My first experience out of college before my First CIS/CIT job was laboratory technician at a chemical lab. Unrelated completely unless I need to analyze the bacteria on keyboards....
I STRONGLY suggest joining and being a very active member of a Open source Project so that you also have related experience and example code to show during that time.
Do not look at laser with remaining good eye.
I am a medical doctor, and just finished my surgical rotation. But right now, working as a nurse would be very convenient for me. I am wondering if, as an M.D. working as an R.N., will hurt my future job prospects.
/bullshit
I'm just trying to show the OP what a really poor question he is asking. Its bad enough that the bottom has dropped out of IT jobs, and $12/hr part-time Windows Admin positions are requiring a CS degree (why? HR is entirely comprised of idiots).
OP, If you want your Masters degree to be completely meaningless, a complete waste of your efforts, money and your time... sure... jump right into IT, and be prepared to be managed and/or peered with someone with an HS diploma, a sweet sweet gaming rig, and 7 years experience over you with no degrees that will run circles around you and make you look and feel stupid.
The discipline of Computer Science offers nothing to the discipline of Information Technology.... or rather... it is absurd overkill. Computer Scientists working in IT (unless at the higher cognative level of Senior Systems Engineer, Systems Programmer, Systems Architect, Database Architect, etc.) are hurting themselves... hurting the CS discipline, lowering the salary expectations of both computer scientists and the lowly, bearded systems administrator.
Stop it, please. Aim high, and live up to your degree. If you want an easy job that pays well right now, look into database administration. But even that doesn't require any degree whatsoever.
The Admin and the Engineer
If it does, would you want to work there?
Some places look at your previous job titles when hiring. They tend to stock up on morons with flashy titles. These places are where you will find pointy-haired bosses.
Other places will be interested in what you know. They won't care what your title was as long as you know how to do the job they need doing. They will be interested in how you will fit in with their team. They will want someone who is interested in making the company better, who will stick around a while, and who will be able to handle the basic day-to-day tasks of keeping up to date within their field on their own.
That said, if the IT job you are taking is not relevant for the kinds of jobs you want down the line, you need to think long and hard about it. I have been asked to take jobs that would effectively render me unemployable within five years. Whoever asked ended up not being willing to pay the price I asked for moving my career backwards and hired someone else without long-term plans instead.
Then again, my local market is easy to live with. I have never been out of a job more than a couple of weeks in my fifteen years of working.
Computer science != programming.
Computer science is a branch of mathematics that deals in formal systems with a priori statements.
Computer science is a paradigm-laden field that advances the formalisms of knowledge, just like all a priori fields.
Programming is more closely related to engineering than it is to mathematics. So this whole conversation is non sequitur unless everybody means Programming when they say Computer Science (which... they do)
IT is an umbrella term. It means "Information Technology", and encompasses all aspects of it - from the "highest" software analysis ("Here's how we'll build the application, and how we are prepared to scale") to the "lowest" customer support ("I can't print this file! Help!"). Definitively, any computer science-ish task is also part of IT.
"IT" is NOT only limited to "lower level" work, as the OP implies.
If you work in the support and maintenance or even business software development side of IT for only a few to maybe five years or so I doubt you will have a problem. As long you keep up with developments in the field of computer science and can have an intelligent discussion with an interviewer when the times comes you will do fine. The thing is you won't take that interview.
What will happen is you will start to build a career around IT. You will start to build a life around your career. That life will depend on your income. You will mostly likely have made some not insignificant advances over those years in IT, it will be hard to go back to CS where you'd be again looking at more entry level positions. Mostly likely you will decide not to do it, on your own.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
I started out fixing faculty and staffs desktop computers while getting my BS in CS. Went to fixing student computers and doing some scripting on the side. Now I'm over three years in to full time work as a programmer doing PL/SQL, Java, and VS stuff for their enterprise systems at the university.
It's all in what you want and what is available. I moved up the ladder from being a student to a full time employee. I find I get my problem solving fix from helping others at a college campus. This has netted me some freshly baked chocolate chip cookies and fudge on top of the pay and benefits. It's the little things that can make a job worth while.
~~ Behold the flying cow with a rail gun! ~~
Forget all the nonsense on what CS vs IT is. Be flexible and be knowledgeable about as much as you can. Say you are a network admin, you will probably have down time to continue to do programming. Or you can learn virtualization an area in which good people can make great money. The bottom line is never stop learning and never stop trying to do better. Don't say I don't know how to setup and configure IIS or Apache. Learn to do it and support your team. If you are a programmer don't be afraid of the networking end of things. And no matter what be personable and learn to explain technical things in an easy to understand manner that is not condenscending to non-technical personnel. From there you can literally go in any direction you want. Understand the business you are in from more than the IT perspective and you are already a few steps ahead of many folks in IT. I have worked with far too many professional folks refuse to do work outside of their domain. A programmer who doesn't know or care how to setup a server or IIS. A network admin who refuses to learn even some basic coding skills for writing helpful scripts.
IMHO, you would have been better off spending the time it took to get the Master's degree getting hands-on experience in the field. This is coming from someone who *rarely* runs into CS Masters and has *never* been impressed by what a Master knows (in fact, some of the best devs I have ever worked with don't even have Bachelor's degrees, but in that case, it really does hinder the job hunt). Real-world trumps academia here.
Define "IT". For many folks "IT" is setting up networks, provisioning machines, tech support, etc. For some folks "IT" is writing code for a living instead of doing theoretical research.
If I were looking at someone with a master's degree for a coding position and his only experience was "tech support" I might wonder why he couldn't get something more in keeping with his qualifications. But I wouldn't reject him just because of that. I'd probably ask him about it in the interview though.
i think this long post just nails it.
you can only use your past experience next to your intelligence in IT/CS. Where your strengths are, there you should be strong, and where your weaknesses are, there you should be humble.
If anybody closes the doors before you, dont see it as disappointment. See it as an opportunity, that this job might have not been good for you anyway.
It sounds stupid. But having fun at work, being challenged, learning new stuff, and being glad that small little project you once did now makes you the expert for a week - that's the fun of being in a geeky job.
Everything else is just nonsense. Even if you are the type of person who is so smart and can get any job (can be through your self-expression and charisma, or in CS also just because of your expressive aura of highspeedbrainz) - you dont have to. And maybe, in some jobs you just suck ass and feel bad, and just burn out. So do, what you love to do, but be prepared to do stuff on the road, which you dont love.
And if you are young, and you want to try IT, and the jobs sounds neat, do it.
If you go into CS also highly depends on how much coding you do in your spare time.
Last advice: you even get better at coding if you take a year or two break off it. really.
I guess it really depends on the job and the environment. I started out with my current company as a third level support guy in a copier company helping out with print, scan and general network related stuff. Basically, end users had problems; they'd talk to technicians (who were generally of the "mechanically oriented" mindset rather than IT) who would then call me for IT help. Definitely an "IT job" rather than even vaguely CS related.
Definitely not glamorous at all... however, after a while I identified common questions and problems and started writing a bit of code to make the technicians lives easier - point and click interfaces for stuff that they previously had to do a lot more manually. This got noticed and after a while I found myself writing a bit of end user software as well. After 5 years with the company (a good 3 or 4 of which I was doing quite a lot of coding) I decided to move to a different country and since it's a large international firm, applied for a job in the European head office. They took me on as a specialist for an API that our company makes for interfacing to our devices. Four years here in Europe and now I'm the Software Development Supervisor, responsible for software development activities across Europe. I write code, look after a small team of other developers, design apps from "fuzzy" marketing ideas in to real products and generally have a lot of fun and creative freedom.
While I wouldn't say my current job is CS heavy - I don't spend much time coming up with cool new algorithms (except a little work on OCR that I did) or designing operating systems and languages - but nevertheless it's definitely moved a long way away from the "IT job" beginnings with the company and is now almost all creative software development and a just a tiny bit of management thrown on top. I'd imagine most CS grads would be happy to end up with a job like mine, so I guess it's relevant for you.
My book about LSD and Self-Discovery
Also on facebook as: DroppingAcidDaleBewan
On a purely knowledge-level alone aside from pay and career track I would highly recommend taking an IT job for a couple of years, but at the same time you need to keep up your programming skills--which involves picking up side contracts for development work. All of the rage right now is web development (Java, PHP, hell even ASP.NET--if you don't know C#, you need to learn).
In this manner, nobody can say you didn't "work in the programming field" while maintaining an IT day job. I recommend this because you will learn things your peers will NOT know. You will learn to understand how the systems are used interconnectably, what happens when a server goes down, how do the client machines behave? What kinds of interruption to work flow occurs? You will take an entirely different viewpoint on how your software should work in an environment.
I know IT guys that are better software architects than the software developers I've met, yet I've met very few going in the opposite. Ask any "real" software developer how TCP works in an environment and when they would use something else in their application? They wouldn't be able to tell you. Granted, there are those that are out there, but unless you specifically work on socket programming, there's a good chance you won't know. Yet understanding the difference between say, TCP and UDP, and say, what SIP does is something that is a VERY BASIC understanding of computer system connectivity.
If you're looking for job security and stability, you should focus in is "management". As much as this sucks, most companies are more likely to higher American managers than they are to hire American programmers. Get into the "lead" oles when you can, and take Management courses, a secondary degree in Business may help with this. This way you can get a higher paying job and maintain it. Throw in some of your application "design" and "architecture" experience and you'll have a much higher paying job, though this ultimately means you'll be doing less on the ground coding as well.
pigeon-hole me
My god man, the entire American technical community is oriented around pigeonholing. Its not a "IT vs CS" thing. Its how management is trained to treat techs. Its an American cultural thing, not just an oddity.
My cousin the chemical engineer got pigeonholed into semiconductor polymer device packaging early on, never to escape. My father got pigeonholed into DBA work/consulting and he was stuck there until retirement. My high school chemistry teacher started off in some obscure corner of food chem, and was forced to stay there, until she got fed up and went back for an education degree. My Uncle: Once a fine cabinetry maker, always and forever a fine cabinetry maker never to be allowed to do anything else for money (at home he made furniture). My uncle in law: Once a medium size diesel mechanic, always and forever a medium diesel mechanic, never to escape.
I've been doing more or less the same type of work since the summer of 1998. Like everyone in the paragraph above, am I qualified and capable of doing much more? Hell yeah, look at what I do at home. Which brings up the important point that if you're going into a technical career where you're going to eventually be bored to tears, make sure its a field where you can do "cutting edge" work at home. Software development, carpenter, mechanic, yeah that works at home. Biochemist, chemical engineer, umm not so easy to do cutting edge work at home.
If you're going into a technical field, you almost certainly will be doing at age 67 what you were doing at age 23, so make sure you like it...
The only way you'll ever get a job in a different field is:
1) Dating and/or friends and/or related to someone in management
2) Another "tech boom" or similar occurs (for example, I'm told that in certain areas out west, anyone who can pass a drug test can become an instant oil field worker)
3) You go back to school for a new field and new degree, don't worry it'll only be $50K to $200K plus living expenses.
4) You start your own business in a new field you know nothing about. Good Luck, you'll need it.
5) Give up technical work, and start at the bottom of a non-tech field. If you've got enough brains to survive in a tech field, you'll rise to the top of a non-tech field. Non-tech fields actually have career paths and opportunities, unlike tech.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
As some people mentioned, there are two halves of IT. Personal PC support and then server/DBA maintenance. The second is much better by far.
If you're considering IT, also consider QA. From what I've seen as a programmer, QA would have a larger programming aspect to it if you consider the automated testing that can be written up. For IT, if you have a really large complicated process, maybe some programming would be involved, but usually there would only be some fancy shell scripts to deploy or support the systems.
However, I have seen a few IT guys move into upper management and CTO type roles and I have yet to see any QA folks do that. But I would go with the safest bet and take the QA to programmer to CTO route. Planning your career on becoming CTO is like planning to make it in pro sports.
There is definitely a possibility of getting pigeon holed. Though most people have a hard time moving to programming because they don't have a CS degree. Since you have a CS degree, I would try to keep my time to 1 year of IT or 2 years at most. After 5 years or so, you'll develop some personal career inertia. In this job market, continue looking for programming jobs after starting the IT position or you might see the years start to fly by. Also, consider switching within the company that you're already at. I've seen this also successfully done, but only with a CS degree.
I'm sure your CS education didn't focus on memorizing APIs, or how to write a specific application. It should'v covered algorithm analysis, optimization, parallel computing, plus other areas.
The field should not be matter much. If you ended up landing on IT field, use your CS knowledge to do the job better. Analyze your work, set parameters and a goal. Try to increase the outcome by adjusting variables. Use those good algorithms that you've learned to solve problems. That's what educated CS graduates should do. They should not expect to become coders.
"I'm a soon-to-be Master's graduate from a public university majoring in computer science — with all that CS entails. Of course, it's come time to start job hunting, and while there are a few actual CS-type jobs around, I've noticed that a few IT jobs would be substantially more convenient for me personally. But this leads me to the question (assuming they would hire me, of course) — would having IT experience hurt my job prospects down the road? Would future employers see that and be less likely to hire me — or pigeon-hole me into IT?"
As a CS-grad who has also done IT (and by that I think you mean "IT Support" as opposed to "IT/Enterprise Computing/Software Development"), if you get a gig in IT, make sure that it is a tier II or tier III type - the type dealing with actual server/dba/network configuration, administration and troubleshooting. Having that type of first-hand knowledge will prove valuable for most CS-work that you do down the road (too many CS grads down know how to root cause (or even account for) server/network-related problems when they develop enterprise/distributed systems (with hilarious consequences.)
On the other hand, a tier I type of IT support job is the type that gets calls from people requesting help with their PC-integrated cup holder, and you'll be eating a bullet in no time.
Having said that, and also from my own first hand experience, you run the risk of getting pigeonhole into the "IT-can-admin,IT-can't-program" stereotype. Make sure that when you do IT work, you do programming (a lot). Use Python, Groovy or Ruby or Haskell or Lua for your administrative shell scripts as opposed to simply shell scripts + perl. Sounds a little bit overkill, but you *need* this, to both keep your practice, and also to put it in your resume (to demonstrate that you have been programming.) BTW, if you do this, make sure to take one language and stick to it - nothing worse for a poor employer to find itself with a bestiary of admin scripts written in 4-5 different languages. In a nutshell, pursue your programming practice on the job in an ethical, professional way that benefits both you and your employer.
Also, while you do IT, keep your eyes on what's going on out there in terms of software development. Things change very quickly and you can find yourself obsolete rather fast if you are not proactive with your career development.
OTH, if you end up liking it, why not, specially if you get a chance to do paid overtime. If you do this, though, be ready to have your cell on with you at all times, getting level 2 or 3 calls from Bangalore, Buenos Aires or Panang at 3am :P
I have a (B.Eng) degree in software engineering. I started out in the R&D startup world in 2003, doing the usual CS/SE things like QA, maintenance programming, and finally ending up in requirements analysis/system design. In 2007 I decided that I didn't want to spend my life working for stock options that aren't worth the paper they're printed on and went for a career change into IT. With zero helpdesk experience I interviewed for a senior Linux sysadmin position in the IT outsourcing branch of at a major (Fortune500) telco -- got a job offer the same day. Fast forward 5 years later I'm still with the same company but I'm now a sales engineer supporting salespeople that sell the same IT services I used to run. The kicker -- I make double the money that I did doing R&D. I'd say that if you know your shit and can get shit done, then it doesn't matter if you're trying to do CS with IT experience (or vice versa). Good employers will even consider it an asset to have experience from "the other side of the fence". IMHO IT knowledge will make you a better programmer, and CS knowledge will make you a better sysadmin. You'd be surprised how many PHP/Java web developers don't understand the support consequences of their sloppy code -- they only see as far as QA. A PHP injection flaw on a web page that gets 10M+ views/day will generate a LOT of phone calls.
I got a CS related job right out of college. It would be better if you got the same, however sometimes it might be easier to get an IT job in the meantime. If you do get the IT job, spend the time around your work schedule building a portfolio to show your skill. This is be incredibly handy when you go looking for a CS job.
As someone who did just what you describe, I'd definitely say YES. Taking a job in an internal IT group rather than a pure software development will very likely shape your career trajectory. I went into IT consulting (specifically getting into data warehousing and business intelligence implementations, not system administration), and then spent some time trying to jump over to pure development without any success. I found that I didn't have the experience to jump fields at an equivalent compensation level. If I'd been willing to take a couple of steps backward in pay grade, then I could have essentially restarted my career in software development.
That said, I also think I've made the better choice. In an IT environment, I've been able to leverage my CS background to advance more quickly than I might have in software development. So, within just a few years, I'm a solutions architect and director. Maybe I would have excelled in software development, too. Who knows. But I know from experience that the strong disciplined CS background has definitely given me a leg up in an general IT business setting.
As a software company that makes products for IT departments, someone who can write code and "gets" IT is an extremely interesting candidate in a range of positions (from development to solutions engineer).
Your risk is that we (or anyone else) stops believing that you can actually write code. So you'll want to stay sharp there with a pet project, contributions to open source or something along those lines.
On your resume, it'll read like this:
* It doesn't matter what the actual job was. It's in IT and not programming, it'll be read the same as geek squad.
Care about electronic freedom? Consider donating to the EFF!
Since graduating from high school in 87 I've had several careers: linguist, nurse, CS, network security, and now am looking for an entree into the world of crypto. Yes, this has translated into lots of school (2 BS, 2 MS). Career change is possible if you are driven and are willing and able to start at the bottom again after starting in a new field.
1) I started in "IT" (admin)... moved over into programming... people in the fields see a significant difference in skillsets; people in business often do not... most IT/CS people do NOT cross the boundaries.
2) because I do have background in both, and can talk about routing, NLB clustering, firewalls, etc... the skills I bring as an architecture are stronger than most.
3) jobs are out there... CS included... it's a matter of skills... I personally am heavily involved in SharePoint (and .Net), and I get calls regularly... I doubt the people writing COBOL are seeing as many offers (though their niche market may allow them a larger income)
4) employers generally want to see experience... open source projects seem to be the new resume, but I always encourage my employers to hire green (I'm in consulting; green hires that are promoted result in higher profit margins, at the cost of initially lower bill rates).
5) when I look at potential hires, I'm looking for how they write code... seen too many people who write app-sized scripts... I want someone who knows good practices.
To me, IT involves Information Technology whether it's programming or systems administration. This is typically to provide value to a business. Therefore, a programmer in IT would be someone working on business applications, quite often revolving around databases. Code quality may be compromised because of the "it works good enough to support the process" aspect. A programmer in CS would be someone developing applications in the technology or scientific fields. Quite often, these applications have a wider, less forgiving audience - the software is the company's line of business. More skilled programmers may be required. Lower level languages may be used. More testing may be required. I've only worked in IT, as a programmer. If the OP really did mean "sys admin" when referring to IT, I would recommend against it, even if he wants a career as a business programmer some day. The experience just wouldn't be there. I would also assume that ten years experience writing business applications will not go as far ten years experience programming for a tech company, when wanting to make the switch.
If you want to be a developer, write software on your own time and make it part of your resume. Having some nice, freely available apps with your name attached provides a portfolio showing your skills as a developer. Even if you take whatever job you need to pay the bills now, it can still leave you open to make the jump later. Just don't settle, keep looking.
Obviously this guy has never worked in the IT field. Wake up man when you're in IT you do it all. I'm a programmer one day, dba the next, on a slow day I may actually get to do some system administration. Ha Ha what a joke!
I'm a network engineer with 30 years of experiance.
First, you must understand that the IT world covers everything from Programming, to Admin work, to PC technicians. It includes the people who manage the Routers and switches, the Information security, the Network Admins, etc. etc. In fact if it's computer related work, it falls under the IT umbrella.
Second, the IT industry is experiance driven. Universities are unable to keep up with the ever changing world of IT and manufacturers of products provide their own product training. It has been found that those who love the work, tend to excel at it; Many or most of them are self taught because we love what we do. and there is no faking IT knowledge. There are things experiance teaches us that you just can't learn in a classroom. In short, experiance is worth far more than that piece of paper you call a degree.
When you go for an IT job, you are going to be given a real world test. "Build a server" from a box of parts, "Diagnose the problem" from a misfunctioning network, "Write a program" using only the tools available to you. Either you know how to do it, or you don't, and that will determine your chance on getting the job.
I love this post as-if "taking a admin job" is easy. Good luck the market sucks and most companies won't hire you with out experience, regardless of degree. I work as a Sys Admin with a technical degree, there are plenty of CS four year degree holders working in Small Systems and Help Desk, they know that working up from the inside is a good method.
One thing that CS and IT have in common is that if you ask a question that uses both terms, the IT and CS people will ignore the question and instead bicker over the definitions and specifications that distinguish "IT" from "CS".
http://alternatives.rzero.com/
Who know how it will actually turn out, but here was my career path.
Major in Computer Engineering, while interning for 3 years in IT as a Windows Sys Admin. The hiring person saw Computer in my degree title and thought that I would be better off in IT than the engineering side of the house. I took the internship because it paid well.
Out of college, couldn't find a job in engineering, so I worked at the patent office for a year examining patents. Then spent two years working for the DoD doing network and software support, all while getting my Masters in EE part time.
Finally I landed a job doing actual engineering (board design, VHDL, C, all that fun stuff) even after 6 years of non-engineering, mostly IT, related experience. And I've been doing it for over 5 years now.
So I'm sure you can find programming work down the line regardless of any IT experience.
I went to school in the early 90s for a non-IT degree but wound up in IT because it paid more. I know seven of people who went the CS route, started out in that field and either burned out (3) or were shunted into support by managers who wanted to keep the head count but needed different roles filled (4). The truth is that as you age you want something more settled than job hopping and minding your own IRA and health insurance. Taking that IT job with the big corporation looks mighty good about then.
So yourself a favor and go the safe route now. Keep your hand in on CS projects outside the company and always float your CV/Resume around. You never know when the next tech boom will happen.
Here will be an old abusing of God's patience and the king's English.
I have an MS in Computer Engineering. Upon graduation in 2003, my job prospects for doing chip design were grim. I took the only job offer I had, which basically involved configuring and installing satcom and network equipment on ships for a defense contractor. I wasn't going to take the job, but my housemate gave me the best advice ever, "it beats living with your parents." Ultimately, the IT job got my foot in the door at a very large company. After a year and a half of running cables and configuring routers, I used the internal job database and HR to land myself a killer position designing FPGAs for spacecraft.
My advice to you is two-fold:
1) Only take an IT job with a company that may have other opportunities you do want to pursue.
2) Don't live with you parents unless you have no choice.
Wow, some of us have passionate opinions about this distinction... :-/ As far as 99% of the human race is concerned, there is no difference between CS and IT, we're all just "computer guys".
BTW I got my Master's in CS, and I've been working "in IT" for over 10 years (as a database developer). I'm also a part-time instructor (of database development) in a community college; while the CS background definitely helped get my foot in the door there, I think the practical experience pulled just as much weight.
My advice: take whatever decent job you can find, even if it's a lowly "IT" job. Consider it part of your overall career experience; diversity (such as it is) is an asset.
Unless the IT experience you are taking about is really basic, like help desk work, then IT experience will only help you.
I work in a department in a successful software company. Our sole job is to run software stacks developed by some of the smartest programmers in the world (not brag, fact). I can tell you from experience that the software written by software engineers who have experience as system administrators is *much* easier to run and maintain than those that don't.
This is true to such an extent that we have a program in my company that gives bonuses to software engineers who work with our department for 6 months.
Don't be afraid of IT.
I started out in IT. The Job offer was 50% IT, 50% engineering. Well, as the company expanded, it became 100% IT.
The only thing that saved me was my manager also managed a 'small project' in which he was short on staff. "You Program?" he asked incredulously.
Well, thanks to that 'break', my life as been nothing but slaving to meet deadline after deadline.
One day, I walk into the IT department at a 2000 person company, and I was surprised to find a guy who I considered one of the up and coming genius electrical engineer. I asked "What are you trying to get IT to do?" He said "I work here". He was tired of the project after project deadline death march.
IT has its own rewards. You can cross over, but its not easy. On the flip side, If I had a network intensive application to write, I like people on my staff that know the difference between TCP and IP.
If you do go for IT, make sure you learn from it. There will be opportunities to program. Just be aware that for the next programming job you will be considered a fresh out with no work experience.
As someone who did just that (well over 10 years ago,) you will absolutely be pigeon holed if you go into some type of sysadmin job if that's where you start. Generally, in the technology sector (usually referred to as IT in the corporate world) there are programming jobs and infrastructure (sysadmin type) jobs. Whichever side you 'grow up' on, it makes it harder to move to the other side. Management will always pigeon hole you as a result of your experience. The more of it you have, the more typecast you'll be.
The category names are meaningless. At one point all corporate use of computers was "MIS" (Management Information Services/Systems). Then it all became "IT". Then universities wanted to set up new departments and invented the silly name "CS". Guess what? It's not science. If you're designing physical circuits (say, CPUs) it's engineering. If you're writing code, there's a mix of engineering and art in it, but it mostly requires proficiency in logic - or at the highest end advanced mathematics. (Although math is used heavily in science, it's not science. Mathematical systems can't be falsified by experiment, so are outside the scientific method. They're largely developed for aesthetic reasons by the mathematicians, independent of both scientific and engineering concerns.)
If you're developing quantum computers, you've probably got a true computer scientist or two on the team. Otherwise, if you say you're a computer "scientist," it's a joke. You've probably been trained as a technician, or if you're lucky as an engineer. If your school called that computer "science," it's bogus.
Anyway, what makes you valuable in the job market is knowing computers plus something else. And the something else can generally best be learned in the field, or in the trade. So if you can't find work that directly challenges your computer engineering skills, find something where you'll learn a lot on the job about some area where computers are applied. Then think about how someone who really understands that field or business can apply computers better, using the insights from your computer "science" education. At that point, you'll be of unique value, and have a future.
"with their freedom lost all virtue lose" - Milton
Really, what can be far more important than experience or the positions listed on your resume, are the contacts you make through a given position. Often, you just can't find any other position, and you can't risk letting this low level tech support be passed up in favor of possibly getting a "real CS" job. Taking something only transiently related is fine, but your goal in such a position - on top of learning anything and everything possible about a facet of the industry (and how it ties into what you want to do) - is to make connections. Become that "friend of a friend". Because having a reliable reference and somebody who might contact you out of the blue about an actual CS job one day is far better than nothing, and may actually be the golden ticket.
I wish the engineers (EE, working in telecom) were required to spend a year working as a field tech installing and maintaining the system before the company allowed them access to AutoCad.
The stupid, obvious, un-maintainable things that come out in most of the work orders are just staggering.
Most times we're up to at least a Rev.C work order before the damn thing is able to get running the way it should be.
---
"I can't complain, but sometimes still do..." Joe Walsh
No, it isn't. CS is programming. IT is the maintenance of computer systems.
No, that's almost totally wrong. Go look up those initialisms you're spouting.
CS stands for Computer Science, which is a fairly poorly defined field, but it is not just programming.
IT stands for "Information Technology." It includes the planning, design, implementation, programming, and maintenance of computer systems and data networks.
Now, if you ask Dijkstra, none of this has anything to do with proper Computer Science, which is (of course) an entirely theoretical discipline which is nothing but an odd branch of mathematics. You could, in theory, do excellent research in computer science with nothing but a pad of paper, a pencil, and your brain. (And probably coffee.)
But practically speaking, computer science is done on computers, and computer scientists (outside of a few ivory tower theorists at universities) work on IT problems.
It may be true that the average IT worker is not a programmer, but all programmers are IT workers. Programming computers is a purely practical division of computer science, and falls entirely within the field of information technology.=
This is simple - where do you want to go with your career?
If you aspire to get into a leadership role - esp. if you want to be a Director, VP or even a CIO - the more experience you get the better.
If your sure you only ever want to cut code - why do something else? - even if there are easier options for you in your local career market. You won't enjoy the job and won't be a productive employee.
In general, the more experience you have the more opportunities there will be and the more money you can command later in your career.
Plus as just just starting out - most recruiters won't be concerned your currently working in a different IT/Technology field if you decide to go back to CS after a year or two - especially as you can explain to them you wanted to get a good, broad experience and also wanted to get to work as soon as possible.
I work for a major multi-national and recruit on a weekly basis. Commitment and enthusiasm for a real-world job from recent grads. is way more attractive that their major (as long as it's in a related field).
You are creating a recipe for un-happiness: see the movie Office Space. You are over-qualified for most jobs and your talents will be wasted, not to mention probably being under-paid. You will know far more than most of your bosses and will be subject to their sociopathic whims. You really should start your own business. -- IV
Masters? I think a MBA or BS + tech school may of been a better way to get in TO IT jobs. MBA if you want to be manger.
But then CS is very board based on the school but masters with no real world work?
But most programmers make for poor sys admins. and admins make for poor programmers other then may a few quick VB apps that don't need to be as good as what a full time programmer can push out.
Computer Science is no more about computers than astronomy is about telescopes.
~Edsger W. Dijkstra
Insisting on "correct" English is like saying that there is only one, definitive recipe for chili.
I'm not sure what you mean by an actual CS job, unless perhaps you mean working as a researcher. My title right now is "Computer Scientist", but what I actually spend my days doing is programming and going to meetings, not trying to devise new algorithms. I've been in this line of work for about 7 years, and ultimately all you end up doing is gluing one piece of software to another, with here and there a rare moment where you get to really create something new. I will say, however, that once you take a support job, you'll never be a developer again, so weigh those choices carefully.
The short answer is...yes, it will "pigeon-hole" you. I've been in the industry for ~8 years. I've been involved in the hiring process many times.
There are lots of reasons why you'll get pigeon-holed:
* Why should I think you are passionate about software development if you were willing to take a non-software development job?
* While you are doing system administration you are NOT gaining real-world software development experience.
* Your skills and knowledge are going to get rusty if you're not using them.
Then there are reasons that come from YOU.
For instance, I've been a software developer for a long time. Sure, I could probably get a job in IT if I wanted one...but it would be a junior position somewhere. Which only makes sense. My attempts to (for instance) secure an office would look like amateur hour to a professional. I shouldn't be in a senior position. So that job switch is going to come with a huge pay cut. I'm just not worth that much to a company in IT as I am in software development.
In short...if you want to be a software developer, be a software developer. There are jobs out there, especially if you are willing to move around.
If you do end up taking an IT job but want to move on to software development, you'll need to take your self-education seriously in order to stay competitive.
Friend has a Masters in CS, but couldn't find a CS job, so he took an ME job instead. 10 years down the road he's looking for a new job, but no one will take him for ME because they think he's going to leave for a CS job(despite the decade's worth of ME exp) and no one will take him for anything but short term consultant type CS work because he has worked ME for his entire professional career. I'd advise against IT if it's truly IT. Some companies hire IT and then have them work with SQL, VB, etc, and that will bolster your resume to some degree because it's doing essentially what your degree says you're qualified for.
Pigeon holing is a matter of choice and capability. Do you want to advance into management? Then you will stay in the same discipline. Do you want to advance technically into a software lead? Then you need to take on deeper technical responsibilities, again in the same domain. If neither of these float your boat, you need to evolve. Are you prepared to take grad courses? Acquire new skills on your own or as part of a new role at work? Take a different kind of job that pays the same or less? Move to a new location? If you want your job to change, then you have to change. That's how you break the mold.
I've done all of the above, morphing from a DOS/database developer to UI developer, to AI and Unix developer and admin, to HPC developer and s/w performance tuner, to R&D image processing, all with the same degree. I took courses. I read a variety of tech books at home, and not just 'learn yet another programming language'. My jobs evolved because I evolved.
It also helps if you've worked in multiple roles within a single job. If you choose a role which is part of an assembly line, it will be clear to future employers that you prefer stability over novelty. Do that for long enough, or for several employers, and yes, you will dig yourself into a rut. But that was your choice, not your destiny.
Computer Science is just that: science. It involves the theory behind the operation of computer systems. Computer Science concerns itself with low-level algorithms (as opposed to business logic), the nitty-gritty of data structures, language theory and design, etc. Computer Scientists are trained to build Operating Systems and Database programs, while IT specialists use those systems to solve business problems. There are many specialties within IT, and a very large one is database application programming. (Indeed, measured by volume of code, something like 90-95%% of running software is database applications; there are a lot more database applications out there than there are OS'es.)
There is some overlap between the two fields, to be sure, especially when you are designing a complex database, but for the most part the two fields don't intersect. It is true that many CS grads go on to be IT programmers, but this isn't necessarily bad, a waste of skills, or even a downgrade in pay, depending on what you are doing.
If you want to do "Real CS" and only have a masters with precisely zilch for professional experience, the job you seek is "Research Assistant" and it will pay phenomenally less than the lowliest of "IT" jobs imaginable. If you want to do "Real CS," get your PhD. The vast majority of private companies simply do not do "Real CS" and when they do, they hire the actual scientists to do it. If a PhD is not in the cards, suck it up and welcome to "IT" as you so deride the term.
The way I see it, all sub-fields in IT are so interrelated that there is no way to master any one of those fields without developing proficiencies in many others.
Yes, there is the PHB mentality that programmers don't make good admins or good admins don't make good programmers and neither make good managers. That is true only because of the level of mediocracy prevalent today. Most people truly aren't good enough to do everything well, which creates a niche for people who can.
I'm primarily a programmer, but its not uncommon for me to spend large blocks of time working with the server admins functioning as their peer. Ditto with support personnel; my boss brought the broken laptop of a top project manager to me instead of our dedicated support staff, because he knew I'd do things right. I'm also not socially inept and am regularly brought in to resolve disputes between IT staff members.
My value to my employer has little to do nowadays with my skill as a programmer. Its that there's nothing I can't do, and my boss knows it (as well as my boss' boss.)
So, my advice; don't restrict yourself. Do some support work. Then do some admin work. Then do some programming work. Be self-aware of how you interact with people and make it your goal for people to enjoy working with you. Over time, you'll rise above everyone else who had insisted on doing only one thing for the rest of their lives.
If you want to become a professional programmer, IT work will definitely pigeon-hole you and hamper your ability to get a job programming. While it's useful for programmers to have IT experience, I'd rataher hire a programmer with programming experience than one with only IT experience.
what you're really asking is...should he compromise?
If the reason he got a CS degree is because his real dream is to do software development, then No. He shouldn't compromise.
If the reason he got a degree is because its easier to get a better job, and it just happened that he chose CS, then Yes he should take the Admin job. Actually it seems these days there are always way more sys/network admin jobs around than actual developer jobs so he's probably statistically better off going that route.
mean desktop support or some other such nonsense? Jobs related to information technology are IT. CS is an IT based field.
Software engineering isn't great but IT is worse. Non-stop harrassement by management and the software engineers who don't care at all why it doesn't work. All the IT guys (that haven't gotten laid off) walk around with their head down and don't come out of their locked room. They know that if they do they will swarmed from the mundane to the inane. Do yourself a favor, hold out for a more CS related job and don't be forced to carry a pager and cellphone 24/7.
If you want to do computer science, I would stay away from IT departments. You might derive some benefit (mostly of the people-skills type) from working in an IT department, but you won't be doing any CS as a sysadmin or tech support monkey. Fwiw, I did CS (BS from the University of Arizona in 1997) because I wanted to understand how computers worked and to become a computer programmer. This was a mistake on my part; I soon discovered that you need to take electrical engineering to really understand how they work. I also discovered that I absolutely loathe coding -- it seems to me to require an attention to detail that only OCDs could tolerate. I had to finish in CS, or I would have lost my scholarship, so I stuck it out. But -- being able to put "BS in CS" from a good university on an application got my foot in the door for a lot of IT jobs, and I settled for a fairly high paying one (high five figures) as a sysadmin with a large defense contractor, where I was relatively happy for eleven years, and never used any of my CS knowledge at all.
Apparently there is a hardcore minority who differentiates "programming" from "IT"... just as the Stallman crowd believes it to be of vital political importance that we call it "GNU/Linux" rather than just "Linux". However, just as the overwhelming majority of people know the OS as "Linux", so to do most people lump all computer-related jobs under the "IT" umbrella.
As a "developer", I consider my career and skillset to be totally different from an "admin" or someone in "ops"... or even "maintence developers" who look after the legacy apps rather than design new applications. However, the CEO refers to all of us as "IT". We all go to "IT" job search sites to post our resumes. Other than a minority of assholes who see admins as beneath them... most everyone refers to all of us as "IT". I'm cool with that.
This ridiculous separation of Computer Science and software design and development from the greater field of Information Technology exists only on this site, as far as I can see. This is my first time in months coming to this site, and this article and the comments go a long way to explaining why; completely out of touch.
I am a software engineer.
Mostly, I do embedded systems and realtime control.
For a variety of reasons, I ended up in a company where there were no engineering projects available at the time, so I volunteered to do IT.
Yeah, it's vaguely computer related, but not at all like engineering. And, for me at least, not enjoyable at all.
Now, when I talk about that time, I refer to it kinda like being in jail.... "I served a sentence in the IT department"
I'm sure it's been mentioned already. But you could just "deal with it"; Go for the IT jobs and make a small career out of it. All the while working on and contributing to independent open source projects and mobile apps and all those goodies in your spare time. There's a good chance you'll hit something notable, eventually. And that will be your ticket in.
Isn't high level IT nothing other than CS applied in the real world? I don't have a degree, but I've been doing IT stuff for the better part of my life and I'd put it that way.
CS == Theory, Higher Math, Donald Knuth Books and that sort of stuff.
IT == The industry you work in. Programming, System Design, Pro-Level DB Admining, Large Scale System Admining, etc.
My advice on this: ... and gues what tool he uses for coding to this very day.
A little field experience can never hurt. However, I wouldn't pick a one-man-coding-and-admin-army job at some third grade web agency, that could do more damage than good to your academic background. Pick one where you get the chance to do some serious probem solving or maybe even get paid to get yourself familiar with a non-trivial open source project - maybe by means of integrating it into your employers infrastructure. That's allways a good starting point to get some real world experience with the guys who actually get the job done without spoiling your CS grads worth. If you use the chance to rub sholders with the projects core team on the way, even the better. You may end up part of a team that sticks together across jobs throughout your entire career. A friend of mine joined the Nedit crew very early on in his IT career, and while the project is pretty much dormant nowadays, it did help him get firm with core unix software skills which still come in very handy every day at his current high level admin job
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
Back in my last career in a large company, experience was golden. If you figured out how to do a particular job, management would nail your foot to the floor to keep you from moving. They needed you there.
On the other hand, they had an EXPO (EXecutive POtential) program where people would circulate around and gain a "broad view" of how the company operated. Ostensibly in preparation for a climb up the management ladder. It turns out that the EXPO program is a dumping ground for fuck-ups, per the Dilbert Principle.
So, moving around between jobs (voluntarily) was often misinterpreted as incompetence.
Have gnu, will travel.
What about software quality assurance (testing). Isn't that under both IT and CS?
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
I'm a process documenter these days, but since I work for a tech support company I call what I do "IT" because otherwise I'll have to spend a half hour explaining what process documentation is.
I would look carefully into what each job description says. Someone may really need a coder, but not know how to go about asking one, so they tell HR to get them another "computer person." When HR goes to actually list what they need, they'll have a bullet point list of qualifications. If it looks like stuff you took classes in, chances are it's actually a programming position and not tech support. Or, it could be tech support for a very complex database program. I've had to put in trouble tickets for EMR databases I monitor that I tell you, no one but a code monkey could ever figure out.
Occasionally living proof of the Ballmer peak.
Ultimately, it's whatever your passion is. Do whatever you want!
I've changed jobs between a SW engineer and a Unix Admin within my own company.
I've found, at least in my region, that a SW Engineer's salary is about the same as that of a qualified Unix Admin all the way up to the 'Senior' designation - so pay is not a factor in consideration.
Personally I do not see a lack of dignity with taking on an 'IT' type job vs. a SW engineer job. It varies between the job, though - whether you're just a glorified "server janitor" who reboots servers or someone who tackles a very complex environment with different vendors, products, technologies, and so forth. Obviously if you're just a person who reboots servers or applies updates, then yeah, you'll probably get bored fast and feel like you're doing menial work.
I am now a UNIX administrator in a very complicated multi-vendor, multi-generational environment that supports a very complex suite of in-house tools (SW development, QA tools, support tools, etc.) and commercial software (IBM/Rational ClearCase and many others).
My employer (a relatively young company) acquired a division of a much older company that specializes in embedded / custom products (which is why it's so complicated). The nature of this acqusition made for a very technically complicated project spanning nearly a whole year.
I'll leave out the specific details of what I encountered, but suffice to say, it was a far greater challenge than being just a code monkey who fixed code or made incremental improvements to our software product. My skills with debugging came in handy during this whole debacle - I've logged several bug reports with Red Hat just based on the fact that our overly complicated environment uncovered some bugs / edge-cases. Also uncovered bugs in a very old, no longer supported version of HP-UX. Found bugs in our vendors' software too.
Having the knowledge of how to run a stack trace, or how to use gdb (or equivalent on non-Linux OSes) made the diagnosis and resolution much quicker (the difference between describing the situation to a vendor so they can attempt to reproduce vs. telling the vendor where in their code it is failing).
What a general "code monkey" doesn't have that I brought to the table was my background as a UNIX hacker (the old form of the work hacker, not the media-sensationalized form). Knowing how the pieces fit together was important - this is what differentiates between a junior admin who knows how to apply patches and a seasoned UNIX guy who knows the protocols, the RFCs, POSIX, standards, and how the different vendors implement them.
The other dimension to this is the architectural side. I guess you can see it as an analog to having formalized design planning, if your department follows any kind of formal process (and uses formalized diagrams / UML / flow charts) in SW engineering. You have to have a process in place for patching, security, change control and so forth (especially for SOX and other compliance standards that you may need to comply with). You can't (or shouldn't) run a network of UNIX systems without some kind of discipline, just as much as you shouldn't dive into programming without some ground rules and checks/balances.
The only catch I see is that you may have trouble going back to SW engineering since your most recent experience will not be a programming job and that can be a negative for someone reading a stack of resumes. However, you can stay active in some open source projects if you'd like to maintain current programming experience (which is easily documentable for a prospective future employer).
Apart from that, the biggest downsides are -
- Your company doesn't respect IT the same way it respects its engineers. Engineering gets bigger budgets than IT. Engineering is seen as a profit-maker for the company, where as IT is a money sink / cost-center.
- Because of above, IT is not staffed to provide the best or most responsive levels of support. Users get frustrated with your l
Or what are your interests? CS is a huge field and you probably like something specific to bother going for a Masters.
Also, almost every large company out there working on X (X being their area of specialization) needs CS people these days in R&D (and not just IT). So don't limit your search to Tech companies. Look at Financial Services, Healthcare, Media, Marketing etc. Since it's your first job, pick up the Fortune 500 list of companies and see if something excites you. A good majority of them have R&D depts.
And I really hope you are prepared to move and aren't stuck to one place geographically. If you want to solve interesting problems and not do mind-numbing work, use your CS degree to it's fullest. Don't go for IT career.
My thoughts. If you've been spending all this time getting a masters in CS you've wasted a lot of time and money unless you're planning on trying to get a management job or working for companies that still think degree programs in the field mean anything. This from someone with no degree whatsoever, and who's twice been promoted into management at a Fortune 500 company and a Fortune 1000 company.
If you really want a job doing something, you have to first demonstrate a proficiency in that area to the company you want to work for. The most important thing bar none is getting a toe hold in a company (any company) and then being aggressive when it comes to volunteering for projects, or picking up the slack when someone gets fired or quits (both in my case). Personally, I strongly recommend taking a position that is NOT in the core IT dept for the company unless that's what you want to do. Look for companies that resell services or products and try to get something on the customer facing side. Those groups usually are pretty dynamic and are willing to let people do work outside their normal areas when they show interest in it, because more often then not, it's not about pure technical ability, but being able to meet project deadlines. Plus, every project tends to be a little different or in some cases radially different. It's a vary good way to pick up experience in new things.
In addition. Be willing to Quit. People get pigeon-holed only because they allow it. Want to do something different? Cant find a job? Be willing to Move. Be Willing to take a cut in Pay. Be willing to NOT be the boss. Personally, as much as I DIDN'T want to, I've either by choice or by layoffs changed jobs on average once every 5 years or so. And I've moved from one end of the country to the other twice to do it.
Then above all...understand your industry. And I'm not talking about IT/CS. I'm talking about...Is the company Public? Better understand SOX compliance. Does the company do a lot of credit card transactions? Better understand PCI compliance. Is it a utility? NERC CIP if you're north american. Medical? HIPAA. The point is, if you're looking for a job in CS/IT, you need to understand all the requirements of the business. A dash of Six Sigma and/or PMP wont hurt either (so if you're starting looking for a company, ask them if they follow Six Sigma and/or PMP requirements, and if so get hired. That experience will help you everywhere).
D'er turkin' ur jerbs!!!!
"When information is power, privacy is freedom" - Jah-Wren Ryel
would having IT experience hurt my job prospects down the road?
Depends on the IT experience. If you do admin work, then yet it will generally get counted against you if you want to be programming. However, having an internship on various levels of a Help Desk can benefit you - especially if you like doing MMI/HCI stuff.
Would future employers see that and be less likely to hire me — or pigeon-hole me into IT?"
Sadly, employers tend to like to pidgeon hole people into what they have always done. This is not as big an issue when jumping between very different jobs - e.g. going from Accounting to HR. But it is a very big issue when trying to change tracks within a career - e.g. from Windows Programming to Linux Programming. So be careful what you take as it could be very hard to change later.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
I think the question comes to a false premise about the job market and the meanings of "IT" and "CS".
When I graduated from college, with a bachelor's degree in CS, I put on my resume that I was looking for a job in the IT field. For the most part, this got nods and no further mention. But maybe 10% of the recruiters treated this like there was something incredible, magical about the idea that a *CS Graduate* would want to - amazing! - work in *IT*.
I always had to bite back the replies. It would have been something to the effect of "No, I spent 4 years studying computers so I could land a job in dentistry." That kind of attitude wouldn't have gotten me a job but, really, what were they expecting? I spent four years in a degree program in which I learned the ins and outs of computers - not just programming (granted that was the largest part) but also networking, database theory and design, CPU design, logic, algorithms... it wasn't all that much depth, but there's no job in which I would have used more than 50% of the curriculum, programming or otherwise.
I DID have this notion that I'd be a programmer. I was pretty burnt out on coding by the time I graduated, though, and so I kept the field open. Which was good, because academic programming and real-world programming are very different things. In academia, they care about elegance, mathematical simplicity, and adherence to good programming styles and practices. In the business world, they are vastly more concerned with getting it out the door on time, and making sure it meshes with the work of the 23 other coders they have on the project.
The net result is, when you go to get a job they're not interested in your really awesome coding skills, or how fast you can make a convex hull analysis or what-have-you. They want to know if you have experience using Visual Studio, because they don't want to spend six months training you on that. Which can be really frustrating to a recent graduate, when you discover that the biggest factor in determining the course of your career is a purchase you made at the campus bookstore when you were a freshman.
This gets us to the big, and important, part of the OPs question. And the answer is yes - sort of. Your career is not going to go the way you envision it. Accept this. Your academic career is going to be relevant for getting your first, and possibly second job. Beyond that, it will never be discussed again. Your work experience will be considered vastly more important, once you have work experience. And your first job is likely going to play a large role in determining what skills you have (IT skills have a shelf life - after 8 years without writing code, don't expect to be able to pick it up again!) and what opportunities are available. But that doesn't have to be a completely limiting factor:
First, consider the resume` itself. Your resume` should be factually correct. But it does not have to contain every piece of data about you. As you get older and gain work experience, you'll increasingly be editing out old info anyway. In that process, you can leave out jobs that don't fit your desired career path; this is especially true of jobs you had earlier in your career. For example, I've held several helpdesk jobs - they're always there to pay the bills. But when HR sees helpdesk experience, well, they want you to work helpdesk - they're always on the prowl, something about the high turnover rates. Since I don't want to work helpdesk, I leave those jobs off the resume. Once you get enough experience under your belt, you can leave off a couple of years of experience and it doesn't hurt, so long as there aren't egregious gaps.
Second, be smart about how you describe your experience. Many tech types want to put in the *absolutely most accurate information ever*; the notion is basically not wanting to be challenged by a fellow geek, e.g. "You said you've worked with HPUX 22.3.1.4, and you only ever worked with 22.1.2.7!". That doesn't really fly - write to communicate *what you want your audience to know
Wasn't an issue for me, but that may because my IT group was special. We were sysadmins for hire within a university, working heavily with researchers.
That CS background meant I could talk intelligently with the researchers -- ask them questions about how they processed data -- mass throughput from disk or tightly coupled parallel physics sims? Lots of integer ops, SP or DP float-heavy? How big is your working set and what CPU does that imply you should or shouldn't choose?
Being able to do that was super useful for my group and the researchers -- they got what they needed for machines. It also gave me leverage working with vendors for quotes, because I could tell them that the researcher doesn't need XYZ but does need 64 Gigs of memory.
I've since switched out to programming full time, but I never quit programming even when I was a sysadmin. UNIX sysadmins (which is what I was) should be writing automation scripts day in and day out. Windows/mac admins probably should too but may have more hurdles to pass to do it. Running a big HPC cluster probably didn't hurt -- you have to automate installation, patching, monitoring, password resets, etc on a machine with 800 nodes and 400 users.
I think what you do with what you have and if you keep your programming skills up or not really matters a lot more than anything else. YMMV, maybe I'm just unique.
Slashdot Patriotism: We Support our Dupes!
I never would have gone for a sit-in-a-call-center position myself. My degree form one of those cozy New England liberal arts universities was a BA in Information Technology. Some programming, some networking, some MIS, and so on, a grab-bag. I do tech support for a public K-12 school system, and I think its kinda fun.
In the end, find something to do that you simply enjoy. All else will flow from there.
You are ready when you know you can setup hundreds of workstations and protect them all behind firewalls, surveillance, and patching. It's really that simple, yes you need some college, but how much you ask? You will need enough college, enough to get things done correctly and quickly.
I like magazine subscriptions better than college currently.
For a sysad job, you don't need to claim a degree, and even if you have a degree.
It's more important, You had better be able to find things on your own quickly, and if you see you are not going to find it quickly, you already know who to get help from who does have what is correctly needed, quickly.
I know that's a long run on sentence or something but it really IS how it works. You can run the whole network that way. Of course it helps if you know what the network consists of, it's purpose, and other details, and you spend 24/7 reading the nitty gritty details of your equipment, and already have devised several scenarios of how to operate it in your mind in crippled circumstances, but such things are FUN right? Cause if they are not, you are in the wrong profession no matter how you slice it. You have to be able to bend to what ever the circumstance throws you. Cause otherwise, well frankly, I would fire ya.
So while school, math, science, and a refining tech school are nice, what makes you shine is communication, and confidence, not bluffing, or lying, or silence or depending on just some test, although I won't say tests are completely useless. Loyalty, or just plain emergency drill test is good, and I guess it's how well you can visualize everything and see it's past, present health, and future and are able to communicate that quickly out to keep what you created going.
I know I sound more like a business owner than an employee. But trust me you won't get anywhere successful in life if you don't act like the place you work IS your business. Perhaps behave like a contractor if you are going to be that way, that's another kind of bad attitude, but you can get away with it as long as you NEVER GET A COMPLAINT ABOUT ANY OF YOUR WORK, AND YOU CAN ARRIVE QUICK WITH YOUR OWN TOOLS.
If you are raising a family or something like that, probably not good, if you expect lunch breaks at a certain time of day, or you are watchin the clock for your time-card stamp, and you are not willing on some days (or days on end) to whip out your own wallet and or otherwise make shit happen, you probably ain't cut for it.
You carry a phone, beeper or live at the business.
You need to be ooze ideas on queue and shut the hell up when things start ticking and you are not front center. If you are front center, let it flow.
"Why did you take a job doing X when you wanted to do Y?" That's a pretty dumb question considering where things are today with the economy. Try to answer it politely. :)
Also do a lot of coding on your spare time. However do not present these projects merely as something to maintain your coding skills. Present these projects as something you did for fun, for your own curiosity, for your own amusement, etc. They do not need to be big or useful projects, just things that your started and *finished*. The real goal is to show that you have an inherent interest in programming. This will set you apart from those who got the CS degree merely because they thought it was a good career path.
This of course assumes that you have an inherent interest in programming. If you did CS merely for the career angle then just make sure the IT job has a potential career path to management. Without the inherent interest you will probably not be that good at programming and that will limit your career path more than having taken that first job in IT.
If you want to write enterprise software you should spend some time running enterprise infrastructure. I can't tell you how many developers I'd like to slap because they have no idea how IT actually runs.
CTO is not the ultimate career path. I'm not sure why you set it as your specific goal, but I assume you must have some reason. I wouldn't recommend that goal for everyone, and personally I have no interest in being a CTO and I don't feel that it would be a natural progression of my 10 year software development career. (I have both whitebox QA and sysadmin/IT on my resume as well)
For IT I think CIO is a more likely connection to make than CTO, but either is fine really. The QA to software engineering is a pretty common path. But of course every year you're spending outside of your career of choices is one less year you can put down towards your career. (obviously)
“Common sense is not so common.” — Voltaire
If you've got enough brains to survive in a tech field, you'll rise to the top of a non-tech field.
Have you ever heard of the different kinds of intelligence to which Psychology recently gave a name? As in Emotional Intelligence, Social Intelligence? How do you think your average tech field worker (such as myself) fares in them? The brains required to *survive* in a tech field are next to useless in a non-tech field. Now, the brains required to *rise to the top* of a tech field are the same required to prosper in any field. Not surprisingly, they have nothing to do with the field itself and everything to do with managing your and other people's emotions, ambitions, and needs.
I'm sure there are some brilliant nurses. I'm sure nurses are responsible for countless saved lives. I'm sure doctors could learn a lot if they spent time doing nursing. I'm sure that some nurses know more about practical human health mechanisms than some doctors do. But I have never heard of a doctor that got his M.D., then did nursing, then became a doctor.
Does it hurt to hear them lying? Was this the only world you had?
The best time to look for a job is when you have a job. You can be selective and the wolf isn't at your door. So if the choice is job or no job, I'd choose job. From there I'd keep looking if it wasn't what I wanted.
Normally I ascribe all life to intelligent design, but in your case I'll make an exception.
"I'm a soon-to-be Master's graduate from a public university majoring in carpentry â" with all that carpentry entails. Of course, it's come time to start job hunting, and while there are a few actual carpentry-type jobs around, I've noticed that a few carpentry jobs would be substantially more convenient for me personally. But this leads me to the question (assuming they would hire me, of course) â" would having carpentry experience hurt my job prospects down the road? Would future employers see that and be less likely to hire me â" or pigeon-hole me into carpentry?"
This is part of the problem. CS majors that look down their noses at IT work as though its beneath them. The reality of the situation is IT is where the rubber meets the road for many companies. The whole point of a career is to make money. If you want to be too good to get your hands dirty just stay in Academia.
The rest of us don't want and are not interested in your Ivory tower garbage.
We're in the same boat. It's been a challenge to fill a couple positions. And we've been absolutely bombarded by resumes from people who are spouses of H1Bs. "Must be eligible to work in the U.S." doesn't mean a lot I guess.
But overall I'm surprised at the amount of fluff and outright fabrication in about 7/8 of the resumes that come in. If we want someone with python and MongoDB experience, don't spend 15 minutes googling and then feel qualified to add those to your resume. It annoys me to no end that I have to waste time just making sure that an item on a resume wasn't put there because it's in the job posting. I don't know if people think that initial phone call is a "foot in the door" or what, but when I find out that what you say your skills are were listed falsely, I'm not inclined to think of you in a positive light.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
I graduated with a CS degree in 1994. I went directly into the C/C++ programming world and had a blast learning systems and writing code that was immediately put to use in large and small systems. I worked with embedded controllers. I wrote air traffic control system software. I did a little bit of everything and it was great.
One day after work, I went home and sat down to watch a movie and before I knew it, the end credits were rolling. I had been thinking about my code and my work for my job during the whole movie and was so preoccupied with it that I had missed the *entire* movie. I made a decision. My personal, non-work time is *my* time. I don't want to be 'working' when I'm at home and on the weekends (working means thinking about my code). I loved coding and coming up with solutions to problems that had never been made before, but enough was enough.
I switched (slowly) to IT. I started to do some system maintenance work and porting to other OS's along with my daily work. I maintained the code repository. I became the linux guru at the company. My next job was strictly IT-only. My new employer was happy to hire a guy who was a programmer to be his IT person. I lived in that role for a long and happy time. It was a research company and I had many opportunities to use my programming skills to make my IT work much less mundane.
The upside to this move was that I had more time to program on my own, in my spare time. IT is mostly mind-numbingly simple and can be forgotten about at 5pm when it's time to go home. You've fought all of the fires. Everyone else is going home. If the pager goes off, you handle the issue and go back to your life. I was satisfied and I had my peace and solitude in my personal-time back. I even started writing code and building websites for myself and my buddies which was a much more pleasant way to spend my off-hours. I loved it that if I was thinking about code in my off-hours, it was for my own projects and not someone else's projects.
I've stayed in IT for the last 17 years. I've stayed away from Windows (since it's mostly learning where to click) and kept mostly in the enterprise/startup/linux world where scripting is still a common task among IT people. I've used cfengine, puppet, chef and other tools to automate my tasks and nagios is a close friend. I've found that working for a startup, I have the opportunity to write more core-level scripts and even some programs (I still program in C or C++ once in a while) and get to help with the company with some serious tasks to keep my creative juices satisfied.
I market myself as a 50/50 kind of guy. SysAdmin and Programmer, although most of what I do during the day is IT and most of what I do in my spare time is programming. I love my current combination of tasks.
I don't know how much age discrimination will hurt me when I get to me 50+ years old. The age discrimination for IT people seems to be a pending doom for my line of work and I may have to go back to programming one of these days as a primary job some day, but I'm keeping my fingers crossed that I can continue to work as I have been.
Feel free to DM me through slashdot if you want to talk further. ( or @scumola on twitter )
You absolutely will be pigeonholed.
Guaranteed.
Hold out for the career you want, do not settle.
You will regret it if you do.
(Learned the hard way)
I would be curious to find out how long some have been in the field and what their area of expertise is before I made a judgement on the IT vs CS argument.
I have worked with technology for the past 15 years and not once have I said I am in CS or go talk to the CS guys. When asked what I do I have always said I am in IT (senior systems administrator) and when I run into people in the technology field and I say I am in IT they usually respond with something like "Oh really....what do you do? I am a ______"
It was not until I started reading the comments here that I was even made aware that their was some sort of distinction between IT and CS. Among fellow IT workers (my experience has been) we refer to the sub group that the person is in not whether it is CS or IT. i.e. go talk to the developers, Unix admins, windows admins, DBAs, Help Desk, etc.
This argument of IT vs CS sounds like someones attempt to make a programmer more elite or a different classification altogether and nothing more.
HR does not say we are looking for a CS person not an IT person. We (technology workers) are all lumped into IT and that is the way I have always experienced it; even here in the US.
In my experience, most individuals in IT have ridiculous EGOs towards anyone with a four-year degree in Computer Science/Engineering. Worse than any CS ego you've experienced - I promise. You most likely know exponentially more about their job, you will know more about how hardware and software works, and how the two work together more than they do because you have the luxury of a well rounded education (being from a University). They will most likely have acquired their education through some tech-school, self test/certifications, or from a general experience. The last one isn't necessary bad, but the first two are recipes for them being egotistical as holes.
Good luck dealing with that. I am a CS grad/Software Developer for a company specializing in IT tools. I deal with these people all day...
If we're to use the car-analogy, I could say that I've done everything from vacuum crumbs out of back-seats, to wax jobs, to oil changes, to valve-jobs, to write ECU code for custom tunes, to design fuel-injector systems for army jeeps.
Some of what we do is routine, and boring. (most of it is) - Some is exciting, and stretches our skills beyond where we thought we'd ever go. None of it is what we thought we'd be doing when we were writing our first "Hello World" in school.
Almost all of it defies categorization. And that's how it really should be. Because as soon as you let them put you in a pigeonhole, that's a column on a spreadsheet that they can zero out when the budget gets tough next quarter.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
I think taking an IT administration job could potentially hurt you, if you really want to be doing development. While it's possible you'd learn some skills that would be useful, you wouldn't be gaining experience in the core area you're interested in, and more importantly, skills that potential employers are interested in. So, you are delaying skills you could be learning to help you down what you are thinking is your preferred career path.
There are also some times that development and administration kind of butt heads. This really depends on your environment, as I've had really great working relationships with some admins, and others who think your code is ruining their systems. So, that could potentially cause some issues if you ever decide you want to transition.
Another concern is salary. If you do well in your IT/Admin position, it's possible you'd get raises and promotions. This will make it harder for you to give up the money and take an entry-level development job, if the money difference is large. That's the classic story I've heard for COBOL developers. They want to transition to Java, but an entry level Java position pays a lot less that their 20+ years of COBOL experience, so they stick with COBOL.
There's nothing wrong with being selective if you can afford to be right now. And it's also possible you could go into IT administration and find that you really enjoy it.
If all you have are silver bullets, everything looks like a werewolf.
I did do an IT degree and I have to say, tech support and call center work isn't for people who have made it through a degree. I finished my degree, dodged that bullet and now I work in a bank as a systems infrastructure guy, a fairly high level job. There are guys who did cs who are similar roles but take a lower level view of the system, looking at application efficiency, network routes, system stability and administration, all the cool stuff.
These are jobs, that at least where I work, were given to business people with little knowledge but are slowly being filled in with qualified people. I don't know where you are based or where you are planning to work, but not all IT is bad.
If you are after something technical off the bat try for jobs at places like HP, IBM or a relco that does enterprise networking. Also try for a grad program, they generally pull you in at or above 3rd tier support, or in a project role (In aust anyway.
The TLAs (NSA, CIA, NRO, FBI...) are not about to ship their programming jobs off to India. The same goes for UAV control software, fire-control radar, etc.
So i actually did do this, having graduated right around the 2000/01 timeframe when tech jobs of any sort were scarce.
Three things to warn you about:
1) very easy to get complacent when you have a steady job that pays the bills. if you are not careful, you _will_ find yiurself there longer than you originally planned, simply because you don't feel the urgency of needing to eat...not necessarily a bad thing, but still
2) programming is a skill. you will lose it. be prepared to have a side project on the go at all times to keep your hand in it. develop. scheme. hatch harebrained ideas. read and keep up with tech. do a f-ing for loop and an if condition once in a while. if you are cs to the core, you should be doing these things anyways.
3) employers will take note. they can't help it. it makes sense and it is smart for them to do so. experience matters. So put your side projects on your resume. i hire people for my team sometimes, experience matters, but so does finding someone who likes developing and can show that they are developers who will develop anyways, and that harnassing that 'passion' (i just threw up a little) is in the employer's best interests
No, I'm not saying that there is no difference between CS and IT work, but I'm curious to know what the difference is as OP sees it. You ask if taking an IT job will hurt your chances of landing a CS job, but without knowing what you mean by that, it's tough to answer your question. For example, is a UNIX admin job CS or IT? DBA? C++ programming? Network Engineer? I would personally put all of those firmly in the IT category, but your opinion may be different.
If your choice is IT or nothing, go IT. Almost anything is better than nothing.
That said, if you have the choice of IT or CS, remember that the experience you gain is in one field or the other. There's some overlap, the skills you get in one will help with the other, but the two are not the same. The problem is that if you go IT, you're not getting the experience as a professional developer. Having no real dev experience in a college hire is one thing, having no real dev experience in an industry hire is something entirely different. Spending time in the workforce not gaining the experience while you have the chance will hurt you. You have to consider also that right now, your skills are as current as anyone else coming from your degree program and school. In five years, if you're not up to date with current technologies as a developer and have no development experience, a more recent graduate will be more attractive to hiring managers.
My advice would be to pick what you want to do and go for it, even if that means a longer commute, higher rent, a difficult distance relationship, or whatever else may be making the IT job look more convenient. Those things can be addressed in time without a field change, but field changes become much harder the further you get from your graduation date.
I've advertised myself as a 'full stack' developer for quite some time now, and all that really means is I can work on the hardware, architecture, and software at any point, when it's required. Employers these days seem to be very keen on that concept, as it can keep teams small, and for them prevents niche hires.
It makes sense. I'm definitely a CS guy at heart, but you can't write or develop software on ether either. So learn it all, be a jack of all trades. There's nothing wrong with that personally or professionally at the end of the day.
Holy buttcoins batman! Massive butthurt detected ITT.
CS = Computer Science.
IT = Information Technology.
99% of you monkeys writing here are 'in IT' whether you like it or not.
Computer science, pffft. You are not scientists. (Unless you actually are, which IS the case for a small cross section of this thread surely, but mostly no.) You are simple disposable IT wenches.
If you work behind a screen in a corporate setting, and are not doing research (science) of some kind, then you are working in IT. Simple as that. If you are butthurt over not being a scientist (When really, you are not.) then get over it. Nobody else cares what you call yourself, they say you are in IT or the IT guy.
EOM
I have been more than a little grumpy in the past that too many universities, in order to make some extra money and grow are blurring the lines between IT and CS in the education and now, a CSEE degree is becoming harder and harder to find. I hate that when I need to hire a new developer, I can't feel confident that the universities are actually teaching CSEE to students as opposed to a seriously watered down version. On the brighter side, there are digital signal processing grads all over and generally, while their programming skills are often atrocious, their problem solving skills are precisely what I need.
:)
IT is not computer science... there are a very small handful of IT guys I know which have real problem solving skills. Most on the other hand actually got themselves careers where if they're lucky, they "Get to play with all the new toys". The Cisco CCIE guys are often quite bright. But one thing which I feel is entirely common about all the IT guys is, they are forced to make huge assumptions about how the technology they're working with functions without actually understanding how it must have been developed. As a result, much of what they do is simply guessing.
The DSP Ph.D. sitting next to me made a comment recently where she said that she always felt like computer scientists tend to just hack their way through problems without any real design. She on the other hand, before even heading the the keyboard is more likely to take a pen and paper and attempt to prove the math involved with her theories before hacking implementations. Oddly, the more I think about it, the more I realize that she probably has a point in relation. And oddly, it's funny that this is how I see IT guys. It seems like it's "Hey let's try this new toy" and they find a place for it in the network... or try to come up with a reason they should buy the new toys when they're really unnecessary. I tend to make new toys when I want new toys
The most important thing is you now have a general idea of some of the big problems, big questions, and most active areas of inquiry and experimentation in your field.
The problem for you is to continue studying, exploring and developing in one of the areas. Keep a candle of inquiry lit. Keep in mind the information paradox.
I would say, go look at groups doing sciences like astronomy, particle physics, language analysis and chemistry as places where you will find challenges to implement computer science.
Mathematics has also picked up a really interesting open source tool in sage-math. If you are inclined, you can teach yourself advanced computer implemented mathematics with sage-math, such as cryptography. Or implement demos of selected items from Knuth's volume 4.
Now I have questions for you. It seems to me that your formal education has not prepared you to deal with some of the really big situations and problems of the American society. One of my kids just graduated from college and she doesn't have answers either. These questions need to be worked on during your adult life: You are taking up employment in the nation with the largest prisoner population of all time.(see Wikipedia American prison population). This is a real crummy recession, why don't you figure out a fix to the boom bust cycle? (Note, Henry George, American writer, here.) Why are we spending 10 years at warfare and engaging with religious fanatics on their terms? (Note, Martin Luther King, American religious thinker, ignored, here) Why are we using the same patent system that gives us a succession of dying corporate oligopolies?
I graduated from the University Of Kentucky in 1992 with my BS in Computer Science.
I can say it was the worst mistake of my life. It actually consumes much of my time as I think about it and wonder who was suppose to be watching out for me?
Then things were still relatively new and people were impressed by technology and thought they would never be able to use a computer, so if you went and got a degree in CS, they thought you wold be in the money.
I showed an aptitude for programming in High School and my guidance counselor suggested CS as well as my parent who I know had my best interests at heart.
Add the fact that I love development, math, programming and chose to take 5 Electrical Engineering course while in college and is a hobby of mine today, designing something and writing the embedded code to operate it. I live it, breath it.
So what went wrong when in a 20 year career, where for the last 12 years or so I never made less than $100,000.00 a year, doing something I loved and working some very interesting projects that probably peaked when I led teams of developers as the Systems Architect for projects at about 10 NASA sites. The only thing I have been knocked for was always going farther than necessary, not content to stop where I had been many times before.
From your email, you have successfully understood that their is a difference between CS and IT. Its that very difference that made it possible for me to keep going farther on every project and no matter how often the technology changed its name it looked the same to me.
This will probably sound snobbish to some, but those of you who think that wouldn't feel the same if I were a Medical Doctor giving advice to a young Doctor wondering if they should be a Doctor or a nurse.
Yes, CS grads go to the same Universities Medical Doctors do.
I also want to make it clear that you don't major in Computer Science in order to learn to program. If you do, you will be in for a surprise, because you are at a University, not 13th grade. The courses are hard, very hard. A University is where people who want the skills to lead and in the case of CS you are the one who events "The Cloud", not the ones who implement it and maintain it.
You did not go to school all those years for a Masters just to sit behind a desk and program or administer a database or anything else that has been done.
This has always been the purpose of higher education and it got lost on most such that, I hate to tell you, but your Masters is worthless, just as my Bachelors is because I have never been required to have it in order to qualify even to lead those teams on NASA projects.
Today people ware the title professional if they do the same job for more than a week.
But a professional is one who receives a formal education in a major that has been acknowledged as a profession by the consensus of many institutions as well as those institutions that represent each profession when established. Your education so browad such that you are like clay and your degree is just a ticket to work under someone who will mold you until what point you pass an exam and are then acknowledge by your peers as a professional and most receive a license to practice what they have been educated to do.
These graduates had people waiting for them when they were handed their degree to explain what came next. CS major don't and there really is nothing that comes next due to Big Business agreeing they would not compete at that level anymore and would all use the same technology which created huge Islands where those that major in CS and actually do what they were educated to do.
I have been approached by Microsoft twice and Oracle once, places where I could use what I was taught. But I live in FL with my wife and 2 girls and both sides of our family live here and I am not moving across the U.S. with my wife and girls, leaving our families behind.
If you just look at what I have accomplished, I have had a very successful career
That's not entirely true. There are definitely those out there who will hold past experience against you.
Fools live on every corner. If they're doing the hiring, I've found it to my benefit to go somewhere else. Because at the end of the day, your co-workers were hired by the same person and if he's an idiot, chances are so are the ones he hired.
As a manager - specifically in IT - you need to guide your recruiters and set their filters to what you prefer. Some hiring managers are simply looking for experienced developers and will not higher out of college. Typically looking for 5 years development experience with x-type programming in y-type industry in a program managed environment. You can be really specific in this economy with so many senior programmers looking for work. All that being said - if someone is looking to higher a entry-professional position they are looking at salary and paying for the junior programmer. If I was looking at someone just out of college and someone with call center experience for a couple of years I would likely go with the call center experience. There are a lot of skills you pickup at a call center - the biggest being your productivity. It has been my experience that hiring out of call centers you get extremely productive producers. The customer service aspect is huge as well. Out of college and you are not sure what level their social and professionalism will be on the job. Often arrogant and not yet professional. A call center not only turns out the quickest employees but also highly customer focused and professional employees. Finally, problem solving and the ability to think on your feet. Crucial for so many needed skills when working and collaborating with a project team.
I started out in IT after graduating with a Bachelor's of Business Administration in Information Systems. Sneaker-net / phone support / ripping apart computers / etc. I worked my way up to server admin (earning MCSE in the process) with a dabbling in network admin (earning CCNA in the process). Programming wasn't anywhere near a major part of my work other than shell scripting.
But I saw the writing on the wall: the systems were becoming more and more stable; it was easier and easier to defend against computer attacks; it took less IT people to support more and more users/servers. IT also is an expense -- and expenses are to be minimized in the business world.
Hence I went back to school, got a BS and then a MS in Information and Computer Science so I could become a revenue source -- and finally fix the bugs that I had been finding. The problem was, though, that my decade-long IT experience meant nothing in the programming industry, other than leadership experience because I had become a supervisor and then a manager while working in IT.
So I started out as a junior programmer; after 3 years of learning a heck of a lot that they DO NOT teach in school, I finally had enough programming experience to land a job as a lead contract engineer. After 7 months of that, I'm now a senior developer at my current position.
IT experience is almost completely different than CS experience; only at a small company will there be overlap. At medium to large companies, specialization is the key and often the IT folks and CS folks don't trust each other.
So be careful. If you do end up taking an IT job -- hey, you have to eat -- make sure to get some programming in on the side. Join an open source community and start contributing code -- it's valuable experience that will get you portfolio material for when you apply for a CS position.
With a CS background, I'm able to bridge multiple datasets together via APIs to secure my organization. Without CS, I would not have known it's possible. Market this.
"Persistence is annoying success." - ghee22 11:28:1999 - 10:53:PM