For CS Majors, How Important Is the "Where?"
An anonymous reader writes "I'm a high school senior who is trying to pick a college to attend. I've been accepted by two comparably selective schools. One is a highly regarded tech school, and the other is a highly regarded liberal arts institution. I prefer the liberal arts college, but the computer science program is small, graduating about a dozen students a year. The course load is heavily theory based; programming languages are taught in later years.
How much would the tech school vs. non tech school matter? Are CS majors from non-tech school considered inferior? What would an HR department think? What would you think if you were hiring?"
The women will be hotter at a liberal arts college.
I'd choose the college with the most beautiful women.
However, in my country, right now, there's no chance of not finding a nice job with any kind of CS higher education.
Also, take into account the importance of your choice of college will fade after some years. At 45, your rank (?) won't really depend on your college but on your skill and abilities.
I think you need to ask yourself if you want to go to a school where they force you into requirements like taking one anthropology course or two upper division reading courses. You're other choice (the tech school) is having all your courses picked for you but never accidentally stumbling onto something you love or have never experienced.
Me, I opted for the liberal arts college and will never regret it. Sure, my coworkers who went to a tech school get to brag about how intensive their CS coursework was but I've learned what they know (if not more) a couple years into my job.
Do what you want to do, what you think will be fun and exciting. The place ain't gonna matter, what you put into it will and will be evident to anybody that talks to you.
My work here is dung.
I think a Lib. Arts degree has great merit, but the submitter has a much better chance of getting a good education at a highly-rated technical school. You learn a lot just by being around other people who know more than you do.
....
In the L.A. school, you'll have to educate yourself. The tech school will let you bounce ideas off of other students as well as the more numerous professors.
This from a Liberal Arts major
Put identity in the browser.
Yes, at first, where you went may matter to some people. And some programs are going to be able to offer opportunities you might not get anywhere else.
But a healthy presence in open source projects to gain experience, as well as being active in your local tech community can go a long way. Having the degree is fine - having it with experience is even better.
Random Musings
I'd probably go for the liberal arts college. You'll meet some interesting people, have a good life for a while and probably get a better education if the groups are small anyway. You can always go to MIT for your masters. I'd also not discount the value of theory. I've always prefered hiring the math student with some programming knowledge over the CS student who took all the Java classes.
Fleur de Sel
First of all, I suspect you'll get a fair number of comments arguing against attending a liberal arts college. You're asking a Slashdot audience, so approach such comments with caution.
I've interviewed and hired some employees, and I have also interviewed dozens of students applying to one of America's most elite universities for admission (or much more often rejection). (I also had a similar decision to make at age 17.) Above all else I look for candidates who can learn quickly and who can communicate well. That second attribute is arguably less common among graduates from technical institutions, but communication starts with your resume (or a campus recruiting event, or whatever), not with the mere identity of your college, so I keep an open mind and would invite you to an interview if the signs are otherwise positive. I also look for inquisitiveness: are you a person who is inherently curious about the world? I look for other attributes, too, but those three are priorities.
But even before you get to an interview or apply for a job, do you know what you want to do when you grow up? A lot of prospective college students are not sure, and many or most change their minds. Some colleges provide more options than others if you do change your mind. I would recommend using college as a vehicle to explore your curiosities. That journey of exploration builds confidence, and confident, thoughtful people often interview better. If you are already sure about your path, great, go chase your dream. If you are not, then go explore what fascinates you to build your dream.
Good luck.
Since you will be coming right out of school, you may not have much practical experience when it comes time to see a full-time job. This is to be expected, but there are a couple of things you can do to make yourself stand out:
1) Seek a good internship/coop that allows you to develop practical experience. Many of these are one or two-semester gigs (or one or two summers). When I was in school, I had a 3.5 yr coop which was basically a long-term relationship with a local employer. That was hugely valuable, as by the time I graduated I had a ton of experience (even leading small projects). I would have gotten a full-time offer had that department not been closed down shortly after I left.
2) Work on some interesting hobby projects. School projects are often an interesting spring board, but consider ways to apply what you are learning to scratching some itch.
Personally, I don't give the candidate's school a whole lot of weight. Maybe it gets my attention when looking at a sea of applicants, but I consider each applicant on his/her own merit as demonstrated by the resume, cover letter, and other submitted materials. The most crucial aspect of the whole process is actually the on-site interview. Everything else is just a screening mechanism.
What I look for most is what Joel Spolsky from Joel on Software refers to as "Smart and Gets Things Done." For me, that means someone who is interested in programming because they think it's cool and provides an outlet for creative problem solving, and someone who has demonstrated an ability to tackle problems in the past.
Therefore, I would recommend that you choose a college based on the total experience you will get. Consider everything college offers: learning about a lot of topics, meeting new people, exposure to new ideas, a new level of freedom and independence, moving to a new place to be exposed to new culture, etc... Many of the classes that had the most impact on me and were most memorable were far outside the CS curriculum. Consider what opportunities are available there with each school. Think about what it will be like to live in each of the cities the colleges are located in. Think about what there could be to explore and discover there. Choose the school that is best for you on all of those fronts - don't limit yourself to just choosing a CS program.
In a few years where you got your CS degree won't matter so much, but the memories and experiences you got while in school will last your entire lifetime. Many of those experience will be unrelated to what happened in the classroom.
1) Some companies look for someone from a good tech college. If they are doing resume mining you can be sure they aren't looking for U of Nowhere. Also for example my current employer has half its staff from the same school. They see the school name and have an idea of what someone graduating from there should know.
2) If you get a more specialized interest as you go through school you'll be more likely to find courses/research supervisors for your interest. If you are in a small faculty you might get lucky. But if you are in a large one you'll almost certainly have someone in any niche you are thinking about.
3) You'll get a wider peer group from which to use for future job info, business partners etc. Plus in a small school you might date the one girl in your program and have it not work out. At a big school you can choose between several geek girls, or go to another department.
4) You also can be more selective with your friends/project team mates, you don't have much choice with a small program because either you will clump up with a couple people and do projects together, or some other group with form and force you into a group by default. You don't want to be forced to work with people you can't stand. It happens enough in the real world why experience more of it than you have too? ;)
I don't think that you've emphasized the *fun* part enough.
Don't get me wrong - half of college is about working your ass off, sleeping in the lab and submitting term papers 38 seconds before the deadline after having worked on them for three days straight (what smells like coffee and bacon?).
But the other half of it is meeting people and becoming an adult (if one is so fortunate as to be attending college immediately after high school in the conventional manner). If you have time, join any and every student organization that interests you - even if it doesn't fit your major. Talk to people. Make weekly attempts to eat the entire two pound burrito (goals are important). Wear sunscreen. Et cetera.
When you look back on college and don't chuckle out loud, then you didn't do it properly. You only get one chance.
More
Or at least took the time to teach themselves algorithm analysis, data structures, some higher math, and some functional programming.
There's a lot of really good self-taught programmers out there, and they can write some pretty cool software. However, the truly elite programmers are the educated ones that can understand the principles that make it all work.
The really good employers know this. You're not going to get the plum job at Google unless you know what a fixed-point function is and what it's good for. Fog Creek Software doesn't want to hire you unless you really understand pointers and recursion. There's really neat jobs at Sun Microsystems that need you to DEEPLY understand object-orientation and algorithm analysis.
The number of people that can learn that stuff on their own is vanishingly small. Even if you can learn it by yourself, there's nothing like going through a rigorous 4-year program where you have these topics stuffed down your throat and drilled into you until you know it backwards and forwards. A good CS degree practically guarantees that you'll have a suite of kick-ass high-level skills by the time you graduate.
Yes, a good programmer will teach his (or herself) on a lot of topics. However, for many things there's just no substitute for a good old education.
This
Remember that the point of attending a university is to get a *well rounded* education. A university is not a technical school and (surprise!) most of life is not programming. One of the most valuable skills you can gain is the ability to express yourself clearly, something that will serve you well regardless of your eventual choice of career.
There is a strong possibility, even a probability that you will not be programming for your entire life and you will need a skill set that serves you far beyond the technical focus of your major. As someone with some (limited) experience interviewing job candidates, IMO the ability to be thoughtful and articulate will serve better than narrow technical skill.
You have the rest of your life to gain technical skills, which in CS are constantly changing. Don't train yourself to be a specific cog in a machine, instead try to gain the ability to handle a wider variety of tasks.
I have mod points. The reign of terror begins now.
Don't spend your life working for someone else. It's a horrible experience now, and it's only going to get worse as corporations expand their control. Start your own company and work it from a young age and you'll be much better off by the time you're 30. If the original submitter is the entrepreneurial type, then this could be partly good advice. But how can you be so goofy as to suggest he pick something so unrelated to what are his apparent interests? If he wanted to be in construction, plumbing, or electrical work, then he would already be in it. While those trades can result in a good living, they are also freaking hard work.
Since this is slashdot, I feel justified in psychoanalyzing you just from this one post.
"Rub her feet." -- L.L.
I think my subject spells it out. The term "IT" is often used as an umbrella term to describe any kind of job related to computer technology. On the other hand, sometimes it specifically means Network Management, or computer-related jobs that are not the core function of the company (for example setting up their public web presence). I work for a software company. I am in Development, not IT. There is an IT group that manages network infrastructure. There is a separate group that manages the company's public facade on the Internet. I have nothing to do with either.
All that said, I'd still also say that the quality of either job, IT or CS, depends on the company. I believe the IT and Web people where I work are much happier than typical IT and Web people elsewhere.
RETURN without GOSUB in line 1050
"- Computer science is changing very quickly. What is being taught now could be completely irrelevant in 15 years. Aggressive technical exposure might not be as valuable as you think."
No it's not. Pick 10 random EWDs and see how many of them don't still apply today. If you're actually being taught computer science, the info you're learning should be useful for a very long time.