views:

527

answers:

14

I just graduated from University with a Computer Science degree. However, I'm having second thoughts about my choice of major. Don't get me wrong - I like programming, I like discussing w/ friends about programming and cool CS concepts and project ideas like video games, I earned high grades, etc... I don't have a job lined up yet though (was too busy studying to also search for jobs... my parents aren't gonna kick me out, so I still have some time to find one).

Now, I never really researched what it's like to work in IT before recently, but it seems like most of the people I'll be working with won't have any clue about programming. I keep reading about how H.R. people, who are responsible for setting up interviews, just want to see the right buzz-words on your resume (e.g., the recent post about how 6 years of C#/ASP.NET experience doesn't qualify as ".NET Programming" experience really frightens me - I can't work with people that clueless). What is .NET Programming?

I also read about bosses who expect you to accurately estimate software projects (I'm really bad at estimation - sometimes a homework assignment I thought would take 2 hours winds up taking 20), or about how my most of my CS studies will prove useless (i.e., my friend who graduated last year says that all our algorithm design & math classes - really the parts that made CS interesting - are completely unnecessary since he just builds CRUD web apps now. I'm really not looking forward to this - I don't even like web design, yet it's a good 90+% of the job market in my area for programmers).

I don't know, something just feels dehumanizing about this whole process. Maybe it's the metaphor of "selling yourself" that gets to me, it sounds too cold and impersonal, like I'm about to be owned by a "pointy-haired boss". Realistically, what should I be looking forward to as a professional, beyond just earning a paycheck?

+2  A: 

Most of your question is about the hiring process rather than the work itself. Once you get in, the work can be fun or it can be a drag, it depends on the job. The quality of life depends on your company and immediate supervisors, but that's true for any job. You're also not going to enjoy the full-time job experience, where you can't just take leave whenever you want, but again, that's for every career.

What you need is to get an entry-level job. Which means that you need to be able to spot them when they're listed, and interview for them. These will typically not require all the buzzwords, and the HR people will not expect you to have years of experience under your belt.

The best way to find these sort of jobs is in school career fairs, where it is mostly engineers who talk to people. Having missed that, good school career centers have lists of jobs that are looking for new graduates. Try to apply for these. Finding a job without the college resources is much harder.

Your CS degree will prove useful, it just won't be as visible to you because it will be blended in other things. You'll use it as a skill rather than as a knowledge.

As for selling yourself, you can't avoid that in anything in life.

Uri
My experience told me that school fairs are worthless. People there are not taking graduates seriously and mostly enjoy having a day away from office and no real job to perform. I saw them printing out offerings and hanging them around, then telling students to write down the number of those they liked, go home and apply online. Meaning we had then to go to the other town on own money, it was a hard blow.
User
I think it really depends on the school and the career fair. In my alma mater (admittedly, in Israel) we had a lot of alumni come and do the career fairs and you got interviews based on that (they often had mini-interviews scheduled the next day). IT was also the same at Carnegie Mellon which was really organized at that. It might be different in other schools.
Uri
That was an experience with a yearly Germany-wide career event in the city of Cologne.
User
@Mastermind: My experience with career fairs is that ones that are not open to the public (e.g., ones that are just for a specific school) are a lot more effective.
Uri
+1  A: 

I would generalise your options as:-

1) Get a job with a big firm, earn big bucks and encounter all of what you mention above

2) Get a job with a small software house or similar, earn half as much and avoid most of it

Of course there's a whole spectrum of employment but I think those are the 2 very obvious tendencies in IT.

AdamRalph
I've managed to combine the worst parts of 1 and 2 throughout my career.
John Nolan
+2  A: 

Let's see. You say you didn't have any real work experience and in the same breath you label "most people" as "clueless". Don't you see a little contradiction here?

Anyway, as for H.R. - it is organized differently in every company and, obviously, sometimes they are just given a list of certain questions by the department bosses (or PMs or whoever), and, well, they gotta ask them. They can not bring a "person with a clue" to an interview every time they interview another random guy, you see. That's just the way it is.

Anyway, why I am saying all this, is because, say, about five years ago, I was stuck up just like you and I was going on about all those "clueless people" around me and "pointy-haired bosses" and stuff. Selling yourself is only as bad as you yourself make it. It is a part of life. Might as well make it fun, eh?

shylent
+1  A: 

In any profession (including IT), you can get terrible experiences both in the hiring process and in the job itself -- and you can also have excellent ones, if you like the nature of the job. One key strategy that will vastly enhance your chances of getting excellent experiences is being willing to move to wherever the interesting jobs are at any given time -- if you restrict yourself to a small geographic area, your chances of hitting upon a great job are thereby lessened. (Hey, I've kept moving from Europe to the US, and back, and back again, ..., throughout my career, every few years as opportunities changed... and my case is far from unique!-).

Alex Martelli
+1  A: 

Firstly the bad news: to go through your degree and not have done any internships, you have done yourself a disservice. Many notable employers like Microsoft and Google will tend to hire those that have interned for them or at least those people will be at a significant advantage (if they're any good) just because they're a known quantity.

That being said, what's done is done.

Your best chance of finding a job you like is finding something you're passionate about and applying directly to relevant companies. You may need help constructing your CV and writing an effective cover letter but ultimately the best chance you have to enjoy what you do is to.. enjoy what you do.

It's true that buzzwords and acronyms can have an impact on the recruiting process. You wont' have a lot of those because you have little or no experience so keep your CV brief and to the point. Include your transcript, make it clear what you're interested in and include any internships, voluntary work, work experience, open source projects, coding in your spare time and so on. These things give a potential employer a clearer picture of who you are and what you like to do.

As for accuracy in estimates, that's hard and will remain hard even after years of experience. Typically accuracy in estimates is about knowing the technology, the particular system you're working on, the company's processes and your colleagues. Only one of those can you know anything about before going in so it'll take time to get accurate at any company for anyone.

cletus
A: 

In the world there are very few great programmers, some good programmers, and plenty of average-to-bad ones. The distribution of the great and good ones is very much random, but they're the ones you should be looking for - people who can teach you the stuff you need to know.

Estimating time can be difficult even for the most experienced programmers, although it does get easier. The larger the project is, and the less experience you've got in the particular areas of programming it requires, the more difficult it is to estimate how much time do you need.

Just be polite, confident, and you'll do fine. Try to get some work experience at a good company, where you can learn the specifics of writing code professionally (i.e. getting the job done with limited time and resources.)

Pies
+2  A: 

Start a Company Instead

Read Hiring is Obsolete by Paul Graham which recommends that talented graduates seriously consider starting a company as their first "job". Paraphrasing some of his arguments:

  • if success rate is 10%, and you try 10 startups in 10 years, you're likely a millionaire, not a decorated but as yet-to-up-and-come debt-straddling professional, or worse, a grumpy red-stapler wielding cog
  • 10 years later even if you never got rich you have 10 years of experience STARTING TECH COMPANIES, not fielding code/projects in an IT organization

Also, read a related one called You weren't meant to have a Boss which seems to talk directly to some of your concerns. Eventually, you might think about entering YCombinator startup School - with a little gumption maybe you'll have a good exit.

Of course, you'll have to get over not "selling yourself" and learn to estimate well. :-)

CAVEAT: Admittedly start-ups (even working for them) are not for everyone. Risk aversion later in life, especially in a professional's, is often prohibitive. Clearly there is also some self-interest in early funders encouraging talented but inexperienced techies to hand over their ideas on the cheap. My take is that it's still worth the experience and the founder cut is still not a bad one.

bubaker
For those interested in this route, be sure to read 'Founders at Work': http://stackoverflow.com/questions/38210/what-non-programming-books-should-programmers-read/499751#499751
Jonik
Starting a company in the field of software development without zero experience is a risky (perhaps even reckless) move I'd say. This could work for a web developer if he/she was talented and interested in that sort of work.
Maxfrank
Risk is legion - aversion to it doesn't have to be, especially early in professional life. Paul Graham makes a better case for it than I can - he also does admit that this applies more immediately to [web] software work.
bubaker
+3  A: 

A CS degree can lead you to 2 types of jobs:

  • IT department in a company in any industry
  • Development department in a software (or IT) company.

Maybe the second option is the better solution for you.

Igor Oks
A: 

My personal tip: Try finding a software development company (that's best if you really want to be a programmer surrounded by other programmers) which works according to the Scrum principle and you'll probably love your job. Most downsides you mentioned won't really exist in that case according to my experience. Our company started using Scrum and this was the best improvement in software development we ever had. Everyone loves it. Things work much smoother than before and you can forget about the time estimation fear you have, since in Scrum the time frame is fixed (software is always done on time), it's the feature set that varies (features not done on time are not done. Ship without them or ship at a later date, it's that simple).

Mecki
A: 

The downsides mentioned in the question apply to many careers. It's up to the person to make the career enjoyable and fulfilling, and to balance life with work. It doesn't take an IT career to work too much and lose your soul; I know attorneys and car salesmen who do the same.

There are many upsides to a career in IT: the intellectual challenge, the creativity, the never ending march of novelty, the financial rewards.

The one major downside for me is that there are, statistically speaking, no women in the field. If that matters to you.

Cheeso
+5  A: 

You said you like programming-That is all it takes. Believe me you will like working in IT.

Krishna
Very well put. I'd give anything for having this kind of optimistic point of view :)
shylent
A: 

If you're really interested in the algorithm/math aspects of computer science, you might want to consider an advanced degree and doing teaching/research. While I think it's a stretch to say that those things don't apply in programming, you'll find less direct application in most programming jobs. This is partly because frameworks, operating systems, and compilers -- which do apply those concepts -- are already built for you. It's similar to how engineers apply the material formulas, etc. when building structures. A non-engineer could just as easily apply the same formulas, but knowing the right one to choose in which situation and the edge cases where they need to be modified requires an understanding of the principles behind them and their derivation. Having a solid fundamental understanding will make you a better programmer if you choose to go that route.

If you're actually interested in the science aspects of the field rather than the engineering aspects, though, you may end up being frustrated in a typical programming job. Personally I find a lot of satisfaction in the creative aspects of developing a solution to a problem and crafting code. YMMV.

tvanfosson
A: 

Thanks for all the responses (how does an "unregistered user" reply back?). Maybe I will try looking for out-of-state software startups and if I don't find anything I guess I could go to graduate school. It's just that the people I know who are currently working in the software industry tend to just maintain business web apps and never do anything cool - maybe they just settled too soon in their job-search? Video game development sounds awesome, but my friend says they work crazy overtime and that field has its own share of bullsh**. Anyway, thanks.

why not register? it's free and very quick
AdamRalph
... and if you have openid even quicker
AdamRalph
A: 

The best part about programming, is that you get paid to think deep thoughts. We squint our eyes and make some money.

What else could you want to do?

Nathan Feger