Master of Software Engineering: CMU or Elsewhere?
nestea247 asks: "I graduated from CMU 3 years ago and have since worked in a very good company and gained quite a lot of solid software development experiences. Now I'm thinking of moving on, to learn more about software engineering i.e. management/methods/processes. CMU has a very good program. I have been comparing it against other schools like MIT, Stanford, Berkeley...etc., and it seems like only CMU has very specific concentration on software engineering and a tailor-made cirriculum. Other schools are just general masters degree in CS that might require me to re-learn or polish a lot of concepts in undergrad. So CMU sounds like a good choice, but I hope if someone could tell me what's good about the other schools. What should I take into consideration (academically) when I select a grad school for MSE?"
now you think you're ready to manage us? Oh crap.
In 3 years, you've just about filled in the gaps left in your undergrad education. And you're not willing to learn any more about CS, you just want to get into the management role. Okay, here's the only recommendation you need for schooling: with your mindset, it doesn't matter which school you attend.
Every single person I talk to who says they know software management in terms of "processes" reminds me of the Dilbert cartoon: "We improve your software process! We don't know how to do anything, we only know how to do it better!"
(I like how he puts down the "general masters degree in CS" like it's somehow inferior to a program of study which specializes in the latest management fad. Like it's not called a Master's degree for a reason.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
I remember seeing a $300 paperback SE book in the CMU bookstore. I hope you're ready to shell out.
I love CMU as a college, but SE looks kind of boring. Perhaps it's just me. Mostly learning management and workflow models, from what I saw skimming the textbook.
Ironically enough, I've been more impressed with the little I've seen of CMU's Graduate School of Industrial Engineering.
Also, if you come back to CMU again, you'll be without an NNTP feed. Damn CMU's IT people and their stupid bboards (godawful extension to IMAP, if anyone wants to know what they are...CMU gateways USENET through them).
Anyway, your call.
As an interesting aside, I've read that masters students generally end up making less money over their lifetime than BSers that would have invested the money they would have spent on their education. This is an on-average thing over the past ten years or something similar.
May we never see th
From what I recall, RIT created the first degree program specializing in software engineering. I knew a few people who were in the first graduating class (undergrad) a few years back. I was absolutely amazed by how good of programmers/designers they were.
Throughout their 5 year program, they are required to spend something like 3 semesters doing internships. My company hired one of them during their first internship period. Next time around, he hired every one that would accept the position.
Definately worth checking out.
Think about it - you're now over 21, you know the ins and outs and the mysteries of Pittsburgh, and SEI is extremely well respected. Get an apartment in Webster hall right across from SEI on Dithridge. Nicest in Oakland, IMHO.
I'd also check out Stanford - much nicer campus, better weather, and you have real tech companies within a short commute. Can't vouch for the academics there, though.
As to the guy who was shocked that someone three years out of school was going back for a master's in software engineering, it sure beats getting your master's right after your bachelors. That's one degree move I don't understand, especially if they're in the same field.
Maybe I'll join you....ahh wishful thinking.
Jeff c/o 99
Tips and Tricks for Mozilla
Processes, concepts, best practices: these are the vices of ignorant PHBs. Practice makes the man including the software engineer. I've been doing my thing for about three and a half years now, and I'm a much more proficient programmer than I was when I landed my first job. School did nothing but forestall this progress for four and a half years. But by no means do I think I've reached coder valhalla. From where I'm typing, I see many areas for self-improvement, mostly my ability to persuade my co-workers why I am right. ;)
In fact, I think you're better off taking communications classes, something in the realm of interpersonal skills. All hacks do. But to surrender to a cirriculum of consulting-babble is poppycock. I can only hope you are miserable with "the way things work" at your present employer and want to break the mold. That's good; engineers should be making engineering decisions.
If I lucky to be hiring, I'd rather have a coder with five plus years experience (with or without a degree) than a guy with three years experience coming of a year or two sabbatical for his masters. It takes years of practice to know what works and what doesn't. Not tens of thousands of dollars and countless hours in front of a whiteboard.
Well, I must say that I'm a bit taken aback by some of the comments here. Even for /. it seems that even the posters with something rational to say are resorting to name calling. Personally I think it's great that you're furthering your education and in something as important as software engineering. The number of comments here whining about how S.E. practices are nothing more than PHB mumbo-jumbo really demostrates to me why the general state of software today is as deplorable as it is. Listen people: if you look at the most reliable and (if appropriate) secure systems ever created, like Multics (which there was a story about, eariler today on /.) or the Space Shuttle on-board control software, you'll see that all of those teams used extremely rigorus software engineering processes. I think the main problem that people have had with software engineering is that it's being spouted off by PHBs with business degrees or yahoos who think they can learn all there is to know from a book. Well, you can't. It requires experience.
I'm getting off my rant here and to my real point. I'm currently in the grad program at UC Davis. (My employeer pays for it while I continue to work full time & collect a normal paycheck, I wouldn't recommend any other way.) Let me tell you: graduate school is not like your undergrad days. Sure, there's classwork and homework, but you're expected to work on projects of real significance. None of this, "Write a program to do X and make sure you get the same results as me." It may not be the same as the experience you get working on a real product, but then I question the utility of many experiences in the "real world."
So, to finally answer your question, I found that the core ciriculum of my graduate program really helped to either fill in holes from my undergraduate ciriculum (from Purdue, also in CS), and helped reinforce ideas that I had all but forgotten about. As an undergrad we take 4-6 classes a term, and we get hammered with work. While I did my best to actually learn the material (as opposed to cramming), I found that having it again as a grad student (where you only have a couple courses a term, so there's more time to study ideas in depth), was rather refreshing. I think some of this benefit came from going to a different school from where I did my undergrad. So while I have nothing but respect for CMU and the SEI (I have to say that, my boss went to CMU :-) , I would advise you to not reject schools simplily because they don't have a "Masters of Software Engineering" degree (do ensure that they have a strong software enginnering concentration though), and look at different schools, if for no other reason than to expand your horizons beyond the CMU mindset and any unnecessary overlap they may have between their undergraduate and graduate ciriculum (one of my classmates at Davis also did his undergrad there, and he found the repetition useless, especially since he was getting the same profs for the core subjects).
Hope this helps!
-"Zow"
Man, this is such a troll. A Master's _will_ get you more money AND a better job. It will also get you respect, as an engineering student I have boat loads of respect for everyone that has made it through the program and even more for people who want to continue thier education.
Wait a minute... you got out of Pgh alive and now you're thinking about going back?!? Are you insane?
Here's a tip for anyone considering CMU - STAY THE HELL AWAY!
Let's see, a CS dept. based more upon weeding out than teaching (if you don't know all of this shit already, then learn it by yourself fast enough to compete with your classmates, who have no life and *do* know this shit). Um, courses taught via video conference 'cause the prof spent the semester in Switzerland (or Sweden, whatever - great learning going on there, let me tell ya!) Gloomy weather almost every day. Miserable yinzers... and plenty of suicides, every year!
Oh yeah, such a great place!
whoah, got a little worked up. I just know too many people (myself included) who've sworn to *never* return to that hellhole.
On another note: it appears as though a lot of the slashdot crowd is comprised of coders, not computer scientists. Two things: software engineering is the life support system that allows a group to figure out what exactly needs to be written and how it's going to be written on-time, under budget, and to everyone's utmost satisfaction (quality). Otherwise it's just the forrest for the trees... and the other thing: coding is just the translation from ideas to the machine, almost any monkey can do it. The real art is in the system designs, *algorithms*, and the large amounts of domain knowledge to be grogged if anything useful is to be written.
CMU has close ties with the Software Engineering Institute (SEI). This organization has a very impressive record (just take a look on their homepage) when it comes to software engineering research and attracts a host of top researchers. Sitting close to that never hurts if you have any academic ambitions with respect to software engineering.
Jilles
As defined in IEEE Standard 610.12:
Software Engineering:
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in (1).
Quite the opposite of just writing code. In fact people just writing code is has spawned the so-called software crisis which in the nineteen seventies triggered the emergence of the software engineering research field.
Jilles
I wasn't linking methodology to the sw. crisis. A lot of misunderstandings exist about these so called lightweight methodologies. Most of these methodologies are actually based on extensive experience with software development. Metrics, testing and other techniques that help you get a grip on the development are a key point of these methodologies. XP is not about total anarchy but about focussing on effective techniques. It's about testing and measuring what you do and adapting to that.
Also you should appreciate that todays software projects are gigantic compared to the type of projects in the sixties and seventies. Software engineering has contributed to this by providing developers with better tools and methodology.
Jilles
I would willingly sacrifice all three testicles if it meant getting into CMU. In any case, here's what you need to know about CMU's graduate program:
clicka
[o]_O