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?"
Never ever go to a liberal arts college, they make you write PAPERS about POEMS some DEAD GUY wrote.
Are you experienced?
-Jimi Hendrix
yes, here. internet. its the greatest college. get experience here, put stuff here. show them to people here. youll find your job. experience outdoes almost any college name.
Read radical news here
do you want to go to school with a bunch of geeks or a bunch of hippies?
that is the dilemma you are facing. it's a double-edged sword.
You're better off going to the arts college. you'll have more fun, also the course (from your admittedly short description) sounds good. No harm in getting the theory under your belt. Programming is kinda like music, once you understand the theory of how music works, its easier to pick up a musical instrument... Ultimately if you get a good degree it really doesn't matter, especially when you have a few years experience under your belt. Finally the small size of the faculty sounds good as you'll get more personal attention... Good Luck
The women will be hotter at a liberal arts college.
For me it basically comes down to tech school diploma mills versus tech-lite "diverse" coursework in a arts school.
The diploma gets in you in the door. The interview is how we weed out the posers.
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.
Not very. It's not where you went, but what you've done. If you think you'll be happier at the liberal arts school, then by all means go there. At each I'm sure you'll have opportunity to make your own way so just take those opportunities and you'll do just fine.
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
What a co-incidence? I was just reading On Choosing a Graduate School: A Dialogue....
Here in America, when people mention "tech schools" they are usually referring to vocational("diploma" mills) or military certification, which are always less prestigious than the 4-year university degree(though military tech school in conjunction with the work experience will easily land you a job).
;)
Somewhat offtopic rant, but as an older college student working full-time, I think it's a shame that G.E.'s are necessary for an accredited degree - as if they assume everybody is fresh outta high school with no life experience. Yeah, yeah, being well-rounded and all that jazz, but why should a somebody have to take humanities 101 when they've been reading junior and senior-level literature for years? Oh, and if sign language counts as a "foreign language", then so should any advanced programming language
First, HR departments don't care where your degree is from.
Once you understand that, you need to understand yourself and your goals. What do you want to do with your degree? Do you want to be a sysadmin (face it, you can go to Devry and do that job competently), programmer, manager, researcher? These are things that should influence your decision. If you want to work in a research department (say PARC or MSR), you will need postgraduate degrees, and the best thing in that case is to choose the tech school. Other than that, you would probably have more fun at the liberal arts college.
You should also think about what kind of college experience you want. Do you want to go to a large school with many opportunities to meet a very diverse set of people? Do you want to go to a small school and be more than just another face in the crowd? Do you want to be involved in fraternities? Which school will give you the school experience you want?
Where are the schools located? Do you want to live in a small college town? How about a big city? Do you want the college to be your primary connection to the world, or do you want to explore outside the gates? How much cold weather can you stand? How much crime can you stand? Which school has the best location for you?
There are a great many factors in choosing a school. Do not limit your choices because you heard that one program is better than another. If you really don't know what you want to do yet, don't make the choice on program reputation alone. If you know you want the best program, then maybe that is the best choice, but in the end the "better" program is not going to prepare you much better than the "worser" program.
What? You can finally major in Counter Strike?
I'm a second year ME major at Virginia Tech, and about half of my friends are CS majors. From what I've seen here it does not really matter where you go, but what projects you've worked on and completed. Also whether or not you have a 3.0 or higher GPA. You really have to be careful when you're going for a CS degree straight out of high school, because most people who are 'good' with computers and like video games and web design don't really want to do CS. Of course if you're all into algorithms, complex math and finding the most efficient sorting method, then by all means go for it. When trying to get jobs typically there will be a short technical part of the interview and then a general interview, and as long as you nail the general stuff in your classes you should be Ok for the technical part, and the rest rides on your personality. This of course is based on what I've gleaned from working on our annual engineering expo (job fair). You might want to go with the liberal arts school just so you can get a more rounded education, as smaller departments generally mean alot more individual attention, check into the school's hire rate out of college from their CS department, as that is normally the best indicator of whether or not its a school you want to go to if you're focused on getting a job. Don't forget to enjoy life along the way, if either of the school's campuses are miserable, you'll be living there for the next 4 years :D
Good luck with your decision
The difference between a tech school and a liberal arts school is vast. Tech school will teach you a lot of hands on skills that will be useful immediately in the job market. However, those skills will be flavor-of-the-month, possibly even tied to specific brands, and your possible career paths will be very narrow.
The liberal arts school will teach you a bunch of apparently useless abstractions and hands on programming will be considered an annoying little detail. You'll also learn a lot about long dead societies, peoples and languages. And other, less tangible things.
20 years out, the tech graduate will be working in a cubicle at a dead end job. The liberal arts student will be doing whatever he wants.
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
So long as it has a valid ACM accreditation, it doesn't matter that much on a resume basis. What can matter a LOT are referrals, so if you have a particular company in mind, you may want to go to a school that has a lot of it's alumni working at that company.
This presumes of course you come out of your collegiate experience competent and can make it past the phone screens and interview loops. Theory is wonderful, and honestly, you shouldn't be taking classes to learn particular languages, you generally need to be able to pick those up on your own (and quickly), after you have been introduced to the art and have one or two intro languages under your belt.
Realities just a bunch of bits.
My passion for programming started long before I attended a well-regarded liberal arts college where I minored in CS. After graduating I found myself in an environment (a start-up) where I was able to prove myself as a software engineer, a much more rewarding experience in the long-run. Within five months I was working alongside peers with CS majors from engineering schools, sometimes taking the lead on design. After a year, we were using frameworks that had not been taught in school --mine or theirs.
I'd say that 90% of my useful software engineering skills came from my on the job learning. It's a question of what you want to do with your degree. My CS studies were a casual continuation of a personal passion, which in the end has turned into a career. I've also worked in finance (not as an engineer, but as an analyst), and find myself now in more a product management position with the ultimate goal of starting my own company. My liberal arts education has definitely helped me leverage technical skills in the business world. Some of my engineering focused friends have to work harder to not be pigeon-holed (i.e. go back for MBA's or Masters).
CS is as much about computers as astronomy is about telescopes.
... someone who knows how to do what I need. Someone who is intelligent and bright, and someone who knows how to behave. But, having thats not the case with other employers(from my experience).. I would suggest 'if you want to be in CS business' to go to tech school.
When we hire we look at the degree to see if it meets our minimum requirements, if they have some reasonable good marks pertinent papers then that's good they go into a pile. If there are lots of applicants we look at the pile and see what they have put down about themselves and how they would fit in to out team. We ask them to bring some code or something that they have done so we can see if they can actually code. We ask questions to see if they have indeed written it. We ask them questions about themselves and try and work out how they would fit into our team and what they can bring to it in terms of expertise. Education is one part. Competence is another. Being able to work with others is yet another. Developing social skills and having a body of work to show your potential employer is every bit as important as your education. So where you got your education possibly isn't as important as you might think, as education gets you into the interview, but won't get you the job, other things will count for that.
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.
Most of the jobs I have gotten have been through people I knew from the university. The tech school is likely to provide you with a larger network of people which can help you get an interesting tech job, than the people you learn to know in the liberal arts school.
However, the college years are likely to shape what kind of person you are going to be, not just what kind of jobs you get. If you are very good at keeping active outside college, it won't matter much. Otherwise, if the liberal arts college feels more right for you, go for it. It may help you be a more well rounded person.
These are both "Technology" schools.
DeVry teaches what is needed to graduate. Rensselaer teaches what you need to learn.
I attended DeVry. I can program, no new algorithms from me.
The only thing new in this world is the history that you don't know.[Harry Truman]
Jebus, if you have to read this book as a CS major to find out about the importance of 'where' then you're in deep deep deep trouble!
Neither choice will kill your career. Go with what seems to fit best with how you work, challenge yourself for four years, and if you have talent I guarantee you'll come out ok.
Where's the pussy at?
I went to a Liberal Arts college with only four CPS majors at the end of my four year tour. Now that I look back at it, the "extra" classes that I took actually have helped me in the work environment. For example, my psychology classes. Strait out of college I went to work for a BPO company who out-sourced help desk/desktop support to other companies. I ended up on the desktop support side. Anyway, those psychology classes helped me to deal with some of the more challenging end users and to figure out why they hated us support people. They helped me to figure out their personality type and to play against it. My Liberal Arts college also introduced me to a few other areas that really did catch my attention (you can't sit in front of a computer all day) and I was able to make up courses for myself (not sure if a tech school would allow this or not).
I think it was worth it. Heck, if anything, you can make up a course for yourself and tell the prof. that it will be to earn a professional certification (A+, CCNA, or MCSE). That will give you an edge when looking for jobs afterwards.
But I definitely paid for it, ending up with a huge sum of student loans to pay off......
Good programmers are largely self-taught.
It may be useful to hang around with other people at a university so that you can compare yourself with them and decide where you fit.
I went to the best tech school that accepted me (Rensselaer). I have this piece of wisdom to pass on: choose a school that's near a beach--Miami, California, whatever. The climate should be temperate all year round.
I went into the Air Force after I graduated, and since then, only one employer was impressed by the fact that I graduated from Rensselaer.
I would, however, suggest that you try to get a technical/engineering school that meets the above requirement of beach-i-ness.
To some it may seem like this post is meant to be funny. It's not. If I could do it all over again, I would choose the best technicial university that's near a beach in a temperate zone.
Check out Chad's News
At first, I thought this question was: "Where should I choose?" But I see that's you actually haven't asked that. You said "I perfer the liberal arts school" -- so go there! Really, not to sound too soft-n-squishy, but follow your heart. This applies just as much to tech-head CS majors as to flower-smelling liberal arts students.
Also, realize that, for CS anyway, education is constantly changing. What you will learn in a CS program now is very different than had you attended 10 years ago, or even 5 years ago. Liberal arts are more 'timeless', as humans (unfortunately!) don't seem to be changing as fast as technology.
Undergraduate (BS, BA) work is also very different than post-graduate degrees! Really, if you're smart and moderately self-motivated, for the first years (and perhaps an entire undergraduate degree), it really doesn't matter where you attend. It's your attitude towards education and knowledge that count.
To answer your questions, realize that almost all jobs with a CS degree are 90% application, and 10% 'theory'. And that 90% application is very different from position to position, as well as the 10% theory that it rests upon. So, there will be a large variance in the answers your receive here.
MY answers, from 15 years in the video game programming industry:
"How much would the tech school vs. non tech school matter?" A very prestegious tech school will help you get an interview, from name recognition alone. That's not very useful, though, as what matters much more are: previous on-the-job experience, demonstrated aptitude and flexible thinking skills, and personal enthusiasm and the ability to work with others.
"Are CS majors from non-tech school considered inferior?" No. Skills, how you can apply them, and the value they bring to the company/project are what matters. Co-workers will care mostly if you're a jerk or not, and if you make their jobs easier or more difficult. I have never seen any video game programmer with a framed diploma hanging in their office/cube -- it simply doesn't matter.
"What would an HR department think? What would you think if you were hiring?" HR departments are to make you feel warm and fuzzy (with one hand). They aren't the ones you have to impress.
Are CS majors from non-tech school considered inferior
It's getting so that any bachelor's degree is about worthless except as a stepping stone to a master's degree, mainly thanks to absurd grade inflation. If you show up to class 90% of the time and are sober, you'll get straight A's in most bachelor's programs these days (if you don't show up or aren't sober, you'll only get a B+). So I advise going to whatever school has the most interesting non-CS bachelor's program that you're interested in just for fun and then spend another year and a half or two getting an MS in CS from a serious CS school. The difference in starting salaries and opportunities between an MS and a BS make this more than worthwhile. I advise this as someone who has a BA in non-CS from a state school and an MS in IT from a prestigious private school - salaries and opportunities are a LOT better with an MS.
As a Dutch guy, with slightly more math in the Dutch high school than an average American high school, I went to a (selective) American liberal arts college.
In my first year, i took a few Math and CS courses that I liked. I then realized that to graduate in Math or CS, I would have to start taking the courses that were prerequisites to the ones I took, because otherwise I would not be able to gather enough Math courses to qualify as a Math major. Same for CS.
IMHO, learning to program is important. Learning programming languages is not.
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.
One key point is that the CS instruction is heavily theory-based. While it's important to get experience writing code in specific languages, in reality the bulk of that experience will be earned in the workplace as opposed to university. But in my experience, if you understand the theory behind programming models then you can relatively easily learn to program in just about any language.
In most cases no, but if you graduated at the top of your class from MIT that probably would help you.
I'd concentrate on the strength of the program first and the notability of the college somewhere beneath.
Far more important than the where, is the who...
University is about "networking"; building contacts who will help progress your career. The actual degree or even qualification itself are almost completely irrelevant. At Uni you are creating your "old boy's network". People who will later give you work contracts, quash driving offences, introduce you to politicians etc.
With that in mind you should take a look at the type of people going to each institution. Are they middle class, working class, wealthy etc. What are the entrance fees?
Deleted
The where is very important depending on the job you see yourself in after - if you have thought that far ahead. For example there are some places that would align themselves with the Financial Services industry and are on the "milk round" for jobs by the big players in that sector, whereas others would be more interesting if you plan to move into media for example. Do some reading up on your choices if you are already planning a possible career! In spite of previous comments it really can matter for many years where you were for your higher education.
If you are just going so you can chill out for a couple of years (and goodness knows there are days when I wish I had) - pick the one with the best social atmosphere!
As an undergrad, I wouldn't sweat the liberal arts vs. tech-focused issue too much, as long as it's a solid program.
Where it really matters is grad school. You'll tend to find that the serious CS grad programs (MIT, UC Berkeley, Stanford, Brown, U. Mich., etc.) have the professors who know how to get published, and know how to attract lots of research funding. It's these professors who are most qualified to teach you how to be a very successful researcher. Not that it's impossible at smaller or less established schools (UConn, etc.), but your odds are lower.
I am a professor at a small liberal arts college in central PA in the area of computer engineering (not CS, but close) and my advice would be that you need to go where to a whichever school offers you what you want (program/environment/student:teacher ratio/course opportunities/research opportunities).
As someone pointed out, there is a difference between the two school. In the end, very few jobs will really care. (The only caring you may get is if someone you are interviewing with _went_ to your school.) I know that a certain dominant software company doesn't care where you are from or what you do as long as you can program. I have a feeling there are many companies like that, which follow suit.
The environment and atmosphere will be different at these two types of school. I went to NC State and Virginia Tech and now teach at a small liberal arts college. The entire college of engineering at my current location is smaller than my _department_ was at VT. The means the student teacher interaction will be very different. Also, the atmosphere of the program will be slightly different, often including a much stronger background in the arts and humanities. (Well rounded engineers and scientists are good!)
In the end, you need to pick the school that fits your needs and desires. Go to the campus, talk to profs and students, wander around, and look for where you feel more "at home." If you are not happy or do not feel like you belong there, then the next 4 years are not going to be enjoyable.
Good luck!
stu =)
Funny and true, very true.
A dozen students a year is probably too small to have the depth and breadth you'd want to give you a truly "top-notch" CS education (although a focus on theory is far from a bad thing, seeing as how the undergraduate programs even at top-ranked institutions often skimp far too much in that department).
However, all other things being equal, I might vote for the liberal arts school anyways. Smart people are successful pretty much wherever they go, and the most important thing you'll learn in college is how to think. Memorizing Tomasulo's Algorithm or getting really good at handling templates in C++ are relative wastes of time compared to learning how to apply the scientific method and developing general strategies for thinking critically about complex problems. You could do a lot worse as an undergrad than to get a good exposure to the theoretical underpinnings of computer science, study physics and math really, really hard, and spend the rest of your time learning from people who don't spend all day sitting in front of an LCD screen.
The vast majority of the people I've met who have been truly influential in CS didn't get there by mastering their undergraduate material: they made contributions by looking at problems in ways that wouldn't occur to people who only know what's in the textbooks. Additionally, very, very few of these people have been what I'd call hardcore hackers in a traditional, code-oriented sense.
Good luck!
...just tech school graduates by and large don't have the skills to be as eloquent in defending their choice. When 20-year-old computer types congregate in large groups, little good comes out of it (unless it's a prank played on Caltech). You don't need hundreds of other tech folk, just a handful of very interesting, creative and motivated people. And, if that's not your thing, hippies have better parties. "Liberal Arts" comes from the late-Roman notion of the fields of human inquiry suitable for a free man, as opposed to those sciences needed by the slaves under him. Of course, Roman freemen didn't really do much work in life. The modern interpretation of the LA idea, especially in a LA college, consists in teaching skills and fields geared to improving the person, not the person's marketability. And somehow, at the end of the day, that makes the person a better hire, too.
I faced the exact same question about three years ago. I couldn't decide between tech school and liberal arts. Well I chose the liberal arts path and it was the best decision I could have made. Granted some of the topics are a waste of time but the theories are what will get you the job. Knowing the right way to do something or write code (most importantly) is what will get you the good job. How far will you get as a PC tech at some company? I am already looking at jobs and many companies like the fact that you know the basics and they can take you the rest of the way with the nitty gritty things you didn't learn in school. With the liberal arts background you will also be more likely to get CIO or some administration position as apposed to a tech who will simply stick to doing the labor part of things. Good luck in your decision!
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? ;)
Go to the more technical institution. Simple.
Why even ask the question?
As long as you are sharp, and either program is halfway decent, go to wherever you want. I've met programmers from famous engineering schools as well as programmers from famous liberal arts schools who have all been excellent. How much work are you willing to put into becoming a great programmer? You will get out of either program whatever you put into it. Extra hours spent hacking, screwing around with various open source programs, and doing other related work will matter more in the long run. Also, if you don't have a boyfriend or girlfriend and are looking, you will find more guys at the tech school and more chicks at the liberal arts school. Head for the target-rich environment.
It seems as if your decided on CS for a degree. While many people have posted on the additional experiences and opportunities that you could have by going to a school that will likely focus more heavily on required classes from outside your chosen degree path, I have yet to see any posts on another important factor: How broad is their CS program?
I went to a college that had a smaller CS program, but it was decently broad in nature. By the time I got to the 400-level classes there were 15 or less people in each class, but the classes also represented a great number of sub-fields in CS; from advanced classes in AI, Distributed Computing, and Signal Processing to a number of more esoteric courses they were trying out in web and 3D modeling. Not to mention the ability to pick up business classes or additional math or science classes (or even Liberal Arts courses) that could allow you to pick up a minor or further explore another interest.
If your primary goal is a CS degree, I agree that it rarely matters to an interviewer where you received that degree (though it does matter on occasion). However, the breadth of courses available from the institution and the number of classes they will _allow_ you to take from your major (as opposed to required credits from other branches and required elective credits from other branches) are going to have an impact on the level of knowledge you attain and the number of sub-fields you will get to explore. Additionally, you should look into how much the school supports internships. One of the things that helped me best during my college education was the fact that I was working for pay on real projects, which then gave me a different perspective on the course material.
Also, if you are considering a highly recommended liberal arts school and a highly recommended tech school, why not look at one or two state colleges that have good CS departments? The price range (even out of state) may be in the same range you are looking at for that liberal arts college, the fact that it is a state school will likely have brought in students for a wide variety of degrees, but (if you use CS program quality as criteria) there will also be a greater breadth of CS classes available, allowing you to learn about multiple sub-fields to better determine where you would like to go in CS.
Whee signature.
If you can get hold of them, check the average highschool grades needed to get in at both programs. Having a class with twelve students would be great, if they are smart. Being stuck with twelve doofuses for 4 years would be less attractive.
I've hired and worked with a lot of programmers. I'm biased toward computer scientists with solid technical training. They often understand far more theory and how the technology underlying their application works. I have hired people from technical schools that don't have the deep technical understanding of, say, compiler theory and machine language. Usually, these people can move from one language and environment to another with relative ease. As systems and technology evolve, adaptability can be key to success.
.dll file to see what a developer had changed in a library. It never occurred to him that the dll is a compiled binary. When I finally dumped one for him in assembly, he was totally lost. He needed to see the source code. He has a BS from a private engineering college, in web design, but didn't understand what a compiled library is.
Some of the things I've run into when hiring non-scientists in programming/development roles:
A programmer that doesn't like other programmer's practices of using "makefiles" and lots of little programs to develop large tools. He's never heard of modular programming in the courses he's taken. He also does not understand how to document code at all. Conditional / dependency based compilation is confusing to him. And he'd rather see all his program in one "view." In a recent discussion, we found out he's never heard of dynamic and static binding, and he didn't understand the concepts. Of course, people trying to support his code are frustrated. He has a BS from a liberal arts based program in a general LA college.
A web programmer that graduated from a very technical school, who wanted to look at changes in a
A network manager that can't write anything but the most basic batch script files because using the "if" statement is too confusing. He has an MS in Computer Science from another country but his undergrad degree is in some LA business program. I believe that he missed out on a lot of the basics as a result.
A graduate of a 2-year technical programming certificate who doesn't know any programming languages or constructs outside those in C++ and C#. PHP seems "too wierd to program in" for anything he wants to do.
All of these people are working on a common project, different aspects.
I'm worried.
I have to disagree. While in the US there is a grade inflation in many liberal arts courses, my experience is that this is less of a problem in the engineering and sciences. In my job, I do a lot of interviewing for technical positions. And I think you would be surprised at the number of C's and D's I see on undergraduate transcripts. Since we hire mostly PhDs, I am sometimes surprised that some of them got into grad school.
I really do feel your pain. When I went off to college in 2000, I was accepted into The College of Saint Rose in Albany, and RIT in Rochester... I wanted to goto RIT but, my parents amde the decision for me. How wonderful eh? In experience looking for jobs, no one has really cared that I went to a school that primarily produces highschool and grammar school teachers. The CS Department was maybe 30 students... theory based on pretty much everything. programming was NOT something that we got into depth about. I learned pretty much everything I know about programming on my own (Which I think is better than a classroom setting anyway). I would say go to the tech school, as a liberal arts college will provide you way too much theory and not practical knowledge. Just my cents...
-- Josh
"Whoopie! Man, that may have been a small one for Neil, but that's a long one for me!" - Pete Conrad
Tech school == no media studies / communications majors.
no MS/Communications majors == fewer parties.
fewer parties == less drinking.
less drinking == less drinking.
hmmmm.. what was the question again?
Oh yeah. Tech vs Liberal Arts...
Look at it this way: pretty much any technical career path you choose will involve more than just technical responsibilities. You'll need to communicate with customers of some sort as well as management-types. To do this effectively, you'll need more than calculus and C++/Java programming skills. As for successfully interviewing with a prospective employer, being self-confident, well spoken, motivated and eager to learn new things will go farther than a high GPA. We've got plenty of non-degreed employees that are fabulous corporate assets and just as many multiple-degree employees that should really consider a career in either the food service or housekeeping areas. A piece of paper might get you a better interview, but a good attitude, well rounded experience and who you are will get you a better future. (IMHO)
chown -R us
The top CS programs don't have "programming language" courses at all (actually they do, but the classes don't count towards degree credit). The ability to write simple programs is a prerequisite for entry, not something that is taught, and certainly not something that is taught "later", unless maybe you are talking about some school in siberian russia where they don't have computers. This simply makes no sense. Yeah, you gain experience through projects, but the focus is *always* on theory, from start to finish.
.NET coder (*yawn*). Then again those pay a lot better than what I do (academic research)... To each his own. On the other hand, with a solid background in theory it is trivial to pick up those skills, giving you the ability to try out the cubicle life for a few years and move on if it doesn't suit.
IMHO the tech school is a waste of intellect unless maybe you want to be an overpriced Oracle DBA or a
The only real danger with a liberal arts school is low standards / grade inflation. If the academic standards are too low, the profs start to let laziness slide by, which is uninspiring at best. I'd take a close look at the CVs of the profs in the department--see if they have an active publication record on topics that haven't been rehashes of the same old idea for the last 10 years.
My other advice is to research the programs of the top schools. You might not have been accepted there, but if you take a close look at what is covered, you can figure out what you need to do to get an equivalent education (which is entirely possible regardless of where you "go" given sufficient motivation).
Chinese and/or Indian.
Many years back, I chose a highly regarded tech university over a liberal school. The workload was rough, and in nearly every class (CS/Math/Physics) we were basically required to self-teach because the professors didn't give a rat's ass about anyone but themselves. It was the sort of thing that builds discipline and, in theory, you could later pick up a manual and learn anything on the job. However, the overall frustrating experience eroded away my love for programming and I eventually left the field altogether. It just wasn't enjoyable anymore.
;)
I did wind up taking a few summer classes at the local liberal school, including Calc2 which I had some problems with at the tech school. The professor actually taught and explained the material. It was an enlightening experience, and in retrospect I wished I went to that school to begin with. Besides, it had hotter women.
don't choose the tech school just because its a tech school. be sure to choose the BEST school out of your two choices. here is why:
1. it is extremely important to get a well rounded education
2. it is very very important to be in an environment where you will meet people that will be important connections for you after school is over.
3. its is also important to enjoy your college years and have fun (sex & women)
i went to a tech school. i got a fine education, but i wouldnt say i got the best well-rounded education. i definitely didnt get #2 and #3. so while i got a great education in CS. i realize several years later that just having a great education in CS isn't enough for the rest of your life.
Humanities classes are not for reading/writing skills any more than CS classes are for programming skills.
What do you want to do when you're done with your undergrad years?
Go work for a company? Small? Big? What kind of business? Look at the companies you want to work for and see who they hire.
Start your own business? Why bother with college at all then?
Go into research/academia? What grad program do you want to get into? What kind of schools are their students attending?
Let's say you run a newspaper. Are you going to hire the person with a journalism degree from the liberal arts college or the highly technical college? Which one do you think has more of a focus on the degree in question?
I see a lot of "it doesn't matter" comments and being an Engineering Manager, I tend to disagree. Here is my usual ratio for hiring. Send out an ad. Get 100 resumes. Filter about 65 out right away. Look hard at the others and filter down to about ten. Call them for either a quick first interview or phone interview. (Let the flaming begin)
If I see a non-technical school for an engineer, I don't necessarily hold it against them, but I do look for some backing evidence of actual engineering knowledge. However, if I see a resume from a MIT or other school, I kind of know they had some actual applications experience in their education. I know my experiences from a highly tech-focused university included two major design projects that were of corporate caliber. I can't say I would trust a liberal arts or community college degree to have the same.
At least for me, the technical school may help you get past the first filter. After that, it's all about what you bring to the table.
Just my $0.02
Fast, cheap, correct. You get to pick two.
There might be some confusion here then, because when he said highly-ranked tech school, I thought MIT, CMU, Stanford, Berkeley, Caltech, or the like (assuming he's from the US). Of course the CS program at any of these schools would be firmly grounded in theory (presumably moreso than the liberal arts school), so maybe he does mean vocational school.
To the submitter: would you mind actually telling us what schools you're talking about?
Maybe the story of an invention will shed a little light.
Once upon a time there was an invention.
The inventors showed it to a scientist. He said, "Cool, why does it work?"
Then they showed it to a engineer. He said, "Cool, how does it work?"
Then they showed it to a business major. He said, "Cool, how much can we sell it for?"
Then they showed it to a liberal arts major. She said, "Cool..."
"You want fries with that?"
Never shake hands with a man you meet in a fertility clinic.
Unless you're looking for a job that requires explicit CS skills (e.g., writing compilers), probably 0.1% of them, then the fact that you have "CS skills" is pretty much beside the point.
What I care about when interviewing people, and most of the companies I have worked for(*), is whether you can think. Can you easily see the effects of your decisions? Can you get the bigger picture easily? Can you effectively communicate your thoughts?
That's why the best developers (in my experience) have usually had non-CS degrees. English majors, pre-law, math or engineering, etc. It's easier for these people to pick up languages and technology than for somebody focused purely on technical subjects to pick up the other skills.
But... the devil is in the details. A good school will force you to develop these skills regardless of your major. Some fun jobs do require you to have the CS theory down cold. But maybe you'll want to go into a different direction after a few years in the workplace, or even after just a few years of ugrad school.
(*) On the other hand some companies are buzz-word driven, especially with people of relatively little experience. I think they get second-tier employees, but that's just my opinion. Of course small teams will always need people with strong matching skills, but that's a different situation.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
Here's a chart that might help you make your decision. Being surrounded by art majors suddenly doesn't seem to be such a bad idea after all.
http://www.gnxp.com/blog/uploaded_images/Picture-1-720552.png
:/- spoon(_).
It's the girls, isn't it.
Liberal arts schools have girls.
Hmm? Ahh, Doughnuts!
Sent from my ASR33 using ASCII
Are CS majors considered inferior? Yes.
Once you've joined a company, worked there for a while, you too will have the same low opinion of graduates. That will be doubly true of the graduates who think they know everything and should be hired as principal engineers immediately.
A good attitude is the best thing to have, as an inexperienced job-seeker (to be), you only need 2 things: enthusiasm and a willingness to learn, and good communication ability.
Umm.. The 3 things you need are enthusiasm, willingness to learn, good communication ability and some technical skills of any sort.
Bu**er. The 4 things you need are... I'll start again. Fortunately you no longer need a fanatical devotion to Bill Gates.
Flame away if you like folks, but I'd say tech schools aren't for kids just out of high school. Believe it or not, but you may take your first CS course...and hate it. I don't know how much programming you've done before this, I don't know how well you understand the underlying theories and implementations; but I do know that I went to a university and found that about 75% of the people who start off wanting to go into CS go into something completely different. Tech schools are for people who either worked straight out of high school and now know what they would like to do or they are for people who went to college and found they wanted to gain additional computer skills or change industries, etc. Then, here's the shocker for high school and college students who have been fed bullshit about how important grades are for all their lives; five years after you graduate, nobody is going to give a damn. They're going to look at who you worked for, how you did there, why you were fired and how you interviewed. To be quite honest, I'd rate social skills as being more important than where you went to school, insofar as getting a job and keeping it. You can be as skilled as you want, but if you don't interview well and when hired you cause problems for HR due to being a dick, you want get or hold jobs very well. If nothing else, a university teaches students the social skills they need to get by; and probably more importantly, to fucking relax.
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
This sig is not the Zahir. Lucky for you.
I started my education at a liberal arts school. The subjects that were in my major, I focused a lot of time and energy in, but I didn't give a crap of the gen-ed courses. I finally switched to a specialized school to finish up and did very well. Don't waste your time with stuff that you'll have to force yourself to care about.
I'm not in CS but am in engineering which should be similar enough for my experience to relate. I did my undergraduate at a state school with a more liberal arts bend and am currently getting my phd. at tech school. I never thought I'd say it but I miss my boring liberal courses. All math and no Plato makes Jack a dull boy.
.etc makes you roll your eyes, go for the tech degree because the liberal arts school will bore the pants off of you. You'll be more successful if you study what you find interesting.
Your primary coursework will probably be similar at both schools only at the tech school there will be more of it. At the liberal arts school you will be exposed to many more ideas from a wide range of fields. Many of these ideas will be applicable not only to your chosen field but your life in general. While some will disagree, I think it is best to be the kind of person has a wide knowledge base with a concentration of knowledge in a chosen field(Gaussian Distribution) rather than an extreme concentration in only one area(Dirac delta function). You'd be surprised how broadly skills from one area can apply to others.
What it comes down to is your personality. If you're the kind of person who reads books from a fairly wide range of genres and is interesting in things other than math and CS, go for the liberal arts degree. If the idea of reading for fun and having to think about history, philosophy,
Long term, your liberal arts college is probably going to give you a broader education, and set you up for a quicker career path to management, starting your own business or other broadening out from plain development, if that is what you want. It'll also offer more opportunities for liasing with hot chicks during your college years, which is not to be underestimated.
Short term, you might find that the initial job offers immediately after graduating offer better salaries, or are more forthcoming from the tech focused school, but that's more difficult to predict, and it could just as easily swing the other way.
If the CS department of the liberal arts school is reputed inspite of its size, I would prefer the liberal arts school (eg: Princeton has a small but reputed CS dept). The problem with a small dept though is that you won't have a lot of freedom to explore different areas of CS, which is not necessarily a good thing for undergrads.
I am 30+ years out of college, HOWEVER, my oldest daughter is finishing an engineering degree at Georgia Tech. Here are my observations.
At an engineering focused school, you are surrounded with like-minded students. This is good and bad. Good because you get 1MM different opinions, bad because they are all like-minded students.
If you decide to change majors, you're not starting over. If you are considering computer science or engineering, an engineering school will have a broader range of classes in your major. Within a Comp Sci program, you will have a broader array of related studies (embedded software, etc).
I was very impressed that Georgia Tech offers a vast web of support for new students. Several similar schools offer a "Freshman Experience" program where you have tutors for all the core classes in your dorm, via cable TV (not kidding, you can sit in your underwear and call in problems they will review on TV), and within your school). They focus on offering admission to students interested in engineering (and having grades, etc), then they make sure they have everything they need to be successful. Attrition rates are under 10% versus 30-40% 30 years ago.
As a parent and hiring manager, I am not that keen on an engineer from a liberal arts program. Why bother? The few candidates I have interviewed have sucked compared to their engineering school counterparts and if they were *really* interested in computer science, why wouldn't they get a BS in CompSci or related programs? To me a BA means they studied theory, didn't do lab work, and they aren't as immersed in technology like the students I see at Georgia Tech and other programs.
I would consider a co-op program as well. It gives you real-world experience and lets you focus on what you really want to do in the working world. RPI, Drexel, Georgia Tech, and lots of other schools have these programs and they have been placing students for decades (like 50-75 years).
I have had discussions about being well rounded. I think you can do that yourself, after you leave school. College is a 4-5 year period of 'immersion'. If you want to read Yeats, that's what libraries are for. If you want to write poetry, there are groups in every city and everyone is a publisher on the Internet.
Hope this helps.
-Paul
I agree with the many previous posts stating, that there is a significant difference in the personal experience that you make at a Liberal Arts University (or similar) and at a purely technical university.
Speaking from personal experience I think that it might actually be very favourable to your skill development to study at a college that is not engineering only. Normally you might spend most of your days in the lab or going to lectures dealing with mostly purely technical subjects. Of course this is very interesting and probably complying with your expectations. However at least at lunchtime, when you go to the campus cafeteria it might be quite nice to meet some people who do something completely different (non-technical) than you. Also you might want to take a literature class in your spare time etc.
What I am saying is not that liberal arts in general are exciting and colorful, and engineering dull and grey. It is the mixture that makes the difference. To write good code you have to get inspirations, and if you are influenced from a field of interest opposite to your own this will help you in your development. The brain needs these stimuli.
This is also the reason why you go to university / college. Of course you can get the same amount of practical skills by acquiring job experience. But what you should get in university are NOT only the practical skills, but also the ability to abstract problems even surpassing the borders of your field. For people studying the arts it is exactly the other way around. They also need counterweights to root their creativity.
If I would be hiring for my company I would (given the case that the interview results are equivalent) choose the person from the Liberal Arts college.
-- LP-Research
As an engineer and a hiring manager, I am much more interested in a well-rounded person who can think, communicate, write, and spell well :-). Working well with others is important.
:-)), and that person could talk to me cogently about experience developing those projects, I would hire them even if they had not been to college at all. Some of the very best engineers I know never graduated from college.
I don't care about class work or teaching style at the school -- but I do like to see a body of coding work. The best advice I can give is go to the liberal arts school, but
1) Take charge of your tech education yourself. You should learn as much from googling around as from your tech classes. God! if only I had had the web when I was in college!
2) These days your engineering peer groups are all virtual anyway.
3) Contribute, contribute, contribute. Begin now. Don't wait till you get to school. Learn a language like ruby (which BTW is great for learning the theoretical concepts!) Then, begin actively contributing to open-source libraries and projects. Start by helping to improve some existing libraries. Then think up your own contributions and begin contributing and actively maintaining them. Learn how those libraries are packaged, uploaded, deployed. Learn to iterate.
4) Learn how to work in teams (source control, using a bug tracking system, prioritizing the work you do to fit into limited time).
5) Get summer jobs that involve programming. Work somewhere cool that values good engineering practice and creativity. Do not work programming AT&T telephone switching equipment.
6) Try to leverage your peer group and contribution history into getting "scholarship" attendee status at open-source technical conferences, such as the OS Con (usually in July, usually in Portland).
As a manager, if I saw someone who had contributed a diversity of nice, mature, open source tools, whose code I could freely download and inspect (and unit-test
Good luck!
-c
I had the same choice several years ago, choosing between the "best" public liberal arts university in the state and the "best" public science/math/engineering university in the state. Costs were about the same, and both carried the same "prestige". I toured both and went for the latter. Never regret my choice.
I feel fairly confident in saying I had more opportunities presented to me at the "technical" university I chose vs. the liberal arts school. More resources, more programs, more "stuff" to pick and choose from in terms of coursework, extra-curricular activities, coop/internship positions, etc.
It is ultimately going to come down to what you want out of a college degree. As others have said, where you graduate from really doesn't matter. What does matter if what you are able to make of the degree / put down on a resume / spell out in an interview.
We've had a variation on this discussion a lot, as both my wife and I were at liberal arts schools, but I got my MA and she got her PhD at state schools.
Probably your top-end tech school is going to be massive - tens of thousands of people, of which you'll be one. You'll have access to every toy under the sun, and be able to take classes in every possible subject imaginable. You'll also be a number. A cog in a machine more interested in their grad students than their undergrad. You'll see the prof from a distance, occasionally.
At a liberal arts school, there are maybe 3K students, tops. You work directly with the prof. And the class selection and resources are more limited.
In our opinion, you can get an equal education at either place. If you work your tail off to utilise every resource at the big tech school you'll come out having experience with things the liberal arts student will not have seen. If you work your tail off at the liberal arts school you'll spend four years working directly with the professors on high-end projects, probably publish a paper or two.
On the other hand, if you coast, the liberal arts school will often hold your hand and try to get you back on track. The big tech school will eat your lunch and leave you at the side of the road.
Hiring programmers, as in pure straight up programmers, is unlike hiring sysadmins or networking guys or tech support or any of these other jobs in that your entire work product can be sent easily by email.
So although I may give a cursory glance at your past, your school is not going to be particularly interesting to me. I might be impressed if DURING college you've done done some interesting things, like say functional/logic programming, neural nets, cluster programming, and so on, the stuff you don't typically encounter in normal boring programming.
But in the end, you write code for a living. So your REAL resume is far more about your code than it is about your degree.
You learn a LOT more about a programmer by simply asking them to send you 5,000 lines of their best code than you will from a resume.
If you can't put together 5,000 lines of stuff only you wrote at all, or you can't because "I wrote it at the company and they won't let me" that says a lot too (mostly that you don't do any programming at all outside of work, but also that perhaps you don't have any experience working in an enlightened programming culture).
This is why experience on an Open Source project is so valuable. It's a repository you can point to and say "I wrote that" and I can look at the repository logs and verify it.
I get to see what your coding is like. Are you clean, do you comment and document well, do you just cut and paste a lot, are you a leader or a plodder (both of which can be useful).
An Open Source project is job experience with unlimited disclosure.
I don't care if you went to MIT and did computation physics of compressible fluids. If the other guy can show me 10k of well built, maintainable and innovative code, he wins.
Unless he's an asshole to work with. But then the job is his to lose at that point, not yours to win.
I faced the same choice a bit over a year ago, between Brooklyn PolyTech and SUNY Oswego. After visiting both schools, and speaking to a lot of people. I went for Oswego.
Now after only a year here, I'm working with two professor on the side and have a good choice of doing grant work next semester. If you know your stuff, and you can show that to your professors I feel that you'll get just as much out of a Liberal Arts school as a Tech. Also, Oswego has Doug Lea that's a big plus.
Bottom line is that if you are good at what you do, a Liberal Arts college will provide you more opportunities to do work outside of class. Adding both to your resume and real world experience.
I studied Philosophy at a good university, then followed with a marketing MBA. SInce then I have worked in Product Management in the Semiconductor and Software business with no-one being critical about my skills. It really depends on what you are and what you want to do after your degree.
In my Philiosophy courses there were lots of CS and Mathematics students, and they all said that our side of the campus (the liberal arts side) was much more fun that their tech side. For one thing the levels of creativity and debate where much more stimulating - and the approach to discussing and resolving problems brings a lot even in technical environments (in tech reviews I often see different problems and novel solutions that get approval from the tech geeks).
Don't be afraid of going the "boutique" route, you will have more insight, and practical experience gained on the job is worth much more than years sitting in a lecture hall.
The "Where?" is important, but the "Select" and "From" are equally important.
Where doesn't matter for tech's, unless you are bucking for a Director or VP position. Middle management isn't high profile and doesn't need to adhere to a background in MIT. And the where in IT stops mattering after 10-15 years. I have even removed my college from my current CV entirely. It's of no use. After you've accomplished something, nobody cares what school you went to. That isn't what you're selling. So school slike Virginia Tech or Georgia Tech or MIT an the life are what I'd be aiming at. Some liberal arts colleges like Berkeley are excellent in tech too though, but you said yours wasn't so I'm assuming it's not that school.
So as far as your question goes, does it matter where you go to school. Yes, find a place that you can learn. If I had a choice between a tech oriented school and a liberal arts school, and knew that I wanted in computing/programming, then I would choose the tech school. You are paying these people to teach you so you can feed yourself. You can find women at any school. You can find liberal BS at any school. You cannot find good practical classes at any school. People who've been there done that don't grow on trees, and those are the people you NEED to learn from. It's not optional to understand reality in IT. Either it's a 1 or a 0. So find a school that can provide you with the tools to hit the ground without going splat.
One more thing. You will regret going to a pure liberal arts college after your 4 years are up. And you will regret it at your first job interview. Just a word of warning. Good luck.
I went to a prestigious liberal arts college and received a CS degree (sounds much like the college you are considering) and my husband went to a well known engineering/tech school. Either way, you will receive a good education, but here are some pros and cons as I see them:
1) If you go to a tech school, when looking for summer positions and full-time jobs, the school is more likely to have good relationships with tech companies for a wider breadth of opportunities. If you work at it though, you can find the same sort of opportunities at the liberal arts college. (You shouldn't have a problem finding a job as long as the school is good and you do well in your classes).
2) You will likely get more hands-on experience at the tech school, and possibly more research opportunities, but again, if you want to pursue these opportunities, a professor at a small school with fewer students will probably be happy to invest the time in you.
Really, you just need to go with your gut...if you're unhappy at a school, you won't learn as much as you should, so making the decision solely on what other people think is probably not the right way to do it.
Good luck!
I went to a University with a rather small CS program in a liberal arts school. Unlike your liberal arts option, however, it was very fact oriented which is good for me because while I enjoy hearing about theory, I have no strong desire to go on and try to implement it. So, that was all to say that you should figure out for yourself how much theory vs. fact you, personally, want to do. Something to keep in mind is that if you have a desire to switch to a different school halfway through your education, you'll likely find yourself behind in languages when you get to your new school if all you done is theory.
You also need to figure out how many things you're interested in outside the realm of CS. This sounds like something you already know, but I'll say it because you don't gain a real appreciation for how true it is until you see it for yourself: Liberal arts schools have the advantage of stronger programs in other areas. My university's Tech. school rival, for example, had a band program that was downright pitiful which is something I wouldn't have been able to know, even with a visit to the school, until I entered the program, saxophone in hand. My liberal arts college also gave me the unwitting benefit of showing me that I've writing skills I didn't know I had, and as a result I found my minor in English.
In my personal experience, the type of school really isn't as important as its reputation. The school I went to turned out to be one of the biggest party schools just the year before my arrival. Thankfully, the school president, as undermining as she was in other ways, was able to turn that around using a variety of programs that attracted students interested in more than next week's kegger.
For myself and from the little bit you've told us, I'd pick the technical school out of the two. I like getting stuff done too much to sit around for a year or two being told about how stuff works. However, if I were in your college shoes, I'd probably never find that I was interested in writing and probably end up with a minor in Music from a school who didn't really have the program for it.
English minor aside, there's no time to proofread this morning. Grammar nazi's will be shot.
HAI ASL PLZ!!1!!
Seems simple enough to me!
Undergrad degrees are important, but a graduate (masters) degree is more of a defining moment.
Even if you don't go on to get a masters, your work experience and connections will be far more valuable than the initial undergrad institution (or even degree Designation you receive BS or BA, etc).
Ultimately If you're a talented coder with a good reputation in your industry, it won't matter where you got your undergrad from: Tech U. or Arts U.
In terms of "what the HR dept. thinks": A carefully chosen internship that will allow you to code is a good way to make some good contacts and be a starting point to cut your teeth.
This also gives you a few reference contacts.
I'm not in HR, but I think some of what they look for are "buzz words". If the buzz words they're looking for are in your resume they'll likely give you a call and start to do some research on you.
Many of the best and most solid (reliable) software developers I know and work with didn't graduate with a CS (or even Eng. degree). While I don't recommend that for everyone (just so happens these guys are naturally good at what they do), it's worthy of note.
I do hiring now and then. Our HR department doesn't care whether your degree is from a liberal arts school or technical school. Even with HR departments that do more screening, if you had apparently relevant courses from a good school I don't think they would care.
Once it gets to us, we're more interested in what you've done, although perceived quality of the school and the kinds of things you have taken are certainly part of the picture. But someone out of school whose only programming is for courses isn't going to be very attractive. I might be willing to count an advanced projects course that did something realistic. We look for some signs of what you've done, whether summer jobs, programming part time for the computer center, or things you've done on your own. A technical school may provide somewhat more opportunity for this, but you should be able to do it anywhere.
I don't know whether other managers feel this way or not, but I'd put at least as much work into your cover letter as your resume. It's really hard to tell what's going on from a resume. It's fine for screening, when you need to discard people who don't fit at all. But you don't know what the jobs really were, and you don't know when someone lists their skills whether it's true. The cover letter gives you a chance to explain what you've really done and give some evidence of real skills.
I attended a relatively small (3000 students) liberal arts college for my BS in computer science. I attended a top 3 computer science program for my MS in computer science. Having seen both sides and having interviewed software developers for years, I can say I far and away prefer those with the more well-rounded education. As your team lead/mentor/senior whatever, I can teach you whatever technical skills you lack on the job - you won't have anywhere near most of them when you graduate anyway. I can't teach you interpersonal skills - how to communicate effectively, how to write well, and what the larger social or business context is of the project you work on. All of those things have been important in every job I have held, and every project I have worked on.
The school one went to ranks about last on the list of determining factors as to whether I hire someone or not. It *might* be used as a tie breaker if two candidates seem equally good. Personality, perceived work ethic, and many other factors are far more important. Besides, generally a new grad has to unlearn so much in order to function in the real world that it really doesn't matter as much as people might think.
The thing that determines your career success is your people skills. The corollary to that is: it's not what you know, it's who you know. L337 skillz will only take one so far.
/.ers ignore or aren't aware of is that liberal arts schools teach serious thinking skills, like logic for instance. If you want to go to law school, you have to write the LSAT. It is basically a three hour logic exam. What, you ask, is the best preparation for the LSAT? An English degree! That's right. The average hippie with a BA in English has better logic skills than the average computer programmer. Doubt me? Drop down to the book shop and pick up one of those LSAT preparation manuals and see how many of the questions you can get.
The other thing that
You are absolutely correct in pointing out that the choice is between working in a cubicle or doing whatever you want. I too would suggest the liberal arts school.
I would say go to the Liberal Arts school, you'll have more fun and still learn. Besides, your CS job will be sent overseas in a few years anyway so the Art classes will do you good in your second career 4 years after you graduate!
After you get your first job it won't matter a whit where you went. The degree and university quickly sink to the bottom of your resume.
Go to a good 2 year college first, then finish your degree and get a master's in business or some other subject (law, education, business, whatever) in a school with a good post grad program.
Lots of techies can get that first job. Too many of them stay at that level because they didn't learn the business and communication part or didn't anything that expands their horizons.
I went to a relatively well known liberal arts college myself and I really loved my experience. I was more in a math/economics field, but I found that I was able to take classes at a highly regarded technical school with no problem at all. My school had a partner program with this other school and we could take classes at either. There was even a bus that went back and forth between the schools. This meant there were a lot of computer science/engineering students who basically took half their major requirements at the technical school. Check to see if the liberal arts college you're looking at has a similar program -- really the best of both worlds. Good luck! Sabrina
Based on the resumes that I get handed from HR, I firmly believe that there's no thinking going on.
I notice you didn't put in WHERE you are. If you're in New York looking for/at a tech school, look elsewhere. You've been warned.
No body -- except for large financial institutions care a whit about your college. What they want to see is what you've done with your life. In fact, some of the people we hire never went to college.
My advice is no matter which college you go to, get involved with the computer science department. Help take care of the machines. Learn programming on your own. Get involved with an open source project. Heck, if you can, do some work on the Linux kernel. Your cohorts will matter because this group of people will help you push yourself to do better and these will be the people who can answer your questions.
At a highly technical college, you'll have a bigger pool of people to work with and there's more likely a chance that you'll find a mentor who will help you out in your geekhood. Then again, there's a great value in a good liberal arts education. A good liberal arts education can show you things beyond computers and programming that you might actually find interesting and maybe career worthy. After 30 years of programming, whatever glamour there is in computers tends to wear out. Plus, you're constantly battling to remain relevant. And, then there's the younger, more technically apt people you find yourself competing with.
The point is simple: By the time you graduate, you need to have on your resume that you've actually done useful work. That you've shown initiative. Be part of the Summer of Code. Work on the Linux kernel. Do your own open source project. One of the people I hired got the job by showing me their webpage. On it was about four or six various coding projects. He also had a support forum with hundreds of users posting on it. When I showed the webpage to a coworker, he immediately recognized one of the software programs this person wrote as something they personally use. At that point, it didn't matter if this person went to Acme Technical School of Restaurant and Hotel Management, Plumbing, and Hair Styling or to MIT. He got the job.
Honestly, a piece of paper is a piece of paper - it matters far less than you'd think where it comes from - only if you have one.
Go with whichever school is cheaper - the HR droid is going to look whether you have a degree or not, that will lead to getting the interview, and the interview is what leads you to your job (unless one of the schools is Ivy league, then you're in an entirely different situation).
When you graduate with a significantly smaller student loan debt you'll thank me.
I was in a somewhat similar situation a back in 2000, when I went to college. I ultimately choose to go to a mid size (5000 students) liberal arts college. To be honest, I've never regretted it.
In the end though, I think alot of it comes down to what you want to do. Are you heavily into math/science? If so, the more tech school might be better for you. Conversely, if you really like technology/programming etc, but aren't a huge math/science guy, the liberal arts school might suit you better.
In my case, I liked the liberal arts school I went to for one major reason. The CS department heavily pushed communication, presentations, etc. I now work for a software company, and to be honest, that is one of the areas where I stand out. I'm able to easily give training classes, presentations in front of a group of people, quick on my feet talking, etc. Did I learn all of this at college? Of course not. But it definetly helped improve my comfort zone.
One of the things I do at my job is college recruiting. We recruit from a number of colleges, that vary from fairly elite engineering school, to an average run of the mill state school. Outstanding candidates/people is what we look for. Where they got the degree doesn't really matter, at least to me.
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
Dude, you are asking in the wrong place, this is SLASHDOT!!!!
I specifically decided not to do Computing Science even though it was by far my strongest subject. Instead I studied Physics and took as many computing related courses as I could. Most people value it more recognising that the programming I did was all applied to real work problems. I'd say it's a good talking point for interviews too. Back to your question though, I'd say choice of university matters a whole lot. I'm based in the UK in London so we have a slightly different system I guess but it's fairly obvious who has gone to one of the top 2 (oxbridge), a top 10, a decent one or just going for the booze uni. HR may filter on university, the interviewer may somewhat but once you get to the interview it doesn't matter what university you've put down.
Name recognition is actually very important. Many major companies (ones that tend to pay well :( ) only recruit at powerhouse universities. Also some companies only will hire from 'top 20' universities.
It matters, absolutely. Sure, you may be able to work your way into a great place fresh out of college, but we are talking increasing your chances here.
Safe = tech
I would say for virtually every interviewer I've known, myself included, where you went to school as an undergrad was not a factor in the hiring process. As a new graduate, you will be essentially an unknown quantity. We want to know - is this person trainable? Will they fit in to our culture? Are they a good worker? Your college experiences - were you active in student orgs? Did you take leadership roles? What are your grades and what courses did you take? Where you went to school have little bearing on those answers; what you did where you went does.
Go to the school that is the best fit for you - visit them, talk to students and faculty to see which best suits your needs and desires. School should not be a 4 year grind because you are someplace you don't really like. You'll do better at a place you want to be than at one you felt you had to be. I would not worry about the lack of programming classes - specific technology skills change rapidly and company's specific requirements vary so what you learn in school may be of no value to an employeer. You can teach somebody specific programming skills on the job much more easily tahn you can teach them to think critically and develop problem solving approaches or how to work nice in groups. Develop those skills, as well as the ability to communicate clearly and well and you will be better of than most of your fellow students.
Frankly, I doubt if either school would result in much different of a job search outcome for a student with a similar profile (GPA/activities/experience) from either school. The primary difference may be who actually visits the campus - but that's why you send letters to employeers who don't visit to try to get an interview; and get to know your professors so they can help with your job search as well.
Go with your heart - in 4 years after you graduate where you went to school will be meaningless to most employeers anyway.
I'm a consultant - I convert gibberish into cash-flow.
If you get a CS degree from anywhere and are competent you'll get a job. Don't worry about the job. People think you go to University so you can get a good job. That's just a byproduct. You go to university to get an education.
I'm not knocking the technical trades - I am a programmer after all - but I went to a liberal arts school for my comp. sci. degree and wouldn't have traded it for anything.
I ended up double majoring in computer science and philosophy. I doubt the philosophy major will impress many HR people but that is not the point: I got to read Plato and Aristotle and learn about the history of human thought. I got to take English courses and muck around in the campus theater. I am a much better rounded person for having gone to a liberal arts school.
Getting a job is important, but it's second to improving yourself as a human being. You stand a better chance of doing that if you can learn about human history and creativity in all fields, and you'll get that at a good liberal arts school.
If the liberal arts school is a *good* liberal arts school, go there. Your training there will be less targeted, but "less targeted" is another way to say "more general".
In the 1950s, when people expected to get one job fresh out of school and work their way up the ladder to a higher position within the same industry, the technical training might have been better. But today the expectation is that you will build your career by moving laterally every few years from one job to another, building experience across multiple organizations, in different roles, possibly in various industries. The liberal arts school, if it's a good one, will better prepare you for that. You'll take public speaking. You'll take math and science. History. Economics. Composition. Foreign language. An art class or two...
Some of that _might_ not end up being useful in your career. For instance, you might have to take a History of Western Civilization class, and it might not end up being useful. But some of the others will be _very_ useful. Public speaking is invaluable, and (speaking as a network administrator) if I could go back and change one thing about my own college education, I would take more art classes. I'd probably take them in lieu of some of the more irrelevant programming languages that I had (e.g., COBOL).
Speaking of COBOL, it goes without saying that the technical school will also include some things in its curriculum that will not end up being useful. But more to the point, a lot of what they teach you will be stuff you could just as well pick up on your own outside of class, stuff that it's not really _necessary_ to have in the curriculum. After you've learned three or four programming languages, for example, how long does it take you to learn another? Do you really need a whole class for each one? (Do make sure you study at least one functional language, at least one object-oriented language, and at least one modern "scripting" language, for well-roundedness.) You can probably teach yourself SQL in a couple of weeks, and in the real world you're probably going to wrap it in an abstraction layer anyway. What good is a hardware class when everything's going to be different by the time you graduate? And so on.
Go for the liberal-arts degree, with computer science as your major, and consider a double-major, or at least pick up a useful complementary minor, like language or art.
All of that's assuming that this is a real, serious, four-year liberal-arts school we're talking about, with a sane admissions policy and some real academic standards, the kind of school where a significant percentage of the students have to maintain a certain GPA to keep their scholarships or they won't be able to afford to stay in school. If the "liberal arts school" is actually a large state university or anything similar to that, run away screaming.
Cut that out, or I will ship you to Norilsk in a box.
When I graduated high school, I also had the choice between a small state college Liberal Studies curriculum with a Compsci concentration, or some heavy Compsci programs at larger schools. I've actually found that my Liberal Studies background helped my long term career far more, because it gave me skills that could be leveraged in product management, strategy, marketing, etc.
It's really tempting to think you'll want to spend your life programming - I know I started out that way, and held my own very well against peers who graduated from Stanford, MIT, etc. But over time, I also came to realize that 1) programmers were becoming a dime-a-dozen (especially with offshoring going on), and 2) kids coming out of school even just a few years after me were bringing new technical skills in OO programming, Java, etc. that surpassed mine from the start.
But I also realized that these same graduates had no skills to help drive product evolution - they couldn't think strategically about markets and competition, they couldn't create and give decent customer and industry presentations, they couldn't necessarily write position papers or article, etc.
So my Liberal Studies background actually became a benefit, because it gave me more flexibility in my career.
--
And yes, I'm now qualified to ask, "Do you want fries with that?"
The last time I wrote code, it was Morse
If you have geeky,esoteric interests, go with the Technical College. The chances of finding a real peer group with shared interests in rarefied fields are vastly higher, and frankly, you spend a lot more time in college fraternizing with your friends than in your classes. (Hmm. Maybe that's why I never got a Ph.D.)
:-).
You may find 1 in a 1,000 in your Liberal Arts college that share the same geeky interests that you do, and 1 in 50 in a Tech College. Note, it's also a reason why larger colleges are better.
It would kind of suck if you're the only inveterate D&D player on campus
The Human Resources barrier will want to see a Libral Arts school. The hiring manager will want to see a good tech school (usually). This is the dilemma you are facing.
The theory is absolutely essential, but to be hirable, you will need to know languages on top of that and how to learn new ones quickly. Unfortunately it's hard to tell what the next big language craze will be in four or five years when you will be looking. But no matter what they teach you, always learn C++.
I see the glass as full with a FoS of 2.
Go with the more technical school. Theory isn't worth squat. I have seen to many that concentrated on theory and couldn't program there way out of a wet paper bag (figuratively of course). The idea is to learn what will help you in the real world. Theory is great if you want to teach computer science, but not if you want to work in the field.
>One is a highly regarded tech school, and the other is a highly regarded liberal arts institution.
I assume you're talking about Harvard and MIT. Go to MIT.
That's all the matters. I went to what could be considered the worst state school. But there CS curriculum was unmatched by the by some of the tech schools in the area. As mentioned in a previous post - fundamentals first; Operating Systems, Comp. Architecture, Digital Logic, etc. then programming is what they did. It's the way to go.
Next, if you do well, get a high GPA you're golden. That's what they'll be looking for. I had a friend graduate from Univ. of Michigan with an EE degree & a 2.7 GPA at the time of the big tech boom. The only offer he received was work as a network technician - not what any EE has in mind.
Work sector - I graduated from a school who's curriculum centered on the UNIX OSes & C/C++ which makes me pretty valuable to embedded systems development but doesn't make me very valuable to many companies in the Financial sector who develop under Windblows. Unfortunately, many school programs have changed their curriculum to using Java under Windows. I work with a fellow who's having a hard time getting up to speed because he doesn't understand basic programming concepts because Java dumbs down so many things for the developer. But again, schools have done this because that's what many work sectors want.
Focus on those 3, choose what kind of work you want to do, and for heaven sake PLEASE take a C programming & Networking course!
The things that most people (including myself) look for are, in order of importance:
- Whether they can relate to you (nobody employs people who are obnoxious, although a lot of people turn that way after employment!)
- Proof of competency (can you DO the job, even if you've never done it before and have no qualifications? This applies to both the specific job, "can you code?", and generally "can you learn how to do stuff I need you to do?")
- Can you learn quickly, competently, use that knowledge, bring in knowledge from elsewhere, study, etc.
- Length of relevant experience (have you just walked out of university or are you experienced?)
- Breadth of relevant experience (have you done ten jobs like this but in similar, yet different, areas?)
- Personal passion for the job/industry (are you an open-source programmer as well, do you know every company I use, do you do amazing stuff in the same area during your spare time?)
- Revelant references and their opinions (do they think you can do the job you're applying for?) and who your references are from (Your brother will always give you a good reference, your last employer is more important)
- Official qualifications in the area of expertise (some jobs prioritise this more, e.g. government work etc.)
- Particularities of your education (where you went to school, etc.)
- Your list of hobbies/pastimes on your CV (it's amazing how many people include this).
I've worked with people who have had entire categories from the above missing (qualifications, experience, even education!) and the only thing that matters is that there are enough of the higher ones (i.e. can you do the job, or learn to do it quickly?). Myself, when I first got a job after university, I didn't have experience, official IT qualifications (just a CS degree), or references that could attest to my work ethic. But I was competent, able to learn quickly, had a passion for the job and could relate well to people. Now, six years later, I have enough to write a page about how I have actually demonstrated proof of every single category there, except possibly official qualifications for which I still only have a CS degree (I have refused to be trained several times because everybody wants me to do baby-IT courses until I protest and then the "big" qualifications are very expensive, quickly irrelevant and quite useless at actually improving my work in a job).
I've never been asked for my personal school history, nor did it ever affect any interviews. Nobody cares, so long as you have the tick under "yes, he can study", if that. The CS degree did that for me and I got it from a university that specialised in Astronomy and Medicine.
I went to a school called Neumont University, while it is pretty expensive it was well worth it. It is primarily a software development school, while focusing on some theory, it is mainly hands on. I learned .NET and Java, as well as a tad C++, XML, Algorithms, Programming Practices, and TDD (Test Driven Development). They keep expanding their course load and hiring on great faculty. If you are going for a CS Major (specifically aimed at Programming) I would check into Neumont. Its a 2.5 year schooling, 10 weeks on, 3 weeks off, and very fast paced. You'll be able to intern at some decent companies, including Oracle, Novell (which meh, but you know its still a great opportunity) and on campus IBM and several other companies in the SLC area. I just graduated from there myself a few weeks ago, and within 2 weeks of being back home (where the cost of living is much cheaper than SLC) I landed a 55k a year job doing software development in ASP.NET. So I'm pretty satisfied, and I give it a high recommendation. I'm surprised how much more stuff I know than my colleagues who have been at this for a few years.
Agreed, but the piece of paper called a diploma is not coveted for it's face value, rather, it's coveted because it shows the hoops its owner jumped through to acquire it.
I'm doing the interviewing and hiring decisions for my group currently. I pay almost no attention to where a degree comes from unless it's someplace extraordinary - MIT, RPI, etc. I pay some attention to what the degree is in; I have a bias in favor for math degrees and ee degrees over cs degrees. I'm also perfectly fine hiring people without a degree. On the other hand, I'm technical, and I conduct a technical interview, so I don't worry too much about degrees because I'm more confident I can directly evaluate ability.
I am 34 yo. I've been through your dilemma. And it is great that you told us you're still in highschool AND reading slashdot. I wish the internet was there when I had this choice. Anyway. Let me break it down real short:
1. You're dedicated, you know your major and you want it bad enough to carry through. You don't care about anything else but being a programmer in the end.
Go LA. Since you're focused anyway you could probably learn stuff on your own anyway. Yes it's true you learn better with smart people around you, but LA has more chicks.
2. You want CS, but you're not a very dedicated person. You want CS because that is you best interest is CS.
Go LA. If you're not dedicated enough, going to a prestigious tech school eat you alive. You'll be the bottom pile of slime in class. Where as in LA course, you'll look better being the 6th of the 12th. Oh don't forget, LA chicks better.
3. You want CS, but you're not a very dedicated person. You want CS because you think that's the most probable thing for you to put food on the table AFTER you graduated.
Go LA. You'll end up failing CS anyway. CS is for those people who're dedicated, do their homework, or have a vast interest in the subject. Even if they have to take a quiz in hunger, they do it. F! the future, you might get cancer.
4. You don't like chicks.
Go Tech and we welcome you here in 4 years.
===
Hope you see what I am getting at. I went to U of Toronto. I was accepted in UofW, UofT, and York U with scholarships in York but not the other 2. In the Electrical Engineering program. I flunked it 2nd year, went to CS, flunk it immediately, suspended for 6 months, go try some LA, graduated in Philosophy. Now I am a graphic designer.
btw. I am No. 3 up there. And I know a lot of 1 2 3 and 4's. Nobody ever care about my resume. It's the interview , and WHAT YOU DID, that matters. Your employer knows your paper doesn't matter. He was there. Good luck man.
What do you want to learn, and how do you want to learn it? Keep in mind that something like half, or maybe more, of all college students wind up majoring in something other than what they intend to major in, and a liberal arts college may give you more flexibility in terms of deciding to take your education in a new direction. Also, even a small CS department can be pretty good.
The tech college will be more useful from a technical perspective; the liberal arts college will probably be more useful from a social perspective. Some of the most valuable people in technology are the ones who can network, who can communicate the concepts of their field well to people outside it, while still being able to work competently in the field itself. There's more than just IT in the world, after all.
Note, also, that the most important part of a CS education is learning how to think about CS, rather than learning specific programming skills. It's important to know how to program, but it's more important to know how to think about and learn new languages, which is something you pick up at least as easily from a good theory-grounded curriculum (given that it's not ONLY theory) as you do from a code-and-click curriculum.
And most geeky people are interested in a variety of fields, not just IT. Picking up a course on Developmental Psychology or the History of War or Terrorism or Anthropology can be a lot of fun, and let's be honest--CS courses can get repetitive after a while. Learn concepts, do projects at keyboards. Yes, it's fun, but is it really all you want to do at college?
And ultimately, of course, the real question is the environment. It's critical to learn at college, of course, but the truth is you that you can always learn things, especially if you can learn from a book or from practicing. But you don't always get the opportunity to work with the best minds in a field or to surround yourself with a really great peer group--one that's intellectually challenging and stimulating, and where you can absolutely feel at home. Take advantage of that opportunity. Ask students what they think about the profs at least as much as what they think of the subject matter. And ask how much of a chance they get to work independently within their departments.
As a professor, I doubt you'll regret going the liberal arts route. For one thing, the probability that you will change your major is about 60-70%. A liberal arts education not only exposes you to many different interests and opportunities, but it gives you skills that even many good research universities fail to impart: strong writing, strong argumentation and speaking, strong critical thinking skills. The ability to approach a problem from many different perspectives is handy. You'll need job experience to make the big bucks anyway, so you might as well maximize the value of your education while getting your degree.
Make cheese not war 8:)
I found in the early ots, that colleges with tiny CS programs, usually introduce really competitive barriers to selection of the major, like cum GPA of 3.8+ (after finishing the entire calculus cycle), etc. CS is a very expensive major to teach when compared to humanities or art history. the Instructors cost a ton, the equipment is a significant plant investment, and all the admins they need to retain to run all the stuff....
that said, once a college makes these investments (while trying to enlarge their CS program) these barriers are usually dropped. I have an intern from my college, and he didn't have to work nearly so hard as I did to get in.
Also you may want to ask yourself, are you ready for concentrated theory, or should you get some practical first, and they go back for the theory. for me, the theory was meaningless at first. I needed some practical experience to act as a nexus to connect theory to practice.
just some things to think about.
good luck!
This actually was my exact dilemma three years ago when I was trying to figure out where I wanted to go. I opted for the tech school, and I've never looked back. It was probably the best decision of my life. Now, that doesn't necessarily mean anything to you, of course. I recommend talking to teachers, administration, and graduates from both school's CS departments. Find which curriculum best suits YOU, since you're the one who will be paying for it. If you're concerned about your career, go to a job fair and ask the potential employers themselves!
I went to Purdue for Computer Engineering Technology - Networking. I will say that three times I was selected for a job based merely on that.
When I had to make that choice, I selected a really tech school...say it was more interesting CS-wise but less fun LIFE-wise. It was a really well regarded school for CS in my country though and it has been really useful for getting the kind of job I wanted. ;-)
BUT I do believe that my college experience lacked an important (fun and wild) part that will never come back.
How do you balance those weights now that you have to choose? The trick is that you don't know, but you WILL know after some years.
This happens all the time in our lives: it's kinda late when we get the right answers
Prepare yourself for work in a field that interests you. Computer programming is no longer an end in itself (if it ever was), but is a skill that you can use in many different ways. First decide what you want to do with your CS degree. There is a HUGE difference between working at a bank writing COBOL and between working in R&D on some really neat project like spacecraft design, AI, or I suppose even genetics, biology, etc. Your CS skills will be applicable to all these areas so first think about what you want to do with your CS degree.
9/11 Eyewitnesses to Explosive WTC Demolition 1 of 2
Hard to answer such a big question with so little information.
The answer is really dependent, as many have pointed out, by who you are and what you want to do with your life. I'm not going to presume to answer it.
All that said, I will give the advice I always give to techies headed for college. I went to a tech college - but the best part of it, by far, was co-oping at IBM. The degree is nice, but when all you can list is 'wrote program for lunch departement'..meh. But if you can show a degree and say 2-3 years experience at a software company...you see what I mean.
I will also add I did tech interviews at a major package delivery firm for many year (as a favor to the client) - if you hold two resumes, one a 4.0 gpa with no experience and another a 3.5 gpa, but co-oped with programming experience...you get the picture.
It also gives you a better look at the real world than a lot of profs are going to do - nothing like a bit of reality to counter the barrage of liberal messages you'll get.
EK
The Technical School will help you get your first job, the Liberal Arts education will help you long after you have to write code, especially if you want to move into management later on.
Good luck,
I went to a Liberal Arts college and had no trouble finding a well-paying networking job.
Your results may vary.
That said, go to whichever college you like the people, the atmosphere, the dining, and all those other non-academic things. If that's the tech school, go there; if that's the liberal arts school, go there. You will be a happier person for it.
If you're going to college for the academics, you're doing it wrong.
I went to a strong engineering school. In hindsight the biggest plus for me vs a good liberal arts school was at job fair time, where hundreds of companies recruited heavily and I had a chance to explore many solid options (btw go to these even as a freshman).
Other than that, if your fundamentals are strong, you'll find you learn more in the 4 years after school than in. From a career standpoint I think it comes down to what first job you were able to land - preferably something with a strong opportunity for with working with bright, seasoned coworkers on non-trivial projects.
There isn't a right answer. Go with the liberal arts college if that's where you'd be happiest. Learn how to learn. Few care where you went anyway after the first job.
Any monkey can code, but can you code with everyone's best interests in mind? Can you visualize the bigger picture?
I go to a pretty large tech school, the college of engineering is the largest college on campus by far and I think how much fun it is relative to a liberal arts school really depends on your more than some arbitrary rule that liberal arts schools are more fun. Just because the school is technical does NOT mean there won't be women, you might just have to go outside of your department's building to find them! Being a CS major or any other technical degree does not instantaneously turn you into a geek, chances are you might be but if thats the case you're probably going to have a lot more fun at a tech school where you'll get opportunities to interact with more people that have similar interests, You'll have the opportunity to get involved with student groups that may be entering into robotics or software competitions, you'll have access to more faculty in more departments in which you can get involved with undergraduate research. If none of these really interest you, then definitely, go to the liberal arts school, but shame on you slashdot for telling the poor kid that technical schools cant be as, or more, fun than a liberal arts school.
I transferred to a different school halfway through. One school was top 10. The other was still a good sci/tech school but not top 10. I found that the material covered was identical but the tests at the lower-ranked school were substantially easier. You could learn the same things if you knew how to learn, but the grade at the lower ranked school meant a lot less.
Beyond the first job, the specific school ceased to matter. The requirement generalized to, "A CS or similar technical degree from an accredited college." Every so often I do run into someone who also cares about BS versus BA but it's rare.
And, as other posters have noted: it's not good to be the biggest fish in the pond. Brilliant peers will inspire you to do better yourself. There's also an old saw about: it's not what you know, it's who you know. Brilliant peers will go places and they'll take your call 10 years from now when you're looking for your third job.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
The ritzy school will catch my eye but they'll all get grilled just the same.
I recently interviewed a candidate graduating this month with a CS major and a mathematics minor (3.03 GPA). He could not come anywhere close to describing the difference between TCP and UDP.
That wasn't a make or break question but it surprised me. He is a Western Michigan University student. Is this a bit like the story of the EE who never touches a soldering iron in 4 years?
Nice guy and we would have liked to hire him if he was just a bit deeper in some areas. We needed someone who could 'hit the ground running...'
I didn't mean a Diploma Mill. I was accepted to Rensselaer Polytechnic Institute
...on if you want all the rows in the table or not.
Working for a midcap, my take is that your main stumbling point is getting past HR that has a list of "good schools" with high success rates for employees. Once the resumes get to managers, though, where you went probably won't matter if your resume is strong. Obviously MIT and Cal Tech always look impressive, but when if your resume said Georgia Tech vs Emory you would still have equal consideration. Additionally I've noticed that more and more non-tech majors are among the strongest candidates. We routinely see people with liberal arts degrees or non-relevant scientific majors in computer science/engineer fields. With companies like Google and Microsoft stealing a lot of the talent pool, mid sized companies are increasingly willing to experiment to find the most qualified candidates.
I had 10 years of performing arts under my belt before I became an IT pro back in 2000. I even was quite good at it. :-) ) due to them clashing their egos on a daily basis. The Arts School wont be half as boring than a pure tech campus, I can tell you that. Plus artists and tech-nerds actually have a lot in common.
:-)
I've been programming for 22 years but had a decade of Art inbetween. It's a great experience, and while it doesn't pay the bills as easy as IT, and I'm a little behind in hardcore coding compared to other Über-Geeks of my generation, it provides an skillset that I wouldn't want to miss.
Artist are nice people and the performers have superiour social skills (good and bad
Oh, and the girls are cute.
Go for the campus leaning towards arts, but *do* see to it that you get internships and sidejobs that involve you requireing to dive into whatever field of IT you want to make your income in later in your life. Occasions for that might even be more numerous than a tech-oriented campus.
We suffer more in our imagination than in reality. - Seneca
I had a similar decision to make, although the more well-rounded school was a university with an actual Engineering School. I'm not sure I wuld have taken CS from a pure liberal-arts college; but then I guess it's possible to have a decent CS program without the surrounding Engineering disciplines, as long as you're not planning to go into Embedded (hardware-oriented) Programming.
Anyway, I chose the well-rounded school, renowned for their Med, Law, and Business programs more than anything. The tech school is renowned for Engineering, of course. Both are good schools.
Aside from some unique personal concerns, my reasons for choosing the University over the Tech school were:
1) The Tech school had a reputation for "weeding out" Eng. students; the University, while challenging, doesn't go out of its way to eliminate students just to reduce class sizes...
2) I wasn't certain that I wanted engineering; there was a possibility that I'd decide to switch to pure science (physics), and the University was stronger (or at least better known) in its Science programs.
3) In general, I figured that if I left the Engineering school for any reason, I'd be better off taking regular liberal-arts classes at the University, which was more well-known; the liberal-arts programs at the Tech school were pretty sad by comparison, and having anything but an engineering major from that school wouldn't impress anyone on a resume'. Meanwhile, if I stayed in Engineering, the general name recognition of the University would probably make up for its lack of stature in the Engineering world specifically (in retrospect I don't know if that's true or not; hard to say).
I wound up graduating with a EE degree; this was before they had hybrid Computer Eng. degrees at either school, which would best represent what I really wanted to do. I *should* have majored in CS, but that's another story...
My main problem now is that I work in an all-Engineer office in a city closer to the Tech school. So I'm the only University grad/fan in the office, while up to half of the employees are Tech fans --and their football team has gotten much better of late... Otherwise I haven't had any problems, although admittedly I haven't had to job-search that often.
Most HR departments are full of people who have no idea how to recognize good people from a resume. They almost always look for letters in a resume that match up with letters in a job description. "Let's see, we need someone with Java experience and this resume says Java on it so this candidate must be good."
Therefore, I suggest, as many have suggested, that you choose the college that you think will be the most fun. For some people MIT is fun. For others its fun being on a campus with lots of beautiful women who think that kinda nerdy guy in their Study of Love Poems class is cute.
You best chance to get valuable programming experience will be to get internships and take on side projects. I would bet that all schools will give you the basic theory of programming well enough for you to jump right in and start programming your school's new "Hot or Not" web site.
Really. Go to Europe.
You'll not only have a better time (mpore liberal attitudes towards sex drink and drugs) but you'll get a better qualification.
Imagine that - three or four years of studying ONLY the course you signed up for, immersing yourself in it totally. Nothing beats it. Also you'll get a more rounded view of the world by spending some of your younger life in another part of it.
Women at the technical college will be hotter. But then again, fantasy women always are.
paintball
If you can get into a prestigious program it will make a big difference in your first couple of jobs, and it will probably continue to open doors for you over the rest of your career. On the other hand, after you've had a couple of jobs, your accomplishments should be opening doors for you.
You will probably learn more CS, just by osmosis, if you go to a top flight CS program. However, if you are really suited for a career that a CS degree prepares you for, it probably does not matter because you'll learn anyway. There may be educational opportunities at more balanced institutions that you come to appreciate later.
There are two, really important questions you have to ask, especially if you are choosing a school based on a CS program. First, are you absolutely certain that CS is what you want to pursue? It may not be what you expect. Choose an institution that will give you options for a second choice. Second, will you finish a degree in the institution you have chosen, whether or not it is a CS degree?
In the end, if you are planning a career that requires a CS degree, it's more important that you have a degree than a CS degree; it's more important that you have a CS degree at all than you have one from a prestigious program.
The vocational value of a CS degree from a prestigious program marginal, especially if you know how to write a good application letter and give a good interview. The educational value of a prestigious degree is marginal, if you have a talent and interest for the field. It's not that these things aren't useful, it's that they're mainly useful if you don't have personal qualities that would even the playing field if you went to a less prestigious place. The irony is that in the words of the song, if you can make it there, you'll make it anywhere. And you will. And sometimes you can't make it there for reasons that have nothing to do with your talent.
In the end, the most important thing is that you get the degree. If you come from a family that doesn't have a lot of money or has some other kind of instability that means you don't have bottomless support for your education, it's probably a bad idea to go to an expensive program famous for its pressure cooker atmosphere.
Anybody can have a bad quarter (which is a bad year if the quarter is the last half of an academic quarter and the first half of the next). It could be an existential crisis, or it could be a physical health issue, or it can be an unexpected financial problem. If you don't have a family support cushion, and you don't have any financial slack, you can be screwed. Don't forget that sometimes institutions are more generous with freshman financial aid packages to attract the students they want.
I'm not discouraging your from applying or going to a prestigious program. I just want you to consider that the value of prestige has its limits, and that practical matters like cost can leave you in debt without any offsetting prestige. In the end the best advice is to choose a school you think you will be most happy at, and you'll get the most out of it. Don't sacrifice anything for prestige. Ultimately the only prestige that is worthwhile is the prestige you earn through your own distinctive accomplishments.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
I think some people here mistook the author's use of the word "tech school" for the 2 year, current technology fad, school. I believe its probably of the math/science heavy engineering school variety. Keep in mind, no matter how much you want to "learn something you can use," a good CS program is going to teach you theory because the theory remains fairly constant. It is up to you to apply the theory to the current technology. Having a solid theoretical background makes your skills much more adaptable as technology changes.
I did the liberal arts route and feel that I was adequately prepared for CS. However, my friends that went the engineering school CS route seemed to have more opportunity to focus on certain areas because there were more specialist professors. In contrast, my professors were generalists. I don't think the distinction matters much at the undergrad level.
The biggest advantage of a liberal arts education is that it is well rounded. For example, it facilitates interdisciplinary communication. If you plan on doing something more than staring at a computer screen a L.A. education has advantages. The liberal arts route will be helpful for any job that requires writing, communication, etc. So if you can ever see yourself working with customers/sales/accounting/management/etc. it can't hurt. Also, I have classmates that are starting their own businesses - I know they have found the well rounded liberal arts education helpful.
Take my comments with a grain of salt, I did my time programming but couldn't find the R&D job that allowed me to socialize.I went to law school and now I get to solve far out problems AND meet/interact with people (and the competition/challenge of the adversarial process is very exciting). I feel the well rounded L.A. route allowed me the flexibility for such a transition.
Why have 1 person driving a backhoe when you could employ 20 with shovels?
But I don't work at Google.
paintball
Run away from any CS program that teaches you specific languages as part of their curriculum, rather than expecting you to pick up languages as part of teaching you some IDEAS. [In my undergraduate EE/CS program, I was expected to learn over a dozen different computer languages, often multiple languages in a given 1-term course; none of these languages were in themselves an educational goal, rather, using them to express different important ideas were the goals.] If there are courses called "Introduction to PHP" or "Advanced C++" then dump the school.
As a potential employer, I don't care if you can write in J++/COBOL/APL/Ruby/Lisp/Perl; I care if you have learned how to program and that is largely independent of the language is used. As a future recent college graduate with almost zero experience, you're going to have to learn a lot in any case, for any job, and if all you have shown classroom proficiency in a handful of specific languages, that's a serious ding. If you have shown classroom proficiency in database structures, software engineering, and algorithms, that's far more attractive.
If you want better than a vocational education, you should treat college as an opportunity to learn how to learn, not to be trained in a specific task.
Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
Does not count at all for most jobs. Certainly most jobs an attractive applicant would WANT to have. You don't want to work for Dilberts boss is you can avoid it anyway.
We're currently hiring, and I can say that -which- particular school an applicant visited is almost completely irrelevant, down in the noise. We care what the applicant can do for our company.
This means we care if he/she has relevant experience. We care if he/she knows the technologies and methodologies that we use. (but if the answer is yes, we don't care where or how they where learned)
The core components of CS have barely changed in the last 50 years. Sure, we have faster toys that are much cooler, but that is only because we have found newer and better ways of applying the old tried-and-true techniques. What you really need to know is the theory behind CS...number theory, set theory, algorithms, architecture, language analysis, etc. I have attended a mostly LA college for the past 3 years, and the most valuable courses have been the theory/low level courses. Anything higher level (software engineering, programming, etc) have been more or less useless. Programming is something you can generally teach yourself better than somebody can teach you. It's good to have somebody there to help you when you can't figure out why you're wrong, but programming is really about just getting the hang of the language's syntax (which is often pretty straight forward), and then learning its API (which you will google anyways). The problem with (some) technical colleges, is that they teach a tool, not a process. So, you will learn to be awesome with certain tools, but those tools will not necessarily be around for very long. Once they are gone, you have to go out and learn something else from scratch. Over time this will get easier, since you have experience, but earlier on this will be tougher without a solid theory education. At a more theory based school, you will learn how and why certain things work, and will make learning new tools and techniques much easier later on down the road. So, don't think of it as a choice between LA and tech...talk to the faculty, and see how much real theory you get.
Seriously consider developing a quality OSS project. That's how you really get noticed. Not by the name of the school you go to.
I've bumped into plenty of stupid people from ivy league schools, and plenty of smart people from (ick) state schools.
If you want to get noticed as a developer, develop software, write documentation, do proper testing, support your users, etc. Before you know it, people will be calling you with job offers.
As someone that has sat on CS Grad School admissions committees for years, I can say:
- prestige matters, technical schools draw a higher notice, although there is a lot to be said for a well rounded student.
- research experience matters a lot more, no matter where you come from.
So, if you, or others, are considering maybe going for a PhD, then sometimes smaller CS departments as an undergrad can be a real advantage, if the faculty do research. Usually they'll have less grad students working for them, and will be more eager/willing to take on an undergrad RA. Getting your name on a research paper(s) as an undergrad is a huge huge deal.
As far as industry, I've worked for at least one company that would only interview people from top 10 CS programs.
But then there's places like Google, which really will hire simply the smartest people they can find. At a place like that, having a stronger CS core is going to serve you in good stead, if for no other reason than to get you through the crazy questions you'll be asked at interview!
1. Self-sufficiency. You need to be able to manage yourself and your affairs. Eating meals, prioritizing work, rest, exercise, and social life are all managed activities which your parents have been your partner with up til now. In college, you become your own ideal parent. You also learn to manage success (no gloating), failure (no despondency), disappointment (no self-pity), and courage (no quitting "just because").
2. Interpersonal relationships. You need to be able to navigate and function in a complex world, filled with a large variety of people. You'll learn better how to deal with people who are smarter, better-looking, more talented, less sophisticated, less academic, narrowly focussed, and weird. That's real life and you'd better have a sense of who and what you are to be able to develop and understand relationships with every one of them. And some of those people will be your professors, some will be other students, and some will be the people you meet in the college town. After college, they will be your boss, your co-workers, and your friends.
3. Individuality. Part of who you are is based on the history and perspective of culture, both your own and that of others. Your individualism is enhanced by understanding what has stimulated or constrained development, so that you can recognize, and then reduce or enhance, those cultural effects on your own development. Learning to "be who you are" is not easy.
4. Academic discipline. It is important for you to find something that captures your dreams, your aspirations, your interest and your commitment. To engage your mind in exploring some facet of life (whether english literature or computer language theory) creates a lifelong pursuit that becomes uniquely you. This study also gives you proficiency in recognizing and dealing with the unknown, and then applying your energy to learning what you want or need to know.
5. Job skills. The most important job skills are listed above, in order of importance. This last category includes the non-technical (writing your ideas clearly, speaking articulately, organizing and categorizing information in a meaningful way) and technical (both historical and current theory and practice of your chosen discipline).
6. Specific knowledge and practice. You'll learn the foundation in these areas, but they are also the most ephemeral part of your college education.
So, evaluate yourself. Where are you in these areas and where do you want or need to grow the most? Then ask, which of my college choices will give me the most opportunity to develop?
The more important question is where do you want to go AFTER you graduate. Some industries place great importance on the where of your education. For example the hedge fund / finance field. Others not so much.
In general, my experience is that employers place much greater importance on your skills and in earlier/entry-level years the where might be a proxy that that gives an edge in getting interviews.
I would be a bit wary about a program that does not introduce programming until later years but then again I am not particularly impressed with the coding skills imparted by the schools so maybe that is a good thing.
I've been involved in hiring software developers many times. I've NEVER seen the name of the school on the resume influence a hiring decision.
What does matter, especially for finding a job right out of college, is the relationship that certain employers have to certain schools. Many employers only send recruiters to one or two schools, and they tend to get their new graduates and interns from those schools.
Finding your first job right out of college will be your most difficult job search. Employers, as a general rule, want to hire people with previous experience in the field. Many won't even consider new graduates.
An internship provides two advantages. First, you will get valuable experience in your field. Second, if you have a successful internship, after graduation you can usually get a permanent job offer from the company you interned with.
So, go to the school that has the better internship/coop program... and take advantage of it.
http://xkcd.com/756//
You read slashdot, which means you're already well ahead of your peers in the workplace if you do end up going into programming. I was a stupid 18yr old and wanted the best programming degree and best school money could buy for me at the time for the direction I wanted to go - at that time. Bad idea.
As so many people have already stated, you will get the more well-rounded education at a "liberal arts" type university or college than at a purely "technical" college/university. Also, don't be too impressed by anything you read about which school is more highly rated or whether both schools are in fact highly rated in the media, amongst your peers, or even amongst the slashdot crowd. All of that goes right out the window in the real world.
Besides, you need to focus on getting the most out of your time in college, not just the academic aspect of it. I'm 31, and if I had to do it over again I would have spent 2 years at a community college to get the stupid pre-req courses out of the way for dirt cheap OR lived in dorms for 2 years in a row at a medium-sized college, and NOT HAVE PLANNED BEYOND THAT AMOUNT OF TIME!!!
You absolutely will change your attitude towards college, life, work, who you are, and just about everything else that you know right now within those first 2 years - if you don't live at home - so try not to worry about the full-time work world for now. STOP PLANNING - I wish my parents had been more forceful with me when I was 18 to get me to understand that I needed to live more in the moment at 18. Alas, I think they were a bit afraid that they hadn't trained me well enough to make it on my own, and were therefore reluctant to let me leave the nest. (I was the firstborn - it happens a lot with us firstborns.)
People who are excellent at programming are like people who are excellent at a lot of other things - they started doing it well before college.
How many athletes do you know who started playing a sport in college? How many musicians? Even things like Chemistry, Math, Medicine, Law - you started learning the basics of those careers in junior high and high school.
Programming isn't any different. People who are going to be great at programming started doing it in high school (or earlier) and are going to get a more structured education out of college. I already knew how to program before I got to college, but I learned a lot of stuff I would not have learned on my own by going - and I wasn't even in a straight CS program.
Someone who shows up at college with no programming experience is likely not going to be a GREAT programmer. It's too late. They're competing against people who have been programming for 4, 5, 6, 7, 8 years. It's too much of a head start.
But, there are also plenty of people who do not go to college who are SHITTY programmers. Oh, sure, they learned how to do some things on their own, but there's also a big pile of stuff they never learned. And worse, they don't even realize how much they don't know.
Education is a good thing. You learn a lot faster when information is given to you than by discovery.
So, to the topic at hand...
Go to the liberal arts school. Learn the theory. Anybody who isn't an idiot can learn software syntax. As far as employment goes, most people who get great CS jobs out of college get them based on the projects/open source work/internships they did in college. Education teaches you how to work better, but you prove you can work well by working.
And, as mentioned elsewhere, bonus: Girls.
paintball
I went to MCLA for my cs degree. Now i was able to get a good job in the field but only because of what i learned outside the college. The school had hired a bunch of people who knew nothing about the major and it was a horible experience. I would go and talk to some of the teachers in those departments and see if they know what they're talking about(this might be hard to do though so get some help).
We have nerds and the artsy cutty pasties! But in all seriousness I'd say look at the program at the school itself first, see what they're teaching compared to the top tech schools. I'm graduating from RIT this spring and would say it was a good call rather than going to my states school for similar programs.
Interestingly enough I came to school as a music major and I didn't make the switch to CS until my junior year. The liberal arts school the OP is talking about sounds an awful lot like mine actually. Our CS program is small, graduating probably less than 12 a year and it's only about 4-5 years old. Yes, I had to take classes like music theory and Writing about lit, but it was a very small portion of the classes needed for graduation. Honestly though, thank god I did. Not only did they help me with a more well rounded education but I actually met my fiance in English II. Ladies are good, and despite their evil ways possibly screwing up your perfect 4.0 GPA, which is extremely tough to get at my school, their pros outweigh their cons.
Enough about ladies though. A small school like mine gives me a TON of one on one face time with my professors. We only have 2 full time CS professors who teach all of our classes. I'm doing a senior project right now and unless my teacher is in class, his door is always open and he's available for any questions I may have.
The downside? We don't have a large variety of CS electives. I only ended up taking 2 actual classes for the electives, the other 2 I need are an internship and an independent study. A lot of our curriculum is very theory intensive and not very hands on, but that's ok. I recently got an internship using technology I've never used before, but since I have a strong foundation in the correct problem solving skills and programming practices I just jumped right in and learned as I go.
Also, no one who has graduated with a CS degree from my school was not employed BEFORE they graduated, including me and my cumulative is a 2.5!
It sounds like both tech and liberal arts people are generally happy with their decisions. If you are interested in CS or technical gradschool/research, a school with strong technical programs may give you more options. If you don't have time to do things slowly and take extra liberal arts classes, it is easy to feel like your artsy side is slowly dying as it's dragged across the asphalt in front of the engineering building.
I opted to go to a decent and very affordable state school and have been able to avoid the considerable debt that some people have to incur to attend a brand name school. I have found the professors very capable, despite a yearly tuition that is a tenth of many private schools.
While I'm not an HR person I am a recent graduate of a liberal arts school receiving a BS in IT within the last year. In the months that followed my graduation I went on numerous interviews and was pleasantly surprised to realize I was receiving job offers from every company I applied to. In addition I was receiving phone calls from recruiters constantly from my Monster.com profile, and from companies who were interested in me from my senior design project.
I personally think that liberal arts colleges are fantastic especially if you get the small classroom environment where people actually learn who you are. The liberal arts school I went to turned out about forty students a year, and it was amazingly difficult. I think in the end as long as you learn the skill set and commit yourself to continuing your education, certifications, and on the job training you are not limited in any way compared to prestigious schools. Prestigious schools tend to be more expensive, mass indoctrinate students in large classrooms, and turn out about the same skill set of individuals. I should also mention liberal schools provide recruiters the sense of well-roundedness often emphasizing good communication, written, and professional skills.
An acceptor finite-state machine is a quintuple (Σ,S,s0,Î,F), where:
* Σ is the input alphabet (a finite, non-empty set of symbols).
* S is a finite, non-empty set of states.
* s0 is an initial state, an element of S. In a Nondeterministic finite state machine, s0 is a set of initial states.
* Î is the state-transition function: \delta: S \times \Sigma \rightarrow S.
* F is the set of final states, a (possibly empty) subset of S.
If I had to do it all over again, the top on my list would still be a Large University with a strong Technical program AND a good Liberal Arts program. Some people hate these kinds of places and crave a smaller more personal setting. I liked the diverse opportunities of the Large University. I would stay away from Small Liberal Arts schools if you want a techinical career. Small Technical school would be okay, but you would miss out on diversity. Large Techincal Schools often have reasonably good Liberal Arts educations available as well so it would be second on my list.
I don't intend to toot my horn, but I wanted to give you my perspective, being a 2006 graduate from a liberal arts college.
I attended Houghton College, a small Christian liberal arts college near Buffalo and Rochester, New York. The CS department consisted of one professor, Wei Hu. Though the entire weight of the CS department was on one professor, Wei had a hardcore Chinese work ethic and managed to leverage both 100-level teaching with advanced special topics courses in areas such as Machine Learning, Bioinformatics, Neural Networking, Encryption, and plenty of other topics that you would find in many of the high calibur institutions. The one advantage I had at Houghton was that I had one-on-one experience my entire way through. As a result, I had the opportunity to write a Bachelor's Thesis on machine learning and pattern classification and was greatly challenged in the process.
In addition to my CS degree (and of course, a math major), I took advantage of the liberal arts environment and tacked on minors in Spanish and Bible. As a result, I obtained a pretty well-rounded education and though, at the time I didn't think I could use all of my concentrations in one field, my background in artificial intelligence and Spanish have given me a drive to pursue Natural Language Processing in grad school.
Finally, the real test comes in comparison with your peers that graduated from other non-liberal arts schools. The biggest question for a liberal arts student is "How does my education compare with a technical school?" I was initially intimidated with the thought of working closely with peers from a tech school when I first began interning my Junior year, but I quickly found that we shared much of the same programming skill sets. My advantage was that my liberal arts education aided me in the business side of operations and enabled me to communicate technical material clearly with the higher level managers. In my IT professional career, this has given me the ability to influence the decisions of management by providing technical advice to support their marketing and sales campaigns.
Like some of the other posters have mentioned, it depends on how self motivated you are. There are always a group of students that care to a minimal extent -- these students could still get by at Houghton. However, I wouldn't consider them to be competitive. On the other hand, if you have good motivation and you find yourself in a small liberal arts college, you may be able to leverage the smaller student population to get more one-on-one time with your professors and advisors to do the work that really matches your career goals.
My recommendation: pair up a strong liberal arts institution with a good grad program. You'll get a good foundation in LA and if you're really motivated, you'll be able to extend into the hardcore level in grad school. The theory is more important in college, anyway. If your liberal arts institution focuses on theory, jump on it. The programming part is the easiest to pick up.
"Remember that the point of attending a university is to get a *well rounded* education."
No, no it's not.
The point of university is to totally immerse yourself in your chosen subject. See European universities for examples of how this really works. You spend three or four years doing nothing but what you signed up for. Far better use of time.
"As someone with some (limited) experience interviewing job candidates, IMO the ability to be thoughtful and articulate will serve better than narrow technical skill."
Whilst being articulate helps, you've clearly never hired a software engineer. Some narrow technical skill is EXACTLY what will get you the big money in software, and what will get you hired over and over. Having a general understanding of computers and an intimate knowledge of how they work (plus language theory and a wide exposure to different languages) is also a good thing.
But studying arts/humanities alongside? Waste of time. You had high school for that.
Luckily I managed to hold off long enough on "World Music Cultures" (A class which disallows study of 'Western' Music, unless it's rap or reggae, according to the syllabus) and "Gender and Society in Ancient Greece" (Wow. Temporally Irrelevant AND doubtlessly intellectually dishonest) long enough for them to offer an "Ancient Mythology" class. That is at least interesting, if still completely useless to my actual studies
I'd get an accounting or business degree, and then go for that MBA. Or get the CS degree and then go for the MBA. That way you're above the commodity market of software development.
DT
Is this thing on? Hello?
The answers to your question are:
MIT > Harvard > DeVry
That depends. Do you like apples?
Yes.
They don't.
I think anyone who asks these things is lacking in initiative.
Depends on what school has more ladies.
Where is really important. I remember when I went to college, I was only 15 (I was gifted) and they stuck me with a roommate, Chris. The school was so short on space we even had some dude named Laslo living in our closet. Then my professor, and his kiss-ass GA Kent, ended up being a total jerk and tried to trick me into designing a laser that could kill people from space. The only thing I really learned from college was how to trick vending machines into thinking dry ice is a quarter. So choose wisely.
.com.
But to your question...
As someone who does hiring, I can tell you it helps if they've heard of the school. It doesn't matter if they've only heard of your school because of football or basketball, but it lends credibility to your degree if they've heard of it before, however wrong that may be. One caveat, it probably doesn't help if they've heard of your school from a late night TV commercial or if your school's web address ends in
Second, There are other factors to consider besides the location and name of a school.
Have you met the dean? Why not? Was he/she friendly and approachable?
Have you met the professors?
Will your classes be taught by professors or graduate students?
Is the program more engineering or math-based? (Both have their merits, but its a personal preference)
Will there be any research / capstone project opportunities your senior year?
How many students are in the program and how big are the classes?
What are the research interests of the professors? This will affect the topics / quality of the topics of the classes.
Is there a masters program (there should be) and is there a PhD program (may or may not be)?
I Heart Sorting Networks
"Give very, very serious thought to going to the liberal arts school. In my case, the school has forced enough computer science, math, bio, engineering, physics, etc. down my throat that I've actually soured somewhat on the idea of having anything to do with computer science after graduation. If it's a top ... say ... three or four engineering school, you have to have a very serious conversation with yourself about whether you are okay with staying up until 5:00AM to finish a problem set for a course you're not very interested in becoming a very common occurrence. Freshman and sophomore years in particular are always absolute killers at those places. I know quite a few people at the school I go to that confided in me that when they arrived they were extremely happy and healthy, and they now have very significant mental, cardiological, and neurological problems. I'm not kidding when I say "killer" -- you're li"terally shortening your lifespan."
I hear you. Now my question is...why try to cram a four year degree into four years? I've known people who go part time and work, or go full time for the first year, work a job, then come back. Lather, rinse, repeat. Now to the original submitter. Of course "were's" important. Just look at all the ITT/Devry jokes you hear around here.
I studied CS at Boston University. I credit this as having a lot to do with my success over the last 15 years. The factor that clinches it for me most is simply learning how to *communicate*--particularly with non-technical people. This includes oral as well as written communication. These are skills you won't learn in a technical program.
All the technical education in the world won't help you when you're trying to make a proposal to a manager with a B.A. in English Lit. But being able to construct an argument, analyze counter-arguments, and present it cogently in written and spoken forms--these skills will serve you forever.
I wouldn't trade liberal arts for a more technical program for anything.
-- Cerebus
I've had very bad luck with CS grads. Out of the last two I hired and had to fire, one is flipping burgers at a Rally's and the other returned to school to find a different career.
The best developer on my team barely got his GED. So my advice is to study something of interest that you can fall back on and continue programming/learning on the side as a hobby. If programming is your passion, your career will find you. If it is not your passion, you will have to find something else.
Plus remember with how fast our industry moving, the "technical" material you learn in college does not have a very long shelf-life. Study subjects that will benefit you in the long run while you have the opportunity.
Then that is your answer.
The subconscious is generally a very wise and powerful tool, use it. (aka listen to your gut, follow your bliss,
Plus you'll get laid more at the liberal arts college.
~.~
I'm a peripheral visionary.
"First, HR departments don't care where your degree is from."
I got mine from the school of hard knocks.
Seriously, Liberal or Tech, maybe we all should be looking at the role F/OSS can play in one's education, and evening out the rough spots?
I don't believe that you should be going to college to get a job. If you want a job, go to a community college for two years and get a job. (not to denigrate community colleges) The most important thing you can do in selecting a school is to visit the campus. Meet students. Go to classes. Meet the people who will actually be teaching the classes (professors or not). Do an overnight visit if you can. Then ask yourself: does this feel right to me? Could I see myself as one of these students? Does the campus feel like home? If the answer is yes, go there.
The below comes from experience. I did liberal arts schools for undergrad and high-power tech schools for my Masters degrees. I was totally blown away when I first attended the Masters programs. I was underwhelmed and bitter at the the liberal arts schools.
Career in CS: There is no doubt that the tech school is the far better choice. A good CS education is one that allows you to get involved in creative, cutting edge research. CS is not programming. However, to really learn and understand CS issues, you HAVE to know how to program. You have to program in C to mess about in the linux kernel, work with most micro-kernels, do most networking stuff of interest. Java is useful for implementing algorithms and application level issues.
YOU SHOULD BECOME A GOOD PROGRAMMER ASAP IF YOU WANT TO DO WELL IN THE CS FIELD!!!!! Theory is important but practical hands-on research is a hell of a lot better!
Hands-on research/learning also requires that you have profs who are tops in their fields. This requires that you attend the tech school that can attract such profs. Liberal arts schools often have to rely on Masters level instructors to teach CS topics. Such instruction will not get you far. It will not spark your imagination nor expose you to cutting edge research. It will set you on the path of mediocrity.
It really depends on which schools you're talking about, doesn't it? A good CS program at a liberal arts college is going to help you apply your technical education in a humanly-aware context... something that id missing in many of the candidates I've interviewed (and usually not hired) over the years. A good technical school (ie: RPI, WPI, MIT, FIT, GaTech, etc) will also help you by applying technical education in a highly contextual environment. If the tech school you're thinking about has a vocational focus, you likely won't get this. I prefer graduates from a program rich in points of view and context, whether they come from a liberal arts or technically-focused school.
whiskey tang foxtrot?
Good grief. Cliques in college too? I thought I left that crap in High School.
-
If you are planning on getting into college and getting out with a BS and working in the real world (as opposed to staying on and sticking in academia)... you should go and visit each universities career services office.
They should be able to give you an idea of what kind of demand exists for graduates of their programs. Ask for things like lists of companies that recruit on campus, ask about career fairs and who attends, about a co-op or internship program (hint, you will be dead in the water without a co-op or internship).
The smaller university is likely to have a career service office that caters towards the liberal arts crowd and this could REALLY work against you. Liberal arts career services offices tend to be geared towards finding people with a college degree a job befitting someone with a generic college degree. Think Target hiring managers or United Health hiring insurance reps. The larger one is likely to have an engineering career services office that specializes in attracting the lockheeds and microsoft's of the world who come to campus looking for fresh CS blood to throw in their programming mines.
Now don't get me wrong, I've worked in a career services office, and I don't really think they are that great. But it's still where you want to look in terms of figuring out what your prospects will be when you graduate.
Also, a small liberal arts school feels kind of like the opposite of what most real world IT jobs end up being like. If you really want to go that school, maybe you wouldn't enjoy most IT jobs. Ever think about being an architect? A very large number of students end up changing their major. Consider the possibility of change as you design your college experience. What would your second or third choice majors be, does the smaller school offer them?
I had to make the EXACT same decision 8 years ago (RCNJ vs NJIT). I picked the Liberal Arts College (RCNJ). It was DEFINITELY the smart move, for reasons most people have already mentioned. Just make sure that in your Junior and/or Senior years that you try to get some kind of internship or co-op, b/c its real world experience that employers will look at.
:D
I mean, where else could I take Artificial Intelligence along with "Art as Therapy" in the same year?
Also, Vic Miller is awesome
I went with the private Liberal Arts school (still recieved a BS) rather than the much larger, but more technically regarded public school.
In this profession you are constantly learning about computer science for the rest of your life. Go ahead and get a more broad education now.
Theory basically means math. Programming languages are merely instantiations of the mathematical systems that you would learn in a theory class. You know the old saw "give a man a fish, you can feed him for a day; teach a man to fish, and he'll never starve?" Learning Java is buying a fish at the supermarket; learning computer science is buying a fishing pole and life-long fishing license.
If you know the math, learning the latest programming won't be a problem. If you learn just the current skills (whatever trendy language they're teaching this week, whatever new programming paradigm they want to push), you won't be able to use your education to adapt when the market changes.
The other reason to look at the liberal arts college is this: applications. Computing is rarely an end in itself: unless you intend to write operating systems or design chips, you're going to be applying your computing knowledge to some other field of human endeavor. Perhaps it will be genomics, perhaps finance, perhaps engineering or physics or chemistry. The liberal arts college will force you to be more well-rounded - it will give you a toe-hold in a lot of different fields. This may be valuable some day.
Besides, you're more likely to meet interesting members of the opposite sex (or same sex if you're wired that way) at a liberal arts school than at a technical school. Don't laugh: I'm being hah-hah-only-serious here. Part of the experience of going to college is having your first serious relationships, and those are more likley to be interesting if you're interacting with a lot of different people. Don't tell your parents this is a factor to consider, but it is.
It's all about experience babe. The degree just get's your foot in the door. So pick the school you like that you'll know you'll be able to stick it out and just get'er done.
So how to get experience. Check around with some service organizations, maybe there is a service fraternity at the school you will go to. And volunteer to do some kind of project for them. You are looking for professional references so make sure whatever organization you do work for will be around in the future such as the Red Cross or the local police department.
Which to pick should depend on what you want to get out of college. Employers won't care enough to make what they will think your primary concern. I'm a freshman at a school with an extremely highly regarded Computer Science program. What I see as the biggest benefit (and others may see as the biggest drawback) is the people. I've learned more about CS from sitting around and talking with other students than I have in my classes (I came in knowing a fair deal). So, if you pick the engineering school: get to know interesting people with good ideas (especially upperclassmen) and talk to them. You likely won't get the experience of sitting around with half a dozen brilliant hackers discussing operating system design at a liberal arts school. This isn't to say you should pick the engineering school; it's just why *I'm* happy that I did.
Just one small point: forget what the HR department will think, because they don't make the decisions about who to hire. It's your potential future colleagues and bosses that you're trying to impress; they're the ones who decide who to hire.
You can get a good education at either place. It depends a little on your learning style which is better for you.
One of the key things for finding a job is not just the reputation of the school, but where the alumni are. I think a great liberal arts school is better than a good tech school for this reason, because you will get to know people who will (eventually) become corporate and community leaders. That's the long term. In the short term, the problem with a school that graduates a dozen CS people every year is that there are fewer such alum around to hire you, and alumni connections are a great place to find leads on jobs. Of course, it's possible to find jobs through non-CS people, too.
It's important to understand that having a good job, having a good income, and being happy are all pretty independent of each other. You can make good money doing programming that is not very interesting, you can have a good job doing good work that ruins your marriage, etc. It takes time to find the balance that is right for you.
Most of the time it is impossible to know what you are doing is wrong until you have already completely fucked up. So don't be paralyzed by the fear of making mistakes...even what seems like a colossal mistake, like going to the wrong kind of college, is something that you can recover from. Optimization is for algorithms, and can not be applied to life planning. Anyone who tells you otherwise is selling you something or struggling with their own insecurity.
In a liberal arts school you are more likely to take the full load of English classes (Comp, technical writing, writing...) These courses suck, for a tech minded person (at least they did for me) but they are absolutely necessary if you wish to succeed in business / real world. So this is a huge plus for a LA school. In a technical school you are probably going to learn more by hands-on labs / assignments. Things that are closely relevant to today's tech. A LA school will probably focus more on theory. The hands-on "Go read this data sheet and make this processor work"(tech school) vs "Implement memory space in logic emulation software XYZ only using logic gates" (LA school) (Both actual examples from different schools). The Hands-on is IMHO more important then the theory. Find a school with a good balance of communication and tech. Finding a way to teach your self and a way to pass that knowledge on to others (in a coherent and meaningful way) is what is going to make or break your carrier in tech.....
I am totally biased I took the liberal arts route and I haven't looked back for a second. To be completely honest, it doesn't matter. If you are an intelligent capable professional, a degree from a 3rd ranked school won't help you any less than a degree from 2nd ranked school. I would say follow your instinct. The liberal arts route will expose you to a whole bunch of courses that you may not get at the technical school and if staying up all night doing a problem set for a crappy tech class sucks, imagine trying to write a paper about the Chinese shrimp trade. One last thought, most folks I went to school with had one path in mind when they got to college only to major in something totally different. I went to college to major in jazz performance and I left with a degree in Economics and Latin American studies. Do what makes you happy. Life is too short.
I hate it when people answer my questions with questions but it's important to think about what you want out of your undergraduate education. My point of view is somewhat biased since I attended a liberal arts college for my undergrad education and then, as a matter of convenience, went to a large (not tech) university for my masters.
Attending a liberal arts will certainly make you a different person as that is really their focus. Exposing you to a breadth of subjects, writing intensive courses and how to effectively communicate. Attending a technical school,outside of a few non core classes, will be exactly what it sounds like. Coming out of high school it is nearly impossible to know what you want to do. I've known many people to go to technical school, decide they no longer wanted to be an engineer, and then get stuck in a non-technical program at a technical school. As you might imagine, this is typically bad. Going to a liberal arts school will open many many more doors for you. Outside of curriculum content, attending prestigious liberal arts colleges usually give you a huge leg up on connections. That means more opportunities when you graduate. Going to a liberal arts school also doesn't mean that you can't take classes that will bring you close to the level of another student at a technical school. Further it matters even less since if you're just entering undergraduate school now you will almost certainly need a masters. If you feel unnecessarily inferior to other tech school graduates just get a MS degree from a tech school and you'll be on the same playing field.
There exists an excellent essay by James Michener on the values of a liberal arts education over a technical one. I think its arguments are relevant to your case: http://www.asahi-net.or.jp/~xs3d-bull/michener.html
It is granted that the year is no longer 1962, and Michener never did any computer science (that I know of). Still, read it.
Look,
As someone who is in the IT field, I can say with a fair amount of confidence that the person hiring you will most likely have no idea how good of a "School of Technology" your college of choice has. Moreover, after your first job, the only thing employers will care about is that you *have* a degree.
The only way your college of choice is going to shoot you in the foot is if you go to some place like DeVry or ITT Tech.
I would also try to stick to Universities that people know (I went to Purdue, for instance), if possible.
I am Slad.
... I would not care about the specific college. And I interview people pretty regularly. I'd be much more interested in how smart you really are, not what college you attended.
Studying liberal arts sucks air, but it will probably be a more useful degree for you when looking for a job. Though it might be easier to find a job with the tech degree in the short term, the liberal arts degree will likely help you in the long run. I'd recommend doing some aggressive self-study to make yourself equally as marketable for your first job - then you'll be firing with both barrels.
http://xkcd.com/263/
Never let a mediocre career stand in the way of a good time
I am currently a C.S. student at a prominent L.A. college. There are some professors who teach more theory and some who focus on programming. I get a good mix of the both and the curriculum here is more like a "Tech School" than some actual tech schools.
It really depends on what school you go to. You can't just pick a school and decide it is right for you because the college rankings say it is. YOU need to visit the school and meet the professors and see how they teach. Otherwise, you'll end up somewhere where you don't like what the professors are doing.
The first job you get is all about who you know, not what you can do. So, make some friends in college and you will be fine no matter what. Then, after that first job, no one cares about your schooling, only about what you did at your last job.
Whatever happened to the Ask Slashdot section? I've seen several stories this week that should have been posted there but were stuck someplace stupid like News, and it's not just one editor doing it.
Hail Eris, full of mischief...
E pluribus sanguinem
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.
Liberal arts schools are great if you want to use college as a stepping stone to medical school, law school, or a PhD program. If you want to teach at the high school level or below, it's a good choice as well. Liberal arts schools are also great if your only mission is to learn enough so that you don't squander the trust fund $$$ or inheritance you get from your rich parents.
If you want to go to school for 4 years and then get a real job, liberal arts is probably not the way to go.
While I don't think that this type of post should be on slashdot, I'll respond anwyways:
It doesn't matter what school you go to, given that you are willing to make up the loss in name recognition with hard-work. I went to a small private Christian university (Olivet Nazarene University), with a CS department of 40 students. I still found the coursework interesting, and since it was a liberal arts school, I had a well-rounded experience.
However, it was pretty hard at career fairs trying to sell myself against those that went to bigger schools in the midwest. So do as well as you can at school (try to get close to a 4 point), get a job, do your work, use your network to your advantage, and contribute back.
Most of the posts are right on with HR departments not looking into where your degree is from. Attitude and the ability to work as a team is what most employers want. I would also like to throw a few more options out there that you haven't considered.
Junior colleges or at least 2-yr community colleges might be a good place to start. I went to a private 2-yr liberal arts school in North Georgia that was well known for its theatre program. Once you get to college you'll probably end up changing majors 3-5x and at a 2-yr school there is less opportunity to get behind since you don't have access to the 300/400 level courses that may be irrelevant to your new major. The community colleges will also have a small traditional class size which can be very helpful if it's a difficult class.
Another thing to consider is getting a minor in something useful. This may not help with your initial job, but it will help out with becoming an asset to your employer. I took about 10 years off after getting may A.A. and I've changed my major from CS with a minor in Business to Business Administration with a minor in Finance. The purpose of going to college is to get a well rounded education. You can teach yourself a programming language and work for small companies who may not even care if you have a degree, but the real value to a company is someone who can understand the business and contribute in many areas. If nothing else having a minor in Business , Accounting, or Finance to go along with your major in CS may open doors for you down the road.
I went through the same decision and I chose Ursinus College, a liberal arts school. Over my time here, I have seen lots of other schools through internships, and I found that I know far more than most of my tech school friends. Make sure you talk to the CS professors before you decide, but the right professors can use the small size to help you learn more than a tech school could possibly ever teach you.
Repeat after me.
NO ONE CARES WHERE YOU DO YOUR UNDERGRAD.
Every single high school student I've ever seen tries to get into the best and most expensive school they possibly can. They then incur a mountain of debt and tons of stress.
I've been working in the industry for a while now, but don't trust me; trust the others that say the same.
What matters is that a) you finish a four year CS program, and b) you actually learned something.
It's easy to get the degree and not know anything. 1 out of 10 junior applicants I interview know nothing.
So, wherever you do, make sure to study and practice on your own. (which should be fun, and if it isn't, maybe you should pursue a career that IS fun for you) And make sure that when you go into your interview you can walk the walk and talk the talk.
Most of the time you'll be asked a lot of questions, although some bad interviewers like to ask trick questions or obscure things (be prepared for that). You may have to write some code in the interview, do some whiteboard stuff, etc.
But mark me, whether you get hired or not will depend on what you know, not where you went.
Girls, you're probably also better off at the liberal arts college. Engineering school will see you get your own way often by virtue of your gender, regardless of how brilliant you are or aren't, and while that's fun and possibly novel... you'll be challenged more and learn more in an environment where that's not true.
Granted, this is a self-fulfilling prophecy.
I am a CS major myself, facing my last exam in 3 days - so I will be graduating really really soon.
I went to #1 CS school in the country, and there was no doubt in my mind in the beginning it's the best place to be. This is where all the tech companies spinoff started off, and where all the big companies look for potential talent.
My point of going with the CS school is that, you really be in the environment where you can grow, you are challenged to think about different ideas and how to come up with the best solution.
True that you'll have series of endless nights, I went for about a month of 3 hours of sleep a day, being at school from morning until the next dawn. But if you really enjoy CS, no matter how hard the challenge is and how hard you need to work, you'l do it anyway, just because
So if you really think you are up for it, and CS is your life - go for the tech school.
All right. A little setup so my words have some weight.
I graduated from an engineering school (University of Missouri-Rolla) in December 1993 with a Computer Science degree. I've been in the industry for 14 years. I've done interviewing, hiring, and mentoring in addition to my normal activities (system/database admin). I've done consulting, worked in big companies, small companies, and medium-size companies. In short, I've seen just about everything.
For career development, to be able to compete over a very long term, you need to have a solid bedrock of theory in how things work. Theory provides you with the frames of reference you can hang everything else on. If you understand how compilers do what they do, learning any computer language becomes trivial, because all languages basically do the same thing. The same applies to operating systems, queuing systems, security systems, and so on. There's a lot of theory, a lot of math involved, but it's math you need, and it's math you'll use.
Back in my day (barf) we had a class called Operating Systems, it was taught by the department chair (an awesome guy) and basically the project was to write a program in C. There was no class in C offered. There was no teaching of C in the class. K&R was on the "recommended reading" list. That's it. Thrown in the pool and see if you can swim. I'm good with that, because you know, that's what it's like in the real world most of the time.
You *need* theory to survive in the workplace and do well. You will not be able to compete without learning it. Any other education you get that seems more "practical" will likely be out of date before you graduate.
That said, for getting that first job, you need experience. Why? Because getting past the resume desk of 99% of all companies is a matter of buzzword bingo. That sounds dilbertesque, but it's unfortunately very true. The HR person at a company, even 20-30 person companies have someone who looks at resumes and filters them, has an enormous amount of power over your future, and no clue at all what all those letters mean but their boss said they all had to be there, in that order, on your resume. Which means you need to find a summer job at least (if not an internship) to provide you with enough buzzwords to get a match on that particular person's bingo card so you can talk to a real person. This sounds cynical, it sounds depressing, but it's unfortunately true: 90% of all resumes get rejected by HR because they didn't have the right buzzwords on. And the HR person reviewing the resumes has no more idea what all those words mean than your grandmother.
So the answer is, you need a great base of theory to work from, and then a string of buzzwords to surpass some barely literate art history major who opens mail for the HR department.
Oh, and the step after that is me. You have to charm my socks off. Your job in a real interview is to make me believe you can do the job and you aren't an annoying prick who's gonna cough, sneeze, snort, hum, and sing along with his iPod all day. You need to know that while your desk phone has a speaker on it, if you use the speaker phone I will hate you. Seriously, I'll hire someone a bit underqualified if I like them, but I'll skip the most supremely qualified person if I think they're an asshole who's gonna piss me off. Because ultimately I can make someone with the right attitude and foundation work in a job, but I don't want to work with assholes.
Worked at (the old) Bell Labs for many years. Only hired the best people from the best technical schools. Started my own company, hired people (CS and EE) from highly rated Engineer schools, and a few CS people from liberal arts colleges. I will never again hire someone that does not have a degree from a real engineering school.
This is coming from a former Ph.D. candidate in history who now works in public relations and web design.
SJW: Someone who has run out of real oppression, and has to fake it.
I realize you probably don't really know yet (and if you think you do, there's probably a lot out there that might change your mind), but it really all depends on whether you like the theory classes or not over the more engineering oriented classes. I was fortunate to go to a university that was both a highly regarded engineering school and a highly regarded liberal arts school, so I really got to see both sides of the coin.
I was more into the theory courses than the more practically/engineering oriented courses (algorithms as opposed to operating systems), but at the same time I would say that at the end of the day, as much as I sorta hated some of the liberal arts classes, I ended up minoring in film, which was really a great way to take my mind off of CS.
On the other hand, I definitely wouldn't have gone to the liberal arts school if the CS program wasn't top notch. From what you are saying, it seems like the CS program is pretty crappy. People will recognize big school names, but only if the CS program is good there (small or not). If you think you are really passionate about CS and don't think you will be challenged at the liberal arts school, you will definitely regret it in the future. That being said, you might have a much better time there, as long as (as some other posters have mentioned) you are reasonably self-taught.
bottom line: if the liberal arts school has a good CS program and you think you like theory, definitely go for it. hiring, shmiring. I do think that if you are well liked at an interview (as long as you are smart), that goes a LOONNGG way.
BSD is for people who love UNIX. Linux is for those who hate Microsoft.
You'll learn everything on the job. The piece of paper, regardless of where it was printed, will just be a door pass to your first job. Every position after that will be based on real-world experience only.
Definitely go Liberal Arts if you want to have a chance at getting laid during those years. The rest you can learn on the job.
You'll learn more, get laid more, and be more relaxed at the liberal arts school. Take some difficult courses: logic, rhetoric, psychology, biology. Study evolutionary biology: it explains how people work better than any other framework.
P.S. If you want a job after you graduate then study business.
Really, that's my only advice. I went to a school which at the time had a 66/33 mix of male to female, as it was an engineering university. It wasn't much fun.
Also depending on your personality, if you aren't like a super extravert, you will enjoy a school which has a smaller number of students. Smaller school with say 5000 students is more tight nit, you know a larger percentage of students in your class and you'll probably be taking multiple classes from the same professor so you get to know them better as well.
As far as what matters when looking for a job. What college you attend really doesn't matter. What matters is what you know. It most certainly does help to have a ComSci degree. I personally refuse to hire anybody without one to be a developer. But beyond that, it's all up to you.
The smartest guy I ever worked with did have a degree from MIT. But I don't think it would have mattered. The guy was smart regardless of what school he had gone to. The next smartest guy I knew had a degree from a state college.
I went to a liberal arts school for my CS and engineering degrees. It was #1 in the nation two years while I was there, and has never been out of the top 3. For whatever US News rankings are worth. Not much in my eyes, but people seem to value it. And I wouldn't change my decision to go there. It has opened a lot of doors for me.
But choice of school depends on what you're looking for. Despite being strongly math/science oriented, I want to take classes in other disciplines. I wanted to be surrounded by smart people (mission accomplished), and, frankly, I wanted to have a top school on my resume.
The advantages of a liberal arts degree are enormous, particularly if you go to a well-regarded school. The most important thing you will learn in college, regardless of your degree, is how to think critically and communicate effectively. And there's not a better place to go to learn that than a liberal arts school. That's what a liberal arts education is.
And if you're concerned about employers looking down their nose at you for not goign to a tech school, don't be. Coming out of college, they know you're not going to have much, if any, experience, regardless of where you go. For entry-level positions, they primarily want someone smart with the appropriate degree. Beyond that, they'll teach you what you need to know to work for them.
If you want a more tech-oriented school, but with a good range of liberal arts opportunities, look at Carnegie Mellon, Harvey Mudd, and other similar schools.
And also consider whether you'll be an engineer your whole career. I think liberal arts is best because it prepares you for a broad range of careers. If you want to specialize, you can do it by choosing the right jobs, or by getting advanced degrees.
But the bottom line is, any school is primarily going to be what you make if it. You can get a great education at a mediocre state school, if you word hard. And you can get a crap education at Harvard, if don't do anything.
Pick the school that fits you best, not what you think other people will want to see on your resume. You have no idea what they want, and you're the one that has to spend 4 years there.
Many larger companies will actively recruit from specific "target schools." This doesn't mean they won't hire graduates from other schools, but they will actively attend career fairs and conduct interviews on campus for the schools on their list. Having the right companies interested in your school makes it more convenient for:
1) Learning about what opportunities are "out there" during career fairs (companies come to you to promote themselves)
2) Submitting your resume to a real person (at a career fair) rather than to a website (you have a chance to make a personal impression)
3) Getting follow-up trips for on-site interviews after the screening interview on campus (rental car, swanky hotel, decent meals for a change).
You can still get a good job from another school, but it makes it a lot more convenient from a "target school."
And, please spare me the "All frat boys are just a bunch of elitist date rapists" crap, please. I could as easily retort with the greek "All GDI's are lame-ass losers" stereotype.
SJW: Someone who has run out of real oppression, and has to fake it.
I went to a large and well known engineering school to obtain a CS degree. Because it is a school known for engineering and tech, many well known and large companies came to the job fairs (which were fairly frequent) looking for good CS students for entry positions and/or internships. I am not saying these companies would not go to a liberal arts school, because I do not know if they would or not. However, they would go to a tech or engineering university and expect to find potential employees. If both schools are well known, then that well help in finding starting a career. However if one is well known for producing tech and engineering degrees, then the employer will assume you are better prepared for your job. Also, my school helped students find jobs. Students could drop off copies of their resume with the adviser and they would pass the resumes along to companies that came to the school to look for students trying to start careers. Ask the schools if they have any assistance to find jobs and how many/what type of companies participate in such methods of finding employment. This is not critical to finding a job (especially if you are looking for job closer to home at a small company), but it is a nice option to have.
Tech schools may also have program that provide special training for careers both inside and outside the class room. My university had clubs that dealt with robotics, linux/OSS, etc. My university also had a program that matched students from various disciplines (CS, electrical engineering, etc) to work in teams for non-profit organizations in the community while getting credit to apply towards your degree. This is something of interest to employers because it shows you can work with people outside your field to complete a goal.
Another way the "where" is important is the quality of education. This applies to all schools--not just liberal arts vs. tech schools. When I talk with people that obtained CS degrees from local colleges, I find that my education was much more comprehensive and complete. Some people never learned some things that I would consider fairly important or helpful. Though in this instance, I am comparing apples and oranges... these people went to small colleges and I went to a large university. However you did say the CS program at the L.A. school was small. This may or may not create a similar situation.
My $0.02
Depending on your situation, college may be the last time in your life when it is practical to spend most of your time doing whatever you want, studying whatever you want, without the pressure of having to earn a living and support any dependents (if you are lucky).
Don't blow it.
Don't do what you should do; do what you want to do. If you have the inclination, branch out and explore a little bit. Stretch a little: do something that's outside the realm of what you think you like.
I personally majoring in CS at a university, which is more rigorous than a liberal arts college and more liberal in different types of course work than a technical school. And I still get to graduate with a B.S. in Computer Science.
Because of the university structure each non-liberal arts major has their own "college" within the university. With this structure the "college" has full reign of the courses students of that major have to take. Which is a good thing because they no more about Computer Science and can create a great program and attract better professors than a liberal arts CS program. But, the university requires that every major take basic arts and humanities courses outside of their major. This gives each student the opportunity to find other things that they love. I couldn't ask for a better setup. I am completely well rounded but have still learned from top tier professors who have graduated from the best technical schools in the world.
I got my undergraduate degree from a liberal arts college (CS major, math minor), but then, after a small hiatus, received an MS from a well-known technical school.
A few random observations from a veteran of industry:
Good luck!
--- The American Way of Life is not a birthright. Hell, it's not even sustainable.
If you want to be a specialist, you are likely better off going with the tech school. The experience could burn you out if you have any outside interests at all, and you might wind up hating it with a passion, but you will have a better set of skills for the work.
If you want to have the skills/ability/flexibility to approach a wider range of CS careers, albiet with a larger learning curve for each individual specialty you might have to master, the LA will probably give you a better foundation for that. Also, if you want to go to grad school, a LA gives you more of the non-technical skills you will need to be successful.
In truth, I prefer to deal with LA graduates in CS...they have better communications skills, better writing skills, and aren't quite as prone to being arrogant pricks.
Read Steve Jobs' Stanford commencement address, and then decide if the question is even valid.
Look my friend, The question you are asking yourself should not only be "what do employers think" but "how much will I learn and accomplish with the opportunities given to me." I know 100% that you will have more technical opportunities at a school with a thriving CS department. Student projects. Assisting in research. **These are what employers look for** Furthermore, your coursework will be of higher quality, your professors (mostly) will be more in tune with industry, etc. Finally, recruiters DO care about whether they've heard of your CS department... I mean, my CS department is so linked with companies that I got interviews with all the great tech companies you hear about without even having to think much about it. They came to ME. Consider that. Finally- I suggest a compromise. There are MANY good schools with a vibrant Liberal Arts college AND a fantastic CS department. University of Illinois and University of Michigan come to mind. If you want the Liberal Arts curriculum so much, why not choose one of those? They aren't Stanford or MIT, but trust me, employers in the midwest respect their curriculums.
Companies really go for the name of the school on the degree. A liberal arts school wont have as much of an effect on a company as the tech school. I know companies give higher rates to students that came from certain schools just because of the schools reputation.
In the real world the piece of paper you receive from a college is just that, a piece of paper. At best it lets a potential employer know that you are capable of finishing what you start, but so do a lot of other things.
Unless your dream life is 40 years sitting in a cubicle never interacting with another human which college you go to, and for that matter largely which degree you have, doesn't actually matter one bit.
If I was actively looking to hire a programmer I'd take the person who most appeared to be able to 1) fit in as part of our team 2) learn and adapt and 3) do the job. I'd pick the person based on my opinion of them in that order.
Basically what I'm getting at is that largely the advice here is spot on. The piece of paper from whatever college helps you get your first job after graduation, after you get that first job no one will ever care again.
CS majors are a dime a dozen, from tech schools or liberal arts colleges. You need something to set you apart from the crowd, and doing a serious undergrad research project is one of the absolute best ways to do it. You get huge benefits all the way around
Ask what the majors in your field have done for senior projects. Do they sound interesting? Are the seniors enthusiastic about them? Ask how many *undergrad* students there are per professor working on research. (The ideal answer here is less than 5, with no grad students, but you'll only get that at a small liberal arts college.)
One of the recently faculty lunches here was given by a CS professor and his student- they developed a program over the summer to solve the 1-die per player/2 player version of Dudo. How many undergrads get to give a talk that a bunch of faculty members listen to avidly? (It was the best talk I've seen this year)
*That's* what gets you a good job.
"Seven Deadly Sins? I thought it was a to-do list!"
Decide which school will be more difficult and go to that one unless you think you can't cut it.
Woe to the timid man who tip-toed when he should have ran...
It really depends on what kind of programming you want to do, and even then there are many other factors. I wouldn't trade my CLA computer science experience for anything, but I would trade some of my other CLA experiences. Theory is most important to me. It's what lets me figure out what's going on when something starts acting funky. I'm a firmware engineer and all my coworkers are electrical engineers who can produce code more quickly than me, but mine is smaller, easier to understand, and more easily tested than theirs. Other colleges of liberal arts' CS departments may not be the same, and I did tend to do research rather than work on what I was supposed to so I learned stuff beyond what was taught, but it worked for me. I know plenty of sharp programmers who went to other types of schools and plenty of less bright people that went to my own school, so mileage is an lvalue. (look it up, if you don't know) The only real down side was that it seemed fairly difficult to convince people that a CS major could do firmware. People around here seemed to think that was what electrical engineers were for, but I always thought they were supposed to design circuits.
There's actually 2 questions here: Lib. Arts vs. Tech college, and good CS department vs. inferior one.
All of the posts that mention the advantages of a well-rounded education and learning things outside your major are absolutely correct.
I would never work at a company that only cares about technical skills and abilities and not about your communication skills or reasoning abilities. Those jobs are cheap, easily replaced, and less fulfilling (and you end up working with boring people and jumping around a lot). And so a universally focused university provides better training for a better job that a strictly focused technical regiment.
That said, the quality of education needs to be taken into consideration. Lib Arts colleges are having a horrible time with funding these days. If the CS department is small, that means it probably doesn't have much money. While that may or may not be reflecting in the quality of teaching, it certainly is reflected in the number and quality of courses and facilities. I've seen what it's like to be stuck trying to teach at a university with bad funding. It isn't fun.
While you want to get out of school and say "I got a well-rounded education", you don't want to say "I never learned that because my school couldn't afford, or was too small to have that"
The best is a non-specialized school with a decent (does NOT have to be outstanding) CS/EE department. That way you can get a good education from a CS major, and minor in Music Literature, or Botany, or Paleontology, or Art History, or Italian, or....
Assuming that you are sure you are going to major in CS I would advise that you pick the school with the larger CS department. 12 CS grads a year sounds like a small program. I would imagine that you will have a lot of classes you would like to take canceled for lack of enrollment. Also if you compare the number of CS majors (presumably 48) to the number of say communications majors or business majors and find that you would be outnumbered by a factor of 10 or so, you have to ask yourself, "How much of a priority is the CS program to the university's administration?" You may find your self in a crappy program that is under funded with discontented or low quality instructors.
1) If you aren't going to a top 100 or 150 brand name school, then the brand of your school doesn't matter to HR depts- they decide between brand / no brand
2) If you ARE going to a top brand school, there are plenty of "liberal arts" universities with stellar tech depts i.e. University of California schools, University of Illinois, etc...
3) If you are deciding between a truly "liberal arts" school and a "tech school" of equal brand remember the most important thing: undergrad is for getting laid. You wont get laid at the tech school- go to a brand name grad school in tech once you have your undergrad sig. other / LTR
If both schools are good and both programs are good (which appears to be the case), go with the school you prefer. What if you got into CS a bit and decided that you want to do something else? It would suck to be stuck at a school that you're not a big fan of because you chose it for a program you're not in any more. Also, what you do in your in-major classes isn't everything. More enjoyable electives, dorm life, food, etc. are very important too.
The reason I say this is because it doesn't really matter which you graduate from. A few hiring managers might care, but those aside you should have no problems if you have good grades and some intern/co-op experience. I work alongside people who went to very technical schools and wouldn't know Faust from Faulkner, and I also work with people who went to liberal arts schools with tiny CS departments. Both sides do good work and had no problem getting hired on. The only real advantage I can think of is that the more technical school might have a more extensive hiring network for CS grads. But a little bit of legwork on your part at the liberal arts college could easily make up for this.
If you're concerned that you won't get enough technical knowledge from the liberal arts college, just be sure to take a summer and semester off of school to co-op with a company in the industry. If you do this, you should get plenty of offers (and probably one from the company where you worked). Also, you'll gain some great real world programming experience and technical knowledge.
I've worked in I.T. for 30 years, and done my fair share of management of software engineers. If I'm interviewing an individual for a junior or associate position, then it is assumed that this will be their first or second job in I.T., and you look to their education to tell them how qualified they might be.
As others have pointed out, the amount of experience you gain while attending college speaks louder than the name of the school you attended.
Would I choose the star graduate from an elite university who studied with some of the top technical educators in the world, but never worked on a real world application, or the NYU student who did well in school, but built three working eCommerce sites for real businesses on the side, has his (or her) own blog, and interned at the Chase Bank Data Center while attending school?
If I'm Bill Gates, and I'm trying to create the next XBox, then the first candidate would be more attractive, because I could groom him (or her) to be the perfect little engineer for my project.
But the vast majority of I.T. managers will undoubtedly select the second candidate, just for the fact that most software work involves day to day business problems on real world databases. Pure tech schools do not do an adequate job of providing you with the business, social sciences, and *liberal* skills to understand how people work together and interact.
Career I.T. professionals who want to keep their careers must continually update their skills and education (both practical and theoretical). But ultimately, your people skills, and your ability to "think outside the box", will make you far more valuable as an I.T. professional in the business world.
A BSCS is nearly as difficult as an engineering degree, but as worthless as a liberal arts degree.
.net. But now i have been laid of and out of job for past 4 months."
At best, a BSCS is a feather in your cap. It is almost never a job requirement. Look at the job ads, employers want tons of very specialized experience. If a BSCS is mentioned at all, it's practically always "or equivalent degree, or equivalent experience. "
Besides, IT is being devastated by cheap offshore labor. Even if you can get a job, can you count on having that job in five years?
Take a look at the dice forums. I could not help but notice how many posts from seeker.dice.com forums are of the same nature. And the situation is just getting worse. Below are just a few recent examples:
"I graduated with a B.S. in Computer Science from New Jersey Institute of Technology (NJIT) back in January 2005. After I graduated, I was unable to find a job . . . so in order to pay bills and student loans, I had to get a temp job doing customer service, making $12 an hour"
http://seeker.dice.com/olc/thread.jspa?threadID=6562&tstart=0
"I have bachelors degree in computer science. I have 10yrs of experience in software and 5yrs in
http://seeker.dice.com/olc/thread.jspa?threadID=7151&tstart=0
"I am a cliche . . . I am 24 year old, B.Sc. Computer Science grad from an above average state school, and I'm unemployed."
http://seeker.dice.com/olc/thread.jspa?threadID=4896&start=0&tstart=0
"I graduated with a B.S in Computer Science last year May 2007. Though after applying to hundreds of places I've only gotten a handful of interviews and no IT job as of yet! All my other friends who majored in business or accounting managed to get jobs fairly easily."
http://seeker.dice.com/olc/thread.jspa?threadID=6875&tstart=0
"Soooo. I graduate May of 07, with a 3.3 and a BSIT but no experience in IT Security . . . And I am $#*7 out of luck"
http://seeker.dice.com/olc/thread.jspa?messageID=42472ꗨ
"I finished my Associates degree in IT back in December and I still haven't found employment in the IT field."
http://seeker.dice.com/olc/thread.jspa?messageID=42320ꕐ
"In 2004, took the school Valedictorian of my college class-- 1 year to find a job in IT. "
http://seeker.dice.com/olc/thread.jspa?threadID=6923&tstart=0
You need to learn to program, thats the deal. Thats a whole separate topic, what it is to learn to program. But especially with the web today, you have lots of stuff at your hands to supplement what is at a particular school.
:)
;)
Make sure where you go lets you code large programs though, and start doing so as soon as you can. The biggest difference between the typical collegiate level program and professional work is typically scale. So you need to get your hands on writing code in larger projects, and managing that complexity yourself, and listening to others who also manage that complexity. Hacks that work at the small scale tend to cause confusion, brittleness, and performance issues when put into larger scale projects... Also, try looking at code you wrote 2 or 3 months ago, and see if you can understand it.
What comes with this as well is cohabiting that code with others, which guess what, means talking to them.
You are also going to have to drop the "I'm smarter than everyone else" thing you picked up in highschool, because chances are there will be other semi-intelligent people around in your CS program. You may even like hanging out with other intelligent people. Take it as a chance for kinship, not a sudden realization that you aren't some kind of god among men. Having friends you can talk to is good.
Also its not cool to tell the liberal arts majors that your major is harder than theirs. You are right, it is, but in America every child is above average, so let them have their dreams. And besides difficulty isn't the same as important, just like arrogance isn't the same as competence.
Oh, and for god's sake, go out on weekends, do intramural sports, or at least hang out where its loud and there are attractive members of the opposite sex. One of them might think you are attractive, if you brush your teeth.
And leave your D&D stuff at home.
There are lots of people who go to liberal arts school for 4 years and get a real job (myself being one of them). A liberal arts education is more about learning how to learn - which will serve you better in the long run. As stated above, a liberal arts major will be doing whatever they want to be doing. Whatever you set your mind too, you will have the tools you need to follow through on.
Hi:
/preMed / preLaw students passed.
I attended a high-end and selective liberal arts school my first time around. Believe me, the CS majors will be challenging as they will have passed the selection process that the Math / English / PoliSci / Art / Theatre
You will wind up a better educated person with the Liberal Arts CS degree, even if they call it a Maths degree. You have to communicate with other people to do high-end work.
I talk to engineeers, biologists, geologists and other kinds of scientists every day. If I can't understand them, our systems and projects suffer.
I talk to accountants and managers every day. If I can't make sense to them, my budget/systems suffer. I'm not saying that MIT grads can't do what I do, but they'll have to learn a lot on their own before they could do what I do as well as I do it.
I'll go for a well educated and rounded person every time, if I can get one. They're harder to come by than you think!
JR
Think of the Irony!
I would just like to further emphasize this point. As someone in the position of hiring a number of CS students, I've found that most of them have difficulties communicating with folks who aren't of a CS background. They would benefit from a liberal arts education, being exposed to a wide variety of disciplines and schools of thought, and likely draw from it connections to other fields they might have assumed (a priori) didn't exist. In fact, the interdisciplinary opportunities for CS students with liberal arts training are myriad at present, and only look to increase in number.
Take social networking for example. There are not enough CS folks in this field who possess some training in sociology, psychology, or anthropology. This is one of the gripes I hear from researchers - that there are not enough CS students who understand these other fields, resulting in weak contributions or flat out screw ups.
Perhaps in no other field is the chance for interdisciplinary work more evident, and since there aren't enough multi-discipline CS students out there right now, I would recommend exploring the liberal arts option.
I graduated from a small liberal arts college will a Computer Science degree. It was mostly theory in the beginning, with programming courses towards the end. It was a well rounded education that has served me well in the five years since I graduated.
One thing I do regret was not securing an internship with a government institution or contractor during the summers. Instead of working throwaway jobs serving drinks during my college summers, I could have been getting on the job experience and my foot in the door of a firm with a lot of upward mobility. No matter how much theory or in-class training you receive, nothing can compare to on-the-job training and real world experience. Internships provide that. Even though you will be low on the totem pole for a time, the experience pays off, not only on your resume, but in your wallet as well.
If you like where you intern, you have an excellent chance of securing a better-than-entry-level job upon graduation. If you don't like where you intern, you have experience to put on your resume that will give you a leg up on other new graduates in your field.
If you are certain that you want a career in CS (possibly as a researcher or at a place like Google), then pick the school which has the best CS program. Nothing beats working with motivated people who will challenge you.
If however you are not totally certain yet that CS is your future then pick the school that also offers alternatives you are interested in, preferably as wide a range as possible. If you get burned out over your potential major it is important to be able to switch to something else so that you're not stuck in a field you have no interest in.
I went to Stanford and it seems whever I pass by every student is involved in some startup. Apple, Sun, Google, HP, Yahoo, YouTube, Paypal, just to name a few.
Harvard is another surprising source, giving rise to MicroSoft and Facebook.
Back in my day we went to school with geeky hippies. Now where did I put that Whole Earth Catalog?
You will certainly have a better chance at getting really good at computer science by going to the tech school. It's not just the education, it's the people that will be around you. The professors, the atmosphere, the up-to-dateness of the material, the overall level of competency, and much more. However. Do you really want to be a programmer in 10, 15, or 20 years? When I was a high school senior, the answer was "Yes!" I wouldn't have dreamed of doing anything else. I mean, seriously, you get PAID to do that!? Then I got a welcome to the real world.
Programming is a blue collar job. Some people are gonna resent me saying so, but it's a point that's hard to deny. You will stress your body (and mind) doing it, pulling late night stunts just to find a bug, or to try and make up for a changed objective or schedule because the manager said so. You'll gladly do so for a year, maybe 2, maybe a bit longer if you're really healthy. You'll feel better than the "others" who don't perform as well as you. Then one day, you'll realize that it's hurting your social life, your health, and just about every aspect of you, and your manager doesn't value you as high as you think you should be valued. You realize you're a commodity. You may, at that point, change your career and head towards project management. Or direction. Or even sales. Perhaps something even entirely unrelated to computer science.
That's an extreme case I painted, but not as uncommon as it may sound now. I won't say that this is just a programmer issue, but more likely an issue that many many people face in many professions. And the key is how you can leverage your position into moving on to other things that you take an interest in later in your life.
With a C.S. education at a good university, I have no doubts that you will have more knowledge and experience on the subject than if you were in a liberal arts college. You will also have more connections with people that are in-the-know of the field, which will be a plus. You'll also have a hard time changing careers.
Changing careers isn't even that drastic of a thing when you think about it. Most non-tech companies don't hire programmers. They let other tech companies do that for them. But if you can be a project manager, many companies will want you, simply because you're capable of understanding how tech companies work, how to interact with them, how to make sure you get what you asked for, and the list goes on.
What the liberal arts college and a C.S. degree there will give you is a relatively good grasp on programming (provided you're willing to motivate yourself to learn), a well rounded education in areas other than C.S., and a general wealth in interacting with other people. The last part does not come from classes, but I would value it very highly. It's what will get you going when you need to get going. Social skills are necessary.
One final reason as to why I believe so is, that within 5 years of graduation, half of what you learned in C.S. classes won't matter any more. But your human skills will.
This is coming from someone who went to a tech college, and had a hard hard time coping with a lot of things life had to throw at me after graduation. I thought I had what it takes, but I didn't. I had to learn these human skills and dirty tricks AFTER graduation, which is lame, in many ways. That said, I could do it, so it isn't impossible. It's just hard. I quit programming, but still am semi-related to the field I began in. I'm also a (100+ employee) corporate executive. So like I said, it can be done. But the majority of managers that report to me didn't come from a tech school background, and I think they have an advantage when it comes to moving around.
My 2 cents. And good luck on a bright future. Whichever way you go, you're life is what you make of it.
I'm an MIT grad (1978, Math and CS, or course 18 and 6.3, as they called it then). It was really cool at first being with so many science and math people; way different from high school. But it was definitely a very narrow education, and it eventually caught up to me -- I had to spend months in grad school learning the *basics* of writing to be able to even express simple technical concepts clearly.
When you get down to it, either place will be fine for getting into grad school or getting your first job, and after your first job, your school matters even less.
So, don't worry about the job market, and go where you want. Either choice will work out fine. Were it my choice, I'd probably go the liberal arts route, and get a masters afterwards in CS.
Having gone from undergrad at a top liberal arts school to a grad student at a top tech school, I'd strongly recommend the liberal arts school. As for quality of education, my upper level courses as an undergrad at the liberal arts school were more similar to the graduate courses I'm taking now than to the undergrad courses I've sat in on at the technical school. Also, the undergrads that are part of the research projects I'm in now seem to be treated like programmers or second-class citizens as opposed to peers. If you do research with faculty at a liberal arts school, you won't be competing with grad students for time.
Undergrad is a time for gaining perspective and experience, not narrowing in on precisely what you want to do with the rest of your life. By taking more classes outside your department, you might actual learn something other than technology.
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
You really shouldn't be only considering future jobs, but which school you would feel more comfortable at and would better fit your learning.
As a computer science major at a small liberal arts college, I know all my professors by their first name, have classes that range from 4 to 15 students, starting working with a robotics soccer team my freshman year and won the world championship last summer, get to fly to Germany and China for competitions, choose exactly which projects to focus on and work directly with other student in coordinating research and development. I know my experience is not typical.
But there are also drawbacks. The class selection is limited (I will have completed my major and all the courses in the department by the end of junior year), and though this leaves lots of room for student research, if the professors field aren't what you're interested in, it will be difficult to develop your own tasks. There also aren't many other student on campus that are in your field, so you may both be in lack of large number of friends with similar interests and forced to interact with many different types of people, for better or for worse (I enjoy it very much, but miss the nerd-friends I had in high school).
It's definitely a toss-up. I know I made the right choice, and I've enjoyed taking classes outside of my field, as a liberal arts college will cause you to. But I get to focus a lot more on MY education and what I'm interested in studying. My entire senior year will be student research in computer science and non-major classes .
The absolute best thing, though, has been getting involved with RoboCup. I don't think that in a larger tech school we could have 'owned' this project the way we do. I've even had a lot of interaction with graduate departments all over the world: next week we'll be sending our code to Germany to compete remotely, in April driving to Pittsburgh to beat the Carnegie Mellon team to the ground once more, and in July flying to China to via for first with the new robots.
Then you can get a visa and come back over.
I dont get paid more than the average CS-worker in my industry, but havent been seriously unemployed ever.
There is soemthing to say to the college experience itself. Theres something extremely stimulating about being surrounded by others who all have your 140 IQ and are strongly interested in science and technology. I really enjoyed it. The apathetic, slower-moving outside world seems half-asleep and if I didnt have the web I'd go crazy. Theres dozens of place as good as MIT to have this experience, but many lessor colelges where you dont.
I went to a prestigious liberal arts college, majored in CS, and am now a CS grad student at a top-3 PhD program. Personally, I'm glad to have gone to the liberal arts school. Here are a couple of reasons why:
1) Small classes with professors who care about teaching. Professors at large tech universities are primarily there to do research, not to teach. Professors at small liberal arts colleges are there because they want to devote their lives to teaching. The fact of the matter is that most of what's taught in undergrad CS is well-understood, so it's the quality of the teaching, rather than the research brilliance of the professor, that matters. For example, my intro CS prof was an amazing teacher, knew the name of everyone in the class, came in on Sunday evenings before exams to hold review sessions...that probably won't happen at a large school.
2) The chance to study a variety of areas. I took a bunch of CS and math, of course, but I also dabbled in French, biology, and history, and I spent a semester in Paris. This also means that you won't get pigeonholed into a technical field and will have options to major in something else if you decide CS isn't for you.
3) I learned to write really well. Don't underestimate the importance of being able to write. Being able to sit down and easily knock out three pages of coherent text in a half hour or 45 minutes has been *incredibly* useful in grad school. We also had to give presentations relatively frequently, which has made me pretty good at standing at the front of a room and explaining things to people (also very important).
4) Going to a small college may make you more likely to go to grad school, if that's your thing. See http://www.eric.ed.gov/ERICWebPortal/custom/portlets/recordDetails/detailmini.jsp?_nfpb=true&_&ERICExtSearch_SearchValue_0=EJ322316&ERICExtSearch_SearchType_0=no&accno=EJ322316,
but correlation/causation isn't necessarily clear.
That said, a small liberal arts school isn't going to give you the connection to a bunch of start-ups or tech companies that (say) Stanford will. But, if you go to a good college, do well, and have good recommendations from professors, I don't think you'll really have a problem. I'm also slightly biased in that my school had a particularly broad CS program since it was joint with an engineering school across the street.
I don't know of too many schools that can be classified as strictly one or the other.
That said, I've been to both types for several different degrees, and I value the more theoretical training from the small programs within liberal-arts-leaning schools much more. They taught me (or helped me teach myself) how to think and gave me the tools (or forced me to make/find the tools) I need to analyze problems. They emphasized the whys, the big picture, and the idea development process, which is essential to being a creative/innovative thinker. You can always learn new technical stuff on your own if you understand the underlying theories and how it all should fit together, but it's more difficult to learn the theoretical part on your own, if for no other reason than it requires dedicated time and effort which doesn't likely produce immediately measurable benefits.
College is about preparing for life, not just a vocation or "career." There are surely subjects that you will find interesting which you never dreamed you'd like, and a liberal arts type school will likely give you a better introduction to them. Besides, you might go on Jeopardy someday.
Lastly, aside from a few graduate programs and certain very selective sub-fields, as long as the school of your choice isn't a known slacker magnet, most employers will be more interested in what you can do on the job. The degree gets you in the door, and decent grades in an applicable field from a reputable school can do that.
If you go to a tech school to learn one skill, you will starve some day when you become obsolete.
Bottom line: This is an information based economy. The idea that you go and do one thing your whole life is an industrial age idea that no longer exists. You'll have several careers in your life time.
The real benefit to attending college is that you learn HOW TO learn for the rest of your life.
Are you the submitter? DON'T GO TO RPI! PRESIDENT JACKSON IS FUCKING LYING TO YOU!
I was accepted to RPI last year and chose to go to UMass Amherst instead. For computer science. Yeah, UMass is #17 nationwide and RPI is #34 last I checked.
Anyway, the number of transfer students from RPI who show up in my math, science, and CS courses (conspicuously high) says that I chose rightly.
For engineering RPI is good, but don't bother enduring the Troylet and the winter weather there for a CS degree when plenty of schools will give you a better education in the field for less misery and much less money.
I never RTFA or even the summary but let me tell you, anyone who says WHERE is not important doesn't know what they are talking about.
For example:
SELECT employee_id FROM empdata.employees WHERE emp_last_name='GOLDMAN';
VS:
SELECT employee_id FROM empdata.employees;
How would you ever limit your results set without the WHERE?
Idiots
It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
When I went to college in Minnesota 25 years ago, two of the local state universities (Mankato and St. Cloud) had Computer Science programs with very good local reputations, so there was a certain amount of positive vibe that went along with a degree from those schools (as well as a degree from the U of Minn).
:-)
I suspect the name "Mankato State" means fairly the state of MN, however.
That said -- sometimes the institution you graduate from does matter. If a company already has people from a given school and has had a positive experience with those people, they might choose to hire someone else from that school if all other factors are roughly equivalent.
Does a degree from a tech school carry more weight than one from a liberal arts college. I think it depends on the reputation of each institution.
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
Nobody will care about your GPA and/or class-rank after you graduate. If your goal is to get a job using CS or Engineering, it's all going to be about the projects you've worked on and what your contributions were. If the school doesn't require you to take English classes especially creative writing, take it anyway. You have to be able to communicate effectively. Also, find out how much practical application of the knowledge you are going to be doing. Nobody will hire you if you do nothing but theorize about stuff. Employers will want to know if you can dig right in a start designing or coding.
I went to a technical/engineering school. There were 3 or 4 women per 1 male. Now I'm finishing up grad school at a school where there is a 1 to 1 ratio. Let me tell you, life is a lot better. Even if you are the typical slashdot reader who can't get girls (I'm not good, but not a lost cause; and even if you suck in high school, college is a completely different game), it's still good to have this perspective for the educational process.
So what do I recommend? Apply to schools which have both. There are schools with great computer science departments and great liberal arts programs. I think there are at least; maybe look at the real big schools and private ones (if you aren't paying). Maybe someone here can point to specifics.
Of course other considerations probably trump, such as the financial aid package. Student loans are absurd right now. Thank you Republican Congress for locking in federal student loans at a high rate, which is now above the market rate.
I think that the value of an liberal arts CS degree is equal to that of other programs for the most part. The huge caveat is whether you are interested in immediately pursuing graduate school. In that case, going to a larger school may provide you with better resources i.e. research opportunities. In the grad school derby, the prestige and strength of your undergrad program is an important factor. This is not a high hurdle, however. You can overcome this by being aggressive about seeking out different kinds of enrichment like internships and workshops with big IT companies. If you are interested in pursuing grad school later, aliberal arts CS degree will be less important than the work that you do in the private sector. If you are choosing to go out into the private sector, your undergrad school will not matter 99% of the time. In our information economy, companies want to hire college graduates...they, for the most part don't even care about GPA.
Sorry if this is a double post. I'm sure some HR departments care about the prestige of the school. However, probably in a cost-benefit analysis, the $40K a year school is not worth it. Plus, if you want to do something where prestige matters (such as become a professor or something), you can always got a prestigious grad school (that's what I'm doing, though non-C.S. related). I think a lot of the decision comes down to gut; which school feels right for you.
I'm currently studying engineering at a highly regarded liberal arts school, while my brother got his engineering degree from a highly regarded technical school. He certainly came out with stronger technical skills than I'll have, but suffered finding a job because even at his highly regarded school, the degree program was overly theoretical and not geared toward modern needs (he's now an analog electrical engineer working in a digital industry).
I won't have his depth of knowledge, but in the meantime I'm performing music, taking history classes, and really getting a broad scope of things. I'm intending to go on to grad school, where I can extend my technical skills, but I'm getting a fine education in my field with a much richer experience overall. Don't give credence to a second to people who tell you the tech school kids are maladjusted deviants. You get misfits everywhere, even at big-name liberal arts institutions. As long as you keep on top of your work without neglecting social interaction, you won't be magically transformed into a stunted misanthrope.
In short, you'll do fine at either. As long as your department is decent, you'll get the tech skills you need (and you can always build on your bachelor's later). But the fact that you're considering the question at all makes me think the liberal arts school might suit you better.
Go wherever you will be happy. If you are bright and talented, it won't matter much.
Get good summer jobs. Don't work as a lifeguard, waiter, etc. Find a way to get an internship in Computer Science every single summer. When I look at resumes, I want to know what the person has done. Every "CS graduate" resume looks identical without some relevant work experience.
And no, I don't believe you "can't" find anything. Assuming you are American, this country is enormous. There are a lot of jobs for interns. Find one.
I got a CS degree at a liberal arts school, and was able to get into a PhD program at one of the schools in the US. I ended up leaving with an MS and have had no trouble getting jobs since then.
;-)
At a liberal arts school, the CS program is going to be smaller, and if you're motivated you'll have the opportunity to work closely with professors and get involved in research. Since there are fewer students and they're likely to have less technical background on average, you have the chance to really distinguish yourself among your peers.
Also, a liberal arts school will give you a well-rounded education. The ability to write and speak eloquently will serve you well in just about any field. And while learning about history and literature probably won't make you a better programmer, it may well make you a better person.
There are downsides, though. You'll have fewer CS courses to choose from, and they probably will be less challenging (I literally took every course offered in my CS department, plus some independent studies, and had plenty of slots left over for non-CS courses). And you'll have fewer peers who are really good at CS -- though you can make up for that to some extent by talking to your professors.
Going from a liberal arts school to grad school was also a hard adjustment -- I had plenty of knowledge, but culturally it was a vastly different environment, and I had trouble making the adjustment.
If all you care about is CS and math, or if you thrive in highly-competitive environments, an engineering school might be good for you. But you can get a very good CS education at a liberal arts school, and maybe have more fun doing it. And you can also learn to write well, and pick up a bit of a lot of different subjects that may interest you.
There are two parts to the process of getting a job. The first is getting by the "filters" in personnel. Those people tend to be influenced by things that a hiring manager may not care about. It never hurts to have good grades and a college with a good reputation when you are dealing with them.
Hiring managers are more likely going to ask questions that probe your capabilities. If the college prepared you, it won't matter which college it was.
The company I work for (which does NLP-assisted customer relations management) doesn't have a single developer with a CS degree. My degree is Linguistics and Cognitive Science. There are a few other linguists here, several people with degrees in Philosophy, a crowd with math degrees, and a few (OK, one) dude with a degree in Literature. Programming is relatively easy; knowing stuff about the world and having the ability to think analytically are much harder attributes to find in potential employees. We'll hire someone with no programming experience if they've developed the kind of mind we want.
Make love, not sigs
Assuming your goal is to get a job after graduation, you might want to check out the career services departments and their respective job placement rates for computer science students. Don't be tricked by high rates as some school get students crappy jobs to inflate this. See where people are going to work; what companies the school has relationships with. Of course you can always get a job on your own, but this can be beneficial. People say school doesn't matter, but I'd bet a C.S. major from Stanford doesn't have problems getting a job (if the tuition was worth it is another question though; so I guess one of the goals is to find the school that maximizes employability without being too expensive). Of course, there are many important factors beyond employability and the C.S. department: cost, girls (very important), location, atmosphere, gut feeling, etc.
That might have been the point for YOU but how do you get from your preference to a definitive assertion that your preference is a "Far better use of time."
I went to college to enjoy myself while earning a degree in a subject I enjoyed, not become a robot. If I wanted a trade school I would have gone to one, which is what you are describing.
I'm a CS senior at Princeton, which has a program much like you described, only graduating about 30-40 a year. I agree that you'll probably get a more rigorous practical education at a tech school, but I think if you're able to pick up a lot of that stuff yourself, you should be fine at either. Either way, if they're highly regarded schools, you should have no problem getting past the resume round of interviews, and from there, it's doing well on the interviews. Most of my classmates already have jobs at Microsoft, Google, or startups for post-graduation, so we didn't have trouble finding jobs at all. Hope that helps. That being said, if i knew i was going into CS coming into college, I would have considered a tech school more seriously.
I graduated from a tech school 14 years ago.
I wish I would have gone to a liberal arts school.
The bottom line is that in the *long term* I don't think it matters that much where you went to school.
I've interviewed plenty of programmers over the years. The school a person went to has more to say about their high school years then if they'd be a good hire.
Ultimately, it's really the interview questions that really matter.
As to how much you'll enjoy life during college - go to a liberal arts school.
Also, in the long run, being more well rounded will probably take you further then just knowing CS.
Because all the necessary learning you're going to do outside your chosen subject will be successfully completed by high school graduation...
You didn't think before posting this, obviously.
I think what you learn in a liberal arts csci program is not likely to fully prepare you for the technical aspects of the job world; however, it will give you more important skills in other areas. You'll develop great cultural awareness and communication, abstraction, and organization skills. If you pursue a technical career, you'll find that these skills make you very unique which is a great asset. That said, I went to a top-10 liberal arts school but definitely needed to return to grad school to get a Master's in CS because my technical skills were not well developed. Now that I am working, the combination of the two kinds of education have dramatically accelerated my career. Liberal Arts will allow to charm any interviewer and go wherever you want, but you will probably need more technical experience than the degree will provide.
1. Where you want to work. If you want to work in Boston, for example, a New England college will make sense, because the employers will be most familiar with the college and the people it puts out -- not to mention already staffed by fellow alumni.
2. Beyond that, unless it says MIT or Caltech, it probably doesn't matter all that much, as long as it's an accredited 4-year college. In or near a major city or established college town (e.g. Amherst, Eugene, New Haven) is probably better than in a small town.
Terrorists can attack freedom, but only Congress can destroy it.
About one in ten employers will weigh heavily the school you attended without consideration for your grades and without giving you an interview. You don't want to work for any of those companies.
About one in a hundred will care at all what school you attended after you've been working in industry for 2 or more years. You really really don't want to work for any of them.
The top graduate schools will all care what school you attended unless you max out your GREs. If there is any chance you want to go to grad school consider that carefully, unless you are quite confident you are smart enough to max out the GREs.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
If you're a guy going into a technical field, realize that once you graduate and find a job, your oppotunities for meeting people of the other gender will drop off tremendously. Go to the liberal arts school. You can always learn things on the job, read books, or take night courses.
If you're a girl, you'll have good odds at the tech school, but it's less important because you'll meet plenty of single guys when you start working.
A lesser consideration should be how far you realistically want to go in the technical field. If you seriously want to be a lecturer/researcher at a top-notch university, then you have to go technical (you won't have time for women for a while anyway). If you want to get your BS, start programming, and perhaps move into management, the liberal arts college will have a lot to offer.
I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
I went to a top tech school and graduated 5 years ago. My friends who graduated at the top of their class are now either making several times the national programmer average and running small teams of people or they are getting PhDs and becoming professors at the top universities. My friends in the bottom half of the class are either getting advanced degrees (medicine, law, MBA) or work as engineers and getting paid $80-$120k (more than average for an engineer I think).
We worked long hours in college and saw few women -- I averaged 12 hours a day 6 days a week. It was painful for many.
Some good factors to consider:
* If you program 10+ hours per week now for fun, consider the tech school.
* If you've had sex, consider the liberal arts school.
* If you read more than 5 hours per week of non-technical material, consider the liberal arts school.
I graduated from a top 5 CS department. A good friend of mine graduated the same quarter from a lesser known program in the same city. There were *many* companies that would not even give him an interview who were actively pursuing candidates from my department.
Now, when I hire people, I do the exact same thing.
That may sound lame but hiring the right people is very very important and we have been burned hiring lemons many times.
I'm sure there are lots of good candidates at lesser schools but if you want a sure thing, just go to the top ranked schools and hire graduates with GPAs in the 3.7-4.0 range and you won't miss.
Hard facts but facts none the less.
I had to hire a number of programmers on my last job; this was for a digital library development team at a major university in New York. For my purposes, having a programmer from a liberal arts school would have been preferable to someone from an all tech school. The programmers I hired had to work with people from a variety of different disciplines, and having people with some knowledge of the types of material they were working with was a tremendous plus.
Lesson: think about where you want to end up *after* school when you're deciding where to go to school. If you plan on writing microcode for Intel, the liberal arts school may not be of that much significance to you. If you're going to be working at game development company, learning something about the arts is probably a really good move.
I would also second the voices of those above who've said that employers, when hiring, tend not to make a huge distinction between really good liberal arts schools and really good tech schools in terms of their evaluation of the likely quality of people coming *out* of the program. If you graduate with a 4.0 in CS, it doesn't matter to me whether you got the degree at Swarthmore or MIT; I'm probably going to want to interview you in either case.
This depends on if you actually want to go into programing. I graduated from a small univeristy which was heavy liberal arts witha degree in CS, and I am not programing. Truthfully, you will not remember probably 80% of what is taught to you in college 5 years after you graduate. What you are paying for is a $40,000 piece of paper that shows potential employers that you will stick to something. Granted, some colleges do look better than others, so if one of the colleges has a well known name, take that. If neither is that well known out of your immediate area, take whichever one you like better, and do some side studying. We actually had a full class at my smaller universisty that was taught by a student out of student demand, and that was a Linux course. So, talk with the head of the CS departments at both instituitons, tour the campuses, and choose which ever you like best, because that sheet of paper is worth more than what eitehr will actually teach you. That is my opinion, it may not be others, and I am sure people will disagree with me.
I've been out of school for 4 years (UConn, CS), and am now being asked to participate in the interview process for my company. When I look over a resume, I really only take note that the person had a technical degree that was close to CS, and that their GPA wasn't in the gutter.
Where the degree came from is meaningless to me. I've turned down people with perfect grades from MIT and Berkley.
On an interview, personality matters the most, because if you can't work well in my company, I really don't care if you are a star programmer.
Also, go to a school where there is a good selection of women. You probably won't find a whole lot in the engineering buildings.
If you're the sort of person who, while still in high school, is asking how employable he's going to be in four years based on the relative "street cred" of two prospective universities which he has already established are approximately equally selective...well, then you probably belong in the tech school.
I am finishing up a physics degree at an university and while you have to jump though what seem to be BS classes there are some benefits. I have only taken 2 CS classes but programing is easier if you have a strong mathematical background (calculus,Linear algebra, differential equations) also a strong general background is nice. I learned more about writing from writing papers for physics and history classes then I did from taking English 102. another thing to keep in mind is that the Liberal arts degree can be taken to higher levels and be easily changed if the need arises. Tech school with there narrow scope give you little room to wiggle.
I am about to graduate from a very highly rated liberal arts college. My graduating CS department this year is 3. Yes, THREE.
I just landed a position with a very good, large, well-known company for $63k/yr + benefits.
I would say that's a pretty good offer for coming right out of school with a Bachelor of ARTS in Computer Science. I wouldn't worry too much about the school you go to, as long as it really is a good school, you put in your best effort, and remember to also WORK AND DO INTERNSHIPS at the same time.
I can't stress that last part enough. They want people that know the working world.
Brian
Ultimately motivation and drive will determine your success.
Immediately, people look at the name of the college.
Really, it doesn't matter, just work the system. By which I mean, learn your social skills. Learning how to talk to the person in charge of a program you are interested in can ahve a lot of value. Just be sure you can do the work when you get it, otherwise your co-workers will hate you.
The Kruger Dunning explains most post on
That's not to say that natural languages - sign included - don't operate according to rules or very specific syntaxes. They do. Probably. But programming languages as a rule are quite different from natural languages.
One difference, for example, is that programming languages typically make heavy use of center embeddedness. While natural languages can make use of this, too, it turns out humans aren't so good at parsing this sort of phenomenon. This means that programming languages aren't terribly useful for ordinary human communication.
So you can laugh all you want to...
You can usually go to a liberal arts undergrad college and then attend a more technical graduate school. One thing to really consider is a cost difference if they are both good schools. If they cost the same then don't worry about it. But if one is going to cost 100k and the other 50k, choose the 50k school. 100k is a hell of a lot to pay off with a CS degree and you will thank me for this advice in 4 years.
A theory-oriented program isn't unique to liberal-arts school -- I go to a big name tech school and we have almost no classes with programming languages in the name. The principle is that programming languages are tools, they'll change over time, the resume-boosting language when you enter college will not be the same as the one when you graduate... so learning the underlying concepts that'll help you across all languages is way more important. Most of the programming languages I know are because I picked up while doing undergrad research projects or internships, or on my own because I thought they would be useful. So if anything, I'd say you should be worried about the part where they devote the advanced classes to teaching you languages.
And like everyone's been saying, it's what you do with it that impresses employers or grad schools. Work for a professor, get an internship, take hard classes, network. If you're looking for a big-name company, they cast their recruiting nets wide, make an impression at job fairs and with the awesomeness of your resume and you'll be fine wherever. If you're looking for a perky startup, they focus on individuals over brand names, be smart and flexible and you'll be fine wherever. A big-name school is an easy way to get your resume looked at -- and I would say this applies to comp sci programs at big-name liberal arts schools too -- but it's not the only way, and it doesn't guarantee you anything more than that.
Disclaimers: I'm a senior manager for a software start-up. I worked my way up through the ranks. It took a long time. I dropped out of college because the CS program was too slow, in hindsight maybe I should have finished, maybe not.
... because. Most CS majors have little passion for the sport. Most interview candidates cannot "code their way out of a paper bag" as a former associate used to put it. If you ask them a textbook problem, you get a textbook answer. But if you ask them a real-world problem... crickets.
... because. The degree was just part of that pursuit. Whether by nature or by design, they have tackled problems on their own of such variety, that their mind has developed the ability to think, analyze, and solve. Such people do fine in our interview process, irrespective of their degree(s) or lack thereof.
I've interviewed hundreds if not thousands of CS majors and similar minded people for software positions. Typically, the name of their college doesn't ring a bell with me. I don't know the quality of their CS programs unless it's _the_ school I attended, MIT or Cal-Tech... and even then, my "knowledge" of those programs today is assumed.
What matters far more than the name of the college during the interview process are the candidate's answers to the following:
1. Why CS?
2. What programming do you do in your spare time?
3. What internships have you had and what did you do there?
4. Can you solve these problems?
What we often find is that most people have a degree
There are a few who love programming and seek out or invent projects that interest them
More importantly, they do very well in employment because the work for them, is the end, not the means.
The best advice I got in college was this: "Find something you love to do, twenty hours per day, every day, with or without pay. Then figure out how to make money at that."
These opinions guaranteed or your money back.
I wouldn't think too hard about those kind of questions. The reality is that your future employer isn't going to care too much about whether you went to an engineering school or a liberal arts. The biggest impact on your future employment is your ability to network and meet the right people.
Pick whichever school you'll have the most fun in, it has the potential to be the best time of your life. Don't worry about the course load, when you look back at college those aren't going to be the first memories you have...unless you suck. My recommendation, go to the school with the big football team if you like football, the one in the mountains if you like outdoors, the one in the city if you've never lived in one, or the one on the beach if you like hotties.
The impact of the courses will not translate perfectly when you transition to the working world and most of your knowledge will come through doing work outside of school.
I went to Oregon State, a mid-level engineering school. After graduating, I moved to California and worked with recent graduates from some top schools, like UC Berkeley and Harvey Mudd and Cal Tech. (Well, Mudders certainly think very highly of their school.)
Comparing curriculum (and this was mid-90s), there was very little difference. The better schools have more interesting senior projects, but the actual education a motivated student gets is extremely similar.
Right out of school employment opportunities are a little better at the more prestigious schools, because companies target them more. They send recruiters to Stanford more than a typical state college. However, once five years has passed, very few people care, and there's wide swaths of the programming world that doesn't even care if you have a degree.
The real advantage of the more prestigious schools is networking. I don't really talk to any of my Oregon State buddies anymore. But my friends who went to, say, CalTech, seem to stay very close to their college circles. They trust each other as smart and capable, and that's a huge plus for getting interesting jobs for quite some time. Sometimes tech departments get clusters from a particular school, and it's no coincidence. I didn't value this at 17, and I should have.
Relatedly, the other big difference is quality of the other students. I was decidedly a top student at Oregon State. I'd probably have been somewhere in the middle at CalTech. I think I learned about the same, being a motivated and smart student, but there definitely exist a percentage at the lesser schools that just skate by, and waste your time in classes asking stupid questions. On the other hand, the top schools can be highly stressful. A very personal decision, if you'd rather be the top dog in a low stress environment, or be in the middle of an awesome but highly competitive environment. This choice re-presents itself throughout your career.
Note that none of the above applies to graduate school, where you're working directly with professors and learning a less generic expertise. For that, where you go matters a great deal.
This may also not be accurate outside of the West Coast. I'd easily believe we place less of a premium on prestige and pedigree than the rest of the country.
If you want to go to the liberal arts school, there won't be any problems for you, but I'd recommend the tech school because you'll make better, more useful friends. You're more likely to end up at an interesting startup with other super smart folks, more likely to make a big splash. But anyone can do these things - it just takes a little more luck and hard work post college.
-- Kate
I'm going to give the parent the benefit of the doubt, and assume it was in fact a joke ;)
;)).
In case it wasn't, here's a dissenting opinion:
If the choice is between two other schools, then the tech. school might make sense. If it's Harvard v. MIT, and if you have even an inkling that you "prefer the liberal arts college" then Harvard is a total no-brainer:
1. Your education will not be adversely effected: the CS department is small but has some good faculty. (Also, I suspect that it's easier to get to know---and become known by--the professors at Harvard.) In any case, MIT is just down Mass. Ave. and cross-registering is easy.
2. No HR department would look unfavorably on a Harvard A.B.---in fact, various large tech-oriented companies recruit at Harvard.
3. You can always go to MIT for grad school. Beware though, if you do you may find yourself hit with sudden urges to take the 1 bus back to a place with prettier buildings (and people
I go to a fairly well-known engineering college that started a CS department 20 years or so ago. When I entered, I was gung-ho for doing Web development.
Now, five years later and graduating in June, I'm not even sure if I want to work with computers for my job.
Interestingly, the CS program here requires two more Liberal Arts classes than any other degree. When I first started I thought this was horrible, but now I don't think so- my only issue is that the options for those classes were very limited. I think I'm better off for having taken those liberal arts classes- it gives me a better view of the world, which can indeed impact my coding and programming ability (and ability to get alone with others). (A CS professor told me that many of the LA teachers constantly find the CS students to be the better spoken and written of the class, which is slightly aside from the point but interesting.)
However, the campus is small, and has a very high ratio of men to women. There's little to do, and since I don't go to bars/clubs I don't have a lot of social things to go to. Furthermore, if, after a few years, you find that CS isn't your cup of tea you'll be in a better position to switch majors. Ideally the LA college has more courses for you to try and out and see what you like, plus you won't have to change colleges if you want a far remove major.
So I'd say ask yourself which is more important:
-Killing yourself through four years of work, where you will surely learn computer stuff but have little knowledge outside that, or
-Learning a bit less while still having a degree from a highly regarded college, but having more time and options for socializing? Also, women.
I can't say that I truly regret coming here- when I graduate I'll have the equivalent of two years of work experience (one in IT, one in web development) through the Co-op program. However, not a day goes by that I wonder where I'd be and what I'd be like if I had gone to a more generalized (and likely cheaper) college that could offer me more than just a major.
I can't speak towards what HR wants, only what I've experienced.
Considered inferior by whom? Do you care if your friends/family think you went to a good school? Are you worried about getting hired because of the school you went to? You'll find that in the real world (post higher-education) most people do not do a job directly related to their degrees. In most cases its related in some way so the education helps, but a lot of people find out by the time they get out that they really didn't like whatever they wanted to do as much as they thought, and they would rather do something else slightly different they learned about along the way. So you'll end up with a degree from a school known for X, but you'll be doing Y, so it doesn't matter anyway.
After you get out of school, your first job is really the only one where your schooling will matter since you have no experience.
After that, your degree is mearly something to get you past the HR portion of the hiring process at a larger organization, and won't matter at all to most smaller organizations.
The school doesn't make you good at what you do, you do. The school can only help you along the way. Yes, some are better than others, but for the most part you won't REALLY learn anything outside of theory until you get a job and real world experience.
Theory is important and very helpful, but practical experience and intelligence is what will make you 'good'. Neither of which will you gain very much of while you are in school.
Go to the school that seems most interesting to you, its far more important that you learn how to learn and balance your life in a stressful situation than anything else. Unless you go to the very best school and graduate with the highest grade in your class, in 5-10 years, no one will give a damn about which school you went to or how well you did. They'll care about how well you can do the task they want to assign to you.
Do you need to go to school? Without a doubt, theres a lot more to it than just the courses you are taught and the grades you make that you won't get any other way.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
As a student who attends a liberal arts school in the computer science department, I think a liberal arts education is extremely important if that's what you're already attracted to. Some people don't want the additional experience, but I've found that thinking in a liberal arts fashion (my other major is American Studies) has prompted me to think better about the way I code. Theory is, quite frankly, important, and once I grasped that at the beginning, it was a lot easier to teach myself the next 5 languages I wanted to learn.
I'm now a consultant in the web development sector doing freelance work that is paying a pretty penny. I taught myself the languages, but wouldn't be nearly as invested in them if not for the theoretical training. And it's my liberal arts background that allows me to better interface with clients and take the role of project manager AND coder, not just a code monkey that needs to be kept hidden in a dark room.
I graduated from the University of Richmond (the other UR), a liberal arts school with a very small CS department. I think my year, there were 14 majors, but just a couple years down the road they were down to 4 or 5. The only reason a small department matters is in the course availability--at UR, there were several classes that were offered every other year at best, and some of those were canned due to lack of enrollment. On the other hand, a small department means you'll probably know all of your professors decently well, and generally somebody will probably be willing to let you do an independent study course in some topic you're interested in that they would normally teach.
;p
A liberal arts school is just like a tech school in that it's really what you make of it. Coming into grad school, in terms of breadth of knowledge I had a leg up on a lot of the people (at least the American students, maybe not the Asians...) just because I'd taken pretty much every course I could. If there are skills you're worried you're not getting, or not getting early enough, be proactive and learn them yourself.
And don't worry about the paper writing, you'll learn your first semester how to BS liberal arts papers
Really. When I'm looking to hire new folks I'm more interested in what they have done in the past. Open Source projects are things I look at heavily as I can see the code and the success (or lack) of the project, how committed they are to projects, how they work (or don't) with others, and that they actually like hacking on stuff.
... anything more than that comes from the love of hacking/administering/etc..
... and to what college. Candidate A graduated from Berkley while Candidate came from Polk Community College. Candidate A looks much better. The fact may be (and really there is a 50% chance here of it) that Candidate B is better than A ... but on paper it doesn't seem that way.
... go to a college with a good name. Want to work on cool stuff at a tech company? Get some projects under your belt and, if you can, just finish at a college.
I've really found college education means almost nothing when hiring from the technologist's point of view. I've interviewed lots of people and the range of skills that college grads, 'good' college grads, and non collage grads have is next to nothing. In fact I've found that if you hire a college graduate your only really ensuring the person can create boilerplate code/ideas no matter what college
On the flip side HR does tend to care
Bottom line is it depends on where you want to work. You want to work in IT at a hospital
It's probably too late in this article's lifecycle for my comment to be read, but I have to spread this information as far as possible.
DO consider NYU's CS program. Professor Dewar there is the best hacker I've ever met, and the rest of the faculty is just as good. New York City is a great environment, and, hell, the school is 70% female. The sci-fi club there is pretty strong, and overall, there's a strong intellectual culture at NYU. If you like to think, go there.
DO NOT attend the University at Buffalo. The computer science program there is much more prominent, but it's a load of java-infused bunk. I had a professor once who recommended that two threads busy-wait, without synchronization (cache coherency? wuzzat?), on each other. The operating systems class doesn't involve any actual operating systems programming.
Microsoft sends boxes of free software to UB, and consequently, all the classes are Microsoft-centric. I was the lone voice in the dark recommending free software, and everyone, even my fellow students, thought I was a bit eccentric for doing so.
That's not to say that the entire department at UB is incompetent; there are a few good people who got suckered into staying - Smith, Schindler, and the guy who teaches Computer Vision. But the core curriculum is the stuff of horror, and I sure as hell don't want to use anything written by a graduate of that program.
Alas, I transferred from the former to the latter for some whore. It was the biggest mistake of my life.
Go for the liberal arts school.
I've been coding for 27 years and I can tell you technology is the easy part. The people/business side is the root of most problems on software projects. The better you are at dealing with people the more successful and happier you will be.
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.
Except people skills. People skills are more important than ever in an outsource-happy world. If you are so annoying that people only want to contact you via email, you might as well be in Bangalore.
There are a handful of techies who are so smart in a given area that they are indispensable even with poor people skills; but at this point in your career, you don't know if you will be one of those exceptions. Thus, people skills are the better bet in my opinion. Unfortunately, selling the mouse trap is just as important as making a better one, if money matters to you.
Table-ized A.I.
As someone who is involved in the hiring process at IT firms, I can say that hot schools will get you noticed, but the really impressive thing is experience. Applicants who immediately move to the "top of the pile" are those who are either start an open source project, or those that participate in open source projects. This is the easiest way to get experience while still at university. Also remember that there is no college in the world that will qualify you for "real world" IT. Only experience will do that.
Most of the time at college or other places of learning, you tend to emulate the people around you. If you are surrounded by geniuses, you want to be more like them.
So.. If you are truly interested in the "science" of programming, go to the smartest school you get into.
If you are more interested in just getting a job, go to the most practical place.
Along these lines, I just wonder what people think about online degrees? It seems like more and more colleges are offering distance ed online, and there are some universities that specialize in it.
When I was at a Big 10 about 8 years ago, they actually offered the better part of a few majors online. If I were to graduate online with a Big 10, would that lessen the value of the degree?
I frequently see derisive comments about DeVry or University of Phoenix on here, but the way I figure it is that any degree is better than no degree at all. This is especially pertinent to adult students who find it difficult to devote regular daytime hours to classroom attendance.
Where does the value really come from? How much of that value comes from actual physical classroom attendance?
Yeah so you might learn about designing a Turing complete language... good luck in paying the mortgage with that.
Then again there's a few select individuals who love that stuff and have academic careers. If you see yourself as a professor, go for it.
Trust me, I've heard both sides of the argument including "getting an education" (for studying theory). But if you want an education, generally speaking, pick something like finance not something that 0.01% of the world population dwells on.
If I had to do it all over again knowing what I know now I would not have bothered with the CS program I went through.
-M
I work as a recruiter.
We have several important rules:
1. We don't touch people without a masters or doctorate from US universities. The basic education system in the united states is so truly abysmal that the first two years at most universities is wasted covering basic material that should have been taught properly in schools - a lot of math. This makes US courses equivelent to college/lower grade FE courses from most other countries.
2. We prefer formally educated developers, but a proven track record of producing quality software is far more important. The best students are often not the best developers.
3. In any quality course, programming should be taught from the beginning. I can't believe that I read in the article above that 'programming languages are taught in later years'. That's not a real computer science course. The problem with poor computer science courses is that many graduates complete the course having written less software than they would have done had they been engineers, mathematicians, or physicists. If this is the case, am i really going to recruit a CS graduate?
4. We only recruit from universities that have a math component in their course of at least 25%. We have no special math requirements in our organisation, but we find this weeds out significantly better candidates from the chaff.
5. There is a massive variation in the quality of university output. Always pick the most prestigious institution as a first choice.
There are lots of good comments here and I think one can make a strong argument for either type of school. It really comes down to your life goals.
But here's the kicker. You probably don't know what your life goals are yet. None of us really do because our lives are ever-changing. What's in our interest today may not be in our interest tomorrow.
I went to a strong liberal arts school that also had strong law and businesses schools and decent, but not top-tier science and engineering schools. For me this was the right choice, though I didn't realize just how right it was until years after I graduated.
For a lot of people, college/university is a change to widen horizons. I did some of that in college and even more in grad school. I majored in engineering in college but because it is a Catholic liberal arts school, I was required to take theology and philosophy as well as seminar courses. This helped me out a lot in later years as I became a better writer and more in tune with my strongest values and beliefs. These liberal arts classes teach you how to logically form arguments and debate. They're not the end-all, be-all but there are a good foundation to build on.
I decided to go to a top engineering school for graduate work. That's almost a necessity. The combination of the two schools has been very good for me. In graduate school and in work life afterward, I became very interested in politics and getting involved in public life. The one course I wish I had taken is political science. It probably should be required in this country (the U.S.). The liberal arts education allowed me to quickly get up to speed on political life. Yes, anyone can get involved but if you have some sense of history and philosophical thought you can connect more readily with others around issues, debate and be effective. Politics requires reading, forming relationships and having an awareness of what's come before. Liberal arts courses help train you for that.
Now, that's been important for me. I think it's important for everyone to at least be somewhat involved in politics and public life but not everyone will be as deeply involved as I and others are. What the liberal arts give you is flexibility. You'll learn skills that are widely applicable.
I believe training in the fine arts is important for an engineer. That doesn't have to happen in college. Taking lessons on a musical instrument when young, learning to paint, etc. will exercise the creative part of your brain. Engineering is as much art as science. It's a crime that arts are the first thing to go during budget cuts at the local school level.
And PLEASE, take a writing course (unless you test out). I can't count the number of times I've cringed at how engineers write. This is a supremely important skill to have. You need to be able to communicate effectively if you're going to form productive working relationships with your fellow engineers and especially with management. If I had my way (which I don't yet), I would require interviewees to submit some kind of essay just to be able to gauge where they're at with this skill.
Finally, one of the most useful things I was ever directed to do in an engineering class is to read "Soul of a New Machine." The book is an eye opener. I've always remembered the scene where Tom West is interviewing candidates and asks them what they do outside work. If any of them answers "computers," they go to the bottom of the candidate list. Well-roundedness and the ability to get away from work is important.
Yet Stratavari managed to do it by art, and we still don't completely understand why his instruments are so good.
You have to stop thinking about school as only being a rount to a job. What's importent is not the nuts and bolts of how to write programs. What's always more importent is the bigger picture. Even if you take the materialist "I want money" point of view you have to notie that the bigger the picture you get to think about the more money they pay you.
In 20 years no one will be using today's programmig languages. OK maybe C will servive but java, ruby and Perl will go the way of what was in style when I was in school (PL/1, cobol, fortran) Don't go to a place that teaches the technology of the day. Theory never changes. Math never changes.
Also there is a huge advantage to going to a small school. I went to both UCLA and Loyola Merrymount U. (both in LA) You can get a better education at a place where at facilty and staff know you by first name. When I greaduated I was the only CS major that year at LMU and only the second one ever from that school
I think the big technical school is best for graduate level work.
I am hiring entry-level engineers right now - here are my suggestions
1) If you are a social person and can make friends and can afford it and can get into it, shoot for a top ivy school because the friend network you make their is a major part of the benefits of college.
2) If you don't qualify for #1, go to a good yet affordable CS school (like a state university). Don't bother with a school that doesn't have a upper-mid level quality CS program, you won't get much extra for the extra money. Let your parents party a bit more in retirement.
3) Make sure you have personal, school, or preferably work (intern/co-op) technical projects that you can coherently discus with your potential after-graduation employers. Nothing shows you are ready better than existing deployed code.
4) ACM or IEEE student chapter involvement is great, Tau Beta Pi is good as well if you qualify.
In the end it really comes down to if you know yourself.
If you're one of those types that KNOW you belong in CS or even engineering in general then the school absolutely does matter. I've been working in the industry for 20 years now and even though I'm not really in CS any longer I'm still working in engineering. The school I chose still matters a little after 20 years. The name recognition gives me instant credit on interviews (either phone or in person) with technical staff, which means it made an even bigger difference to the HR people who were just sorting resumes into a small pile and a garbage pile. We interview with tech staff and not with HR but you need to get past HR 1st.
A good CS school is not going to have a crappy engineering school in general but a good LA school which let its CS engineers "fend for themselves" probably has a poor general engineering college. DeVry will let you "fend for youself"... but I wouldn't recommend going there.
That being said.. if you're not married to being an engineer then go with the LA. The whole point of LA is to expose the student to multiple disciplines and you never know if that will come in handy if you decide to be in CS.... Apple wouldn't be where it is if Jobs never knew anything about typesetting or thought art/design is for those that can't hack it as a techie.
Why doesn't it?
I got out of a foreign language requirement at my school because I could demonstrate how my knowledge of Perl, Python, and C++ equated to knowledge of different human languages.
Yes, this is a liberal arts school.
It's much easier to get hired after going to a tech school. I met people from my alma mater over the interview table.
Why so coy? Why not say the names of the two "comparably selective" schools?
I went to a Liberal Arts college and graduated approximately 13 years ago. It was great because it made me a better rounded employee/manager...BUT it didn't make me a good developer or Program Manager. The skills that made me good came from experience and on-the-job training. Skills that I should have acquired in my undergrad L.A. program had to be picked up in Grad school when I earned a Masters in MIS/CS.
If I had gone to a technical school I'd have been much further ahead today and could have acquired the necessary business skills in grad school thru an MBA program.
The technical skills you earn today will be your bread and butter in years to come and a tech degree from a good tech school will get you a job if you're any good. If you want to be well rounded, then just plan to stay in school afterward and get a Masters degree in another discipline so that you fully understand the big picture.
I went to a liberal arts college with a small, but effective CS program. We started right out with programming C++ in CS 101, and while there were perhaps only a dozen or so CS majors coming in every year, the program was very good. We had 3 professors, a large variety of courses, ranging from the core C++ classes, to C, C#, JAVA, Perl, Python, and so on. We had our own CS lab full of computers we were free to play around with. Since there were so few of us, the professors were very close to us and always there. Literally. One of the professors had a recliner in his office off the CS lab, and I think he stayed there sometimes. The courses were challenging, and even among the small group, there was competition, and most the geeks hung out together, so it was pretty much the same experience as a technical school, but inside of a liberal arts college. The nice thing about being at the liberal arts college was the fact that not every course was entirely devoted to tech, we had a little bit of variety, and there were many interesting people to meet and things to do. I think I benefited from this diversity and the additional knowledge that I gained, and I gained this additional knowlege without really losing out on too much CS, and it kept me going.
I graduated last year, and immediately found a job in IT, and at my job, I'm forced to interact (gasp!) with a variety of people, and I'm glad I had a diverse college experience to help me deal with this, while still giving me knowledge to be able to land and to do my technical job.
Let's face it: There's a LOT of CS job prospects out there, and where you go for undergrad doesn't matter THAT much.
Go the cheap state school. Every state has 1-2 universities that are cheap but great. Even Oklahoma has 2 great universities. Granted: if you have the choice between two state schools and one is better for CS, Yes - go with that one.
In general, though, go wherever looks cheaper (scholarships, AP credit, tuition, room) and this is probably going to be one of the 1-2 state schools in your area. They are probably big enough that you will have no problem finding a great CS job through their career services and doing just fine. If you want a really super strong technical school, save it for your masters. Go get a job, and then make your employer pay for you to get a masters at that awesome, but expensive school (most employers will pay for it).
2 Years after you graduate where you went to school will mean nothing.
I went to a liberal arts college pretty similar to the one you describe. The CS program was still top notch, and though it was focused on theoretical aspects of computing, I learned some good practical stuff, too. Even so, I don't usually use most of what I learned in school in my day-to-day job as a developer. Instead, I use what I learned over the course of several summer jobs that I had while in college -- but I got those jobs through connections at my school.
There are things in CS that I didn't learn in college because I was busy taking courses in other areas, but I haven't missed them yet. And the major thing that I learned in college was how to learn, so I'm confident that I could pick them up, either on my own or by taking a course somewhere else in my spare time, if I find that I need them in the future.
Oh, and my friends and I in CS still worked incredibly hard. We just took time to work at other things, too.
So my advice is to go to the liberal arts school. You'll be happier while you're there, and even if the education isn't as practical as it might be at an engineering school, you can get practical experience over the summers (and practical experience is superior to practical education in any case). When you're looking for a job, any good hiring manager will be much more impressed by your skills than by the name of the institution on your degree (and if you go somewhere like I did, they probably won't even recognize the institution enough to know it's a liberal arts college, even if it is one of the top three in the country -- and if they do recognize it, they'll be impressed rather than dismissive).
I only reply because I am in the IT industry myself. I can't help with the "where" as I am from the UK. "Why" is important. If you want to be a Doctor, Lawyer, Vet or some similar skilled trade, then go to University. If you are a techy by nature, University courses won't really help you that much - I used to employ IT guys for a previous company. Candidates with an IT degree wanted too much money and couldn't do the job they were employed to do anyway (Sys Admin. field) and always left within a few months disapointed and uncertain to their futures. Perhaps a programming course would suit if that is what you want to do, high level languages like .net (ha!) and java are easy to get into and you don't really need to know about how computers tick to work in that space. Programming is not for me though, long periods sat in front of a screen focusing on the same thing - for me, not enough variety to keep me interested.
On the other hand, is there something you would like to do? A degree does not have to be a stepping stone into a career. Bare in mind lots of people do degrees and don't get work from it afterwards and often end up in some trade unrelated to their degree anyway (think of all those people who did a psychology degree!)
Whatever you do, have fun
After graduation, computer science type fields are, for the most part, meritocracies. I know many people in the field without CS degrees.
Secondly, how badly do you want to get laid? If badly, choose the Liberal Arts school.
>I'm a high school senior who is trying to pick a college to attend.
If you're still trying to pick a college as a senior, you don't know what you want to do yet. Many successful students are working towards a goal by the time they're sixteen. A CS Major is not a specific goal.
Here are a few slightly more specific goals;
Compiler design. Large scale parallelism. Encryption/Decryption. Robotic kinetics and control.
If a student tells me they're going to school for a CS major instead of a specific field of CS, I then know they're not an exceptional student.
>I've been accepted by two comparably selective schools.
You should probably go to the lib arts school.
You weren't good enough to only apply at the school of your choice. High profile students will have been courted by the high tech school while in high school.
Or you only applied to two schools. You should have found more than two professors or two projects you wanted to work with. Again, this goes to the first point which is, you don't seem to have a specific area of interest or goal. You will not have equipment, course material or expertise in advanced fields of study at a liberal arts school.
I would agree with other posts that the difference between a glide through generic CS degree at either school could be equivalent, but not advanced field study.
>I prefer the liberal arts college...
Then go there. If you're still deciding, you probably don't have what it takes to excel at a high tech school and will end up with a generic CS degree. Not being an exceptional student, you will struggle at either school. Although possibly not that much more at the high tech school because of your avoidance of advanced subjects.
Why not go somewhere you want if all you want is a generic degree? When things get tough you won't have the lame excuse of "I never really wanted to go here".
If you want to make obscene money, go to a school with wealthy political or corporate connected contacts who like you.
If you want to make a mark on the world, go to the school with the best people and equipment in that field.
If you want to enjoy life and have an animal house experience, go to a liberal arts school.
Qualified is qualified, you don't need any paper to do or get the average job. Billions have been made without degrees. Any paper is entry into the bulk of jobs. Most employers don't ask if you were a "D" high tech student or an "A" liberal arts. A degree is a degree. People with the best high tech degrees don't care about jobs. They're involved in the experience, driving towards a goal. Employers seek out students that do exceptional work in a specific field of study. There aren't that many each year that shine above the rest.
I had the same choice in 1980. It was a long time ago but I think the same logic applies now. I chose an Ivy League school over MIT and was very happy with the choice. I felt I still got a good technical education (quite a few of my classmates were among the early employees at Microsoft, for instance). I went on to one of the top departments for a Ph.D. I'd say that if you think you'll go on for an MS or PhD, your choice of a BS/BA won't matter that much long term, as long as you do well at the undergrad level. If you don't, it may be the case that a BS from the tech school will open more doors in the tech community than coming from the liberal arts school... but that's just one factor. You have to decide what you will do outside your major and what campus life is like overall. These factors probably collectively outweigh which one is most likely to get you a job at Google.
Mencken had it right. So glad that's old news.
While there are already so many responses that you probably won't even read this, here is my advice: I am a senior at the University of Pittsburgh, and I'll be graduating soon with a CS degree. I've encountered a large number of students here at Pitt that probably should have asked the same question that you are before they left. I know many who want nothing more than to just sit down and be a code monkey somewhere. I also know a great number that would hate nothing more than sitting down and becoming a code monkey. Personally, I'm one of the later half, and I value the theory based education I've received here at Pitt. If you want to end up somewhere writing code for cutting edge software, or if you want to do something in research, I suggest the liberal arts college, the theory will set you apart from other graduates who know 10 different languages and no theory. If you want to learn languages, do it on your own time, use college as a medium for learning the things that you wouldn't teach yourself. Use it for the opportunity to work on things that you otherwise wouldn't be able to work on. If you're looking to write software for internal use, or you're not trying to do anything off the wall innovative, go with the tech school. While many may not agree, and there are of course exceptions to every example, I really think the theory is what makes a CS degree, not the languages you know. Having a CS degree is being able to sit down and solve a problem with more elegance, efficiency, and creativity than the next guy and theory is the tool to do that with.
--untwisted
There's nothing wrong with that; I wouldn't be a good employee for you, and you wouldn't be a good employer for me. We'd be wasting each others time since I'd move on relatively quickly and go back to the job hunting process and you'd have to go through the hiring and training process again. It would be beneficial to the both of us if you skipped over me early in the process.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
There are exceptions, obviously, but in general...
You will be programming systems that deal with content areas not related to programming, computer science, or computers in general.
You will be programming systems that deal with finances, personnel records, physics, or any other number of non-computer, non-programming fields.
The more you understand about these content spaces as a programmer, the more likely you will be to program a system that truly understands the needs of the customer and addresses all the oddities and exceptions that occur in those fields.
If you go to a technical school, you never have an opportunity to immerse yourself in these areas that you will one day have to understand!
Suffice to say, I went to a liberal arts school, I hold a programming job, and I think I'm much better off because of it.
Long after anything you learned in school will be useful, people will recognize the name of the school you went to. For no good reason, going to a big name university will serve you in the future, especially if they have a prominent sports program. You may laugh, but this can mean real dollars and real opportunities you might otherwise not get. It's certainly true that this is no substitute for ability, and the people you work with and work directly for probably won't give a rat's ass. But they aren't the only people involved in hiring or evaluating you.
When I graduated from high school, I was into computers 100%. So I picked an engineering school and got a technical degree. I continued and did several semesters of graduate study before getting a job and settling into the real world. Now that I am out of school, working and married it is quite apparent that there is much more to life then science and technology. You might be able to code the fastest algorithm, but if you can't understand economic and business conditions, get along with coworkers and talk about sports or politics at a social event, your education has failed you. I do a lot of reading to catch me up to what I ought to know about other fields. It is amazing how much ties together, even from those social sciences and even the arts. If you do any UI work, having a few psych and art courses behind you can be a great thing. Being able to tell your boss why programming this was will not allow you to meet the need of the business condition you can foresee makes you a much more valuable employee (those economics and marketing classes do have value). So as you make this decision, ask yourself, "Do I want to be the code monkey working 80 hours a week having more tech knowledge then everyone else, or do I want to climb the corporate latter, work 45 hours a week and have a life?"
What matters most is going to the school with the best career fairs and having the most recruiters on campus. Having the opportunity to get your "foot in the door" at a tech company is what should be looking for.
Usually this is the case with the best "tech" schools.
What's with all the "hur hur hur... go to the school with hot chicks" comments?
A) You don't know that the poster is a dude. *SHOCK* *HORROR* there are young women out there who are choosing which school to study CS in.
B) Even if the poster is a dude, you don't know he's straight.
C) Even if the poster is interested in women, in his or her straight or queer way... why you gotta reduce those women down to something sexual? Something to date? Why not talk about how a diverse population that includes women adds a depth of intelligence and passion and breadth of experience you won't find on a campus full of white dudes?
In case anyone is wondering what makes Slashdot inhospitable to women, this is one of those things.
Genius is always a special case.
c.
Log in or piss off.
Unfortunately President Jackson's administration is edging out some of the best faculty at this school, including at least one of the most awesome lecturers in the CS department. It is a wound that will take some time for the school to heal once she is gone.
Aside from her shenanigans, I think RPI is a great school, and I have never doubted my decision to come here.
Think of your education like a computer. You can buy computers, even somewhat customized ones, from OEMs, with everything integrated at the factory. The components have been tested to work with each other fairly well, and as long as you're comfortable with their options, things will generally work well, or be supported if they don't. The tradeoff is that you won't have all the options you might otherwise have, unless you add in extra components which aren't supported, in which case you might have been better off just putting one together yourself.
Think of the liberal arts program as a barebones system, that you need to complete on your own with more applied experience, like an internship. In the long term, the theory they teach there is much more important than tools like programming languages, since those skills are mostly picked up on the job, and often not carried from one job to the next. On the other hand, the big engineering program probably has much better connections to industry and will get your career up and running more easily, just as an OEM computer works as soon as you turn it on.
If you choose the liberal arts program, you will need to augment it somehow with practical experience, or go to grad school at a big engineering program and get it there. If you want to take a DIY approach to your career, go to the liberal arts school and seek out internships to get experience. If you just want to focus on the tech, go to the big school which probably has a better equipped career center for the skills you'll be developing.
There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
You have to ask yourself if you are considering doing any kind of research in school. If you are working towards a vocational degree that will teach you how to do a job then either school should be fine. However if you are considering getting any graduate degree or going into research at all you should go for the bigger tech school. The reason is that there you will have many more opportunities to focus on things that you find interesting. Trust me in that you really want to focus your energies on projects that interest you and don't want to be limited by the few things that the profs in your tiny department are interested in.
I would recommend going to the more technical school. Putting off learning a programming language for two years is a really big deal, that's like trying to become an astronomer without learning how to use a telescope. Personally if I was interviewing you and I found out that you went to a school that didn't teach you a programming language until your junior year, I would seriously question your value to the company.
>How much would the tech school vs. non tech school matter?
Depends on what you know going in. If you are walking into CS cold, find the best tech school you can, and pray that you "get it".
If you understand assembler and grok how computers work at the electrical level, from registers to clock sync to wire level streams, it doesn't freakin' matter. You can go to school for cooking and still be a great software engineer.
You have to love what you do. College should be a cap on skills you've developed on your own, and love to the core. If you do anything else you'll just be mediocre no matter where you go.
>Are CS majors from non-tech school considered inferior?
Depends on what you know and what you've done.
>What would an HR department think?
They don't.
>What would you think if you were hiring?
I'd want to see code examples, then an explanation of why you took the approach you did. From there we'd talk about theory and why you want to work here; leave the papers that say what you know at the door because I could care less what's written on them, or who wrote what's there. I can smell incompetence. It smells just like fear.
When I see a degree from a tech school, I think "wow this person finished their degree and has a ton of debt, I hope he got something out of it"
When I see a brilliant approach to handling network interruptions in a socket exception handler, that actually works, I think "wow, I want to hire this guy."
I don't care if he has an HS diploma... You either have skills or you don't.
A CS degree doesn't hurt but it's no substitute for intelligence, curiosity, talent, and love of your work.
-Viz
You're 18 years old. Are you SURE you want to do CS and work in a CS-related job after graduating? As a Freshmen at a top public institution, 1/3 of my dorm wanted to be CS majors, 1/3 business majors and 1/3 pre-med. In less than 1 year, most of that had changed. When we graduated, only 10% were CS majors, 10% business majors and 15% pre-meds. Pretty much everyone had changed majors. How easy it will be to get a job depends on the reputation of the school much more than the major. For example, even English majors at MIT will get serious consideration from consulting/investment banking firms. You don't need a bachelor's degree to do a programming job. Most community college students will do fine. The question becomes whether you have the skills to 1)Design 2)Lead people 3)Manage deadlines Choose the school that is 1)Located closer to areas with jobs/companies you're interested in 2)Has a good reputation 3)Has a decent recruiting center.
I should also add...
Her administration is doing this primarily to clinical/non-permanent faculty (though in reality these faculty members would have stuck around for quite some time, they just prefer teaching more than research/pursuing tenure for the most
part). This includes doing things like not allowing these members to have input on decisions regarding benefits for next year "because they might not be here" and a number of other actions that clearly target these faculty members. Unfortunately I don't have more details to share, because my memory isn't so great when it comes to politics... but I do know of at least five of the best faculty members at RPI that are being edged out, and these are just ones in my field.
She has also taken measures to disband the faculty senate and has told the faculty point-blank not to talk about these matters in the classroom. I have had a few professors start to discuss this and then cut themselves off saying "and the powers that be say I can't talk with you about this"
Besides this politic crap, RPI is the right school for most CS/engineering types, the kind who are pursuing a career in these fields because it interests them, not because they don't care and just want the money.
If you ever come to campus and take a tour, take what the guide says with a grain of salt, but it is still a good thing to do.
If you want to walk around a campus where inter-class discussion is about math/engineering courses/other really geeky things, RPI is one of those schools. You don't typically walk around campus hearing people discussing whatever the reality show of the week is.
I remember coming to my Freshman orientation, and knowing that this was the right school as we were up at night working on our schedules ("we" being the SO group I was in) and discussion turned to a number of topics I never could discuss with people in my high school, specifically because there was no or limited interest in them.
Overall, I rate the quality of education at RPI excellent, and I would say the environment is excellent for the right types of people (I'm not saying that it isn't good for others beyond the group for whom the environment is ideal).
Enjoy, I hope you end up enjoying whichever school you attend. It really comes down to "do you want to be surrounded by a bunch of technical people interested in the field (and fields related to the one) you're studying, or a bunch of people who are into other things?"
All of the early computer pioneers never even touched a computer until they got to college.
I have a few thoughts: 1) I got a CS degree through the engineering school at Cornell; graduated 4 years ago. I picked engineering over arts & sciences because I was good at math and physics, and screw taking a foreign language! Later in my career there, I found myself taking more and more liberal arts classes because I enjoyed them. Don't pigeonhole yourself into taking only engineering classes, even if you decide to go tech school route. 2) The CS program at Cornell is VERY theory-centric. On the one hand, part of me feels a little shafted on the practical application side of things; I have had to learn languages and technologies mostly on my own. On the other hand, it taught me how to learn languages and technologies mostly on my own. Theory also has made me a much better developer, I think, because I'm better able to look at a problem and come up with many different solutions, and determine which is best. When I interview developers, I usually prefer excellent problem solving skills and mediocre language/technology skills to knowing Java and Struts inside and out but not being able to come up with a creative algorithm or a smart domain model. It drives me nuts to see the course catalog at other schools and see courses like "C++ 201". I think a good developer should be able to develop in any language, once they learn the syntax. 3) Now that I participate in the interviewing/hiring process, I can also tell you that I don't really care about where you went to school, if you can demonstrate skills. Yes, a CS degree from MIT is more impressive than a CS degree from UC-Santa Cruz on paper, but if you can impress me in the interview, then you've impressed me in the interview. 4) Look at the bigger picture. Which school do you like more? How are the other kids? Is there a social life? I loved Cornell and I am very happy with the education I received, but I do sometimes wonder if I would have been happier if I had gone to the University of Florida with all of my friends. Cornell, even for the liberal arts kids, can be a pretty intense place sometimes. And the girls... this is not to say that there aren't beautiful girls at Cornell, but they are few and far between. There is a time and place to party and cut loose and experiment with who you are, and it's called college. I honestly think it's also part of a well-rounded education. Study when you need to, party when you need to. Regardless of which you decide, I recommend taking advantage of as much as you can. If you go tech, take lots of liberal arts classes. If you go liberal arts, take lots of engineering classes. Make friends with everyone. Go to parties. Learn how to drink and do drugs responsibly. Learn how to cram. Learn what you didn't know you enjoyed.
I did the opposite route from you. When I went to grad school to get my Masters' degree, I went to an engineering school. As a result, I have one of the few MS degrees offered in Philosophy. I got my Bachelors' degrees (two, both BA) from a massive, generic State University. There are a million reasons I can give you to select the liberal arts school over the engineering school, but there is really only one good one. EVERYONE programs. In fact, most of the philosophers I graduated with (at both schools) are substantially better programmers than the general public. You just want to learn to program? Well, that's becoming an applied skill that most people are either expected to know (e.g. basic English, MS Office, etc), or it's a grunt level skill that nobody wants to learn because they can cheaply dump it on someone else - like photocopier repair, or HVAC, or anything else that only requires an AA degree. At best. You aren't going for an AA degree from a community college. You're going for theory. For actual knowledge. There is no theory for you to find at an engineering school that you won't find at a liberal arts college. What you will get at an engineering school is competition to be the best damn 21st century version of a Diesel Engine Tech you can find.
If you want to go for a job in industry after you graduate, then either should be fine. If you plan on going into academia, doing research, going to grad school, etc., you might want to consider going to a good technical scool.
That's my $0.02, anyway.
The top schools have a reputation to protect. That first 2 years is to sweat you, to weed out what they consider rifraf. I went to a technical university and its no different. When you look around the class in those first 2 years, most of the students aren't going to make it, and the ones doing well probably failed the semester before. You will work your ass off to make the curve. Choose a school that promises to teach you what you need to know, not one that promises a label, because they expect you to already know everything and you only learn from them when you fail. The bullshit started piling up when schools moved their CS programs out of the math department where they belong and into Engineering, indignifying engineers everywhere. A computer scientist is not a programmer, but programming is all you will be expected to know for 2 years, this is their shakedown. There is a lot to be said for small classes and individual attention.
The Admin and the Engineer
If you want an Education, go to the liberal arts college. If you want Job Training, go to the tech school.
From your description, it seems you get more theory at the liberal arts college. A solid grounding in CS theory is what separates a good programmer from a great programmer.
Required reading for internet skeptics
What would an HR department think? Well, when it comes to hiring technical people, HR doesn't know it's ass from a hole in the ground. To them its all about buzz words. So the university you attend will matter to some degree...at least in the beginning of your career.
OK, I should elaborate. RPI is great for engineering, just not, IMHO, for CS. They do little research and have few employers near them.
"Show me". (For those from outside the US, Missouri has the nickname, "The 'Show Me' State"; so, saying you are from Missouri means you care more about someone showing you something than telling you about it). I can't speak, really, for what all employers are looking for, but my experience so far has demonstrated to me that most people are like the parent. They want you to show them you know what you are talking about, and are qualified to do the job they are hiring you for, and really don't care that much about *where* you got a degree.
Heck, right now I have a great job I got by impressing the interviewer, and by having good references from previous employers where I did good work, and I don't have a degree (yet - working on it). Granted, I'm doing Tech Support and QA, not development at this point, but I still think the point is valid that you can get any job that you can demonstrate competence at.
That is the crux of it, so my suggestion: wherever you end up, do something extracurricular that shows your competence. E.g. Work on an Open Source project that interests you, and document every contribution you make. Or, if not open source, start up/join some sort of student development group at your Uni and work on a project. Or enter some programming contests - even if you don't win, if you create good submissions, and hold on to them, you can show them to future potential employers. You might not even need to do something extracurricular - the school I'm currently at requires all seniors to do a project for graduation. I don't think it's just to make graduation harder - it forces students to take the time to do a project that they can show to employers after they graduate showing that they know how to apply the stuff they learned.
A lot of creative types - artists, photographers, graphic designers, writers, architects, etc, keep portfolios. There's no reason that CS majors can't develop their own 'portfolio'. Keep copies of assignments you are particularly proud of (you might not want to show employers your freshman year stuff, of course, but maybe there are some projects you did for Junior and Senior level classes that you think show off your abilities).
As for picking a school, that's a really hard one - something I've wrestled with too. Mostly, I've decided based on what's close and I can afford. But, if you have the luxury of making choices on less practical grounds, you might try to get a feel for what type of classes each offer, and pick based on which has classes that most interest you. Or, visit the campuses and try to talk to as many professors as possible - maybe sit in on a few classes to get an idea what each professor's teaching style is like. You can take the same class with two professor's, and have a dramatically different learning experience (my past two days of physics class has had one of the other professors teaching while the regular prof is at a conference, and I can barely understand the guy's accent, and can't make out his chicken scratch when he writes formulas up on the board, and I just generally don't think his explanations make a lot of sense - I'm *so* glad I don't have him normally - not that he isn't a nice guy, but I just have a hard time learning from him; whereas with the regular teacher, I do ok most of the time [admittedly, sometimes I have a little bit of a hard time following the math because he tends to go fast, but I pick up *enough* that I can make sense of the stuff in the book later]) .
Need I say more?
Obligatory disclaimer: I work at that school (also graduated from it).
I'll reiterate what an earlier poster said. "If you want an Education, go to the liberal arts college. If you want Job Training, go to the tech school."
If you agree that there's more to life than your career, go to the liberal arts school.
http://www.csab.org/
You'll find a lot of big schools that claim to be "great" can't even pass the mustard.
I am currently a senior at a liberal arts college studying CS and I chose liberal arts because I liked the small class sizes and professor to student ratio. I also feel that liberal arts colleges force you to be a more well-rounded student. From what I have gathered from my friends that go to large universities, some of the professors never even get to know their names. No matter where you go, your education is what you make it. You can barely make grades at any school or you can excel at any school. It really depends on your motivation and what type of environment you learn best in. But, if you feel that you've made a wrong decision, you can always transfer after a year or a semester.
You're going for a BS in CS- it doesn't really matter all that much. Go to the liberal arts school, get a well rounded education. If you want to go further with CS, get a masters degree from somewhere prestigious. The fact that they're theory-heavy the first couple years is a good sign. CS is more than coding.
Everyone's answer talks about which school will give you the best or most interesting education, the best social experience, the best resume for your first interview, the best networking to get you your first job, blah blah blah. Young punks, looking at the short-term picture.
Ten, fifteen years from now, you're going to start having really great, innovative ideas you want to develop on your own, away from your employer; but by yourself, you won't have all the different technical skills you need to get the job done.
If you went to an MIT or CMU, you're going to know half a dozen people with the complementary skills you need to get the job done and get your idea into the market. If you went to a liberal arts college, you're going to sit around on your ass muttering about how you could have made a million off this one great idea if the deck weren't stacked against you.
There's a reason technical school graduates keep cranking out innovations, and it's not the great education, nor the old party line about having the right connections for great opportunities or venture capital. It's about having the right connections to do absolutely anything they can imagine. Everything else follows from there.
Let's assume the quality of the education is equal (it's not, but let's say it is).
The top-notch companies, the ones who get the pick of the litter of new graduates, don't waste their time at schools that graduate 10 to 20 kids a year in the CS program. They'll pool their recruiting resources into the big schools that have good programs. Economically speaking, they get the best return on their investment this way.
If you don't want to work for one of the big players (MS, Google, Yahoo, Amazon, etc) then this shouldn't be a concern. But I doubt any of those make campus visits for CS grads to schools with a 15-per-year CS program - I know Amazon doesn't.
Bear in mind this is just about getting in their recruiting pipeline.
At the tech school, you'll run into many more technical-minded folks at the book store, the coffee shops, parties, and other campus locations. That can make the environment more conducive for technical learning. You might feel a bit more at home there if you're a hard core tech type person. At the liberal arts school with small technical (comp sci) dept, you'll run into a lot of non-tech people who wouldn't know C++ from B--. They'll probably be curious but get used to blank looks when they ask you to talk about your major or classes. On the bright side, the women will be hotter and you might have more fun. Decisions, Decisions !!!
I decided to go to a relatively well known liberal arts college instead of the other place I was accepted, the Engineering school of a well-known big state school. My friends at the big school all did 3+2 masters programs, and yeah they probably know more tech skills than I got with my BA in Computer Science from liberal arts college.
However, I can make up the difference by getting a masters if I want, and only be 1 year behind them.
What actually happened, was I took a bunch of really cool classes I didn't know existed, met really cool people who were into things like english, art, anthropology, and psychology, and studied in Japan for a year.
Towards the end of my college career, I realized I had grown bored with CS, and found a new love in neuroscience that I never would have discovered had I gone to a tech school, and am now in a neurobiology PhD program that I absolutely love.
Very few people know at 17 what they want to do for the rest of their life, even if they think they do. I recommend liberal arts school to students become it allows you to leave more options open longer.
Once you're 5 years out nobody cares where you went to school anyways, and quite a few employers have told me that they often like to hire liberal arts students because they can express their ideas cogently and clearly in writing.
I know it seems like you'd have a lot of opportunities at a big tech school, but most of the cool research gigs are run by faculty and assisted by top grad students. At your average liberal arts school, there are few or no graduate students, so bright undergrads regularly get great research opportunities (not to mention lots of funding; that's where all that tuition money goes). Liberal Arts does require more self-motivation, but it's designed to give you lots of support in any direction you aim for.
Recommendation - skip college and I mean ALL colleges for now. The basics of programing can be learned through self study. It is a waste of your or your parents money to spend it on basic concepts and programing mechanics.
Instead, join the service. The Army has an MOS called 25B that is a Information Technology Specialist. Yes you may get deployed but it is not like you are going to be in a trench. While you are there, you will get great training in not only on IT, but you will be improving your self by becoming a stronger person. AND you will be getting money for college.
While there, learn networking, security and project management. If you can, take a typing or speed reading. These skills will help you no matter the program you choose.
Then, when you get out, decide on what collage you want to go to. Many states or colleges are offering free or reduced tuition to our vets. You will go to school with money from the Army, possible tuition reduction / benefits, you will no longer be a dependent of your parents and will then qualify for loans/grants on your own income. This should be enough to afford a good college. And if you have your military training evaluated, you may find that with the few credit hours you have taken from local colleges while you were in, you will already have the equivalent of an associates.
That means you could finish your BS and then move on to your MS -or- go for a second BS say in business.
Where matters if you are looking for employment with certain companies. For instance, I am about to graduate with a CS degree, and one of the many companies to which I applied was Boeing. Boeing has a policy - or so I'm told - that they only hire individuals that graduate from ABET (http://www.abet.org/) certified programs. I had no idea about this type of certification until mere months before I was to graduate.
For the record, I went to the California Institute of Technology and it was probably the best thing I ever did for myself. But not because of what I learned in my technical classes (I did a Mechanical Engineer/Materials type major and ended up in an unrelated field). Because of the people I met, the cultural approach to doing collaborative work, the relentless problem solving in unrelated fields and, yes, the four years of nontechnical stuff they required (and two years of PE type activities) to graduate.
I also took outreach courses at liberal arts schools nearby for a few things they didn't teach locally. MIT has outreach with Harvard,for example, and Caltech had outreach with the Clarimont colleges and Occidental, plus the local community college and likely other places. Going to a tech college doesn't mean you have to give up a rounded education.
The main difference is that at a liberal arts college, you'll have to work harder to push yourself to learn the technical and problem solving stuff, and at a tech college, you'll have to push yourself to have a rounded education and more varied life experiences..
My Caltech degree has got me exactly one job though, at a startup founded by an alum. That lasted about a year, and I've been in the workforce 20 years.
Here's the criteria I've seen used to hire would-be programmers for their first job. My experience only extends to IT type jobs and software development jobs, and the latter is anecdotal, not from personal experience.
1. Show your work. They need to see evidence that you can code, preferably in a way similar to the job you're trying for. Want to work for a computer game company? Write a computer game as a hobby. Want a job in IT? Automate your current boring job with visual basic+macro tools found in your Office applications. Want to support scientific research? Write a tool that helps analyze raw data or that transforms it in a way to communicate with others.
If you have #1, the rest don't matter much.
#2. Did you get a degree from somewhere? This matters only for some jobs. You may need it to get past the HR screening though, even if the manager doesn't care. My degree from Caltech was no more valuable than a degree from your local community college in getting the job that turned into my career. That is not to say it's not useful. (see below).
3. How you respond to the interview, which may include questions that test how well you work with others, interpersonal skills etc, in addition to technical questions. Again, tailor your degree and summer jobs etc to what you are shooting for. The way you interview to be a computer game programmer is very different for joining an IBM research facility or hiring on to IT for a multinational company (or small shop)
In my opinion, most of the above is independent of what college you choose. Choose your college for the following.
1. You are there to learn. What are they teaching? My alma matter had a philosophy of "liberal science", ie everyone who graduated (including CS majors) had 2 years of physics, one of chemistry, 3 years of math and 4 years of "humanities" (ie every quarter you MUST take courses that aren't technical). It also had a philosophy that "We'll make it really hard but allow collaboration. Real life is collaberative, and open book." This is radically different from most institutions.
2. Who do you want your friends to be in life? Many lifelong friendships are made in college. Pick an environment where you can make friends.
3. While university rarely matters for the job interview, it may play a key role in getting an interview if a fellow alumni is on the team you want to join. Not only do they have some idea what to expect of a graduate of your college, their colleagues have worked with that individual and will expect you to be somewhat like him or her. Also alumni outreach programs often help with initial job leads. This is obviously more useful if graduates of your college
If you're a nerd with already good CS skills, then go to the LA college.
If you're the life of the party, with average CS skills then go technical.
I'll see your hokum and raise you a boondoggle.
I concur completely. While I did ultimately get a CS degree, it was my third major. Regardless of where you choose to go to school, ensure that you have options. I almost went to an engineering school (exclusively engineering) and would have been very limited in my choices once I realized I didn't want to be an EE. My second comment is that the school you choose really only affects your fist job, which will very likely not be the place you wish to stay, regardless of your chosen school. A few years in, employers are going to be concerned with what you've done, what you've learned and your potential to do important things.
As a hiring manager, let me tell you that I'm more interested I. Your well roundedness that what university you have attended. In today's IT environment, people who can lucidly communicate, understand business and write are most valuable. Sadly, the techiest of folks can be easily found offshore for a song. Well rounded IT folks have a better chance of surviving cost cutting and outsourcing.
I have seen in my career that ABET accreditation means the difference between getting and not getting jobs on a regular basis. ABET.org lists the colleges the accredit, Check there for your schools of interest. Note that your choice might also affect your graduate school options, which might be or might not be somthing you care about.
I went to school at MIT, and yeah, I had a 4.0 (A's are worth 4 points at MIT) GPA --- but I also had a minor in economics, and took classes such as Law for the IT Manager from the MIT Sloan School. I also was an officer at the MIT Gilbert and Sullivan Players, the MIT Student Information Processing Bureau (the MIT computer club), the MIT Lecture Series Committee (which shows 35mm movies to subsidize lectures by people like Leonard Nimoy, Dr. Ruth, Jacques Costeau, etc.) and the MIT Episcopal Chaplaincy.
What I found that was important --- studying with lots of smart people really challenges you, and makes you put in the extra effort so you can minor in student activities _and_ still hold down a good GPA. Learning computer science architectural lessons from older systems like Multics is very valuable; much more so than learning the syntax of C or Java. Learning how to schedule workers for the refreshment committees, disassembling and cleaning a soda machine, and figuring profit margins on soda and popcorn, does teach you many valuable lessons in the real world. So does taking classes in economics and law; just as much so as learning how to build a computer using a breadboard, wires, and 74xx TTL chips.
The important thing to remember is that you can get a very broad based education at a technical school, but you have to reach out for it. I would be very dubious about a school (liberals arts or not) that concentrated more on math theory than CS architecture. Learning on the past mistakes and success of real-life operating systems is valuable. I'm not so convinced about learning about type theory and type functions. Most good technical schools will have clases in IP law, negotiating, economics, and those are very much good things to learn. In particular, if you don't know how to read a balance sheet and a profit and loss statement before you leave college, do take the time to find out. It's useful in so many different contexts....
Whoops, I screwed that up. Shows you how long since I've been at MIT.... At MIT A's are worth 5 points, and so I had a 5.0 GPA.
If you don't see theory of computation, data structures, and algorithms, don't go there.
What, you haven't noticed the strange congruence between people who major in computer science and people who have a bizarre love for any and everything Japanese?
The most important thing that any school can teach you is how to learn. We all think we know, but in reality it's a difficult thing to get right. The LA school teaches you to think and be critical. The tech school will teach you a trade. If you want to be "well rounded" and earn more over your lifetime, go to the LA school. If you want to get a paycheck faster, go tech. FWIW: I attended a four year liberal arts college and have never had it come up in an interview as anything but positive. I actually had my choice of a BSCS or BACS when I graduated. I choose the BSCS as I figured not many people would grok what a Bachelor of Arts in Computer Science would mean.
If you don't want crime to pay, let the government run it.
It's Caltech - not CalTech.
*waves his cane menacingly*
When I was in school CS was for people who liked computers but could not hack EE.
Disclosure: I was an ME. But, I hardly ever hung around with fellow engineering students. To my mind, the whole point of college is to broaden your experience.
-
... on your priorities.
Do you want to get laid on a regular basis during those 4 years or do you want to get a job after you graduate?
Programming is philosophy, the rest you can BS (for the most part).
;)
Learn math, learn analysis, learn proper design, and the technical details fall into place.
I went to a liberal arts school for CS, and I only had a single class in a computer lab (a database class). At the time I thought it sucked a lot, and as I graduated I felt that I didn't really end up as prepared as I should have been, after all, I came out with only passable knowledge of C++ and x86 Assembly.
It took me a couple of years to realize that rather than teaching me the language of the day, I was taught how to translate my needs into something a computer can digest and execute. I learned how to design systems, programs, algorithms, methods properly, and now I know that the rest is just grammar.
It's something like how Latin can help you pick up the romance languages. I can take a code in a language I don't know and piece though it fairly quickly, only looking up the occasionally obscure syntax (for instance Java trinary operators).
General skill over intimate knowledge of a language will take you a long way until get to the very specialized, (potentially) very arcane areas like embedded systems and the like. That's when knowing assembly is nice.
I attended Regis University, but never graduated. My boss attended Rutgers, but he also never graduated. Between the two of us, we are working on building the next generation portable computer devices for a Japanese telecommunications company. Neither of us are anywhere close to what we learned in College, and there is a good reason for that. Colleges never teach bleeding edge. They always teach to yesterday's technology. I have guys from our regular IT department running over to me, at least 2-3 times a month, asking how to get something done, and they graduated from a college with a strong technology program.
My advice, go to college, any credible college (not Westwood, DeVry or ITT Tech, but college). Enjoy it. I am very sorry that I missed out. But, don't think in technology that one college is going to get you significantly ahead over another college. Get your degree, then go out in the world, you won't know squat, regardless of the college you go to. Work hard after college, and your experience after graduation will have the greatest influence on your future.
Just my $0.02
For an CS major you need to have good resources like high speed & reliable computers, fast & reliable network, and good teaching personnel. Good tools and resources will enhance your education so check which school has the best resources and tools for you major. I was a double major so I did started at UC Berkeley and ended at UCLA.
If I were hiring, the primary thing I'd look for is practical experience. A guy with an associates and 5 years IT experience will kick the ass of any fresh graduate with no experience with handling a network. Tech schools have the advantage of being looked at by companies interested in their tech grads. Most of the time you will get practical knowledge at these schools you won't get at a LA college. If you are serious about a career in this field, go with a tech school. If you like taking four classes of Humanities(a usual requirement at LA schools) and never miss Bonaroo, then by all means, go to the LA college.
I'm a CS concentrator at Brown University, a very liberal arts school. I just thought you'd like to know that all of my friends are getting job offers at Cisco, Adobe, Microsoft, Oracle, Google, etc. as Sophomores and Juniors for internships.
Most companies out there currently love liberal arts students because they are more diverse and socially experienced. Take my advice, go to a liberal arts school, you will enjoy it much more and still get a great job.
Don't get me started on CS majors who don't understand the importance of the "where".
I went to a liberal arts college for 2 years and than transferred to a 4 year university with a good CS program. I graduate in 6 days and if I could do it all over again, I would do the exact same thing. I'll only have a 4 year degree, but the 2 years spent in liberal arts was more than worth it. (Plus the girls are hotter and more plentiful at liberal arts school than they ever will be in any science/engineering program at a university)
I've seen both. I did my undergrad at an Ivy, and am currently doing grad work at a top-4 engineering school.
Undergraduate education -- including in technical subjects -- was better at the Ivy.
I'm currently a TA at the Big Tech where I teach an electronics course, and although the kids are generally bright, it's also clear that they haven't been prepared very well by their previous courses. They seem too worn down by the grind, and the focus on grades and performance almost distracts from the actual learning. You know the premed stereotype: That they memorize everything and understand nothing -- because when the stakes are as high as getting into med school, thinking is a liability? There's some truth to it, and I've seen a similar thing happening here. The whole experience has been funny in a way, as there'd always been a part of me that had suspected that I would somehow have known more if I'd gone to a Tech: That suspicion has completely gone away. I have a lot of confidence now in my undergraduate education.
So I'm going to say this: Think about the incentives that professors have at each school. At the Big Tech, research comes first. (That's why you go there for grad school!.) At the small liberal arts school, undergrads will be the focus.
You want to be the focus, so go to the liberal arts school.
First of all, what are your goals and what are you looking to accomplish by attending college? Do you want a top notch CS education, a good job when you get out of school, both or something else entirely? Are you sure you even need to go to a traditional college?
I know this probably won't be a popular answer, but the truth is that the school you attend really doesn't make all that much of a difference in the grand scheme of things. Sure it will help you get that first job out of school and it might give you a slight edge over someone else with similar experience, but talented programmers, sysadmins, etc. are in very high demand and employers care more about what you can do than where you came from.
Don't fool yourself into thinking that school is going to completely prepare you for work, it won't. Your CS program is more than likely not going to cover most of the things you'll need to know when working in a real development or operations group within a company. There's just too much practical work involved and University's typically have something against any course that's seen as too practical.
As for what employers will think, in general I would say that large companies are much more likely to care about things like grades, references, certifications, etc. than smaller companies. Small and medium sized businesses just want people who can get the job done; they may not even care if you have a degree. Whatever type of environment you're interested in it is _extremely_ important for you to take a job or internship with a company related to your area of study. When you graduate they may want to hire you full time, but even if they don't you've got experience that many of your colleagues don't have and you also have contacts in industry.
Personally, I'd recommend thinking long and hard about what you want to do when you're out of school and then find a University that's close to those jobs. I studied computer science at the University of Illinois at Chicago while one of my brothers studied economics and pre-law at the Champaign/Urbana campus. He went to the bigger name school, but ended up with jobs like selling cutlery and stuffing letters at Caterpillar over the summers while I ended up working for web development companies doing things like e-commerce (this was back in the mid-90's).
You said you prefer the Liberal Arts school, so go there. Potential employers aren't going to look down at you for doing so.
Seriously...as someone who went to a "tech" school (RPI), I wholeheartedly suggest not doing the same. If the 5-to-1 male-to-female ratio isn't enough to scare you away, the absurd tuition cost should be.
Find an affordable fun school and minimize loans. The "Where" doesn't matter that much. Take it from someone in "industry" right now.
I spent 4 1/2 years getting a college degree. I put up with so much aggravation from professors I disagreed with politically and morally. Plus, I'm not a drinking/drugs/partying kind of guy, and the immoral and smutty climate of the school got me angry too. Just before I graduated, I bought some books and studied for the CompTIA A+ certification. Not only has it helped me in the business world, but the two or so months I worked on it gave me TONS MORE USEFUL INFORMATION than my ENTIRE 4 1/2 YEARS OF COLLEGE. I hope this helps with your question.
As someone who spent 18 years teaching at universities that span the range in question, I support the observation that your communication skills will prosper more in a liberal arts setting. You may think that an undergraduate degree will provide all the skills you will need in a profession. I'm sorry to inform you that you will come out half-educated at best. The question you should be asking yourself is which half will provide the best foundation for the rest of your training, be it in graduate school or on the job. The half that a technical school provides will emphasize symbolic reasoning and the logical and technical skills needed for software development. The half that a liberal arts school provides will emphasize verbal reasoning, communication, and basic mathematics. Now that I am out of the academy and in the software business, I find it frustrating to deal with young programmers who can write code but cannot document their work, interact with customers and business specialists, or organize a coherent knowledge-sharing session. The problem for many of them seems to be basic difficulty with verbal reasoning and expression. As your career progresses, weaknesses of this sort will become more and more important. Whatever choice you make, I urge you to take as many courses as possible that require you to read something other than science fiction and to write and speak in a demanding and critical environment.
In my experience (8 years out of college)...
In the job world my success has mostly been due, not to my technical knowledge, but to my creativity, my ability to relate to and work with other people, and my ability to apply theory when I need to rapidly understand new systems, or processes, or languages, whatever.
Almost none of the raw technical stuff I learned in college applied to the "real" world of software engineering.
I was faced with exactly the same choice a year ago. I have a decent computer science background involving projects, summer internships and competitions. In my case the two schools are fifteen minutes of each other so I though that if I make mistake by picking the liberal arts college I can always take courses at the other institution.
You can't imagine how happy I am with my choice not to go to the tech school. I spend a year here and I often go to the tech school to meet friends and every time I'm even happier with my choice as I observe and understand the environment there more. There are a lot of factors than just education: I find liberal arts colleges a better place to live, study and develop as person. What is more, you can always go and do tech stuff for grad school. But can you do the opposite? I seriously doubt.
At an ivy-league, I did not enter in CS but two years through changed my major to CS. It was highly theory-driven on the CS side and didn't really teach languages except for the opening "write a functional lisp interpreter in C" class. Then another class in the line would assume you knew C++ so you just had to learn it. Those were the bad old days of C++ with no STL in sight. But everyone got good at writing the String class....
I already knew I would never pursue a direct CS job - what I used to call "writing the spell checker for Word 6.0." But the in-major friends of mine who did want positions at the major software firms of the time (Microsoft, Oracle) had no problems getting them and for that matter succeeding at them.
In my job I've had to pick up a few language and learn them in order to accomplish some higher business purpose. The basic-ingredients focus on data structures, design patterns, discrete automata, and efficiency have always been there and given me a good framework to map any language I was working in to my knowledge base or any task onto my ability base.
Obviously you would get all that and more at MIT / Caltech as well. My point is that the cs/engineering program at a decent "liberal arts" school can give you what you need in many cases. Especially for "true" computer science, the required resources are quite easy for any top-ranked school/program to provide, even if it only brings forth 12 grads. If you asked the same question with respect to advanced materials or electrical engineering, then the required resources for a full program with grad-level options while in undergrad are an order of magnitude greater and might lead to a more careful consideration of the specific program.
The l.a. schools I am thinking of pull way ahead in terms of facilities, breadth of non-technical programs, girls (if you like that kind of thing), and recruiting/career path into non-technical jobs. The stereotyping of grads of tech schools that works for them in many cases in getting technical first-of-career jobs works against them in many cases in non-technical fields. And one of the best thing to do with college is keep your options open to you can change your mind.
--
The way they should really rate schools is on three factors: fun, relationships, and connections. Most schools focus on at least 1 of these. It's almost impossible to find all 3. Set your priorities on these 3 points, then pick a school that matches your preferences.
Fun: party school. Great for people who's primary goal is to HAVE FUN for 4-5 years before you slave away in an office for the rest of your life. (Recommend this option if you know that you're not "cream of the crop" material, and will settle for some average job in your local town. Also recommended for kids of controlling parents that want to experience a taste of life for the first time. Schools: just look online to find a list of best party schools)
Relationships: on the other hand, some people want to use college as a chance to find their perfect mate. Yes, this is very different from a party school. At the party school you'll likely have huge circles of casual friends, and more "short term" relationships. Relationship schools you're more likely to spend time in coffee shops, and relaxing on porches talking about Keats. Schools: search for any school with the best boy:girl ratio for your gender. Guys, this means you may go to an arts school, girls, you may end up at a technical school.
Connections: "real education" as a category was left off the list on purpose. The reality is that in the work world what matters MOST, to any degree (including engineering), is WHO you know, not WHAT you know. Many of the "great" schools are great not because of the vast knowledge they offer, but because they have they have a great rolodex of alums willing to help you out. Your long term career will be better for it, even if your knowledge isn't as deep. BUT, if you choose this school you MUST be ready to network for the future. Don't only study and party with your friends. You MUST take time to develop "contacts" with your classmates (same field as you), and with your professors and advisers. If you FAIL to do this, then you'll waste those 4-5 years.
Most schools have at least 1 of these traits. Try to shoot for one with 2. Finding all 3 is next to impossible.
Your question probably doesn't have a single answer - both choices present positives and negatives.
Other people seem to have done a thorough job of identifying the pros and the cons, so I want to focus on a single aspect of it - recruitment.
(Disclaimer - I've been involved in college recruitment in my company for a few years. Currently I am responsible for recruitment from NYU)
* Top employers cannot recruit at every single school so unless your school has a large and well-reputed CS department, you're not likely to see them at your job fairs or setting up on-campus interviews. Landing that first job is very important to putting your career on the right track, so this counts for a lot. Not that on-campus recruitment is the only way to get into those firms, but it helps when the companies are looking for you rather than the other way around.
* The above holds double for internships and co-ops. A top company may allocate its intern slots for certain schools so being in those schools helps.
* Having a well-known school on your resume helps, and quite frankly it helps beyond that first job. If a senior resume lands on my desk and I am not familiar with the company the person's experience is with but am familiar with and respect their education, that counts for something.
Ultimately, if you have talent and you leverage your education, you will be successful no matter which school you go to. But all things being equal, you do want the three things I mentioned above working in your favor, not against you.
Shameless plug on the topic - I am looking for entry level programmers who would like to work in NYC. Excellent company (you've heard of it) whose main business is developing financial software. Feel free to contact me if you're a student or recent grad interested in such an opportunity. It shouldn't be hard to find or guess my email address.
-ed
http://ed.markovich.googlepages.com
I was having this discussion with my wife. I'm a hard-core techie, went to Georgia Tech (hard-core techie school). My wife is a special ed teacher, and a keen observer...
Her good insight was that you should ensure you exercise and develop both writing and public speaking skills. As adjunct to your technical skills, these will be a major benefit in the market place. As a universal and transferable skill set, they will support any downstream career choices you might make.
Liberal arts schools will strongly support reading, and allow good development of public speaking/presentation skills. Your technical school, not so much. Most technical schools do have worthwhile technical writing programs, and public speaking as well. But you have to more actively pursue them, and apply yourself to gaining those skills and really making them part of your tool box, rather than just passing the class.
As a technical manager and a former consultant, I can assure you that these 'soft' skills are a huge differentiator. I can't count the number of times I've authored a document because I didn't have anyone on staff up to the task. I can't tell you how many times I've radically revised awful documents - both from my staff and from external organizations. There have been many times when I'd have given my eye teeth for a few literate and fluent staff members.
So... whichever way you go - and both courses have merit - don't neglect your communications skills.
First, my disclaimer. I received a Math/CS degree from a very highly regarded technical school (some twenty years ago but please don't hold that against me).
I currently lead an engineering organization. I've personally hired about 40 developers over the last 4 years and I've been involved in the hiring process my entire career. My organization prides itself on identifying and hiring top performers. Many of our staff graduated from top tier CS programs but we do have a smattering of great staff from small liberal arts colleges as well as other, perhaps less highly regarded, institutions.
I grew up in a family that placed a high value on literature and the other arts. I sometimes wish I had received more of a classic liberal arts education but I have to say that my professional education has served me well. I do think that it helps to walk away with some good, solid practical programming skills; I held programming jobs most of the way through school and every summer during school. I'm not sure I would have had that same opportunity at a different institution but perhaps that is one way in which the landscape really has changed since I was in school.
I would recommend that you look for a program that will teach you solid CS theory, whether it's at a small liberal arts college or at a technical school. I run into too many candidates these days that know a particlar programming library API inside and out but, for example, have no clue about the performance implications of selecting one data structure over another for a given application. Ultimately though, the most important skill to learn in college is how to learn.
No college program is going to teach you everything you will need to know as your career progresses. Hell, when I went to school object-oriented programming was a notion that a few researchers were barely tossing around in their heads. I didn't learn about polymorhism in college. That came later. You will undoubtably have to pick up additional skills on the job through your interactions with others and through your own investigation. The real skills you need are the basic understanding of how to learn and the perseverence and foundational knowledge that empowers you to do so.
Good luck with your decision. Ultimately what you get out of your education is more about what YOU put into it rather than what others put into it.
Where you go is not nearly as important as what you do while you are there.
Although a University's supposed goal is to educate, the question to ask is who do they educate best and who doesn't the particular University educate well? I chose the wrong private University. This particular University only graduated %25 of the incoming freshman class; and they knew it. Their whole financial model -- and educational operation -- was based on this fact. Courses were brutal and chemical recreation was rampant.
I suggest you reconsider your objective; and the questions you ask.
Every mans' island needs an ocean; choose your ocean carefully.
It's all about the tier of school (each company has their own opinion, usually tied to the execs at the company). You can usually find your harvard/yale/stanfords in tier 1, and say, your DeVry and UofPhoenix in, say tier 5. Sure there are additional prejudices, but generally, if the L/A college is several /tiers/ above (even if not necessarily in CS), it might still be a better call.
As far as programs go -- I really feel the best way is to audit a class or two in a subject that interests you already. Did you learn? Do you see a use in what you learned? Or was it too high-level, low-level or abstract? Did the professor excite you to learn more (this makes /all/ the difference in the world).
Oh -- and if they never explain how to go from code->processor (so that you really understand it) -- then you can do better programwise. (Take that Java-Only U's ! Give me my C, my assembly, then teach me the "better" ways!).
So decide which is a better school, and throw that in with some weight against the quality you got from a random class or three at each, and then decide.
Good luck -- I'd rather hire a naturally smart kid with no degree, but eager to learn, then a "well trained degree mill code-monkey" any day :-) [Not saying any named college in here happens to produce those..]
-James
-- (appended to the end of comments you post, 120 chars)
I've interviewed and hired (or not) quite a few technical people both in small businesses and in large researchy sorts of places. My wife, who's a senior IT manager in a Fortune 500 company, has done even more.
Where you went isn't nearly as important as what you did.
Did you learn to write? Speak in front of a group of people? Respond appropriately to a tough crowd?
You'll have to document and explain your designs and code someday.
Did you do anything where you had to work in a dysfunctional group (you know.. the prof assigns groups, the other folks are slackers)? Can you explain what you took away from that, and how you'd change what you do?
Did you do a group project? Can you explain what the other folks in the group did? Why it was important?
Can you relate a technical problem you have or someone else has to another (non-technical) field? Or, is everything a nail, because you're a hammer?
Did you have a passion for some activity that wasn't assigned to you? Where you spent every waking moment thinking about it? That's something good, because it means you at least have the capability for passion. Now it's just your future boss's problem to direct it appropriately.
Can you articulate where you fit into the bigger context? Why should the company spend money on building whatever it is you are going to be working on? If you don't know, can you ask intelligent questions?
Mere technical skills in coding are rapidly acquired without needing to do it in school. What you get in school is context and presentation skills.
Jeez, over half these posts are so pretentious it makes me nauseous.
I've been an IT development director for a Fortune 100 company for almost 15 years now. What school an entry level programmer went to is almost completely meaningless to me and most of my peers. I've had this discussion before with many of my peers, and most of them feel the same way as I do. The HR folks seem to pay more attention to "what school this gal went to" than the people who actually make the hiring decisions.
When I'm hiring an entry level developer, I'm looking for a few things. 1) Do they have the minimum requirements for the job -- do they know the language or tools I'm hiring for, did they get _some_ kind of accredited bachelors degree? I'll even consider an Associates degree in some cases, if everything else checks out.
2) Do they interview well -- are they aware of their strengths and weaknesses? Are they curious? 3) Do they seem to fit in? What will the team dynamics be if I add this person to the mix? 4) Do I see evidence that they enjoy the profession they've chosen? Would they be writing code even if nobody paid them to do it? Are they confident in what they know, and eager to learn more? 5) Does their resume look professional? Careless mistakes on a resume are a no go in my book. To me that demonstrates a real lack of follow through and commitment. Even if everything else went well, but their resume was junk, I probably wouldn't make an offer. It's like: "I have only one work product to judge you on, and you didn't care enough to spell check it? Get out of here and quit wasting our time."
If I get a strong vibe on four or five of these things, then I'll probably shoot them an offer. If not, probably not. Work is not like school. The guy with the highest grades or best school doesn't always get the best position. You might get hired just because you seem to fit in, and you are otherwise minimally qualified. Getting hired in the real world is a bit more like dating than succeeding in the ivory towers of academia, and I'm sure that grates on many professors out there.
Unless you want to be a college professor, don't go for Computer Science degree - it's pretty much junk, at least at most any higher education institution in the U.S, and companies are starting to pick up on it. Instead, go for a Computer Engineering degree. You'll get a good engineering background, and you'll still get the coding background. You'll be able to work with either hardware (OS, device drivers, etc.) or software (systems, user, embedded), and you'll have more opportunities available to you than someone with the CS degree would have.
Also (the bit of advice I really wish I had before college) - if you want to do anything with hardware or operating systems, you need a Computer Engineering degree. Everyone you'll be in competition with will have it, and its what the employers look for. CS will be a complimentary degree for them, not the degree that qualifies them for the job.
FYI - if you do get a CS, then they'll want either an Bachelors or Master in EE to as well.
Any how...save yourself the trouble, and just get a Computer Engineering degree. It's a little tougher, but more than worth it.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
based on your description, i'd go with the liberal arts. you'll be broader prepared, and a grounding in theory is the thing that seems most lacking among cs grads that come to me.
:-O
plus, the liberal arts school will probably have much hotter girls
-a.e.mossberg
There is another thing to consider other than how well you are going to develop your technical chops. At your age, one of the points of going to college/university is to get out there and learn things you didn't even know existed, let alone have a chance to be amazed or enthralled by yet. Software development is a rewarding (in the various meanings of the term) field of study and practice, but if you don't get some broader exposure to human knowledge, you and society will be the poorer for it.
This is the idea of the liberal arts college, anyways, and it still has value (perhaps even more so in these times of hyper-specialization). Society (and the planet) needs real citizens who can educate themselves about a variety of topics and make (and advocate for) informed choices.
The size of the institution matters as well. A good, small school will give you personalized attention which is wonderful, but if you play your cards right at a large school, you can have it all. I studied physics at a large state school, and, by my mid twenties, I had worked on four experiments, travelled to Maui to work nights on a cosmic ray telescope, analyzed data from a satellite experiment, and worked on one of the most important physics detectors in use at the time, at CERN in Geneva, Switzerland. Then I returned to the same school to study art, and eventually wound up with a Ph.D. in physics (and a minor in art). While my other classes were a mixed bag, it's safe to say that many would not have been on the roster at all in a purely technical school.
In other words, at a large school you can do really interesting technical things AND broaden your horizons a bit, if you play your cards right (generally this involves finding one or two excellent mentors among the grad students and professors).
EOT
At Microsoft, where I work, we interview software engineers based on their ability. Obviously, school can help you get through to the interview, but only you can get through the interview. A reputable liberal arts school is often just fine if you can get a reference from someone you know. Some part of finding a job involves getting your foot in the door. If you get internships or have other related work experiences to show for your time spent on your resume, that says much more about you than the school you went to.
I went to Brown University, got a Computer Science degree, and had several internships. I know people with Math degrees and other non-CS degrees doing software engineering at Microsoft. Getting into a good school says something about you, but having relevant experience, getting your foot in the door, and knowing your stuff will get you a job. Plenty of people enter the software development industry with Physics and Chemistry degrees. Some people even come with Art History degrees. The point is that we look for people who can solve the kinds of problems that we need solved. If you don't enjoy writing software, are not good at it, or don't like solving software problems, then it doesn't matter which CS degree you have - it will show when we ask you to write some C-like code to traverse a data structure or break down a complicated problem into simpler steps.
4 or 5 interviews from experienced interviewers really does give a hiring manager a good idea about if you're qualified to do the job we need.
Now that I've been out of school for (gasp) 17 years I see it this way.
Before I talk engineering, I want to say this: the most valuable class for me in all my college career was the one that taught me how to write. A so-so engineer with excellent communication skills can go a lot further than the reverse.
Anyway...at one time because of demand for software people you really could squeak by without a very good degree or any degree at all. That's probably still true to some lesser extent. And I have to say that new grads fail to impress me with basic software *engineering* (debugging, organization, maintainability) skills.
But I *still* highly recommend you get the best degree you can get.
For engineering, my take is that there are like 4 different tiers of schools.
Tier 1) A degree from MIT and to a lesser extent Stanford is a gift that keeps on giving. For the rest of your career you will be referred to as 'that guy who went to MIT'. Even if you barely passed. Just like Gordon Freeman. Out on the west coast having a Stanford degree is about on par. But MIT seems to have students actually build stuff, which is not only fun but which also translates into people with better basic engineering skills. So, if you can manage to get in and graduate you will never regret it.
Tier 2) Then you have the rest of the 'top 10' or 'top 15' ranked schools. I'm out of date, but I'm thinking like Berkeley, RPI, WPI, Univ of Illinois Urbana, Michigan, some (but certainly not all!) of the ivy league schools and others my ignorance causes me to miss. Schools in this league are not only really helpful in getting your first job but more importantly they will WORK YOU. I went to what I call a 'tier 3)' school first for 2 years before going to a 'tier 2)' school, and boy was it a different level of intensity. That gives you skills and confidence.
The funny thing is that sometimes these schools rank above or darn close to the 'Tier 1)' schools. I went to Urbana, and I know there were years where it was #2 or #1. And from a curriculum standpoint you probably are getting just as good of an education. But - regardless of what your guidance counselor or parents tell you - even if MIT was consistently ranked #9, having that MIT degree buys you something that the Urbana degree won't.
Tier 3) Then you have the good but not excellent schools. I went to one of these for 2 years. These schools seem like slightly harder high school. You learn the material but are not stretched as much. If you didn't see it on a homework or quiz it won't be on an exam. 5 or 10 years down the road will it matter if you went to a Tier 2) or Tier 3) all things else equal? Not really. But your MIT or Stanford degree will.
Tier 4) Party school. 'Nuff Said.
Does it hurt to hear them lying? Was this the only world you had?
What do you call a doctor that graduated at the bottom of his class at medical school?
Doctor.
The grades you get in the higher education system really don't have much relevance to anything outside of higher education.
Once your out of school and have any experience under your belt, your degree just becomes a check box. You could almost get a bachelors in underwater basket weaving and leverage it as much as a good CS degree. They just check to see that you have the degree, which is an indication of ability to continue learning as much as skill in a given discipline.
All that being said, which one do you think you'll get the most out of. Which will make you a better learner or human being? As a CS student, all the details you learn in college will be mostly obsolete very quickly, but the underlying theories and the ability to keep learning will last a lifetime.
In the end, college is what you make of it. You can go to a great school and learn nothing, you can go to a terrible school and learn a lot if you really apply yourself. The important part is that you take your learning seriously and seek out your own opportunities.
:)
As others have mentioned, eventually the school you attended will be meaningless. In the tech field, it doesn't matter is you graduated from a very top school if you don't keep your skills current. Getting a good internship at college will help you more than just about anything else in your career at the university. I didn't do an internship and I remember having a hard time finding a good company that would hire me, even during a tech boom.
In the end, it's most important to consider what your goals are. For example, I was glad that the CS department at my alma mater was under the college of Liberal Arts & Sciences. I got a well-rounded degree (and also got a degree in Spanish by sharing a lot of requirements). I'm now a professional game developer, and the well-rounded education helped me start my own business while being able to program a game server, write game design documents, and give presentations at conferences. However, someone could just as easily have focused almost entirely on the technical aspects and excel at just that narrow field. I'm happy where I am, though.
Some thoughts from someone who distantly remembers what it was like to be so young. (Ow, my hip....)
Brian "Psychochild" Green
MMO developer's blog
I have a BA in computer science from Pomona College, worked at Apple for 5 years after graduating, and am now starting a startup. I've certainly never regretted going to Pomona rather than, say, UC Berkeley.
Pomona College had a CS program much in line with what you describe:
Many of the best students from Pomona (and Harvey Mudd, which shares CS resources) went on to get PhD's in CS. Many others got MS degrees. Obviously, they tended to go to technical schools for those. The heavy emphasis on theory, as opposed to the more industry-oriented courses at technical schools, prepared these students especially well for graduate studies.
From my class of 15, I can think off the top of my head of people who are now: two PhD CS students (Brown and UW), two doctors, one Google employee/Stanford MS, one Apple employee, one ex-Apple employee/entrepreneur (me), a financial analyst/MBA student at MIT, a mechanical engineering MEng student, a successful software entrepreneur (http://www.nevercenter.com/), a Darden MBA, a Disney/ESRI employee, etc.
So, a CS degree from a liberal arts college is not necessarily a one-way ticket to the unemployment line.
Personally, the reasons I chose to go to a liberal arts college rather than a bigger school were:
Also, as an aside, most computer science programs don't produce graduates who are going to immediately be productive in serious engineering work. You will likely need to supplement your reading in one subject area or another (FWIW, I've made a list of CS texts you should read, that may be helpful here).
Anyway, just remember that how much you like the school is extremely important. You'll be spending a lot of time there. :)
My advice is to get into something else. There are very few IT jobs these days, and no employer wants to train anyone without experience. It is life's biggest catch-22. You will save yourself the headaches later on in life. Take it from someone who has tried, only to end up repeatedly getting laid off, outsourced, downsized, etc. all before turning 30.
Good for you, (and I do mean that sincerely) but I'm pretty sure you can't translate "I got out of a foreign language requirement at my school because I could demonstrate how my knowledge of Perl, Python, and C++ equated to knowledge of different human languages" into a C++ statement that can be correctly understood by someone who knows C++ and not English. It's that kind of full range of expression that is considered necessary to call something a language.
This sig is not the Zahir. Lucky for you.
People keep on talking like you have to choose between a school that offers a good liberal arts education, and one that offers a kick-ass CS education.
I got my master's in CS at Brown, and from what I can tell it excels in both liberal arts and CS. If you go somewhere like Brown, the choice between how deeply you focus on CS vs. how broadly you educate yourself is a function of your semester-to-semester class choices, not your school.
I wonder what other schools are like Brown in this regard.
The problem with the Tech Schools is that they teach you how to use a technology, such as how to program in Java, and how to use network routers, and use the Cisco IOS switches. What happens when that technology no longer exists, and the new programming language becomes something as distant to you as Prolog might be. What then? You have to go back to school. Going to a University or College is definitely recommended because it teaches you how to learn, independently from everything else. So when that new technology comes up, you will be raking in $100K a year because you are 1 of a handful of people that know that new technology.
What is important is the school's tier. Only get CS from Tier 1 or Tier 2, no less. Trust me, don't go with Tier 3. The name recognition is more important than anything else. Tier 2 and above schools also have better internship opportunities, which should be a serious consideration.
Something else I learned. If you love to code, then you don't want to do it for money. The money will inevitably corrupt the thing you love. If it's just something you like, well okay. But love? Better just pick something you like to do from 8-5. Do what you love in your spare time.
Billy Brown rides on. Yolanda Green bypasses Gary White.
Companies don't really care where you went. I'd only worry about that for a Grad School. Each company will use a two or three hour interview to evaluate how good you are. Your GPA is still important though. School doesn't really teach you anything about real world implementation of CS. All schools teach you is three major things. One: How to define and understand different syntax and language methodology. Two: How to implement Data Structures and organize your code. Three: How to spend all nighters fixing ninja bugs. Companies will teach you how actually implement, build, and register you program. You never learn this in classes. I find that none of my classmates know what the GAC is or what regasm.exe does. "ASP dot what? Yea I'm on the NET... but I use AIM."
;)
Note: Companies are very impressed when you learn some of this stuff on your own
As an alumna of a small liberal arts college (although my degree was in mathematics and not computer science), I'd like to weigh in.
I would go back to my college in a heartbeat.
The reason is simple: I was at a place where adaptability and inquisitiveness were valued rather than a particular skillset. My school lit in me a passion for learning which drove me to discover my true interests and, in the end, pursue the skills I really wanted. (I ended up going to graduate school in psychology, where I taught myself programming in a matter of weeks. I am now being paid to teach Python to others in my department, in addition to pursuing my degree.)
In short, I learned skills more valuable than technical skills (although I would have certainly learned plenty of these if my major were different).
It was also remarkably refreshing to be around other students who really cared about what they were learning and weren't just there to get good jobs. And the professors were not just amazing teachers, but I made friends with 4-5 of them (since classes were so small), which has not just been fulfilling and interesting but has led to jobs, application help, and publications.
The down side is that you won't get that brand name stamp. Yes, that stamp will help you get jobs, if that is what you care about. But I'd say that, while a good ranking tech school will make for a more impressive resume, a good liberal arts college will make for a more impressive you. Which, can, of course, lead to all kinds of things, usually including (in the long run) a great resume.
You also won't be able to really get that focus on a skill that you want -- you may be surrounded by geniuses, but they won't necessarily be the CS geniuses who can show you all the secret tricks. Then again, taking such a focused road is dangerous unless you are 100% sure it's what you want.
Anyway, it sounds like you have a feeling about where you want to go. Trust your instincts. In the end, it's probably better to *feel* good about where you are than to *think* good things about it.
P.S. As a point of general clarification, attending a liberal arts college is not equivalent to getting a Liberal Arts degree. A liberal arts college is a small, undergraduate-only (so heavily teaching focused and not research focused) institution that offers a full range of degrees, although they will usually have more breadth requirements than other schools.
the college with the best looking girls is the one to choose. that way, if you're going to flunk, at least you might have a girlfriend at the end, and not be doomed to posting to slashdot as a single guy.
Qualifications:
* I did go to a major university, top 10 in many engineering fields, though the CS program is probably only top-50. We have a HUGE CS program, so much so that there's two, one by the College of Engineering and one by the College of Letters and Science (I did the engineering program).
* I hire and direct programmers, as well as do some of the work myself, mainly in Linux systems programming for embedded devices.
My experience:
* Small is good. Most of my classes were huge. CS classes in the 50-100 range were not unusual. I got a much better education, and enjoyment, in the few classes that were small.
* Huge school often equals hard to get classes. I often had a hard time getting _required_ CS courses when I needed them. And getting in was all about seniority in number of units.
* Most major tech schools and large universities are major research centers. This is good and bad. Great if you want to do research. Horrible if you want an education. I'd say 90% of my professors actually cared more about their research than the students and courses they were teaching. Some of the worst classes were from the best researchers: my absolutely worst class was in networking theory; 85% of the class failed (upper-division, long past weed-out courses, and these students all got A or B in a retake from a different prof), but the prof is now CTO of a new startup making lots of $$$ from his research while still retaining his professorship.
* Theory is GOOD. My whole time I complained that they kept pushing theory, ignoring practical applications. My favorite is when they present a model of something (ah, the 7-layer networking model), then proceed to tell you that, "oh, but nothing ever implements this, it's too perfect." But after graduating and getting jobs in the field, I learned how important the theory was. The theory is the base foundation you build your skills on. I know how differant types of languages work, how compilers function, basically how everything works and is build and why they work and why they're built that way. Because I know and understand theory, I can pick up a new programming language in just a few days (and that's not because I'm smart or have a good memory: I've programmed in C++ for a decade and still keep a book handy for syntax issues), all because I just understand the fundamentals.
Any school can teach you how to program in a language, even a heavy theory school typically has a program in {C,C++,C#,JAVA...pick one} class as the first introduction course. If all you want is some technical skills, go read a "PHP in 10 days" book and save yourself or your parents some big bucks. If you want to really learn and be valuable to an employer, learn not the language, but how the language works.
As someone who interviews for technical possitions, I am always more concerned about how the candidate comes up with the answer to my techincal questions, than the specific answer. I may ask programming questions, but I never care about the correct answer, I'm looking at if they _understand_ what and why and more subtle things like programming style.
BTW, I rarely ever ask about specific programming languages, other than the 'standard' ones; a good programmer can pickup a new language quickly. At small companies it's more important that the new hire can understand things quickly than that they have a specific skill.
Another place the theory helps: if you do get hired, no matter what task they set you on first, your first task is learning the IP of that new company. How the code works, how the equipment works, the processes, the lingo. Learning a new language from scratch those first 60 days may be the least of what you'll need to learn ASAP. Theory helps here 1000x more than knowing how to program in Java.
I can't tell you what school to choose, but hopefully the issues or guidelines above will help you frame your questions and requirements about the two schools.
Funny...I have a CS Degree, I got it when my father was in the US Navy, from Sydney Australia. I am NOT from Australia, so obviously I get some rather Odd looks from folks. The School I went to was not known for CS, but more for Farming tech and such! In the end, it will really only matter if you want to get on with one of the Big 5 consulting firms, they place a lot of weight on where you went to school, I personally have never wanted to work for one of them tho, as they are more of a sweat shop than real consulting shops. That is my opinion, and I stand by it. :o)
"My immediate reaction is "WTF? What kind of moron doesn't make things 64-bit safe to begin with?" Linus
whatever company hires you after college is going to take you as if you were a blank page and reeducate you according to their business needs. it never fails.
Read radical news here
My first choice would have been MIT, but I didn't have the where-with-all (money, ability to relocate etc) that would have required (I was married with children when I decided to go back to school).
Instead I went to the local state university, and to further save money went to a local community college that had a 2+2 program agreement with the university (freshman and sophomore years at the community college with full transfer credits, and junior and senior years at the university).
The nice thing about this approach was I avoided the 300+ student lecture hall courses (I started at the university initially - and that was a big pain...waiting in the halls with 150 other people to see the professor...not the most efficient use of my time - and another major reason I transfered and did my first two years at the community college). When I returned to the university, I was in smaller upper-division classes...small classes equate to a better learning environment in most cases - and a good chunk of the lower division classes at the university were used to weed-out uncommitted folks (the basic programming course and the unix shell programming courses served this purpose in the CS department - classes that started with 70-50 people at the beginning of the semester ended with 30-20).
Additionally, the university's computer science department chair was an MIT professor, and her husband as well; and both of them taught some excellent and memorable courses (computer architecture, unix system programming, and relational databases) - I still have the books from these, and reference these concepts on an almost daily basis in my job.
The course work also included assembly language programming, and a logic design course (hardware circuit design - using a simulation program to validate your work) - important to understand the underlying functionality of that 4GL framework you are using. Of course it also included English, history, technical writing, government, economics, higher level math (calc I, II, III, linear algebra, statistics), physics and other courses designed to give you a well rounded undergraduate education.
I would recommend this approach if you weren't born with a silver spoon in your mouth, can't get scholarships, grants, or take on large amounts of debt (I am still paying off my college loans --- I did change my major from aviation to computer science, so you might not incur such high costs if you know what you want and go for it straight away).
I also recommend doing some research -- find out what courses are available and required for the CS program -- as a minimum I would expect an equal measure of math and computer courses (and there may be software/hardware branches - so think about what you want to pursue) in addition to your standard requirements If the CS courses are all fluff (focusing mainly on data processing - e.g. 4GL programming frameworks/java and SQL/DB2) with little deep theoretical courses (such as compiler design, boolean algebra, systems architecture and systems programming etc) - then you should steer clear; you want the broadest possible exposure to various computer science concepts in the undergraduate course imho.
Additionally, look at the instructors - are they professors of computer science, or just teaching it? Do they come from universities that are known for computer science (MIT, Columbia etc) specifically what is their lineage - did they work with giants in the discipline - or have little understanding of the culture? Remember - you are paying for this - be sure to get your money's worth.
I got lucky - some of my key instructors were themselves instructed by some really excellent professors - and their enthusiasm and depth of knowledge showed - and helped me understand the subjects at a deeper level than I would have achieved otherwise.
ymmv
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
If your parents can get you a job and pay your downpayment if times turn out to be rough, full steam ahead to the liberal arts college. Have fun!
Otherwise, consider whether you want to risk being a bitter Pennsylvanian clinging to guns or watching everybody getting ahead in the city while you struggle to make the rent.
See, if you'd gotten a real education at a real university, you'd know you're wrong, and that YES everywhere else it is known as a trade school.
Which is the definition of a trade school, like it or not.
Sorry guy, a real education would have prepared you for that revelation. As it is, you're not educated enough to even realize you're wrong.
You keep telling yourself that, over and over, with no change in your opinion and no willingness to accept contrary opinions, as you've done in this thread.
Maybe someday you might actually be able to convince someone it's true.
I think your advice works for certain programs, like Business or Commerce. Maybe Finance or Economics or Accounting... But in Engineering & CS type programs, I'm not so sure.
A large number of my friends in college (CS program) became grunt coders and are working their way up very slowly. I don't think they'll be introducing me to politicians any time soon. Some of my closer friends failed out or dropped out and are out of the industry completely. Some are still in academia.
In any case, my career social network did get seeded from college, but honestly I can point to only one college buddy that made a real difference, and it was mostly serendipitous... the rest of my college friends are just Facebook acquaintances. The real network I grew on my own work relationships.
-Stu
Take the smaller LA program. You'll have a wider education base and enjoy the company of a wider variation of people. The fact that the program is small is a bonus as you'll have more opportunity to make important connections and get more personal attention from the professors, especially in the last two years. It will be easier to switch to something else if you decide to change direction at some point.
Even if you're an ubber-geek, you won't be taken seriously in the tech school until you start a grad school path. You can always switch to the tech school for a Master's program if you're interested at that point.
I went to a very small liberal arts college, and I now attend a major engineering / research university as a Ph.D. student. My broad background has proven helpful, though my research concerns itself with games developed from a basis in ethnography...so not really "hardcore" computer science. :P
The transition was tough...but I found a lab that was a great fit.
-Z
Apparently medical and legal professions are not real jobs.
>It makes no difference. Once you get a job, it's not as if you'll actually do any REAL work. It's mostly just revisions of past designs.
It depends on your demonstrated aptitudes. With a history of doing interesting greenfield designs you can choose to work on new projects which start with a business plan. With a history of coming up with novel ideas you can work as a computer scientist and build neat prototypes. With a history doing maintenance on existing software, you can do maintenance on existing software that's probably poorly written.
Design is a different skill set from patching existing code. Regardless of how smart you are and what school you went to you're going to do it poorly at first. Consequently lots of us will never hire an engineer to work on a new project who hasn't done new design and implementation before. We are generally open on where the experience came from and even prefer things that we can look at like open source contributions. Project classes like compiler construction (in mine we wrote a compiler for a subset of 'C') are a start. Master's theses and PhD dissertations with significant design and implementation components are good. A curriculum that requires hands-on-programming from the beginning means you'll be a _lot_ more likely to get that experience as an undergrad.
I've worked professionally as a software engineer for fifteen years. About four years of that has been maintenance on other people's code, mostly from my first jobs out of school and when I made the mistake of going to work for a large company where people are resources.
About five years has been completely new products - talk with customers and marketing to decide what to build, design, implement, and iterate. Examples there include a highly available cellular billing system interface and clustered storage with an iSCSI interface.
The rest has been mostly new (usually non-trivial) features in existing products - networking for media movement in a disk based digital video recorder for the broadcast and post production markets (0-copy between RAID and network controllers), replace a disk virtualization product's meta-data storage with something that's both replicated and orders of magnitude faster, etc.
To answer the original question: You want hands on experience writing software, preferably in the form of project classes where you have to work on the same piece of code for a semester or two and hopefully learn how what you do in the beginning affects maintainability. Courses in data structures are directly applicable to pretty much every non-trivial software project. Operating systems and computer architecture will let you understand what's actually going. While you're unlikely to use the languages taught in programming languages, the abstractions (like functional programming) will be useful. Compiler construction will help you solve parsing problems.
Statistics and probability are useful to quantify how something should behave and what it's actually doing. Good written communication skills are increasingly important now that entire teams are being outsourced to people 8-12 time zones away.
Even if you are more interested in theory, you'll be more likely to internalize it in a useful way when you have to actually apply it. I've talked to candidates with masters' degrees and high A averages who could regurgitate computational complexities without being able to choose the right data structures for a simple problem.
I went to a good liberal arts school, and it was a great experience (almost certainly a better for me than an equivalently ranked engineering school). I found these benefits:
1) I learned how to talk to people -- the art of communicating (and understanding) complicated new ideas is best learned through practice, and with the kinds of conversations you're likely to have with your anthropology major friends, you'll have lots of practice with this.
2) I learned how to read and write english (though I'm not positive about that writing thing yet).
3) I *didn't* learn how to program, and I don't think you can expect to have exceptional programming skills when you come out. Me, I learned how to program through summer jobs and consulting work, which some people say is better training anyhow.
4) I ended up getting into grad school. There are as many guys from top tier engineering schools in my grad program as from small liberal arts schools, and I can pretty much guarantee that many more applied from those fancy tech schools.