When expensively educated, fashionable young graduates
start showing up in your field, you're in a bubble.
- Kevin Marks
I fully attribute the increase to The Social Network movie coinciding with the ballooning of Facebook's market cap. Flipping tech startups is the hot new get rich quick scheme. Just like flipping houses and subprime mortgages before it.
I think people who got into programming very early in life can be naturally condescending against those who found it later. There is some reason behind this: if you were programming Basic at 6, made your first mini game at 8, and had your first webapp in the dotcom boom at 14 you probably have a ton of programming experience that those who learned later don't have.
But, it still seems odd to me. Most fields want to encourage smart, young, undergrads to enter them. Sure, they might have shallower passion for the field at first, the point of the article was that many people were developing real love for the field.
While Stanford undergrads are expensively educated and (maybe?) fashionable, they are also incredibly smart. Most importantly, learning programming isn't like selling subprime mortgages. For someone to buy your startup you must have added some value to the world. Trading subprimes arguably does not, or has a net negative effect.
I'm not worrying. The fact that the market is being flooded with lots of (likely less skilled, because let's face it, fad majors attract fad-following types that aren't really as much interested in the subject matter as much as making money) programmers means I can charge a premium for my skills.
Edit: Of course, you better damn well be sure that your differentiation from the rookies is fairly obvious to the casual viewer of your resume.
I would say this was just as true in the 90s as it is today.
That's the reason he gives for people initially going into CS, but he says that, once they get there, they tend to really enjoy the material. Apparently it wasn't so in the dot com bubble; people freely admitted to hating the material.
It may help that they "broadened" their requirements.
That is, before when kids showed up to get rich, they struggled through the advanced math and hated it. Now when kids show up to get rich, they expect the advanced math, but see easier/more-engaging routes through things like web, UX or media spurs.
Facebook hasn't IPO'd because there is no value for them to do so. They have enough liquidity on the secondary markets to keep employees happy and they are able to keep investments coming through alternative means. All an IPO would do would be to increase their paperwork.
The longer they wait, the better it might end up for the rest of us. The SEC suffered major embarrassment when Americans were dropped from Goldman's (?) recent Facebook investment vehicle and is at minimum looking to revise the current rules which date back to 1935.
That's not going to fix SarBox, but maybe, just maybe that sort of bad attention/publicity will help.
As someone who's been regularly interviewing Stanford students and grads for internships and full-time positions, it's worth pointing out that lots of these CS students don't want to program. I've been surprised at how many of them are getting a CS education as a platform for a career in product management, or even marketing.
It makes some sense, given the makeup of the companies that are exciting to work for nowadays. I think especially if you want to join an early-stage startup, there are lots of benefits to having a technical education, even if your role isn't expressly technical.
This sentiment is identical to what I experienced interviewing and hiring Stanford CS grads, even though it was back in 2002-2005. Not all, to be sure -- one of my top-performing college hires was a Stanford CS grad! -- but it was certainly the trend. Unlike MIT grads, who were just drooling to find a good problem and required intervention to worry about things like career trajectory, etc.
I think it's more of a cultural bias from certain universities than a global economic trend in the field.
It's been around a lot longer than Google. PMs at Microsoft are technical positions -- they mostly require a technical degree (how technical is dependent on your team. SQL Server PMs need to talk-the-talk with their B2B customers without confusion).
Says the college student who, let me guess, never worked at microsoft.
As someone who has, PMs are not technical people, at least not in that company at the time I worked there.
I think ignorant college students who are not smart enough to know the limits of their own knowledge are the reason that hacker news has gone the way of slashdot.
Oh, since you're probably under 20, slashdot used to have good discussion from actual engineers who were knowledgable, then it got overrun by ignorant gnu weeneis around 2001 or so-- back when you are 8.
I think it was Jon Steinberg from BuzzFeed in a recent interview with Marc Suster mentioned that the hard part of recruiting is that you find so many sales guys who really want to be a business dev guy and so many engineers who want to be a product guy. What you really need are craftsmen, which I completely agree with him on.
But beyond that, I actually want enrollments to go up even more to create even more noise and change how interviewee assessments are made. I feel like that's what it will take for recruiters and hiring managers to focus their attention on platforms where the most engaged people of their crafts are. Not in the campuses of Stanford or a smaller community college, but rather in some online forum where people of all ages and geographies interact.
YC has started this with contribution to HN being a factor of admittance, but I'd like to see more of that happening in other fields as well such as mathematics and physics while using stackoverflow, quora, disqus, etc as the platforms to find the next will hunting.
I would agree with this too. I am an undergraduate CS student at Stanford and a section leader for the introductory courses (cs106b -- Prof Roberts calls it CS2 in the post -- this quarter). I do notice quite a few kids who have consciously chosen to major in CS because it will help them with management if they want to get involved with startups and acknowledge that they don't want to code.
There are a number of other reasons I would argue though for the skyrocketing enrollment in CS here:
First, the financial meltdown has prompted a lot of kids that would have majored in things like economics or management science to get into CS.
Second, the introductory CS classes are widely considered some of the best classes here. The CS department has taken the time to hire a group of phenomenal lecturers who love what they do and who spent an incredible amount of time crafting these classes.
Third, the introductory classes offer a level of human-to-human support that is unprecedented in any other department. We use undergraduate TA's (like myself) for the intro classes. We are a lot cheaper and so there are a lot more of us than there could be graduate TA's. For example, the computer LaIR is staffed with TA's from 6pm - midnight Sunday through Thursday.
Fourth, the CS department dropped the CS140 requirement (hardcore operating systems -- the "dump your girlfriend/boyfriend before you take this class because you won't be together after" class) in favor of two more gentler systems courses. This was mostly the result of the widening breadth of subject matter in CS and requirements that the department felt did not keep up with the offerings.
Fifth, CS itself has become an incredibly diverse subject. Here there are seven concentrations within the major: artificial intelligence, theory, graphics, information, systems, biocomputation, and human-computer interaction. There is a lot of overlap between them, but those overlaps also allow students to reach into other departments to get CS credit that they wouldn't have gotten within the department (e.g. art classes, physics, bio, etc). One of my friends who is concentrating in HCI is taking all studio art this quarter.
Sixth, and perhaps most importantly, computing is becoming the platform on which a lot of other disciplines are built. It is becoming a fundamental tool, in my opinion. Look at computational linguistics and bioinformatics. Even writing papers now comes down to understanding computers... I mean, after programming a lot, you get pretty darn good at Googling, a nontrivial skill I would argue.
Ok, maybe this should have been posted as a general comment, but I'll leave it here for contextual reasons.
Capitalism happens? Seriously, anecdotal fresh-out-of-school salaries for talented CS people are near $100k. Anecdotal fresh-out-of-school salaries for talented English majors are near... well, they get discounted frappuchinos at any rate. This is Mr. Market saying "Thanks, I've got enough literary criticism -- can I please, please, please have more code monkeys?"
"well, they get discounted frappuchinos at any rate"
I've noted your past fixation on English majors and their lack of financial success, and not sure why you single them out. Lit crit-saddled academia and coffeeshops aren't the only path for the English major. Writing is not only a noble pursuit but a lucrative one (even if you skirt the legacy publishing industry), with as much a combination of hard work and dedication to craft (and luck) as, for example, selling bingo card generators for a living, or mobile phone games, or b2b CRUD apps, or facebook farming simulators.
Aside from fiction writing, there are ad copy and marketing writers, technical writers, screen and television writers, bloggers, journos, etc. Most of those are salaried positions, not necessarily part time/contract work.
It's really not that bad out there. For the record, I've never worked at a coffeeshop :D
True, but I'd wager the most lucrative forms of writing (outside the lottery win of a fiction bestseller or successfully navigating the Hollywood game) are only minimally related to the passions that drive people to major in English.
Majoring in English to write marketing copy is like majoring in CS to write soundboard Android apps. It'll help, but ...
Majoring and doing well in English develops good analytical and analysis skills. You learn to read between the lines -- it's not a trivial field of study.
Also, going to college is supposed to be about training your mind. Writing an Android app doesn't require a CS degree, but getting a CS degree instills certain habits that enable you to succeed in programming.
Humf. I took many semesters of welding and it taught me a great deal about how the human world is bodged together at the very lowest levels. Welding as a major is as hard a science as Mechanical or Electrical engineering. Its two parts mechanical engineering, one part chemistry and one part electrical engineering. Lives almost always depend on your work, there's rigorous certifications and civil engineers treat you with almost religious respect.
I'm really liking this thread. Everytime someone tries to dismiss a major or course as being somehow inferior, another person chimes in with a view point that blows said dismissal out of the water.
I'm sure there are CS majors now in the workforce that just crank out their requisite number of lines each day, the work that many like to deify as an analytical blend of art and science becoming a routine drag.
And there are welders who take pride in their work and are treated with religious respect by civil engineers.
CMU is big into big robots (as opposed to e.g. MIT's Randy Brooks' little robots), and in one book or article on their program one of their CS undergraduates who was "perfect" at welding stainless steel was mentioned. "I don't think we're going to let him graduate", one of his professors said in jest.
I think we're on a tangent here. My point is that law is at least as good as teaching "soft" analytic skills as english literature, with the happy side-effect that it comes with a career path built in if you want it.
As for getting into law, there are universities outside the Group of 8 who'll accept lower scores.
I majored in English and I'm working as a paralegal... I don't know if there are cultural differences, but in the US there are plenty of English majors who go to law school, I actually think I know more of them than actual Political Science majors.
It's a different system. In Australia law is taken as an undergraduate degree. You leave high school and enrol directly in law. When you finish, if you want to be a lawyer, you either get a Graduate Certificate in Legal Practice or take an associateship.
William Bernbach, founder of DDB, famous copywriter, and... drumroll please English major. Note, this is just a famous example I knew off the top of my head, but if you go look on LinkedIn there are tons of people in the ad industry with English majors.
When patio11 mentions literary criticism I take him to mean what goes by the name English major today. We can be pretty sure than what those two did in their majors in the '20s to very early '30s was very different than what many if not most do today.
Even if it's literary criticism, for today that's mostly done in a way that's much less broadly focused, right? E.g. who outside of academia and some narrow related circles cares about deconstruction? (Admittedly, some of that is due to cultural changes where literature has lost a tremendous amount of "market share" to modern media starting with movies and radio.)
I have nothing against writing, or other forms of communication. I've called myself a professional communicator since graduation. I think writing (and secondarily oral communication) is the most underemphasized professional skill for engineers. I agree that there are many lucrative and socially beneficial things that one can do with it. Writing is wonderful!
English degrees, on the other hand, do not ordinarily teach or imply possession of commercially valuable skills. They're hardly the only liberal arts degree with this problem: I have one in East Asian Studies from an excellent school. I learned to speak Japanese in the course of getting that degree -- that makes me employable even in the absence of any of my other talents. However, many people with my degree don't end up conversational in any other language. Virtually no business anywhere will pay for my ability to tell you, at length, about how the history of the Japanese family register screws over nth-generation Japanese Koreans. (To say nothing of the vastly more common research focus of EAS graduates: Naruto fandom.)
"English degrees, on the other hand, do not ordinarily teach or imply possession of commercially valuable skills."
Writing is an integral (I'd say a keystone) component of an English degree: The critique and analysis of others' writing as well as your own. Additionally, the development of said writing skills is supplemented with supportive activities such as peer review of others' papers and theses as well as incidentals such as submission to academic journals and creative writing periodicals, both on- and off-campus.
That's why newsdesks and tech writing bullpens as well as copywriting departments often require an English degree; it infers a seasoned level of both creative and expository writing and a supposition of deadline steadfastness (in the context of writing) that is simply not taught in any other concentration.
But, you're right. Degrees of any stripe shouldn't determine the fitness of one's abilities in the real world. After all, Larry Wall studied music and linguistics (with the intent on transcribing and creating a writing system for indigenous African tribal languages) in college, then turned around and created Perl while working at NASA Jet Propulsion Laboratory.
Many degrees are not meant to train the holder in a specific set of trade skills: rather, they're meant to help train a mind that can take on many different complex real-world situations.
For example, I have a degree in economics. Literally speaking, I don't do economics on a day to day basis. But the skills it taught me in dealing with complex situations, making quantitative decisions, and dealing with uncertainty has been incredibly important in my business career, even though nobody's ever asked me to diagram an AD/AS curve.
I'm a paralegal/technical writer who majored in English and took some Engineering classes as well. Thanks for the comment, I really appreciate it because hey, I always thought you should play to your strengths, but more importantly do what interests you most. I was always great at math, but I was more interested in debate, writing, philosophy, etc. A ton of people out there have tried to make me feel like crap about it, but I'm happy with my situation and what I am involved with.
This kind of argument infuriates me. Mr. Market wants lots of things, some of them are good, some aren't. Besides, would a talented English major even want to be a full-time developer? Would you want to work with them?
Not everyone lives their lives according to the principles of capitalism, just consider yourself lucky that at this moment, it's working out in our favor as developers.
In the abstract you're right to question what Mr. Market wants. But in this specific case, it's clear why the economy would be more productive if more people knew how to code. (And coding doesn't incur negative externalities.)
It's not just finance+energy salaries driving up programmer wages.
$100K that's utter bs. Anecdotes mean squat. Most CS graduates start at around 45-50k. Suggesting that even a a sizeable minority makes 100k out of college is being ill-informed at best and dishonest at worst. If we are talking in terms of anecdotes, I know several history majors making good money working for the city whereas some new CS majors are still working at bestbuy.
Here's the nationwide average http://www.payscale.com/research/US/Degree=Bachelor_of_Scien... .The average pay for a senior software engineer is 77-101k. Hardly the 80k norm for fresh grads that the OP is suggesting. It might be the case at Stanford(although I'd need to see statistics before I concede that) but the op's explanation for the trend mentioned in the article was a broad indictment non-cs majors rather than it being specific to the culture at stanford. Google Pays $8000 a month interns? They hire co-op students out of my school $14,000 for the entire 4 month term which comes out to about 3500 a month.
Where are the 80k$-120k$ offers coming from, geographically? The reason I ask is that 80k in S.F. is roughly... 50k in Austin, TX. 120k in S.F. is roughly equivalent to 70k in Austin. (Based on Salary.com's cost of living calculator.) 50-70k is probably a nice starting salary in Austin, but not exactly mind-blowing, imho.
Google, for example, pays $8,000 a month - just for interns!
Do you have a source for this? That seems exceedingly high. And even higher on an annual basis that the entry level salary you're mentioning.
Though I could see how paying a few extra thousands could help convince a college grad to take an internship there. Google then has their foot in the door… (but still, it would be odd to then get an offer for less than what you were making as an intern)
Also, these salary threads from the past couple of days make me feel underpaid.
I'm graduating from Stanford with a BS in CS this year and I'm interning at Google this summer, and I'm being paid less than $8000/month. I've also been told that I'm being paid a "master's intern" rate, so presumably interns who haven't completed their bachelor's are being paid less. That said, Google's intern salaries are extremely generous (just not $8000/month generous).
Also, the Stanford CS department conducts a salary survey of graduates every year, and for 2009-2010 the average salary offer for CS/EE undergrads was $79,333 and the median was $80,0000.
I do have a source for this, I saw the offer myself. I was also told that this is given to all interns, no matter what department. That being said, maybe this applied only to grad interns - maybe undergraduates get less.
Reading this thread and the other salary thread I have noticed a disturbing trend among developers i.e the amount of greed. It seems that a lot of developers are motivated by finances rather than pure reasons of love of programming. msluyter's post exemplifies this perfectly. In what universe is 50-70k not mindblowing for a fresh grad? That is more money than enough money to live comfortably in most places in North-America. I'm not graduated yet but just last summer I worked for this company making 3k a month for the entire summer (36k for the year) and I had more money than I knew what to do with. Here's my expenditures:
After taxes and other deductions I took approx 2200/month. $475/ month for rent living with a roommate. $55 for internet. ~$50 for monthly bus pass. $150/month for food. $100-150 miscellaneous utilities. All in that's about $880 a month for essentials. That left me with $1320 a month spending money. I bought video games, went to movies etc and still had a lot of spare cash. This with co-op pay of 3k a month. I cannot see a reason how anyone can say that 50-70k is not enough, except greed run amok.
It's not greed, it's lifestyle inflation from being a grown up, combined with location. You are a student, you don't have a family or a car, and you can tolerate living with room mates outside of a major city. That's a totally different situation.
A 1br apartment in SF in a part of town where you don't have to step over human excrement on a daily basis is $1800-$2000. Add another $500 for a new building (the one I live in is 100 years old). A new-ish car payment is $500 + expensive insurance. Add your $400 or so for food + utilities and your starting burn rate here just as a single guy is much closer to 3k per month, let alone what it costs to have a family. Also, $5 a day for food? Really? Around here lunch is $10.
Amusingly enough, Professor Roberts was one of the two professors in charge of IHUM 58, my fall quarter "Introduction to the Humanities" class at Stanford. He was quite clear in stating that writing and being able to communicate your ideas was pivotally important, even to someone majoring in a technical field. While an English major may not lead to vast riches, everyone (including CS majors) can benefit from the analytical writing skills taught in "fuzzy" classes.
I think he's trying to argue that there's something more basic at work here where there's a fundamental value to computing science that is finally being realized by the world, and any drops will not be due to lack of interest in computing science, nor a dip in high-tech industries.
I suspect the number of programmers and admins to grow fairly slowly over time. In many ways we are still in the early days of the revolution where everyone needed to tack on indoor plumbing, heating, and AC to existing buildings. Not only are there huge gaps but all the tools suck so everything is a custom job. However, now days it's become a fairly standardized and when building from scratch you just include plumbing, heating, and AC as part of the initial design. EX: Modern auto factory robots are more capable than needed for most of their jobs but a better tool means less need to customize.
PS: Consider the number of poeple projected to know HTML in 1998 vs actually know HTML in 2010.
The bar's certainly a lot higher. When I was in high school in the late 90s, a bunch of us high school kids got jobs as webmonkeys writing HTML for the dot-com boom. It was something you could easily teach yourself as a student.
Exactly, if you want to create a website for your high school chess club there is a ready made solution that while not perfect is fairly difficult to beat by hand. So the average became more complex because the simple problems had already been solved AND you are building generic solutions to cover more areas. In other words Facebook solved a lot of the problems people used to learn HTML to solve and now Facebook needs a few high quality designers not just a HS student with some time on their hands.
Net result fewer people learned HTML because it was not needed.
You also have Microsoft making efforts to obscure HTML completely to create lock-in to Microsoft's design tools. It's long been easy to create a "web page" with Frontpage or Word as a WYSIWYG editor. The followup was ASP.NET Web Forms, where a designer uses the graphical toolbox to make all the interactive fields and buttons and such without knowing a lick of the underlying HTML. The net effect is to reduce the amount of HTML knowledge in the marketplace.
As someone who currently works in Microsoft's web ecosystem, I would have to disagree. Microsoft's tools encourage you to know the underlying HTML and "how things work" under the hood.
Heck, even their Expression Blend and Visual Studio WPF and Silverlight designers assume you'll want to edit XAML by hand. Microsoft's current generation of development tools emphatically are not in the business of hiding markup language away from the developer.
How about cars with software interfaces so you can download software that will assist with driving. Download driving software from an app store. Everything from red light timers to voice activated mileage calculators to self-driving apps. Little toy apps that let you take pictures of the license plates of douche-bag drivers and tweet about them, to sophisticated safety apps that apply the brakes if you're going to run someone over.
How about bathrooms with some hardware installed that controls valves on your shower, drain, toilet, sink, etc. Has some sensors: temperature, pressure, whatever. Has an exposed "reset" button that, when pushed, allows it to be connected to through WiFi. You connect on your laptop through WiFi and configure it like a router, or you give it your wifi password and configure it through an internet webapp.
You could have it do things like automatically adjust the temperature of your shower so it never goes cold. Put a limit on the temperature of the water coming out so your kids don't get burned. Tell you when the drain is getting clogged. Shut off the water when the toilet is overflowing.
Put a few hardware controls in the plumbing, expose the controls to a software interface, launch an app store and let people make apps for your toilet and shower. We need this.
Ditto for smart houses. Create little wifi plugs that you install in your light fixtures and then have a software interface that lets people write apps to control lights from your iPhone, or from a remote web interface when on vacation.
Plug a little hardware device onto your blinds that will open/close them based on a software interface. Hooks up to your wifi. Lets you program it to open with the sunrise and close at sunset, or whatever the programmer wants. Have toy apps that communicate with neighbours using morse code for $4.99 on the app store.
There is infinite potential. A wifi connection, a microprocessor, and some piece of hardware to plug everyday things into. Every single morning I wonder why someone has not invented a simple hardware unit to plug into your shower that lets you regulate the temperature. I want to have an interface on my iPhone where I set the temperature of my shower in degrees fahrenheit and then push "start" and the shower turns on and heats up to my desired temperature automatically.
I'd wager most programmers do not particularly solve complex problems. Instead, their applications are relatively simple and leverage existing solutions (libraries, frameworks, etc) to solve the complex problems. For most, programming is simply the application of existing solutions to a specific domain. The meat and potatoes on the other hand are those solving real technical problems.
Hmmm, that's very much what I gather is the philosophy of of MIT's new "CS1" (http://ocw.mit.edu/courses/electrical-engineering-and-comput...) which is very different from its groundbreaking 6.001 back in the early '80s. It's gluing together Python libraries to get robots to do difficult things (e.g. differential equations are required, at least in the early version of the course).
The same thing appears to be happening here at the University of Chicago -- increased numbers of undergraduates in the sequence as well as greatly increased Ph.D. student applications over the last couple of years. And not just money-grubbers in the undergrads as well; many refuse to interview with the previous staples for our graduates -- the finance industry here in Chicago or "big companies" such as Google and Facebook (one of them said to me during a lab, "I mean, really, PHP? Who wants to work with THAT?").
I haven't seen as many Ph.D. students from other disciplines coming through our intro sequence and regretting their current path. But, I do see quite a few juniors and seniors who only started taking CS classes as a sophomore or junior (usually because their advisor told them the classes were too hard and would make it difficult to do their Core Curriculum) and really wish they had evaluated the major earlier before they made choices that prevented them from switching majors and still graduating in four years.
I apologize if it came across that way! I was impressed by their desire to work with cool tech and on interesting problems instead of being dominated by economic fear and just going wherever they were most likely to get a big payout (whether or not joining Facebook now will get you a big payout is another question <grin>).
This is a good sign!
The general public is just realizing how important computer skills are, no matter what you are trying to do. A well rounded CS major can learn something new and apply those skills to something else. I think public schools and high schools need to start integrating and making CS/programming courses necessary just as basic math and science courses are required -- then once people reach university age, they can focus on different topics without having to take CS courses to learn the basic skills they require to approach those topics like a CS major would.
Absolutely. Most of these students won't become programmers, but they'll have gained experience thinking about problems algorithmically, in a context where specificity and unambiguity are required. Plus, even extremely minimal programming skill can be a valuable "secret weapon" in fields which are not historically strong technically.
I don't think that CS should be included in a high school curriculum. Programming is a valuable skill, sure, but I don't think that it will be applicable to 95% of students. There are such a broad range of jobs in the world, and very, very few end up doing programming, despite increasing numbers for university CS course registration.
I don't think that calculus should be included in a high school curriculum. Differential modelling is a valuable skill, sure, but I don't think that it will be applicable to 95% of students. There are such a broad range of jobs in the world, and very, very few end up doing differential modelling, despite increasing numbers for university calculus course registration.
Have you ever head of Bob Mankoff? He's the cartoon editor of the New Yorker. He created a program to generate simple 1-grams and bi-grams of the weekly comic caption contest to get a general idea of what submissions are looking like, and what's popular. Right away he can get a good idea of what most people are thinking about it, and it has an effect on the caption they publish.
Maybe not as a core program, but I definitely think that all high schools should offer it as an elective. I was in the middle of teaching myself C++ when I took it, and I was completely stuck on the concept of pointers. Our teacher made the concept workable for me, and we had some decent programming projects on the side. It's probably where I learned to love being a polyglot as well, since the class was in Pascal. If I ever saw her again I'd definitely give her a hug for helping me cross the bridges I came to.
CS (intro to programming, really) courses were an elective at my high school long before I got there, and were standard in the county. (Graduated in '99, went to high school in Fairfax County, VA.)
I think that as we depend on computers more, it's more important for people to have a basic understanding of what it even means to program. Demystifying technology is important. They may not even program, but I think it is becoming an important part of being educated for our society.
I've had friends who took the intro to CS class (just a basic sample of programming, in python) and they just could not understand the material. They worked hard, but it was just difficult to get concepts as simple as conventional variable naming and keywords (ie, they though every variable had to have a certain naming scheme or the program wouldn't run.)
Some people just don't have an aptitude for programming. Just like I don't have an aptitude for graphic design.
These aren't students transferring to a CS curriculum. These are students in other majors taking the intro CS courses to(most likely) fill out a general education requirement and to get "computer skills" on their resume.
Hopefully, this will end up with more people actually understanding CS, but I'm not so sure that will ever happen...
I know it's in vogue to throw the word bubble around, but I'd be interested to see the CS enrollment stats worldwide. The first generation of kids that spend more time in front of their computer than the TV are starting to hit college. More screen time is bound to create more people interested in how they can program the thing they sit in front of all day.
I kind of wish for that to happen, but for children of friends / relatives that do sit in front of the computer all day I do not see it.
The problem is that many things are taken for granted (normally) and there are lots of distractions available -- when my parents bought me my first computer (in 95) I only had games like Doom to play and no net available, and I got bored easily. Loved sitting in front of the computer, and there was nothing more interesting than learning to program it.
Kids nowadays only stay on chat/facebook/myspace all day and/or play games, which is understandable to a certain point since there's lots of stuff to do with a PC that's attractive even to non-technical people. You don't need to program it to feel good about yourself, to show off, to have some fun or to get some work done ... that's the difference between now and the nineties.
I too had my first machine at a super young age in 1994 and learned to program just the same. Our only difference was that I was still on chat/IM all day back then too, a distraction, but not as big of one as doing anything on a 25mhz Mac with a 33.6kbs modem.
What really made me learn to program was the NEED to figure out how to work the machine and network to be as fast as I could. I do doubt I'd be as interested in learning the innards on a smartphone or netbook...
I graduated in '01 with an EE degree. At that point in time, engineering, including software, seemed like a field where you were ushered down a career path towards a pigeon-holed role at a large company. The advice was to get into a) technical sales, b) product marketing, or c) consulting if you wanted to start a career towards being an entrepreneur.
Now, its much different - the technology is more empowering and much cheaper. I can build stuff, and if I can build stuff people want, its a direct path to starting a company. Constrained by my ability to build stuff, I committed myself over the last 2.5 years to focusing on becoming a better engineer.
What is interesting, is that many of my peers that I thought were done coding have come to this same conclusion. In the last 6 months I have had 3 friends - 1 a successful consultant at a big firm, 1 a successful tech salesman and a fortune 100 company, and 1 a VP of engineering at a mid-sized firm. Each of them is coding on nights and weekends now.
Why? 1) Paul Graham - 'build stuff people want' and the subsequent success of that strategy, 2) It is really hard to hire developers to build stuff, 3) Facebook, Twitter, Groupon, Zynga and other companies that used tech to change the world in insanely short periods of time.
So, from what I am seeing, its not about people gold-digging (as many comments have suggested) - its that the skill of engineering has turned from a boring career skillset into an incredibly empowering tool. I imagine many undergrads are seeing it this way too.
I was a section leader for CS106A/B/X at Stanford and Eric Roberts was my undergrad adviser. I graduated in 08 and all through my 4 years, the number of students majoring in CS and taking CS106A/B/X was increasing rapidly.
Personally, I think that it's fantastic. Programming is a great skill to be exposed to even if you're not a programmer. There's no shortage of hard problems to be solved in CS and the more the merrier as far as I'm concerned.
From my experience of teaching at least 100 kids who have taken the CS106s, no one has done it for a higher salary out of college - a lot of non-CS majors take it to satisfy the Engineering GER (a requirement) and the rest take it out of interest.
I only knew Eric as a TA/grad student at Harvard (I was undergrad--this is back in the Stone Age--mid-70's), but he was already then a fantastic, enthusiastic teacher. I imagine he's only gotten better.
Seriously? Just because there are waves of people enrolling in an introductory CS course at an extremely high-level CS school like Stamford doesn't mean that any reasonable percentage of those students will actually end up getting degrees. I'd estimate that less than 10% of the people enrolled in the intro CS course at my university ended up getting a CS degree.
Sure, there's bound to be an uptick; demand for developers is huge and all, but it's still a rigorous course of study and I think you need to be pretty driven to "get" it all. I'm not even remotely worried, because even if there were an overabundance of "computer scientists", there would still be a dearth of good computer scientists.
You actually make a fair point: I forgot the difference between the UK education system (which I went through) and the US.
In the UK, you pick your entire major over a year before you ever go to university. In fact, it depends on your A-levels, so you're effectively picking your major at age 15 or 16. Whereas, of course, in the US, you have far more room to pick and choose.
Nonetheless, this uptick in interest is almost guaranteed to result in far more computer scientists. I agree that the number of good computer scientists is a fraction of that, but you'll still have far more chance of standing out from the crowd if you have a bunch of additional skills.
The numbers which really surprise me are the +74% in CS107 enrollment and +78% in CS109. CS107 is viewed as the "don't declare CS until you take it" class, and a 74% increase definitely indicates a larger number of CS majors.
That said, I do feel that some of the reason they're seeing these numbers is because these classes are all exceptionally well taught and administered. The introductory classes they offer are designed to cater to those who might be undecided as to their major. Within a few weeks of learning what "Java" is, students are playing around with GUI apps, and do things like write breakout (with sound!). All the while, the course manages to introduce the key concepts of computer programming.
Stanford's graduation rate for undergrads starting in 2004 was 78% after four years and 95% after six years. That doesn't consider by major, though, or students switching to easier majors. This is certainly higher than the rate at many schools, but I suspect not unusual for top-tier schools.
I recall colleges complaining that not enough people were majoring in CS just a few years back. All of our jobs were going to be done in India soon, anyway.
This sort of thing goes in cycles, just like startups and the economy. Jobs in the Bay Area for CS majors are in high demand now, so that's where people are majoring. The situation will change and then there will be newly minted CS grads wishing they had majored in something else.
The same thing happened ~10 years ago and you're still programming. Just because there's an uptick in the number of people majoring in a field, it does not mean there will be an uptick in the number of professionals in that field.
Not going to happen. All these students who are after money will change majors within 2 years. CS is one of the hardest majors, there's a lot of math. I don't know about your school, but at the college I went to the CS dropout rates by the 4th year were like 80-90%. We had 4 people in some senior level classes.
I don't think they're like CMU, which has a separate school of Computer Science you have to be admitted to in order to be a CS major. If Stanford is like the University of Chicago, the only thing stopping students from majoring in CS are the registrar-imposed limits on the number of students physically enrolled.
Stanford doesn't even have those "registrar-imposed limits." Classes almost never fill up; they just get larger rooms or add TAs. Students don't usually register for classes until after the term has started!
I was an undergrad at a more traditional school where we registered for classes months in advance. I was amazed that the Stanford system was so informal, but in practice it worked just fine. It's wonderful to be able to audit a few classes before deciding on exactly what you're going to take; you may learn that you can't stand a professor, or love a surprising subject.
Wow, as an undergrad who has endured years of stressful schedule twiddling followed by a 2-week sprint to figure out how I'm going to replace all the crap courses I naively selected months ago, that sounds like paradise.
It's not exactly paradise. Because classes are only ten weeks total (slightly less in spring), you can't exactly spend the first week or two shopping around without doing non-trivial work for every single class you're shopping --- an approach which doesn't scale, to say the least. There's still a sprint the first few days. But still, it's nice.
I think it reflects so well on Stanford that they are committed to making sure students have an opportunity to major in cs, even if enrollment is tough to manage. That bit about helping the geology phd reflects especially well on stanford.
I attended cal for grad school, and I love it in many ways, but I just don't see as deep a commitment to every students success. Don't want to overstate this, plenty of wonderful profs and staff at cal who make an effort, and the challenges of 25k undergrads is great.
But it pains me to see young smart people who stumble a bit in their first couple years bounced from a major because the dept is looking for reasons to turn students away. I thins the field loses a lot of c@reative people who would have made big contributions.
Cs hasn't been impacted at cal forr a while now, thought it was when I was there.
Fortunately there are other good paths for persistent students.
This is one of the things you pay the big bucks for at the better private colleges. Part of their implicit contract with you is that they'll make available to you the resources necessary to complete your major in 4 years (although that can get difficult with laboratories that have highly finite sizes, e.g. a chemistry lab with N hoods) and they won't intentionally limit capacity with "weed out" courses. At the worst case some big colleges are less of a bargain than they appear since you have to take 5+ years to get into all the required courses due to capacity issues.
Or take the half of the big 4 CS schools: Berkeley is like many if not most big public schools in requiring you apply to either their Engineering or "Letters and Science" schools, and you can't take EECS without getting into the former, CS without getting into one of either (or at least that's what they say on their home page, their may be exceptions of course).
CMU is unusual for a private school in that you have to apply to their CS department which has a fixed per year class size of 135 (last time I checked). MIT and I gather Stanford are like most? private colleges in that acceptance allows you to major in anything you can do and to switch if you want to. If a major doubles in size "overnight" they'll move heaven and earth to accommodate the undergrads (which is a or the major theme of this blog posting, some panic that Stanford CS major enrollment is exploding).
MIT, mindful of the transitory popularly of fields (e.g. look at the early '70s areo-astro crash from which the field never recovered) has never let the EECS department---the number of professors and graduate students---get "too big", which sure appeared wise after the dot.com crash which resulted in undergraduate enrollment falling by more than 1/2. That put great stress on the department when it had 40% of the undergraduates in the 80s and 90s (and which they may be returning to, with their "CS1" course enrollment exploding from 250 last spring to 380 this spring). Enough that for a long time in that period they refused to offer a service introductory programming course for non-majors, citing their overload.
Can't they just use auto-graders? I got the impression that for many of my CS courses, the TA and professor labor went mainly into creating assignments and lectures. But many of the assignments were self or automatically grading. If you have suitably lab-based assignments, then it shouldn't be too difficult to lower the cost of adding more students into the lower level courses.
As mentioned in another thread (http://news.ycombinator.com/item?id=2444557) this course, like MIT's equivalent, is very TA intensive and is using undergraduate TAs (although I should note that MIT's 6.01-2 are not suitable for non-majors).
ADDED: I just found out that enrollment in MIT's 6.01 just jumped to 380 this spring from 250 last spring. As noted, you don't by and large take this course unless you're seriously considering EECS as a major....
So it looks like Stanford's experience is mirrored at MIT.
Well, as the article stated, many students from other degrees end up taking CS courses as part of their program and like them enough to switch. That's not necessarily related to the current potential bubble.
I know many who took computer science classes as part of a degree in biology and just ended up switching entirely.
At my school the first 2 CS courses were always packed... in the initial weeks of courses beginning at least.
I had a professor in one of those courses once say something like this:
Look to your left, look to your right,
because one of you won’t be here by
the end of the year.
Both these courses were considered weed out courses. They were Java based and most majors I had heard required at least one or both of them.
$100k in San Francisco is less than $50k where I live. I rent a single bedroom, no debt in Oklahoma. My good friend lives in San Francisco, single bedroom apartment, doesn't even need a car. I take home after taxes, expenses, etc about 50% to 25% and I make almost half of what he makes. Anecdotal, yes. Maybe not typical, but it does show that cost of living is a major factor on salary.
Maybe there is a more simple explanation. I speculate it is just that computers (and programming) are becoming more of a required skill in many fields. I know psychologists and MBAs who use programming to data mine. I myself am a bioinformatician and heavily use programming to answer scientific questions.
It could also be that kids are being introduced to programming at a younger and younger age. I started learning programming in my early teens, but I have a little cousin who has a Java class in her private school. She is about 8 now and can program Java better than I can...
I think this is cyclical, and to be expected. I had a conversation ~2 years ago with the head of a CS Dept in Boston who was anticipating this. He explained that enrollment in his department had grown by an order of magnitude (or more) during the dot-com bubble and shrank by a similar amount after the bust. Just as Lehman et al. was occurring, he was bracing for the same thing to happen again...and here it is.
It depends. MIT has seen something quite different, EECS enrollment from at least the '80s to the dot.com crash was ~ 400 students per class of ~ 1050. Then it crashed hard down to as low as 180 and only very recently got over 200. MIT hasn't seen anything like Stanford's increase but that probably has a lot to do with the different student bodies and the very different introductory courses (e.g. they no longer have a hard introductory course suitable for non-majors).
Come on, you think a computer science class at Stanford is Word/Excel? Fortunately, they created a search engine that let me find the class in question: http://www.stanford.edu/class/cs106a/ It's Java programming.
>Come on, you think a computer science class at Stanford is Word/Excel?
Intro, non-technical course? These are more common than you think. CS105(https://agora.cs.illinois.edu/display/cs105/Course+Syllabus) at UIUC is a course that covers exactly that(it was 101 when I went there). It's meant for non-engineering or science students to cover a general education credit. CS101(which was 105) is in C and matlab, and that covers some more techincally difficult stuff. This is meant for technical non-CS majors.
CS125 is the true intro CS course, which covers data structures, recursion, etc.
The first two classes (106A and 106B) are very techinical, though I'd hesitate to let anyone who hadn't taken classes beyond them to work on a piece of software I had control over.
I think a good metric for classes is the final assignment, since it captures "how far" the class goes. For reference, the final assignments are:
106A --- It varies, but has recently been a text-based "Adventure"-style game (in Java) that requires tracking the map, player state, various objects and their capabilities, etc. I think there might also be a small graphical component.
106B/X --- Again, it varies, but the best assignment (in my view) is a BASIC interpreter that implements both a REPL and stored programs. All C++, it's about building a big list of abstract expressions of different types (assignment, etc) that can be executed by walking that list (taking advantage of dynamic dispatch) and tracking global program state. It's a nice intersection of data structures and (very simple) recursive descent parsing.
107 --- A heap allocator to implement malloc(), realloc(), and free(), written on top of mmap(). A fantastic assignment.
All the 106A/B/X classes are a good 10-20 hours of programming per week, and I know many people who were interested in CS but were scared off by the 106 series. There is a much less technical intro course, CS105, that's more of an introduction to computers rather than computer science, but I don't think this article is talking about that one.
I'd attribute part of the increase to what I call the "Top Gun Effect."
When Top Gun (the Tom Cruise movie) came out, there was a big increase in the number of students signing up for aerospace engineering courses and programs.
The trigger doesn't have to be a movie, just something in popular culture. In this case, I think it's all the positive media around Facebook, iPhone, iPad, Kinect, Google and more (including at least one Oscar-nominated movie).
The launch of the first Space Shuttle happened April 12, 1981.
Top Gun, the movie, came out about five years later, on May 16, 1986.
Maybe the Space Shuttle launch did cause an increase in interest in aerospace programs, and maybe it didn't. I don't know. What I do know is that Top Gun did cause an increased interest in aerospace courses and programs.
This is more likely due to a generational shift than anything.
People between the ages of ~23 and ~28 are sort of the go-betweeners with roots (and maybe even parents) in generation X but firmly planted in Generation Y. 22 and younger is firmly Generation Y, transforming into Z or whatever you want to call it. Right now, people around 18 have lived their whole life with the internet, and probably half of it with broadband.
I blame "The Social Network" movie. That was the first movie that made software development look like a fun way to party, make tons of money and get hot chicks. The Palo Alto dev house pot smoking scenes and the fictional Sean Parker antics were quite amusing in that regard. That, and there's easy money in software these days.
But note that the movie came out October 1st of last year, so it could not influence the first of the three Stanford "quarters" in this academic year (summer is the 4th quarter). It very well might have had a effect but in the previous academic year they'd already almost returned to their previous enrollment peak. Plus it can't explain the sharp mid or high 70s% increase in their "CS3" course CS107, since anyone inspired by the movie would right now at best be taking the 2nd course in their sequence.
At my school, CS is the 6th most popular major (out of 135). That's a big deal, especially since we aren't necessarily a tech school (BYU). They haven't had trouble placing grads yet, but they are starting to get worried too.
Meanwhile, EE and CpE are pretty low. Definitely below the job market's demand.
Well, be sure to e.g. factor in the terrible age discrimination in the former field (I have no knowledge of Computational Math as a career). Conventional, salaried programming careers end around age 35-40 and get totally impossible at 50 unless you can go the consultant route, specialize in one of the fields that respects gray hairs (e.g. embedded to some extent) or walk on water.
I had a friend who did that, finishing at about age 40 (and looking it due to premature gray hair). She never found a job, which is a terrible shame since she has "the spark" for programming which is rare in men and very very rare in women (she's the 3rd I've ever met in my 50 years on this earth---and as someone who until a year ago could pass for a college student my personal anecdotal data on age discrimination is rather solid).
On the other hand, if you're going to go the YC sort of route to start your own company, weight the risks of course but go for it! You'll get a mental toolbox which will do you well when you need to tackle difficult problems, and in many ways this field is like von Clausewitz's description of war, "Everything in war is simple, but the simplest thing is difficult."
As Microsoft and its competitors' history shows consistently writing software that works is harder than most people think. pg commented in one of his essays that a whole lot of the dot.com bubble era's failures were technical---well, their business model also may have had no chance, but they never got to the point of trying that. Friendster lost to Facebook if for no other reason than that for too many years they didn't solve their capacity problems which made the site painful to use.
One of the problems that I see is that perhaps "Computer Science" is too broad. MIT has been mocked by some for having a "humanities" department, where Theater, Foreign Languages, Literature, etc., are all combined together, but given how complex the world has become in the world of computer science disciplines, I'd argue that a "Computer Science" degree is almost as broad.
Consider the different sorts of work that a CS undergraduate might pursue: Alice could become a CPU architect, working at Intel or AMD on the next micro-archtecture for the next generation of x86_64 chips. Bobby could work on creating a new secure PHP framework that makes security exposures much less likely. Candice could on writing J2EE applets for Ford. David could become a GUI engineer. Elaine could be writing the engine for an amazing new MMORPG. Frank could be working on new compiler optimizations for the Go language. Gerald could be a product manager for an amazing new consumer electronic device that's actually not derivative of other products. Hermione might be a webmaven who can create a website using Drupal, Wordpress, or what ever else is appropriate/demanded by her clients. You get the idea.
All of these require radically different preparation for a successful career, and one interesting question is where should that preparation take place? On the job? At a trade school? At an undergraduate CS program?
Some CS programs focus heavily on Java programming these days. Others still have a very heavy Systems bias (although I lament that MIT is no longer requiring undergraduates to build a CPU out of TTL chips :-). Some try to spread themselves super-thin, and have a peanut-butter coverage of all of these topics, and assume that if student needs to learn the intricacies of the Java standard libraries, they can do that on the job. Others will assume the same about what Virtual Memory is. (No kidding, I was sitting in 1st year introductory CS graduate class at MIT when a student raised her hand, and asked in lecture, "I'm sorry, what is Virtual Memory?". My jaw dropped.)
Similarly I think there's going to be a huge variety in salaries based on both the very wide range of talent available --- both in terms of quality, and their scope of training/skills/experience. If a company only wants the very best and brightest, asking for $100k/year even for a recent college graduate isn't insane. I've done phone screens for people who have been out in the industry for years, and they flubbed amazingly basic questions --- so much so that I wondered how/why their previous employers had hired them. My personal conclusion is that the market is extremely tight for certain classes of software engineers (for example, really good Linux Kernel engineers), and some companies react by hiring anyone they can get, and other companies react by holding the line, only hiring competent engineers, and paying more if that's what it takes.
Who is coming in to the programs? And what are their motivations?
You can't evaluate whether this is a good or bad change based on the numbers alone. For example, the legal profession has been swamped with excess entrants and it sucks. On the other hand, programmers tend to be job-creators more than job-takers, even as employees ("intrapreneurs") so I think this is probably a good thing.