Join 3,501 readers in helping fund MetaFilter (Hide)


Is getting a B.S. in computer science worthwhile?
April 3, 2012 7:02 PM   Subscribe

Which aspects of computer science are profitable and worthwhile? Help a high schooler going off to college...

Hello,
Playing with Windows, applications, and tweaks has always been my passion since elementary school. This past year, I started gaining a beginner's proficiency in Java. Though I am not crazily in love with programming, I do think it is neat.

I would like to study computer science next year. I was accepted to UC Berkeley (College of Letters and Sciences) and Penn State University (Schreyer Honors College).

In our day, where so much code-writing is outsourced almost like "manual labor," is learning to program still worthwhile? While I am solving my little Java recursion puzzles, I just feel like I am so far away from doing any "useful" programming.

The job climate scares me. For some reason, I've got it in my head that a pre-med student has a guaranteed source of income, whereas a B.S. in computer science isn't as much of a sure thing.

-----------------------------
I apologize for my vagueness and probably the lack of logic in my thinking. Though I love the field of C.S., I have some doubts in the back of my head. Some kids are programming geniuses; is it worth my effort to try and stumble through while they excel handily?
posted by ptsampras14 to Education (32 answers total) 17 users marked this as a favorite
 
In our day, where so much code-writing is outsourced almost like "manual labor," is learning to program still worthwhile?
Yes. I would love to hire more US based developers, but there is a severe shortage of skilled developers here.
The job climate scares me. For some reason, I've got it in my head that a pre-med student has a guaranteed source of income, whereas a B.S. in computer science isn't as much of a sure thing.
No, it is pretty much the opposite. Get a medical degree, and you've got tons of debt and limited prospects. Get a CS degree and some internships and you will have your debt paid off well before you turn 30.
Though I love the field of C.S., I have some doubts in the back of my head. Some kids are programming geniuses; is it worth my effort to try and stumble through while they excel handily?
There is a lot more to CS and Software Development than just writing code. If you really grok the math side of CS (mostly formal logic, graph theory and other discrete math) then you might go on to an academic career. If you want to go into industry, a CS degree from Berkeley will give you a good shot at landing a program manager job at a company like Google. But there are plenty of other career paths that you can build on a CS degree. I'm a software engineer, so I'll let others speak to the other options.

You are in the white-hot center of the tech industry at Berkeley. Unlike the rest of the economy, tech is booming, particularly in the bay area. Do an internship every summer in your major. Say "hell no" if anyone offers your a job at the school bookstore or other non-tech stuff. Expect to make at least $10/hr (probably a lot more) as a student.

Up here in Seattle, Facebook is hoovering up as many UW students as it possibly can in order to prepare for the expected attrition as soon as the company goes public. These kids haven't even graduated yet!

PSU is also a good school, but if you want to work in the software world then go straight to Berkeley and don't look back.
posted by b1tr0t at 7:16 PM on April 3, 2012 [3 favorites]


Short answer: yes, it's worth learning to program. Most of the kids who you think are excelling probably struggle as much as you do.

A B.S. in computer science doesn't give you complete job security, but you also don't have to spend time and money on medical school and residency. And the job market is not at all bad: particularly if you can move around, companies are having trouble hiring developers. (Based on things people have told me during my own job search.) As mentioned above, the best thing you can do is get summer internships. Experience is really important, and if you have some it's easy to get hired.

You should pick a project to work on. Not just programming puzzles, but writing a large-scale program with interlocking parts and an actual interface intended to be used. You can do this in Java. It's best to pick something that would interest you: is there any program you see a need for, that you think you could write. If you can't think of anything, can I recommend Conway's Game of Life?

If this doesn't sound at all fun to you, though, maybe you should choose another major and take a few programming classes on the side. It's a good skill to have for anyone, not just professional software developers.
posted by vogon_poet at 7:18 PM on April 3, 2012 [1 favorite]


1. The situation is nowhere near as dire as you think. The tech industry weathered the recession well, and my friends who are managers tell me they can't hire people fast enough. You will have no trouble at all finding a job with a BS in CS from Berkeley (and yes, go to Berkeley if a CS degree is your goal - it's one of the best schools in the country for CS). The industry has flirted with outsourcing, but that frequently backfires.

2. There's a lot more to Computer Science than programming. Try out some of the excellent free course materials from Stanford, MIT, etc, and see if you like and/or are good at the more theoretical aspects.
posted by qxntpqbbbqxl at 7:19 PM on April 3, 2012


:::pedantic::: At schools of that caliber (congrats by the way) computer science will be much more mathematically inclined. I have no way of knowing whether that will appeal to you, but the vast majority of what you study will not directly teach you how to write enterprise java programs. If you'd like to get a feel for what I'm talking about, I'd recommend dipping into textbooks in any of the following subjects: discrete math, algorithms, or language and automata theory. These are only random slices of CS, but if these topics are really unappealing to you, I'd warn you away from a CS major. :::pedantic:::

The job climate for talented and motivated developers is great. There are certainly some caveats to that, but I can't imagine a better field with only a Bachelor's degree. Offshoring, etc. are real issues, but it's primarily an issue for shovelware webapps.

If you really want to kill it in the job market, IMHO, mix CS with some other domain knowledge (e.g. stats, bio, chem). There are a smaller number of jobs available for those combinations, but they can be very hard to fill.

At a higher level, I'd recommend putting off figuring out your major a little longer. Take some classes, see if you enjoy it. Do the same thing for a pre-med schedule. I don't think you can succeed in the medical or programming fields if you don't love what you do.
posted by yeoldefortran at 7:22 PM on April 3, 2012 [1 favorite]


If you actually want to be a doctor, a BS in CS can get you in to med school anyway. A minority of all applicants to med school get in - a pre-med undergrad guarantees you nothing.

for reference: med school myths (google cache as site appears down).
posted by jacalata at 7:29 PM on April 3, 2012 [3 favorites]


Regardless of other arguments, in the present and future enough proficiency to at least use scripting languages and automate tasks is important, even in fields where computers are just tools rather than the main focus. It's a total facepalm sometimes seeing the things that people end up doing manually with a computer that could be automated.
posted by XMLicious at 7:35 PM on April 3, 2012


Yes, it's worthwhile to learn to program, if only because it's so applicable to so many other quantitative fields. A biostatistician who can do his own programming is worth a lot more than one who has to outsource it to someone else. Being able to evaluate a financial model using a Monte Carlo simulation yourself makes you more valuable than someone who just knows how to use a spreadsheet.

And highly talented developers are always in demand, but there's more to "computer science" than programming.

No, it is pretty much the opposite. Get a medical degree, and you've got tons of debt and limited prospects. Get a CS degree and some internships and you will have your debt paid off well before you turn 30.

This is bullshit. The unemployment rate of physicians is just about 0%, and there will always be available work as long as you want to keep working. The unemployment rate of programmers is higher, and how many employed programmers over 70 years old do you ever see? The base salary for a programmer tops out in the $125k range (this isn't counting stock options), whereas the STARTING salary for a specialist physician who's finished a post-residency fellowship is $200k-$300k, depending on the field (lower for less specialized fields). Plus, med schools like people with engineering degrees.

In any case, job wise, Engineering/CS is the "instant gratification" field (high starting salaries, in demand talent early), and that works out very well for many people.

Some people are good programmers, and they love it. My friend has the ideal position as having started a company and now is "Director of R&D" in the subdivision of the corporation that bought out his company. I got a PhD, went into research and love my job, having gotten what I consider to be my dream position, and some of my friends became professors.

Others, however, tried it out for a few years, then went to business school and departed for finance (I saw this again and again at my 15 year reunion). Another guy I know quit and got his Psy.D. and is a practicing psychologist.

A couple people you wouldn't have expected who have computer science degrees: Asma al-Assad (banker, first lady of Syria) and Herman Cain (M.S. in CS from Perdue, went on to lead up Business Analytics for Pillsbury before becoming head of Godfather Pizza).
posted by deanc at 7:35 PM on April 3, 2012 [2 favorites]


There's a huge field of programming most people don't even know exists. It's called "embedded software". Microprocessors are small, cheap, versatile, and as a result get used all over the place. There's a microprocessor in your car dashboard. There are probably three in your cell phone. There's one in your watch. There's one in your stove, and one in your microwave oven, and probably one in your dishwasher.

Someone's got to write all the code that's used in those kinds of products, and most pure CS majors don't have the background to do it. The best way to prepare yourself, or at least leave open that opportunity, is to take one or two Electrical Engineering courses, if you can possibly do so. Even audit them for no credit, if there's no other way. If you know at least the basics of electronics, so that you can talk intelligently to EEs about what they're doing, your employment vistas open up much wider.
posted by Chocolate Pickle at 7:40 PM on April 3, 2012 [5 favorites]


In our day, where so much code-writing is outsourced almost like "manual labor," is learning to program still worthwhile? While I am solving my little Java recursion puzzles, I just feel like I am so far away from doing any "useful" programming.
-My team no longer does any outsourcing. In the long run it is more worthwhile for a company to build things in-house since the knowledge base will be around instead of sitting somewhere far away. You need someone local that can solve your problem at 2 AM, not detached from your organization.
-Recursion is one of the most useful skills you will ever use in solving problems. Not everyone is good at it, so if it makes sense to you then use that to your advantage :)


The job climate scares me. For some reason, I've got it in my head that a pre-med student has a guaranteed source of income, whereas a B.S. in computer science isn't as much of a sure thing.

If you are skilled, and you are good at selling yourself (you are a product) then you will be hired fine and go one to good things.
posted by zombieApoc at 7:42 PM on April 3, 2012


A degree in CS from a good school actually isn't about teaching you to program. It's about teaching you to think in a way that makes programming clearer and easier, and to really understand how computers work. It's been years since I've written code product-quality code, but I have the skills to understand how a system as a whole should function and the various bits should interact. A degree is what separates the outsourced coders from the people writing the functional descriptions and system designs. And that translates into 30-100K in salary.
Yes, there are brilliant coders without degrees. But there are a hell of a lot more system analysts with degrees.
posted by Runes at 8:40 PM on April 3, 2012


In our day, where so much code-writing is outsourced almost like "manual labor," is learning to program still worthwhile?
It depends on what kind of programming. There's a lot of crappy programming that's mostly pretty dull. Like just a bunch of database queries and stuff like that. The simple stuff can be outsourced, the complex stuff... not as easily. Outsourcing to another country is actually pretty difficult to pull off. When you don't have face to face communication with developers, it's more difficult to figure out exactly what you need, and so on.

But really, the job market for programmers is really, really good right now. Part of that is because jobs that used to be handled by skilled professionals can now be handled by computers.

Certainly the highest paid programmers make more then the highest paid doctors, but the I'm sure the median doctor probably earns more then the median developer. Especially since you don't need a certification or degree to call yourself a "developer" On the other hand, I would imagine that programming would be a lot less stressful, there is probably a lot more variation in the kind of work you can do as a programmer, etc.

I also know people who have CS degrees but went on to do other things, besides coding, using their CS degree as a foundation.
A couple people you wouldn't have expected who have computer science degrees: Asma al-Assad (banker, first lady of Syria) and Herman Cain (M.S. in CS from Perdue, went on to lead up Business Analytics for Pillsbury before becoming head of Godfather Pizza).
Heh, don't forget Ahmed Chalabi he technically has a mathematics degree, but his specialty was actually cryptography which he studied at MIT under Whitfield Diffie (of Diffie-Hellman key exchange fame), that means, basically, he would have been working a lot with computers I would imagine. Of course he graduated in 1960.
posted by delmoi at 8:56 PM on April 3, 2012


Idle note: all Berkeley L&S degrees are BAs, I do believe.

My thought is, why decide now? Thinking about Berkeley's requirements, the stuff pre-meds take all counts for L&S requirements (except the math, but you'd need it for CS anyway, I think) and CS 61A won't hurt you. Granted, everyone I knew studiously avoided the classes full of pre-meds if they could (I knew an MCB major who wasn't pre-med, so was stuck with them permanently, since they practically were all MCB), but if that's an option you're entertaining...
posted by hoyland at 9:02 PM on April 3, 2012


-Recursion is one of the most useful skills you will ever use in solving problems. Not everyone is good at it, so if it makes sense to you then use that to your advantage :)
I'd say that being able to understand recursion well is one of the things that shows whether someone has the aptitude to be a good programmer. But at the same time, it doesn't come up that often, depending on the programming language. Obviously if you're using a lisp derivative, it's pretty important :)
posted by delmoi at 9:10 PM on April 3, 2012


I am not familiar with the curriculum at either of this schools, but I see no reason that you cannot do both pre-med and comp sci at the same time. This could open doors to bioinformatics, biomedical engineering, medical software, regular old comp sci careers and an MD. You don't really have to choose between the programs, if you find a school that will let you do both. One of my friends did pre-med while majoring in psychology. THis is because we both went to see Flatliners, I think, and one of the characters (Julia Roberts?) admitted to majoring in English while doing premed. So then we both looked into what other programs we could qualify for while doing our undergrads. I completed the prerequisites for other programs while majoring in one thing - and I eventually did a masters in a completely different subject. I have other friends who did the same thing. It helps if you go to a school that has flexibility in both course scheduling and major structures.
posted by Chaussette and the Pussy Cats at 9:35 PM on April 3, 2012 [1 favorite]


Even if you don't become a 'programmer', knowing how to program is a constantly useful skill to have, no matter what you end up doing. Hell, even if you don't end up in IT. It just lets you solve all kinds of little problems that you wouldn't have even known has a solution if you didn't know how to program.
posted by empath at 9:49 PM on April 3, 2012


TL;DR: pretty much everyone who has a degree in CS is happy with it :)
posted by delmoi at 10:07 PM on April 3, 2012 [5 favorites]


First off, congratulations on getting into your programs!

The unemployment rate of physicians is just about 0%... [t]he base salary for a programmer tops out in the $125k range

The demand for software engineers, like the demand for doctors, far outstrips the supply. Just as a data point, here in Silicon Valley the unemployment rate among software engineers is negative and base salaries (what you make outside of benefits, bonuses, and options) over 125KUSD are not rare.

how many employed programmers over 70 years old do you ever see?

In fairness, computer science is a much younger field than medicine. The first programmable Turing-complete machine was built in 1941, and computer science didn't emerge as a distinct field until the 50s (in the UK) or 60s (in the US). The first all-in-one home computer was released in 1977, so the first generation to grow up with their own computers is 30-40ish now. Give it a few decades and there'll be plenty of us who are 70 and still hacking away.

OP, I second the people saying you don't have to decide yet. Both fields desperately need people, so they'll be ready to take you whenever you've made up your mind. I don't know about medicine, but I can talk a bit about learning CS.

Take a couple CS courses. Not just the programming -- you want to do some discrete math, too. That'll give you a sense of CS as an academic discipline.

Software engineering in industry is an entirely different thing. This you learn by doing, so I'd recommend taking internships every summer. The first summer is not too early! My interns are always surprised at how disjoint the set of things you need to know to be an engineer is from the set of things you learn academically. Some of them love the academic parts, some of them love the industry parts.

Finally, you say you're worried that programming comes easier to other people. This is a very common worry. The best students I ever had, even those from elite programs like Berkeley, stressed about programming being so much harder for them than their peers. Programming's not the easiest thing, but you do not need to be some preternatural prodigy to master it. Patience and practice matter far more.
posted by amery at 10:24 PM on April 3, 2012


CS is where it's at in our world at this moment. it's boom-time. what aspects are worthwhile? pick what you're into. you can't go wrong my man.
posted by victory_laser at 10:56 PM on April 3, 2012


Dear god yes. Tech is like the only part of the economy that's still working. Get your CS degree, work internships throughout college, and stay in the Bay area. You'll never be unemployed again.

If you want to do code, look into parallel processing. Hadoop and that sort of thing. Lots of demand there. Or hell, just start writing a web app. You'll be surprised how much fun is to write something real, as opposed to the sort of "toy problems" you find in textbooks.

If you don't dig on writing code, maybe look into interaction design? Good UX people are nearly impossible to find. It's a young field and they need people badly.

Also look into product management -- we need product managers, too.

When I was in college from 1999 to 2003, people were all like "ooooh outsourcing scary! thousands of outsourcing Indians are gonna take your job!" Pretty much the same crap people are telling you now. Wasn't true then, can't imagine it's true now.
posted by Afroblanco at 11:01 PM on April 3, 2012


Also, seconding what delmoi said upthread -- nobody regrets getting a CS degree. Even if you don't wind up staying in software, you'll be "the guy who can code" wherever you wind up, which will make you inherently more valuable.
posted by Afroblanco at 11:09 PM on April 3, 2012


I am doing a degree in Forensic Computing. Only after it was too late did I realise that the classes in programming would have been more useful to me by far than those in database design and management. Programming is something that can increase your utility in jobs well beyond the those that demand it specifically. There are areas of computing that are ridiculously well paid, so don't get it into your head that just because you learned programming you're confined to being an underpaid code monkey.
posted by fearnothing at 12:03 AM on April 4, 2012


Depending on anecdotes are always dangerous, but, as a former physical sciences undergrad at one of your candidate schools with quite a few electrical engineering and computer science friends, I've definitely seen that the closer you get to hardware, the easier it is to land a great job. Even the almost-pure-math CS folks can do just fine, but it does seem significantly harder for them.

If you've got a passion, then by all means pursue it. Forgot about the job market. You'll get better grades, get better recommendations, and have a hell of a lot more fun doing what you love than doing something that you think (based on incomplete information) will lead to a good job in the future.

If, however, you're choosing between CS sub-disciplines which are equally attractive, I'd recommend heading for the option which requires the most tweezers and soldering irons. Competent CS majors with a solid understanding of EE and a general engineering background seem to have no trouble landing great jobs.

And, if you want even more suspect anecdotes with less data, I've certainly met five or six depressed and largely incompetent pre-med students who don't care about their field and are living out some dated and soul-crushing dream their parents laid out for them. Their stories haven't ended well. Don't become one of them. (I've yet to meet the other kind of med student, who's pursuing a calling and lives to practice medicine. But, I believe such must exist.)

Good luck! (And don't forget, you've still got a year or two to choose. Just take all your math prerequesites now.)
posted by eotvos at 12:09 AM on April 4, 2012


Location wins! Go to Berkeley, and consider trying to get real part-time / intern jobs from day one. Heck, you could bedoung onethis summer! Sf is still on fire and consuming coders with any skill at all at a vast clip. You should be in on that.

When you do take classes, take the hardest ones you can.

Good luck!
posted by gregglind at 7:01 AM on April 4, 2012


I am a CS professor at a top-20 university. Our CS program is smaller and not as well ranked as the ones you were admitted to, so what I see may be slightly different.

First, to answer your question, if you do well in your program and the market stays roughly the same you will have no problem at all getting a job. I don't know about this year, but last year the top 80% of our graduating class had job offers in November, before they even graduated. Most offers were from places they interned. (I teach a class full of seniors today, so I will survey them to see how they are doing). The others all had jobs or grad school slots by graduation. Some students went to big CS companies - Google, Amazon, Yahoo, Microsoft. Others went to consulting companies like Deloitte or Price Waterhouse. Many students algo go into finance, but many fewer these days. Some went to smaller companies, some to grad school. Most often grad school is in CS, but not hugely so - many students go to bio or bioinformatics programs where they use their CS skills in doing other research. Some go to business, law and medicine, but not as often.

The areas that seemed most beneficial to being hired: security, databases, networks, and software engineering. These are all areas in which system building and architecture rather than programming were in high demand. You can hire people to program, but you need to have a good architecture to guide them, and this is harder to outsource. Security, particularly if you can get a security clearance, is in huge demand. Lots of people can issue SQL queries, but if you have a good base of knowledge you can do things like figure out if you need a relational database or whether a key-value store is better.

And to answer a few comments that echo many of the threads about CS education in here: yes, some of the curriculum isn't focused on stuff that immediately lets you go out and build things. In fact, those are the classes I generally hated when I was in school. But now that I do CS research for part of my living, I see they are really beneficial. I don't need to know the level of detail the classes taught, but the basic concepts of what you can actually compute and how long things will take to run are very, very fundamental. Do you need those classes, to succeed? Of course not, just like you don't need chemistry classes to be a paramedic. Even most doctors don't use their o-chem classes everyday. But knowing the basics allows doctors more opportunities than the paramedics, even though they both work in the same fields and help people in different ways.

As to being a pre-med and CS student you can do both. Some observations though. First, you will be working your ass off, and may resent your dorm-mates who are history or business students and seem to do little hard work in comparison. This may or may not bother you; I would argue you are getting more out of your education by challenging yourself. Second, the grade distribution in CS (at least at my school, but I suspect in general) is lower overall than in bio and pre-med. This can create great stress if you think that med schools do not consider the difficulty of the applicant's program in admissions. (I have had pre-meds who took my intro class tell me to my face that I ruined their med school chances and their life by giving them a well-deserved A- instead of an A.)

Both of those schools are awesome, and you will learn a lot either place. If you can afford it, I recommend visiting each for a couple of days, talking to students, and sitting in on classes to help you decide where to go.

Feel free to memail me if you have other questions.
posted by procrastination at 7:42 AM on April 4, 2012 [4 favorites]


hi! I graduated in 2010 with a BS in CS from a very good private liberal arts university although one with a very tiny CS department. I started as a dabbler and found that most other people in my classes were really logic, theory and math oriented and I just wanted to quickly make cool stuff that people could use. I had a crisis of CS-faith and wrote a couple of questions on askme along the lines of "OMG EVERYONE ELSE IN CS IS SO GOOD AT IT AND I'M NOT, WHAT DO I DO?"

I persisted, asked for a lot of help, whined and annoyed the crap out of a lot of professors, and sorta survived, and in my last year I met a professor whose focus was what I was interested in (web, mobile and game development), was inspired and finished my degree dare I say happily.

I just moved from my first post-college job to my second. Even though I am not even close to being amazing in my field, and I GRAR at the occasional "WEB DEVELOPMENT ISN'T PROGRAMMING" comments I see, I have had absolutely no problems finding a job. I actually have recruiters after me constantly - even though I don't feel confident in it, people want me for my degree and what I've done and can do with it.

My friends with CS or Engineering degrees all immediately landed lucrative jobs or worked a bit and then earned the financial freedom to pursue big dreams (startups, etc). Very few of my other friends from the same college are in the same boat.

Another friend of mine is about to head to a post-bac program on her way to med school. She will be deep in debt and living off student loans for at least five years. Meanwhile, I'm relaxing, saving for retirement and doing what I enjoy. And I'm only 23! I was originally thinking I might go back to school for another degree but now I'm having second thoughts - I don't need to go back with a CS degree.

If you decide to choose a non-med school field, you could always do post-bac classes after college and apply to med school later.

Your methods, skills and interests may vary. Best of luck and enjoy!
posted by ghostbikes at 8:05 AM on April 4, 2012


My husband, who is a very senior computer researcher at a fancy think tank, says that he advises everyone starting an undergraduate CS career to focus on bioinformatics if that is at all interesting to them. If you do decide to do med school, a bioinformatics background will make you the bee's knees.
posted by Sidhedevil at 8:19 AM on April 4, 2012


More personal anecdata:
Back in the mists of time I was a hotshot programmer in what has now become largely a forgotten backwater in CS but which was at the time hot hot hot. Maybe not in the top 5%, but certainly the top 10 and I was known in the field especially because I ran a couple of important mailing lists. This was while I was still in college. I was being actively recruited by a couple of what were then the cool startups, being offered the big bucks. My parents pressured me into staying and finishing out my degree. Smartest thing I ever did, and while I resented it at the time 25 years later it ranks as one of the best decisions of my life. For example: the job I have now has a requirement that the person filling the position has a CS degree. Without the degree the difference in salary would be at least $60K. I don't write much code anymore, but the skills I learned I use every day. Programming comes and goes (how many COBOL programmers exist these days, and web development didn't exist 25 years ago), but the skills to understand what the programs do never change.

Some of my friends hopped on the startup gravy train. Those who waited until after graduation are now doing significantly better than those who dropped out and went straight into hotshot programming roles.

And if med school interests you, biomedical computing/bioinformatics is a field with a lot of demand, especially if you're familiar with microcontrollers and a soldering iron. All those machines that go "Ping!" are constantly getting refreshed. I know a couple of Dr.-Dr.'s (MD & CS PhD) types who pretty much have unlimited options.
posted by Runes at 8:32 AM on April 4, 2012


And if med school interests you, biomedical computing/bioinformatics is a field with a lot of demand, especially if you're familiar with microcontrollers and a soldering iron. All those machines that go "Ping!" are constantly getting refreshed. I know a couple of Dr.-Dr.'s (MD & CS PhD) types who pretty much have unlimited options.

This is true. The flip side is that I am glad I didn't end up in medical devices development & engineering because I discovered many years later that it was the MDs who were driving the development process. If I were a medical device engineer who was constantly taking direction from MDs and knowing that I always was going to because they had an MD and I didn't, I would find this extremely frustrating.

My friends with CS or Engineering degrees all immediately landed lucrative jobs

Your conception of what is "lucrative" is a lot different at 22 than it will be when you're 40. I would actively discourage anyone from pursuing any engineering field for the money. You should do it because it's something intellectually challenging that makes you happy and provides you with a decent living while doing it. People in engineering/CS whose main motivation is money just end up constantly frustrated by looking at how other professionals are making as much or more than they do with fewer quantitative skills.
posted by deanc at 8:48 AM on April 4, 2012


Yeah, I didn't read all the responses, but definitely chiming in with the "job prospects are great" folks. If you don't want to do the Silicon Valley thing, come to Austin -- folks are desperate for *good* devs here. I get unsolicited offers from recruiters all the time.

And yeah, I can understand the feeling that doing the recursion exercises is far away from "real" programming, but the people who really understand those more "academic" concepts do really well compared to those who don't actually understand how coding works and try to google/copy/paste their way out of programming problems.
posted by theRussian at 10:38 AM on April 4, 2012


deanc: Your conception of what is "lucrative" is a lot different at 22 than it will be when you're 40.

Of course! I more meant to emphasize the fact that most of my friends are waitressing or are in hard-won research assistant positions except the CS and engineering people. definitely don't do it for the money - do it for the job flexibility.
posted by ghostbikes at 10:44 AM on April 4, 2012


The areas that seemed most beneficial to being hired: security, databases, networks, and software engineering. These are all areas in which system building and architecture rather than programming were in high demand.
Probably due to a combination of culture, who self-selects into engineering, and the way the mechanics of consulting work, overseas developers tend to be lacking in architecture and business judgement skills. Definitely develop good coding skills, but also pick up some general business skills. As you work in projects, think carefully about the architectural decisions you made. Does the code you wrote last semester make any sense now? How would you do it differently?

China is also actively hamstringing itself by blocking off access to Facebook, Twitter, and anything else that seems remotely similar to a social network. The biggest consulting groups will have unfettered access to the open Internet, but individual developers and smaller shops only have intermittent access. This gives western developers a huge advantage when it comes to developing social media apps.
Your conception of what is "lucrative" is a lot different at 22 than it will be when you're 40. I would actively discourage anyone from pursuing any engineering field for the money. You should do it because it's something intellectually challenging that makes you happy and provides you with a decent living while doing it.
Definitely don't go into software for the money - people that do burn out fast. Go into it because you love working with technology. But you can take comfort in the fact that you will be paid decently and be able to have a nice life. Even in an expensive city like Seattle or San Francisco.
And yeah, I can understand the feeling that doing the recursion exercises is far away from "real" programming, but the people who really understand those more "academic" concepts do really well compared to those who don't actually understand how coding works and try to google/copy/paste their way out of programming problems.
Casual developers break down into two categories: those who do cookbook copy-paste programming, and those who want to understand what is really going on. Both groups often find themselves in entry-level professional software jobs, but it is the people who are never satisfied until they understand what is going on under the hood.

As a manager, I often tell my developers to scale back and stop trying to find a perfect solution. But if they stopped caring about the ultimate solution, I would quickly get rid of them. It is far easier to tell a developer to stop than to try to motivate someone to discover the esoteric reason why some strange error pops up.

A degree helps you get a job, and packs you full of useful knowledge and tools. But what really makes a difference is that unquenchable thirst for discovering why something doesn't work and then crafting a great solution. If you have that, you will go far regardless of which path you take.
posted by b1tr0t at 11:06 AM on April 4, 2012


Minor Note: hoyland is right, all Berkeley L&S degrees are BAs. The College of Engineering hands out the EECS BSs.

FYI, if you decide on Berkeley as many have recommended here, you should be aware of how Berkeley handles L&S CS majors. I don't know if it's still the case now as oppose to around 10 years ago, but if you got into L&S wanting to major in CS, you're actually undeclared. Once you've taken the prereqs, you have to apply to get into the program because there are limited seats in the program (the EECS people get first dibs on everything). So in case your petition doesn't pass muster, you'll have to start over with the prereqs of another major, and even if you are still interested in CS, it'll be difficult to get a spot in any computer classes beyond the prereqs because they are so impacted.

Looks like it's still the case now: http://www.eecs.berkeley.edu/csugrad/

Not to be bitter, but I think it could have been explained better back then. :p
posted by jyorraku at 9:16 PM on April 4, 2012


« Older Boss wants to talk about why I...   |  Pots and pans filter, the pots... Newer »
This thread is closed to new comments.