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?"
God forbid you learn anything more about the trade practiced by those you will eventually manage. Unless you think getting a Master's will get you more money or a better job, you can learn all you need to know from reading some books. Practice your coding skills and your employees will respect you. No Master's degreee will earn a programmer's respect.
http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe =UTF-8&q=master+software+engineering+site%3A.edu&b tnG=Google+Search
Maybe you should learn how to 'write code', instead.
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.
I go to GaTech, and i know that the undergrad has several different software engineering programs, so i figure the graduate should have a specialty in it.
:)
And its also $20k cheaper then CMU
This
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.
I easily make more than 10k more than non-masters people. My first position after I finished my masters was senior engineer. The other real nice thing is that with a masters I have no direct supervisor, I find my own projects and dispose of them.
Your luck my vary.
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"
In two lines (counting the title), Mordant sums up the largest problem facing the computer field today. Doesn't reflect terribly well on Mordant, but impressive in a sick sort of way.
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
"Now for something completely different!" Instead of going to CMU where the cold is cold and the hot is muggy, go to Santa Cruz, the university in the mountains by the beach...Weather is fantastic, close to the silly-valley for great shopping (esp. for geek stuff)...
They've just started up a graduate program in Software Engineering, and I know a couple students and faculty and I'm impressed. (CMU students and faculty are impressive as well, but why not go someplace nicer?)
'course, I've heard that graduate programs (esp. near the SF Bay Area) are severly impacted, thanks to the dot-bomb.
What should I take into consideration (academically) when I select a grad school for MSE?
Take into consideration that application does not guarantee admission. A number of schools are scaling back on the number of M.Sc. applicants that they accept in favor of Ph.D.'s. In addition, not all universities will fund a M.Sc. student these days, so acceptance doesn't guarantee support.
So, look at what schools will actually support M.Sc. students, or start looking for a program close to where you work and try to get your employer to foot the bill for a part-time program.
Oh, and you'll probably want to count the number of faculty members that do research in software engineering as opposed to the other subdisciplines--and check their age. My school had 4 software engineering professors 4 years ago--now it has 1. They retired, and the M.Sc. in SE that used to be offered is no longer meaningful.
I'm a freshmen at UT Austin, enrolled in the pre-Computer Sciences program. Getting into the "real" CS major means taking some required courses. Give it a look. It may or may not be what you are looking for.
http://www.cs.utexas.edu
http://www.justmorons.com/index.html
"Don't be a moron."
http://www.justmorons.com/index.html
If you dont like the rain, but like CMU, there is another option. Apparently, CMU West is accepting applications, and offers the same MSE program. I thought CMU's expansion plans died with the .coms, but apparently not: anyone have more information about this?
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
U of Minnesota
U of Minnesota has Software Engineering masters degree
http://www.cs.umn.edu/
SMU has a Software Engineering program based on the SEI model. Of special note, they offer the SE courses as part of their "distance learning" program, which means that lectures are video-taped and mailed to you if you don't care to take up residence in Texas for a couple of years.
I've taken a couple of introductory courses from them: Requirements & Design, and Software Project Management. My experience was generally good, but if you've read some books on Software Process (of any flavor) or Object-Oriented Design, much of the introductory material is probably already familiar to you. However, there was enough that was new to me to keep me interested.
Concerning the discussion on what SE is, and the difference between it and Computer Science: In them most basic terms, CS is theory, SE is practice. Think of the difference between having a degree in Physics and one in Engineering. Many traditional CS programs combine both aspects, but I think this is mainly because SE is still an emerging field, and the institutions where these programs are taught have not yet decided to make a strong distinction between them.
This isn't a question of whether a CS or an SE background is inherently "better" than the other. It depends on what you want to do with the knowledge you gain. I think that an SE degree is good for those who want to pursue a career in software project management, business and requirements analysis, software testing, or high-level architecture and design (although a strong CS background is also a requirement for this last specialty.)
Well, I appreciate so many responses.
I just hope to clarify things a bit. I'm not the type who's so naive and only worked for 3 years as an engineer and want to quickly get a management degree to start bossing people around and getting big paychecks. No. I'm still in love with technology. I love to write software. I even code as my hobby.
I can keep on working, but I'm seeing there's something more than just writing code. The company where I work does pretty cutting edge stuff, but lacks processes when doing work. Features and functionality are often driven by implusive demands and not well planning, sources are not well controlled, release procedures are chaotic, systems are not well designed before implementation....etc.
I see there's a need to understand software systems better, utilize proven methods in designing and architecting complex software systems, and also make software collaboration more efficient. I believe a good masters in software engineering program like CMU has will take me there. However, for those who know, Pittsburgh is not a very exciting city to go back to. So I've been looking at other schools in major cities too, however, I could only find general CS master degrees.
Would it be better if I go to CMU for 15 months and study topics like this:
17-651 Models of Software Systems
17-652 Methods of Software Development
17-653 Managing Software Development
17-654 Analysis of Software Artifacts
17-655 Architectures for Software Systems
and have a real studio project to work on.
OR go to somewhere like Stanford for 2 years, study Algorithms/OS/Graphics/AI/Stats again, and at most find a software engineering research group to learn about SE?
CMU just seems more focused on software engineering. Other schools want to make you an all-rounded CS person.
I really like the CMU program, but is there anyone who could tell me otherwise why such a program is not enough and I should go for a CS masters degree? What will happen to me in my future career on both cases? Or perhaps a third option would be keep on working slowly up for another 5 years, hopefully to become a more senior engineer with more experience and then decide where to go from there?
It doesn't make sense to give advice without individual knowledge unless everybody should go to the same school and live the same life.
Facts I Know That Might Help You:
I18N == Intergalacticization
Coming from someone named "Lord Nimon", that seems really really important.
"So tell me... how long should he wait"
At 5 years, he would be a competent journeyman programmer. Nothing spectacular. But journeyman.
10 years, and a lot wider technical background.
Its like the guys who call themselves "architects" with 5 years of experience. That role requires 20 years of experience.
Sorry you gotta wait and all. I can see for those with short attention spans how that might be difficult.
There's a couple of important concepts there, but overall its about a helpful as the "7 minute manager" books that were in vogue a few decades ago.