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.
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.
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.
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.
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.
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
"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."
you CAN fix the root of the problem, it's just that management will not let anyone in IT fire incompetent people or just plain old murder them in their chair.
Like the new sales lady that HR said, "she has a lot of experience with computers" and can't understand why she has to log in every morning or when she leaves her computer for 1 hour. "I dont at home!"
Do not look at laser with remaining good eye.
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! ~~
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.
Change your definition of "computer science" to "what one is typically taught in the course of obtaining a computer science degree" and the question makes sense. Which you well realize, I'm sure. But please, go ahead and make your point about theory vs. programming.
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
"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 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.
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.
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/
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.
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.
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
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
I was just going to post about how lucky you are and then...
Opportunities literally fall in my lap due to my networking(people) abilities.
Oh this explains it. So much less impressive now, like finishing a video game with one hand tied behind your back, only to find out that you had cheats enabled. Any dumb hack can get any job with enough "networking."
I'm much better qualified than you, but because of poor job opportunities in my area and total lack of "networking" I'll probably never make your salary at any point in my career as long as I'm working for someone else.
If I want to become first-world-wealthy I'll have to make myself rich, no bullshit, no "networking," no trust fund, just mad skillz. The career equivalent of finishing DMC4 on Devil Hunter with an S ranking for all levels while operating the controller only with my face. Now that would be a l33t act worthy of admiration.
"When information is power, privacy is freedom" - Jah-Wren Ryel
I was more referring to things like missing certificates on fresh Exchange 2k7 installs, the fact people can't jump to email replies in Outlook 2003, the way that Excel's 'X' button behaves differently than any other Windows program, the way your legitimate Windows XP key won't work with any available installation media, the fact that Windows can use a 100Mbit connection but take minutes to transfer the names of the files in a directory, misconfigured default fax settings on Server 2008, the way that Explorer handles files by extension but hides them... and so on. I'm being MS-centric here (because it's easy), but going back to my days as a Debian sysadmin (of sorts), I'm sure I could think of similar examples. And yes, I do agree with you, if you tell someone to click the right mouse button (in those words) and they can't understand, you quite often wonder how such a person can avoid drowning in their cereal, let alone administer your organisation! As a dev, at least the people who are causing you pain can be called up or negotiated with. If you feel you're carrying the project, you might actually have a chance of getting a proportionate amount of the profits. With IT it seems you just keep giving other people the money, regardless of whether their products are inferior to others or just plain broken, then you do all the running around to support it, and for sweet FA.
It's OK Bender, there's no such thing as 2.
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.
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.
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.
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!
Career? Programming is a way one trip to burn out and depression. Administrating systems and networks is more varied and more interesting work.
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.
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"
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.
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.
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)
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.
"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
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?"
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 )
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.
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.
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.
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 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