views:

121

answers:

4

So I graduated with a Bachelor's of Science in Software Engineering and I wanted to go back to school and get my M.S. I felt that my B.S. had too many holes on many topics such as patterns and testing. I am working on my M.S. now while I am working full time so I am getting practical experience. I am a little worried however of doubling up on SE instead of taking something like CS.

I look at a lot of CS degrees and they seem to be loaded with a lot of theory that I would rarely ever need. I am mostly interested in dealing more with patterns, testing, and process, especially since most of the work I do is on business applications rather than close to the metal. Also, I am really looking to become an architect and I figure that an M.S. in either CS or SE would be helpful.

I guess I would like to hear from some people on their opinions of doubling up on SE vs branching off into CS, and maybe what kind of benefits this M.S. will really buy me. I am getting great experience at work and I find I can apply a lot of things I am learning in my academical career.

+5  A: 

Congratulations. Now, get out there and get working. You can only learn so much in academia, but actually coding every day for a living is how you can best fill in the gaps.

Adam Crossland
most masters programs I've seen are applying the theory in your undergrad, ie its near equivalent to real world experience.
Woot4Moo
I agree, I work full time as a Software Engineer. There are certain things that I would like to learn that we do not do well here at my current company. A lot of it has to do with testing for instance, and process. I feel if I can learn about them I can try and apply what I learn at work.
Wix
That's a fine point, Wix. That are certainly limitations on what one can learn in certain work environments. Getting a master's certainly could help you and it might even help you company. As long as you aren't continuing your education to avoid the workplace -- which you obviously aren't -- it could do well for you. Best of luck.
Adam Crossland
A: 

You seem to contradict yourself. You say that a lot of CS degrees are loaded with theory that you would rarely ever use than you later say you want to be a (software) architect. The thing to look at here is career goals, if you want to move into a software architect position, I recommend the CS curriculum as you will want that theory. Software engineering at the masters level is just fine, but the thing to remember is a lot of people are shying away from patterns as they pigeon hole your entire application. What concentration within SE are you looking to focus on?

Woot4Moo
People are shying away from patterns?
nportelli
@nportelli at the enterprise level you learn over several years that refactoring existing code that was written in a patterned fashion becomes near impossible to change.
Woot4Moo
Yea, I learned assembly, C, C++, Data Structures, etc. in undergrad we just were't as math intensive we only went up to Calculus 1 and Discreet Math. We lacked a bit of compiler theory, and some more low level stuff that CS students got. I also disagree with your patterns comment, our legacy applications don't use them much but most greenfield applications do.
Wix
@Wix time makes fools of us all :)
Woot4Moo
@Woot4Moo: I agree with your comment here. In my experience, programmers tend to bend themselves into pretzels trying to conform to one or another design pattern, and end up producing code that is overcomplicated and difficult to maintain. Unfortunately, I don't agree that a lot of people are shying away from this - it seems to be growing.
MusiGenesis
@MusiGenesis: There is a lot of truth to that. People seem to forget that a pattern is there to solve a very specific problem so they force their problem into a pattern but I feel that every developer should learn patterns.
Wix
So because management doesn't allow refactoring to cleaner code....that means we should not program with patterns in mind? Sorry I can't agree. I will agree with you should not over engineer, but that is not the same as not using patterns.
nportelli
@nportelli as I stated before, when you see enterprise code that was written to patterns and you try to refactor it it does create massive headaches. The caveat here is that I do not know your experiences so I cannot comment on them
Woot4Moo
A: 

Congrats.!!
I feel passion is enough to learn.
:)

org.life.java
+2  A: 

If you don't know the theory, how do you think you're going to be an architect telling people what should be done?

Suck it up and get a MSCS.

Paul Nathan
The question is how much theory do I need? I learned a lot in undergrad but I have been told time and time again that most of the theory CS students learned they never used. I got discreet math and calculus, a lot of low level concepts and programming with Assembler, C/C++, and operating system architecture.
Wix
@Wix: The answer comes down to how much headroom you want to have in your career and where you want to take it. If you want to do CRUD and sysadmin work for the next 40 years, you probably don't need any theory. If you want to do much more than that, you should be looking at theory. While airhead PhDs are a cliche, most fundamental improvements in the computer world come from people with a grasp of theory. Of course, there *is* a strong anti-intellectual bias in programming - "Hurr, I code gud in C#, made my pile, college is for sheep". You can listen to that if you want.
Paul Nathan
@Wix: Note that *a grasp* does not imply getting a PhD or even a MS in CS. But, in reference to your context, the straightforward way to get a grasp would be to take a MS in CS with a decent course of language theory, computability/complexity theory, and algorithm analysis. You should be able to pack those in as breadth credits, even if the MS focus is somewhere else, e.g., software development process.
Paul Nathan
@Paul: That's not a bad idea. I get quite a few electives maybe I can pack in a good chunk of CS stuff. There are quite a few topics like real-time systems that I find really interesting that fall under more CS I believe.
Wix

related questions