Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Education

Master of Software Engineering: CMU or Elsewhere? 62

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?"
This discussion has been archived. No new comments can be posted.

Master of Software Engineering: CMU or Elsewhere?

Comments Filter:
  • PHB Potential (Score:1, Insightful)

    by Anonymous Coward
    "just general masters degree in CS that might require me to re-learn or polish a lot of concepts in undergrad."

    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.

    • No Master's degreee will earn a programmer's respect.

      Speak for yourself. Having advanced degrees will earn more respect from me. Obviously, that's not the only factor, but it is a factor. I value MS and PhD degrees quite a bit.

    • Who said anything about respect?

      He wants to learn about software engineering in order to better manage software engineering projects. Believe it or not, there's more to doing a job than scoring points on your scale of PHB<===>Programmer.

      Geez, who would want "more money or a better job"?
    • 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.

      Don't be a moron. Of course getting an M.Sc. will get you a better job and more money.
    • 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.
    • A master's or a phd degree is actually a proof of staying power. Everybody starts out on a project with enthusiasm, if at all. A successfully and gracefully executed project is one that takes patience, smart working ( meaning able to identify the trouble spots long before they become a reality; this takes imagination coupled with patience) and mental endurance ( being able to work through problems that may not be exciting).

      Whereas a bachelor's is all about introducing several topics, a Master's is revisiting the same old stuff but this time in more detail while a PhD is taking up a topic and being able to finish it even if it takes a long time.

      I think that what you miss out in higher education you learn through experience. The time scales involved vary, so you may miss out on valuable lessons that others have learnt.

      Having said this, I must add that Master's degrees are dime a dozen so a Master's doesn't gaurantee that the workers are not half assed.

      Software architecting is where the staying power makes all the difference.
  • Maybe you should learn how to 'write code', instead.
    • 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.
      • 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.


        While I do agree with you that "just writing code" might cause significant problems when developing software, blaming the software crisis purely on the lack of methodology implies that the crisis can be solved simply with more methodology.

        Since software is still expensive to develop and maintain, buggy and insecure (and probably often over budget etc.), the "software crisis" still persists to some amount.

        Since almost everyone has improved their processes since the seventies, and the problem still persists, just adding methodology cannot be the solution.

        It should also be noted that light-weight methodologies (for example XP, Crystal* etc) are gaining popularity, because the heavyweight methodologies often waste too much time on producing and maintaining deliverables that strictly speaking are not needed to develop the actual software, and therefore make the development process less efficient. Therefore too much methodology is at least as bad as too little.
        • 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.
  • by devphil ( 51341 ) on Monday September 09, 2002 @08:50PM (#4224671) Homepage
    I graduated from CMU 3 years ago and

    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.

    • now you think you're ready to manage us? Oh crap

      So tell me... how long should he wait? Until he's got enough experience that moving into a starting-level management position would involve a pay cut? Until he's so uber-geeky knowledgeable about CS that he's unable to see the forest for the trees? Until he's mastered all of CS, so that he can evaluate your performance optimizations?

      He may be a bit premature, but if he's thinking about it now, he may get around to it in another year or two. And believe me, he will know more than enough about CS to do a good job, if he wants to be a development manager. If he wants to be a team lead on the other hand, yah, you're right - he needs more experience. Too many places merge the two, and expect a team lead to also be the development manager, or vice versa. The first case is generally salvageable, the second... well, that's where you start entering until Dilbert land, unless you're dealing with a really good manager (one who essentially takes the brightest developer and bootstraps him into a team lead position.)

      If you really have a brain-dead PHB for a manager, you have my sympathies. This gentleman seems to have the potential to become a decent development manager, if he doesn't end up convinced he needs to memorize all of Knuth before he can do the job.

      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.

      I like how you put down a master's degree in management like it's somehow inferior to a program of study which specializes in obscure technical arcana :-/ IMHO, management's a whole lot harder than technical knowledge and skill... and believe me, I've been on both sides of the fence. I'm a code monkey now and forever more because I don't want the headaches that management has to deal with on a daily basis.

      BTW, until a few years ago, I don't think CMU had a master's program in CS... they did give out a few, generally to doctoral students who either dropped out or who were obviously never going to graduate with a PhD. So, yah - at CMU, at least, there's a bit of a stigmata attached to a "master's" degree in CS. If this guy was at CMU at that time (and from the sound of it, he might have been), he very well may have picked up a bit of that attitude. CMU also has one of the rougest graduate programs in business management/administration out there (largely because of the technical focus)... so, you can see where he might consider one degree more significant than the other.

    • I don't think "General Master's degree" was meant to be pejorative. I'm assuming he means "Master of Computer Science in Software Engineering," as opposed to "Master of Computer Science who took some Software Engineering classes as his electives."

      I think he's saying CMU has a separate program for the "Software Engineer," different from a generic all-around "Computer Science" degree. I know that in most Post-grad programs I looked at, the degree was simply "Computer Science," and the only specialization you could get was to choose your electives.
      • CMU offers, through its Software Engineering Institute, a Masters in Software Engineering. Would I recommend this program? I'm not too sure. The SEI has been developing a document-laden process management methodology for some time and only now are they beginning to see that their way may not be the most effective or may not apply to all situations.

        Of course, compared to any other institution, the SEI has done the most research. It's just that they haven't pursued certain directions and therefore you are getting yourself into a very specific way of going about things when you sign onto their way.

        The MSE is really like an MBA, I think. You should get it after you've been in the field for some time, when you start showing management potential. Its intention is not to make you into a teriffic software engineer, I think it's to credentialize you as a software engineering manager.

  • CMU + Masters in SE (Score:3, Informative)

    by 0x0d0a ( 568518 ) on Monday September 09, 2002 @09:06PM (#4224739) Journal
    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.
    • 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.

      Don't be a moron. Either your employer or the department funds your graduate degree, otherwise you don't go. If your employer funds it, you're making the same money. If the department funds it, you're making less cash for 2 years. Starting salaries for M.Sc. tend to be 20k higher than that for B.Sc. only. Not to mention that some of the better jobs in the industry require more than an undergraduate degree, regardless of institution.
    • Graduate students in the CS department typically have NTTP feeds right on their local computers. I think SE sucks, too, but some people really like it, and those people REALLY like CMU. It can't be any worse than current practices in industry...
      • Graduate students in the CS department typically have NTTP feeds right on their local computers.

        From where? I'd love to know this...I haven't seen any bboard-to-NNTP gatewaying software. The CMU Computer Club used to run an NNTP server last year (IIRC, from looking at post paths, they got their feed from MIT), but that seems to be down this year. And most of the public newsservers don't let you post.

    • 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.


      That's what I thought during the Software Engineering class that was the first course I was required to take for my MS in SE.

      I was wrong.

      SE is heavy on learning processes, flow models, project management, Quality Assurance, etc... BUT a good curriculum will round out the coursework with stuff like AI, Real-time systems, architecture, Operating Systems and so on for those students who want a background in that area: I see a parallel to my undergrad EE coursework. I enjoy my classes as most of the profs work at real jobs or at least have recent work experience in their fields and know what *works* in the real world and what doesn't -- it's not just ivory tower stuff straight out of the book. Very often I find the professor's notes more useful than the $100 textbooks we have to buy. I have learned a tremendous amount and have a much better understanding of the big picture of software development, and it's good to spend a few hours a week surrounded by peers trying to get better at what they do.

      As far as the money comparison; well I don't really care. I got into embedded software cause I love the challenge of the work. Before going back to school, I read everything interesting about CS that I could get my hands on, now I'm in school because I enjoy the environment and the learning experience. I have never done database/business type applications. The kind of work that interests me definitely benefits from the education I have received, and in many cases, employers require the graduate degree.
  • RIT's SE Program (Score:3, Informative)

    by cumorehe ( 105484 ) on Monday September 09, 2002 @09:07PM (#4224747)
    From what I recall, RIT [rit.edu] 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 am from their second graduating class and it is a good program. Its 5 years with 5 quarters of COOP for graduation required. They are still working on the framework for their Masters program last I checked but and even their undergrad still needs SOME work. RIT also has CS,IT,CE,MIS, and even biomedical computing programs so no matter which flavor you want to go for, I'd look at RIT.
  • 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 :)
  • 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
    • 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.

      Don't be a moron. Even if you get a B.Sc. and go into industry, by the time it takes you to get that 2 year M.Sc. degree, you won't be making near the starting pay of someone who went those extra couple of years. That doesn't even take into account the sort of shitty jobs you get with a B.Sc. and no experience.
      • Right, all those shitty jobs you get with a BS CMU CS degree like this guy. Hah.

        The masters in CS means almost nothing in terms of pay. It can open up some doors in research, but most of those will still be closed to non PhD's.

        Of course don't forget the fact that the grad student makes 15k/yr as a TA, while the BS guy makes say, 45-65k starting.

        • Of course don't forget the fact that the grad student makes 15k/yr as a TA, while the BS guy makes say, 45-65k starting.


          Don't be a moron. That BS guy is making 45 to 65k starting, but someone with a M.Sc. will make 65 to 80k starting. As for investing that extra money you make not being a TA, it's not going to happen. The new car, new stereo, new computer syndrome hits when you go from living next to a crack house to making 50k a year. The extra couple of years in grad school might give you enough perspective to just buy a new car and leave the rest of it alone.

          Right, all those shitty jobs you get with a BS CMU CS degree like this guy.

          A B.Sc. is a B.Sc. There are just some jobs that you can't get without the paper or possibly 10 years of experience. If you want to be a project manager (or higher), then you get the degree.

  • by Fastball ( 91927 ) on Monday September 09, 2002 @11:01PM (#4225194) Journal
    It sounds like you do not value your undergraduate education. So I ask, what good is grad school to you? IMHO, you're better off staying in the trenches and when opportunities present themselves, show initiative by getting the job done.

    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.

    • Man, your school must have sucked. I went into school thinking I was a great programmer, and came out knowing I was wrong (at least at that point), and knowing thousands of things I NEVER would have learned just hacking on the job. It's true that not every day hacking on a real-life project I get to pull out the concepts and algorithms that I learned, but they are nonetheless invaluable, and so is my programming maturity for having learned them.

      Don't be so down on school!
  • by "Zow" ( 6449 ) on Monday September 09, 2002 @11:46PM (#4225452) Homepage

    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"

    • I was lucky enough to go to an affordable excellent engineering college. I graduated with a B.S. in Mechanical Engineering. ..however I almost opted to graduate with a second B.S. in Computer Science Engineering (C.S. + low level hardware + logic), I bailed 4 units shy of the minor.

      I encourage anyone looking for a good education to find a smaller school where the student teacher ratio is reasonable. ..not for the whole University, but for the college of engineering.

      [now working as a "professional"]
      I'm considering a masters as well. I'm having trouble deciding whether to go --> C.S. or Engineering. My heart and interest lies with both.

      Any suggestions on larger research universities that cater to working graduate students, like Stanford (C.S. focus) or UC Davis (Engineering focus)
      Umm oh yeah, my work should pay for it too ;-)
      -Fore

  • 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.
    • While I don't have the horrible distaste for CMU, I'd like to point out that the only Masters in CS I know got his from Stanford. Much better weather, though the people are horribly aloof and boring (imo of course)
    • yeah i know, i lived in pittsburgh for 4 years, i know what life is like there. i remember buying all those school t-shirts with CMU replaced by HELL....haha

      On the day i graduated with my B.S., I swore I would never return to CMU again, ever.

      but now after 3 years, the SE program just looks so attractive to me. urgh... the program is so concentrated, so focused, and short too (1 year + 1 summer)!
  • by jilles ( 20976 )
    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.
  • "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.
  • If you dont like the rain, but like CMU, there is another option. Apparently, CMU West [cmu.edu] 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 [cmu.edu]
  • 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?
  • You forget to tell us anything about yourself. Have you managed anything? What sort of people managed you? Have you worked as a coder? A trainee? A tester? How many children do you want to have? What sorts of issues do you have strong opinions on? Tell us about your work experience.

    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:

    1. There is a reason that the large and successful software companies don't emphasize process over talent.
    2. Have you ever developed software under a process system? In the majority of cases, the process adds little or detracts.
    3. Pittsburgh winters are terrible.
    4. The programming field is being flooded by the weak economy and there is a cap on salaries, implemented by the flow of H-1B temps from third world companies. Software development is becoming a third world career with third world living standards. Globalization in action.
    5. On the other hand, programming has become credentialist, now that credentials (degrees) are commonly available.
    6. There is a complete ecosystem of bureaucratic mid-level managers in large engineering organizations that suck up resources by being talented in writing reports and making presentations to upper management, organizing vast armies of developers and engineers based on charts and diagrams. Many of these people can't produce a thing. Does this mean we need you to learn your craft and replace these drones, or you should run like hell and avoid becoming one of them?
    7. On the other hand, there are and have been far too many "Software Managers" who simply do not know what software is. I am serious. You are already far beyond that, so you really could make a positive contribution.
    8. Process and Software Engineering management techniques often get trumped by the true tools of project management: a) The budget, and b) The schedule. Anything that tries to buck either of these "Force Majeure" entities gets squashed.
    9. Once you get promoted up past the level of software development manager, your software development and software engineering skills become almost irrelevant. Perhaps you'd prefer to get an MBA?
    10. Wise people have learned that the decades-long effort to produce the technology that will be beyond programming has proved fruitless and we will need humans doing software development forever. Yeah, and wise people once knew the earth was flat. The future is unpredictable.
    11. There are more people who have become millionaires in Real Estate than in Technology. This is a criticism of our economic system, by the way.
    12. Microsoft is the 2000 pound gorilla in software. This will impact your life even more than it has.
    13. The climate in Redmond is quite nice.
    14. If you're already unemployed, going to school is a pretty good idea, if you can afford it.
    15. Try to remember the little guy, the rest of us might end up working for you.
    16. Software Development = Mathematics + Organization + Problem Area Knowledge.

Those who can, do; those who can't, write. Those who can't write work for the Bell Labs Record.

Working...