CS Majors?

Status
Not open for further replies.

NyteBlade

Weaksauce
Joined
May 25, 2007
Messages
121
Hopefully this is the right place to ask this. I assume asking people in the same situation as myself or those that have been here before was probably the best option.

I'm a freshmen CS student finishing up my first year in college. Thus far, I like what I'm doing, or at least I can tolerate it. There probably aren't many people that just genuinely enjoy going to class. Having chosen my degree based on what I thought I'd like best as far as school, I really didn't pay attention too much to what I'd be doing out of college. Probably not a good thing to be curious about 1 year in :p

I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

As far as CS goes, what exactly is out there when I get out of college? Does anyone have any experience or can alleviate my fears, or am I setting myself up for disappointment? I know my question is a bit vague, but hopefully someone can offer a bit of insight.

Thanks in advance!
 
my gott, u went to college to study Counter Strike?!? :eek:
 
There's more to programming than just writing code 8+ hours a day, although a lot of us like to do just that. There's plenty of opportunities to get into management, project management, more senior roles, architectural type things. Or you can just use your computer science degree to jump you into other fields, get involved in networking, general IT, systems administration, or whatever.
 
There's more to programming than just writing code 8+ hours a day, although a lot of us like to do just that. There's plenty of opportunities to get into management, project management, more senior roles, architectural type things. Or you can just use your computer science degree to jump you into other fields, get involved in networking, general IT, systems administration, or whatever.

Additionally, you can get an advanced degree and do research in a subfield (or fields) that interests you.

There is also program management, which is the role of people who coordinate interdependent teams/projects in a technical aspect. Some technical people also become product managers, who guide product lines.

Coding is not what I do 8 hours of the day, though there will be periods where I do sit there for hours straight for a week hammering away at the keyboard. I am involved in a lot of product design discussions (my nice word for heated debates) and in a lot of aspects aside from the code, like documentation, automation, testing, interface design, hardware testing, etc.

The best advice I think anyone can give you right now is to get an internship and experience some of it firsthand. If you don't enjoy the 3-4 months you intern, come back and talk to us again. ;)
 
To quote a power point slide from my previous semester:

Not all of you are going to be programmers, but you should know how to design, program, test, and debug software.

Other types of jobs:
Designer
Tester
Database, Network, Security Administrator
Project Leader
Manager
Professor
etc …

NOTE: designers & programmers on a project may not be the same people
 
I'm in a similar boat (not wanting to do programming my whole life) but I've got three years on you. I've decided to pursue graduate studies to get myself in an advanced research area, in particular distributed systems and information retrieval. Other hot areas in research include artificial intelligence and machine learning (this includes speech recognition, face recognition, etc), database systems, operating systems, software engineering, and statistics and data mining (tightly linked in with AI). I hope to do design as my main job in the future with a little bit of programming to actually conduct experiments and simulations of designs (develop proof of concepts for example).
 
My first foray into being a CS student, I really wanted to do research in cryptography. (computer based, anyhow)

I was also very very interested in compiler design and database design... not necessarily "writing" a compiler / database, but researching and/or solving problems with modern compilers or Db's.

It's kind of like mathematical or engineering research, in a way (especially cryptography).
 
My first foray into being a CS student, I really wanted to do research in cryptography. (computer based, anyhow)

I was also very very interested in compiler design and database design... not necessarily "writing" a compiler / database, but researching and/or solving problems with modern compilers or Db's.

It's kind of like mathematical or engineering research, in a way (especially cryptography).

Compiler theory really interested me, as well as networking theory, algorithms and data structures. I am very interested in security and crypto (I work in such a company) but I don't have the pure mathematical grounding for doing crypto work, but it's always fun to read the algorithms for generating AES keys or the one-way hashing schemes. Databases are also very interesting, except I only care about implemented databases (the postgresqls, mysqls, mssqls). I was never very interested in the theory of database design.

And another thing was brought up by AMD_Man - you could work in an 'advanced development' role, where you are involved in seeking new fields for the company to branch into see how the company's products/business could apply to it.
 
Hopefully this is the right place to ask this. I assume asking people in the same situation as myself or those that have been here before was probably the best option.

I'm a freshmen CS student finishing up my first year in college. Thus far, I like what I'm doing, or at least I can tolerate it. There probably aren't many people that just genuinely enjoy going to class. Having chosen my degree based on what I thought I'd like best as far as school, I really didn't pay attention too much to what I'd be doing out of college. Probably not a good thing to be curious about 1 year in :p

I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

As far as CS goes, what exactly is out there when I get out of college? Does anyone have any experience or can alleviate my fears, or am I setting myself up for disappointment? I know my question is a bit vague, but hopefully someone can offer a bit of insight.

Thanks in advance!

Well there is always consultant work... from my experience with them there is little actual code, blithely created confusion on the wake of your movements, a lot of up front talk, and a good paycheck for doing it…;)
 
I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

Hah. After having to deal with inane meetings for most of your day you will WISH you get to actually program for 8 hours a day.

I've stayed kinda late(~830pm) a few times because the only time i could actually get any 'work'(programming) done was after meetings were done for the day.

Theres lots of other things to do to prep for programming. Gathering requirements for what you actually have to do is a big one. You don't get assignments from the professor any more.
 
Hah. After having to deal with inane meetings for most of your day you will WISH you get to actually program for 8 hours a day.

I've stayed kinda late(~830pm) a few times because the only time i could actually get any 'work'(programming) done was after meetings were done for the day.

Theres lots of other things to do to prep for programming. Gathering requirements for what you actually have to do is a big one. You don't get assignments from the professor any more.

You are correct on too many levels: the meetings that go nowhere and gathering requirements is more akin to pulling teeth than getting homework write ups. I also stay fairly late just to get the work in that needs to be done. I would also tack on 'maintenance' and user support. Fixing what you already did, or more than likely fixing what someone else before you got there bungled. Oh, and the occasional bless of a “research this topic” work request is great.
 
Hah. After having to deal with inane meetings for most of your day you will WISH you get to actually program for 8 hours a day.
QFT!!!!. Meetings can become mind-numbing, especially in the middle of a project, they seem to discuss little more than what they are going to do in the next meeting. And you think to yourself how much coding you would have gotten done today if it wasn't for 4 hours of useless meetings.

The fun really starts when you go to a meeting to discuss why the project is behind schedule, you say it's because all these meetings are taking you away from work, to which they reply, "Let's setup a meeting to discuss this"...sigh!....:rolleyes:
 
I wonder if part of the problem is that you've confused the goal with the means, NyteBlade.

Most people do things because they want the outcome, not the journey. Sometimes, the journey is fun in itself, but the outcome is what's rewarding.

If I was writing software for the insurance industry, I'd probably bored. I'm not; I've been writing software for the software industry itself, which is very much different work. Lately, I've been writing software for the gaming industry. It's lots of fun, too, and I find it very rewarding.

When I'm writing code, I'm not sitting there thinking "oh, man -- six more hours to go!" Instead, I'm thinking of what problem I'm solving (or feature that I'm adding, or whatever) for my customers. That's where the motivation comes from.

The way you've written your post, you make it sound as if you're going to be coding for the sake of coding.
 
I wonder if part of the problem is that you've confused the goal with the means, NyteBlade.

Most people do things because they want the outcome, not the journey. Sometimes, the journey is fun in itself, but the outcome is what's rewarding.

If I was writing software for the insurance industry, I'd probably bored. I'm not; I've been writing software for the software industry itself, which is very much different work. Lately, I've been writing software for the gaming industry. It's lots of fun, too, and I find it very rewarding.

When I'm writing code, I'm not sitting there thinking "oh, man -- six more hours to go!" Instead, I'm thinking of what problem I'm solving (or feature that I'm adding, or whatever) for my customers. That's where the motivation comes from.

The way you've written your post, you make it sound as if you're going to be coding for the sake of coding.

this deserves a *double ding*

There are some jobs that are mind numbing code churn jobs, but the vast majority of them I have had have been as Mike described them. I've had to stop coding to remind myself to go home or go to bed. :)
 
I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years.

Just want to point out that you're describing a code monkey not a software engineer. The position you're describing is one where the engineering has all been done. The requirements have all been gathered. They've been analyzed. The solution has been decided on. You're just the monkey converting the solution into code.

Software engineering on the other hand is closely related with systems engineering. You're working at designing a solution... and working to ensure that the solution is for the real problem.

Depending on the job you could be doing nothing but coding, almost no coding at all or almost anywhere in between. Make it a point of the interview process to talk to some of the people on your team, then ask them how much time they spend on different types of tasks (coding, requirements, etc) and how they think that'd compare to your position.

Personally I wish my job had more code-monkey aspects. It's been months since I've been able to sit down and muck about with implementing something; instead I've been spending my time in lots of telecons working out interfaces with non-COTS devices that are being designed in parallel.

The biggest thing I can say is to start getting an idea of what types of systems/problems you enjoy working on. You'll find that some problems may bore you witless and others excite you. For example there's a big difference in designing/writing say an internal end-user buisiness application and doing embedded software for a robotic vehicle. Personally I think I'd go nuts doing the former... while the latter keeps me interested and (mostly) enjoying my job. I know people that'd hate what I do, but would be fine doing the former. I know people that wouldn't want to do either, but instead get thier kicks from mucking around with complex algorithms.

I enjoy solving problems... coding for me is working through a solution. Where I wind up disliking coding is when I know the solution but I have to spend hours putting the code in place to get it to run. Hence why I have some serious dislikes to doing end-user gui's. Once you've got your framework in place you're spending hours and hours doing nothing but adding fields and the linkage to your db. Some people don't mind that... maybe they find it soothing or something.

In any case, to repeat the advice... there's a huge range of types of position and types of problems you can do/work on. Try to figure out what you like... or at least what you don't like while you're in school and job-hunt accordingly.
 
Just want to point out that you're describing a code monkey not a software engineer. The position you're describing is one where the engineering has all been done. The requirements have all been gathered. They've been analyzed. The solution has been decided on. You're just the monkey converting the solution into code.
Some engineers (and a few architects) do end up implementing their stuff, as well as designing it. The mix depends on the company and the formality of the team, and the type of work, and so on... but I think your core point is very much valid.
 
Hopefully this is the right place to ask this. I assume asking people in the same situation as myself or those that have been here before was probably the best option.

I'm a freshmen CS student finishing up my first year in college. Thus far, I like what I'm doing, or at least I can tolerate it. There probably aren't many people that just genuinely enjoy going to class. Having chosen my degree based on what I thought I'd like best as far as school, I really didn't pay attention too much to what I'd be doing out of college. Probably not a good thing to be curious about 1 year in :p

I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

As far as CS goes, what exactly is out there when I get out of college? Does anyone have any experience or can alleviate my fears, or am I setting myself up for disappointment? I know my question is a bit vague, but hopefully someone can offer a bit of insight.

Thanks in advance!

I don't think you need to worry about it. As long as you can get an entry level job doing whatever you'd like, your degree will just go "along" with your experience into the position you *want*. I'm majoring in CS, but don't really want much to do with coding software. That's why I took a bunch of networking and security courses too, as well as database management, to give me a broader range of knowledge. I work systems administration.. which does require a little bit of coding - but not much. I do a little helpdesk work too - but the point is, you can get into whatever you want as long as you have prior experience. Your degree doesn't decide what you're going to do for your life, you and your experience does. So maybe you like web design. (example) Find an entry level design position, work there for a year or two, and then you have exp + degree in CS to boot.

IMO the biggest challenge is always getting your foot in the door.
 
If you have any interest in research areas, find a professor who does what you like and ask them if you can just do an independent study for them. My first project was an unpaid independent study. From there, I got summer work, hired as a consultant, and finally a free pass into grad school for my work.

It's much the same with business. Find something that interests you and do your best to get involved.
 
Some engineers (and a few architects) do end up implementing their stuff, as well as designing it.

Indeed... and I do wind up coding up the stuff that I design (which is good as I couldn't stand pure design work). I was simply trying to make the point that there's a distinction between being the monkey that does nothing but code to someone else's spec and being a software engineer and helping to develop that spec. He seemed to think that a CS degree would only let him be the monkey.

Something else that I just now thought of... look into what the difference in the CS and CSE programs are at your uni. That extra E might not seem like much, but it can be an advantage when it comes to getting that first job outta uni. Now, I'm not saying to do the CSE no matter what... I've seen a CSE degree that was literally a EE degree with a OS and a DB course tacked on. Look at what the differences are and decide for yourself how those differences mesh with what you want to do and if the added value is worth it.

Oh4Sh0 said:
IMO the biggest challenge is always getting your foot in the door.

Most definately! Work at making contacts now!

It doesn't have to directly be people in the industry either. If you know someone who's the kind of guy that you always want to be a lab partner with because he works hard, knows what the hell he's doing, and is a good guy to work with... that's a contact. Why? Because when he lands an internship somewhere... or graduates and gets a job... well... he's now someone in the industry. More importantly he's someone in the industry who, if his company is hiring, will be asked... so... know anyone from your classes that you'd recommend? Or you've got a lab partner with brothers/sisters who are somewhere that you want to work. That's a kind of contact as well.

Important thing is that you want to have multiple of these come your senior year. Then you can try to get one of thier companies involved in your senior design project. After that... you can use them to get your resume past the HR screen and directly into a hiring manager's hands along with a verbal recommendation. That goes a long way.
 
Hey guys,
I know it's been a long time since I posted this thread, but I decided to give a little bit of an update and just see if I could get a bit more feedback. So far, I appreciate all of your advice and your reassurance that the only path to go down is the code monkey one.

I spoke with a few of the professors in the department and they both seemed to agree with the sentiment here - there are tons of things to do with a CS degree, it's just a matter of finding what you like.

The first thing I did was print out a list of all of the degree programs they had at the college and went through them all with their brief description as though I was a freshmen looking for a major. CS was still #1 on my list, so I felt a little bit better that I was at least in the right place.

After looking through your suggestions and doing a bit of research on my own as well as talking to the professors, a few possibilities popped out that I thought could be possible career paths.

First was project/program management. Being in charge of a program or a team of programmers sounds kind of interesting. It would still involve CS to a degree so I'd still be happy, but it'd also involve leadership and management skills which I think I have a knack for. My advisor said it would also be pretty easy to tack on a few business courses if I was interested in going this route. My only concern here is the CS program I'm in is co-op (meaning starting next year, you alternate between a paid intern position and school from quarter to quarter). I'm guessing that a company would be very unlikely to effectively give me a position of leadership right off the bat unless I had a really spectacular resume. Even out of college with some business classes I'm assuming this would be dodgy territory. Last quarter I happened to royally screw a Calculus final exam, so my GPA dipped down to an unimpressive 2.8.

The second idea was teaching. In High School in computer classes as well as math classes (prior to Calculus :) ) people always used to ask me for help on things and I genuinely enjoyed helping out and answering questions when I could. The problem is I'm not too sure what level would be good to teach at or what kind of opportunities existed in teaching computer science. My cousin who's a teacher said at the high school level, with a CS degree, I'd have absolutely no trouble getting a job assuming I had a teaching certification. My cousin is also living off Ramen noodles and crashing at friend's places ;) I'm guessing teaching high school would be a considerable pay cut from industry pay? Is there much out there at community college level?

Third idea was just keep going and perhaps pursuing a graduate degree. With my unimpressive GPA of 2.8, I'm guessing a major university wouldn't take me on. The one I'm at now requires a 3.0+ and 3 faculty recommendations for their masters program. Would there be any hope of going for a masters degree with hopefully partial or full financial aid somewhere with a 2.8? I understand that I still have time to get my GPA up and I'm not looking for a masters degree at MIT, but some sort of TA position with living/school expenses paid somewhere might get me to consider it.

These are my crazy three plans I was thinking about which seem to be quite different then the normal software engineer path. I'm still mulling over possibilities this summer, but I appreciate any feedback :)
 
I actually just started working on my CS Master's degree and I had pretty much the same GPA. The requirements were the same as well 3.0 3 recommendations. I got 2 from professors and 1 from my previous boss (a faculty member at the college) and I did pretty well on the GRE as well and I still got accepted. My professor even helped me get a Graduate Assistant position over the summer to earn some money.

I'd say just go for it, you never know until you try. And apply early. A friend of mine had a perfect 4.0 throughout college and when he started talking to the head of the graduate school at UNC they told him that they would love to take him and pay him but it was extremely late in the process so they would be unable to provide him with any money. So he is taking a year off and going to apply as soon as possible and get a free ride through graduate school.
 
you are correct to say that nobody will hire you off the bat as a project lead. the best project leaders on coding projects are the ones who are highly technical and show their foresight in all they do. you (like myself) are too inexperienced to HAVE foresight. i imagine it will take a bare minimum 5 years to be a project lead, if you define "project lead" as manager of the project and not the technical manager of the project.

teaching high school also interests me. i may retired into it. however, at this point, there are no certificates for "computer science," which is something i think ought to change. you'll have to get your certificate in social sciences, or math, or physical science, or something along those lines... so now you are taking the classes to become a certified teacher AND a programmer. that's a lot of work, unlikely that you could finish it in 5 years because there isn't much overlap. you are also correct to say that teaching in a public school would be a significant reduction in pay. in pennsylvania, it's probably around a $20,000 reduction, and that only gets magnified as time goes on. however, teaching usually offers a lot of job security.

if you have the money, apply to grad schools anyway. just be close to the requirements. you'd be surprised how many people are in graduate schools who do not meet the minimum requirements and they turn out to be excellent students. it is worth noting, though, that if you have intentions of going to graduate school that you stop and jacking off at school and get serious with the books. you will only thank yourself in the end.

although i am a grad student in CS, i highly recommend a master's in software engineering if you think that project management is up your alley. CS is all about algorithms, proofs, efficiency, statistics, etc. VERY math intensive. software engineering is more about developing portable, easily-read software that is highly extensible and manageable, etc.

feel free to pm me if you'd like. your situation sounds very similar to the one i was in a couple years ago, except my gpa was a little higher.
 
You never know. Okay, so the highly selective schools will probably be a stretch, if not just impossible, since they'll have a few dozen slots, and get 10000+ applications a year. However, state schools could prove easier to get into the Master's program. If it is what you strive for, talk to professors. Also look into seeing if your current school offers like a master's extension program, where you can get a master's degree in the 5th year.

As for teaching - it depends on where you teach if you're teaching pre-college students. I live in a city where teachers get paid $26 - 28K starting. The most senior teacher at my old high school worked for 30 years and by her retirement, she made less than any of my friends or I did when we got our jobs out of college.

However, my coworker at the company lives in a very affluent town, where the teachers (we're talking young young public school teachers) get paid 65 - 75K after a couple years.

I wouldn't even deal with non-college students though, I would like to teach college students and will probably eventually get a Master's or Doctorate, which will let me become a professor either through industry experience or just because I have a PhD. I think a high school environment would hinder my 'style' a little much, and also because the programming they teach in high school is pretty much pedantic and not really computer scienc-y, from the students I've talked to who actually took those courses in high school.

Project leads / Program management - this is something that you will probably not get off the bat. Some companies have program manager trainee programs for people who want to follow that track. Project leadership (like development lead) will be something you can attain once you are sufficiently experienced and can prove yourself to be someone who has leadership skills and can guide project development. It's something that you will grow and develop into.

it's good to see that you have developed some view of how you want to progress now.
 
Well there is always consultant work... from my experience with them there is little actual code, blithely created confusion on the wake of your movements, a lot of up front talk, and a good paycheck for doing it…;)

Consulting combines the the best aspects of Confidence gaming and Insulting. :D
(not my joke, probably an old Dilbert one, I can't recall exactly)


Honestly even if you get a job as a programmer, code monkey, software engineer what have you, there is more to it than just hammering out code (unless your in a huge team and near the bottom of the totem pole). I graduated back in 2007 with a BS in computer science and got a job working for a defense contractor (actually I was a PC tech in the interim till I found my current job). I work with Java (J2SE and J2EE) maybe 50% of my day the other parts are spent in meetings (ugh), or with subject matter experts (awesome) coming up with designs or features. So its not a solid 8 hours a day staring at a screen (though during crunch time all bets are off), though I really enjoy what I do and I love coding.
 
Hopefully this is the right place to ask this. I assume asking people in the same situation as myself or those that have been here before was probably the best option.

I'm a freshmen CS student finishing up my first year in college. Thus far, I like what I'm doing, or at least I can tolerate it. There probably aren't many people that just genuinely enjoy going to class. Having chosen my degree based on what I thought I'd like best as far as school, I really didn't pay attention too much to what I'd be doing out of college. Probably not a good thing to be curious about 1 year in :p

I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

As far as CS goes, what exactly is out there when I get out of college? Does anyone have any experience or can alleviate my fears, or am I setting myself up for disappointment? I know my question is a bit vague, but hopefully someone can offer a bit of insight.

Thanks in advance!
There is a lot more that goes into software than just hard programming. In fact, there are many jobs in software that involve no coding at all! There are other jobs that combine some programming with softer skills, and then there are the jobs you've described that pretty much make you a code monkey.

The lack of computer science/cs-related majors in North America is quite staggering. I graduate in 2011, and by then there is expected to be a very high demand for CS majors (I'm technically an IT major with a specialization in software) and very few employees to fill the roles. You should have absolutely no problem finding a job involving as much or as little coding as you personally like to do on a day-to-day basis.
 
Hey everyone,

I might have to bump this topic once more for good time sake with a bit of an update. So far, the replies have been extremely helpful and I really sincerely appreciate the effort.

After some soul searching, I think I've kind of solidified my position a bit. Over the last year or so, I've had some problems with my hands that have made typing a bit more painful than I'd like. Fortunately with the wonders of modern medicine and decent health insurance, progress is being made there, and I'm hoping things will eventually be completely fixed. Being a CS major though, these are the types of things that make you reconsider.

On the plus side though, I think this reconsideration has made me realize that despite a decent salary, a 9-5 desk job sitting at a computer would make me sort of miserable. On a flip side though, I'm not too sure I'm not entirely sure how rationale of a statement, "I'm a CS major, but I want to spend a minimal amount of my work day at a computer/typing" is. I'm assuming I'm being paranoid and that there's lots of strange applications of a CS degree, but when my fellow CS students are all trying to gear up to go on internships with the "cool" software companies, I'm not too sure if I missed something. Our CS Program is actually 5 years, with 1 year actually being a paid internship at a company of our choosing...sort of ;) So I'm trying to find something I'd like for my first quarter of internship coming up in the spring, as well as get a better idea of what I'd like to do ultimately once I graduate. I'm just not sure if "I don't want to spend much time on a computer" is a good place to start when looking at prospective internships. :p Out of curiosity, if anyone wouldn't mind sharing, what exactly does your daily schedule look like?

On the ultimate goal side though, I spoke with the education department briefly about the prospect of teaching. They showed me that if I use some spare electives on additional math classes, and tack on about 6-7 quarters extra, I can actually graduate with an M.Ed. in Education and teach Math, as well as CS in High School. From the way they talked, getting into a decent school district as a CS/Math teacher would be incredibly easy. Right now, this is an option I'm really heavily considering. Being a Sophomore, I still have quite a bit of time to decide on this, but so it sounds pretty good. ;)

Sorry that my post has been more rambling than direct questions. Any comments or help, as always, is greatly appreciated!
 
I'm throwing my two cents in about 6 months late here, but have you considered taking a look at the business school at your college for an MIS/CIS type degree?

I went the CIS route at my school which included some programming, systems analysis/design, database fundamentals, telecom, and all of the baseline business courses. I paired that with Accounting (yawn) as a second major, and now I do IT Auditing and Security Advisory for a large accounting firm. I knew from the start that I wasn't interested in being a code monkey, and I've found over the years that I'd probably rather be doing somethign outside of IT (as I got into it because i'm a [H]ardware junkie). My job basically involves me talkign to people, learning and understanding what they do for a living, and documenting that. At the end of the day, its going to launch me into having a huge array of options ranging from technical IT roles to financial analyst type roles.

The way that I like to see it is that CIS/MIS majors will be hiring CS majors to work for them :D
 
Hey everyone,

I might have to bump this topic once more for good time sake with a bit of an update. So far, the replies have been extremely helpful and I really sincerely appreciate the effort.

After some soul searching, I think I've kind of solidified my position a bit. Over the last year or so, I've had some problems with my hands that have made typing a bit more painful than I'd like. Fortunately with the wonders of modern medicine and decent health insurance, progress is being made there, and I'm hoping things will eventually be completely fixed. Being a CS major though, these are the types of things that make you reconsider.

On the plus side though, I think this reconsideration has made me realize that despite a decent salary, a 9-5 desk job sitting at a computer would make me sort of miserable. On a flip side though, I'm not too sure I'm not entirely sure how rationale of a statement, "I'm a CS major, but I want to spend a minimal amount of my work day at a computer/typing" is. I'm assuming I'm being paranoid and that there's lots of strange applications of a CS degree, but when my fellow CS students are all trying to gear up to go on internships with the "cool" software companies, I'm not too sure if I missed something. Our CS Program is actually 5 years, with 1 year actually being a paid internship at a company of our choosing...sort of ;) So I'm trying to find something I'd like for my first quarter of internship coming up in the spring, as well as get a better idea of what I'd like to do ultimately once I graduate. I'm just not sure if "I don't want to spend much time on a computer" is a good place to start when looking at prospective internships. :p Out of curiosity, if anyone wouldn't mind sharing, what exactly does your daily schedule look like?

On the ultimate goal side though, I spoke with the education department briefly about the prospect of teaching. They showed me that if I use some spare electives on additional math classes, and tack on about 6-7 quarters extra, I can actually graduate with an M.Ed. in Education and teach Math, as well as CS in High School. From the way they talked, getting into a decent school district as a CS/Math teacher would be incredibly easy. Right now, this is an option I'm really heavily considering. Being a Sophomore, I still have quite a bit of time to decide on this, but so it sounds pretty good. ;)

Sorry that my post has been more rambling than direct questions. Any comments or help, as always, is greatly appreciated!

I am a coop student, and my schedule is 10:00-6:30. Pretty much, I get to solve interesting programming problems, learn a lot, whether it be about something I've never done before (encryption, image processing, network programming) or application of things that I've tried in the past on my own or at school. I'm not so sure describing a development job as just sitting in front of the computer typing would be a good description. Rather, you have to want to solve problems (which I think is the key). The computer is just the tool, and a very nice tool that you obviously have to have some interest in. Where I am, the team is small, lunch time is flexible, work hours are flexible -- the job just has to be done. Luckily for me, we don't have many meetings... once every week or two, for about 15 minutes tops. If you work at a larger company though, you may not have that luxury, and it may be more tedious (meetings bore me to yawns and tears). Most of my time is spent doing development work or doing some kind of groundwork research / prototyping with code.

Teaching is an interesting option, although, personally, I don't like to have that much social interaction as part of my job.
 
Out of curiosity, if anyone wouldn't mind sharing, what exactly does your daily schedule look like?

Varies all over the place. 2 years ago, it would be spending most of my time coding. But it was for a project where I was responsible for developing most of my own requirements and had almost complete design leeway, so that was pretty sweet.

For the past year I've barely touched code, I've been working more of as a systems guy. I'll spend a lot of time consulting with various subject matter experts and developing diagrams showing how all the various subsystems interact in order to accomplish a task. Personally I find that this gets really old... but the systems guys seem to like this sort of thing. Speaking of... I'm wondering if it might be something you might enjoy. You might look into systems engineering, it's somewhat discipline independent, so your CS degree could likely find you such a position, although it might take you being with the company for a year or so first. Talk to your profs about what they do and how hard it would be to get into the field with a CS degree.

Finally... I get the times when I'll spend a week helping to dig into a fuel system in order to setup instrumentation to diagnose a problem and getting covered in fuel. Or heading out to a military base to participate in an exercise; I'm there in case something goes wrong with the software, and to do data acquisition and status monitoring... and to just be an extra pair of hands when needed. And to get sunburned and dirty and exhausted :p

On the ultimate goal side though, I spoke with the education department briefly about the prospect of teaching. They showed me that if I use some spare electives on additional math classes, and tack on about 6-7 quarters extra, I can actually graduate with an M.Ed. in Education and teach Math, as well as CS in High School. From the way they talked, getting into a decent school district as a CS/Math teacher would be incredibly easy. Right now, this is an option I'm really heavily considering. Being a Sophomore, I still have quite a bit of time to decide on this, but so it sounds pretty good. ;)

Teaching's an option, although it's not something I could stand to do... especially at the HS level. Tried it as a SI in uni, and while it's great when you see the light turn on in someone, it's frustrating as hell when someone just isn't getting it :/

But, if it's your thing, more power to you. Good teachers are always needed! :)
 
Luckily for me, we don't have many meetings... once every week or two, for about 15 minutes tops. If you work at a larger company though, you may not have that luxury, and it may be more tedious (meetings bore me to yawns and tears). Most of my time is spent doing development work or doing some kind of groundwork research / prototyping with code.

Oh man... I envy you. I've got one of the lightest meeting loads on my team and I'm still probably spending 10 hours a week in meetings. (about to go up though! whee! ... *sigh*)
 
Out of curiosity, if anyone wouldn't mind sharing, what exactly does your daily schedule look like?

One day I could be working on a web app, the other day writing a back end program, or fixing a broken script another day.

The important thing, and I think you are on the right track, is finding what you like to do. The only way to know what you will like is by getting that real world experience which you are fortunate to get via your school. I hated programming during my studies and said I never wanted to program. When I get my first (and current) job out of college I started writing some programs but I ended up liking it. The types of programs I write for work are enjoyable because they get used by people. The CS field offers a wide variety of paths. Explore as many as possible and you will find something you like. When you find that niche, grab your masters in it and specialize in it. Management jobs will come with time. Grab a MIS degree to help you along.
 
i actually spend most of my day googling for information and reading documentation. i do "open-source" (we use it internally for non-commerical stuff, but dont necessarilly contribute it) development at work, so documentation is somewhat scarce, and code is often a bit of a mystery you need to prod. the other half or so of the day is a mix of coding, troubleshooting/testing, and planning. in early stages planning will dominate....sometimes i spend hours sitting outside trying to get a grasp on things or figuring out how to deal with certain issues. i rather enjoy that part actually, and when done well enough, the coding part is fun as well (and when NOT done well, trying to code it turns into a PITA). it's definetely less about the code, and more about what you're writing it for.

the actual code ranges from bash/perl/python scripts for testing/builds, to C for various systems programming items (examples being an automated GDB knock-off, various kernel backports, or in the case of some of us full-blown kernel development: new architecture support, drivers, etc). on another team i was on some of the kernel hackers moonlighted writing fancy AJAX web apps for build automation/management. lots of variety, lots of challenges, and a surprisingly thorough application of what i learned in school but never thought i'd need

overall i love it. but things get really hectic sometimes. you end up putting in late nights, constantly encountering the most elaborate bugs and roadblocks. i could see a lot of people in my position thinking their job just simply isnt rewarding enough. its very relative.
 
Out of curiosity, if anyone wouldn't mind sharing, what exactly does your daily schedule look like?

Well, I'm strictly a web guy. I maintain our company's 4 huge websites (2 internet and 2 intranets). Some days I spend all day coding or designing, sometimes it's just doing boring content updates, other times it's requirements meetings or consultation, and still other times I just do nothing but surf the web, and often it's a combination of all of the above.
The nice thing about my job is that I'm completely in charge, I set my own schedules, design practices, and choice of technology with no one looking over my shoulders. My boss is happy when our users are happy, and I go out of my way to make sure our users are always happy. :)
 
Done a bunch of different things in my 10 years on the job.

Out of college was hired on in Technical Support (basically 2nd line support). Lots of debugging existing code, researching problems, doing little fixes, etc.

After four years of that moved into the development department. First there still doing the same basic 2nd line support type thing but also doing more original development. Designing small enhancements, etc. Last couple of years moved into more of a traditional Architect role. Now mind you it's a relatively small company (entire dev. department is about 30 folks local and 5 in India), so everyone codes but I'd say it's about 75% design/25% code.

Being an architect/SME (subject matter expert) means more meetings (which are the bane of every programmer) but if I can keep my coders out of them I try.

Of everything I do I prefer the architect role. There are those that prefer straight coding though. Everyone's different.

So, my advice. Try a bit of everything. See if you like design, some do, some don't. Se if you like to code, again, some do, some don't.
 
Hopefully this is the right place to ask this. I assume asking people in the same situation as myself or those that have been here before was probably the best option.

I'm a freshmen CS student finishing up my first year in college. Thus far, I like what I'm doing, or at least I can tolerate it. There probably aren't many people that just genuinely enjoy going to class. Having chosen my degree based on what I thought I'd like best as far as school, I really didn't pay attention too much to what I'd be doing out of college. Probably not a good thing to be curious about 1 year in :p

I guess my nightmare is that out of college, I'd become a glorified software engineer, cranking out C++ code 8 hours a day for the next 45 years. I don't mind programming. I actually kind of like it in healthy, moderated doses, but I'm not too sure I want that to be my job description.

As far as CS goes, what exactly is out there when I get out of college? Does anyone have any experience or can alleviate my fears, or am I setting myself up for disappointment? I know my question is a bit vague, but hopefully someone can offer a bit of insight.

Thanks in advance!


Software Engineers don't write much code, you will be a code monkey. maybe one day you can work your way to SE.


best book on SE is Code Complete.
 
Software Engineers don't write much code, you will be a code monkey. maybe one day you can work your way to SE.


best book on SE is Code Complete.

I disagree with this. Software Engineer is a very generic title for "developer", meaning, you are the core group of people that design, prototype, implement, and test code. If that's not a position where you write much code, then there doesn't exist a position where you write much code.
 
My career advice for those going to industry. My observations for a decent entry level job in industry.

First 2 or 3 years in school

1. High gpa, network with professors.
2. Do some interest project, actually learn some subject well.
3. At the very least learn databases, and know the language you love VERY well.
4. Land an internship at the biggest place you can get to.

You should be able to get (economy barring) a decent job (assuming large metro area).

Doing well on programming competitions is a good thing. I would not recommend programming as a career if you don't love it, that or pick where you carefully.

W.r.t Software Engineer versus programmer or whatever. I don't really care about distinctions but I think more industry specific, software engineers usually do more than program. Though I'm sure older people might abuse the nonmenclature.

To OP about the sitting at machine for 8 hours a day. It really depends on the place you're at and atmosphere. I don't sit at my desk that often, less than 6 hours out of an 8 hour day(factoring in lunch of course). A lot of it has to do with productivity (or I believe anyway), as long as you get your work done well you shouldn't be forced to sit in front a machine (course, you could have one of those offices or a micro managing manager).

A lot of it depends on where you go and what you do. My database tuners are very busy and work late. The dbas have a 24/7 support job (rotated). Some of the other people have less involving roles.

Maybe you should consider Sales Support. Chit chatting networking and all tht other good stuff rolled together.

Teaching? Find what you love, don't sit on useless things for too long, aka spend 2 or 3 semesters on teacher prereques then realizing you can't handle waking up at 6am to teach rowdy inner city hs students.
 
Status
Not open for further replies.
Back
Top