Harvard Online Master’s Degree in Software Engineering

I’ve seen a lot of questions recently by programmers on Slashdot, Reddit and Stack Overflow basically asking:

I’m writing code, but I’m not very good.  What can I do to change that?

For people in that position who already have a bachelors degree (but not necessarily in software engineering or CS), I’d suggest a little known educational gem.  The ALM in IT degree focused on software engineering from Harvard’s Extension School is an excellent program that will often meet the needs of people who find themselves in the position above. It offers a good education and it one of the least expensive ways to get a master’s degree for someone interested in software engineering. In this article I want to describe the program, my experience and go through class by class and discuss what I found useful.

I completed a master’s degree (ALM in IT) from Harvard with a concentration in software engineering last year. Most of my classes were taken online. I’ve written about what it was like getting an online degree, but I wanted to write up something a bit more focused on programmers who are looking at possibly getting a master’s degree and would be interested hearing about Harvard’s online master’s degree programs.

ALM in IT Degree with the Software Engineering Concentration

The ALM in IT degree is a master’s of arts degree. It isn’t a master’s of science like you’d get if you went to the engineering school. The required courses (see below) were similar to what I’ve seen in many master’s of science degree plan sheets at state schools. If you want to be a computer scientist, this isn’t the best degree for you.  If you want to be a better software engineer, it is ideal because it allows you to choose a good balance of practical classes in current technologies (Java, XML, distributed computing, etc.) with the more theoretical classes (algorithms, theory of computation, etc.).

This balance keeps the program accessible to people who don’t have a heavy computer science or math background.  If you are writing programs, but don’t feel like you are doing “software engineering” you probably have sufficient background to be successful with some hard work and perhaps an extra course in discrete mathematics.

Admission to Harvard’s Extension School

Admission to the Harvard Extension school is simple and very different from the normal competitive college admissions process.  You take three classes toward the degree and then apply for admission. As far as I’m aware, the successful completion of the three courses with B or better is the main criteria for admission. There isn’t a panel of people looking over your application and rejecting this person because they didn’t have enough extra-curricular activities. You must be proficient in English, have a bachelor’s degree and enough of a background in what you are wanting to study to have a reasonable chance of success. It appears that your ability to pass three courses with a B is probably going to demonstrate most of those skills.

This is an interesting approach because it is very much based on your ability to actually do the course work.  The Extension School can do this because their online classes allow them to scale to a much larger number of students than what you’d experience in the other Harvard schools.

Online Master’s Degree / Residency Requirement

To be clear, Harvard doesn’t offer any degrees that are completely done online.  Even the degrees where the majority of the classes can be taken online have a residency requirement. For the ALM in IT program, I had to be on campus for one semester.  Fortunately the summer 8 week semester counts toward the requirement so that is what I did. It is a lot easier to work out an 8 week leave of absence or telecommute arrangement with your employer than it is to try to take off for an entire semester.

The Master’s Degree Classes

My degree plan required 10 four hour courses. Below are the classes I took for the ALM in IT degree. I’ve tried to list them in roughly the order I took the classes from start to finish. Some of my choices were influenced by what was available and also the need to take a certain number of classes from Harvard instructors as opposed to the classes taught by adjunct faculty.

After I started the program, they made a change so one of the three courses you complete for admission must be an algorithms or computational theory course. This is a good thing because you don’t want to get clear to the end of your program only to discover you can’t pass one of the more theoretical classes.

Java for Distributed Computing CSCI E-160

This was was a bunch of firsts for me.  It was the first class I had taken on Java, the first class I had taken online, the first class I took at the Harvard Extension School and my first graduate programming class.  While most classes that introduce you to Java focus on just learning the language, this class assumes that you can pick the language up without too much effort so after a short introduction to the JDK, classspaths and syntax, it gets into distributed computing using RMI.

The class was fascinating and I was impressed with how much material we covered in such a short period of time.  The teacher was very interesting even if he did tend to occasionally veer off on rabbit trails.  (We had one optional lecture on jazz music.)

If you are wanting to learn Java, I’d highly recommend this online course because it focuses on actually doing stuff with the language instead of beating people over the head with the syntax.  If you have no programming background, it probably isn’t the best place for you to start.

Distributed/Enterprise Computing CSCI E-162

When I signed up for this course I still wasn’t sure if I was going to actually pursue the degree.  I wanted to get a but more exposure to Java so learning about  Java EE seemed like a good next step.  The class was well worth my time and I learned a lot, but a lot of what I took away from it was that I’m not that interested in doing pure Java EE programming–particularly Java EE the way it was done when I took this class.

The class was actually focused on distributed computing and Java just happened to be the programming language that was being used to illustrate those concepts. So there was a lot of discussion about the the theory of how distributed computing works followed by the actual application of implementing those things in Java EE.

Even if you don’t plan on doing any type of distributed development, this class is well worth the investment of your time because any Java programmer is going to run into aspects of EE regardless of what they are working on.  This class provides a good foundation.

Design Patterns and Java CSCI E-247

This class covered design patterns and software design.  It used Java and required quite a bit of work with UML diagrams. Looking over my notes, it looks like most of the programming projects involved working with directed acyclic graphs–what you use to create a project management flow chart. The code included things like writing Iterators to navigate the graph and Exceptions if you tried to create some type of illegal cycle.

The idea was to work through a set of assignments where each on built on the previous. If you used what you were learning in the class it was easy to do each assignment because your code was decoupled and easy to modify. If you didn’t make good use of design patterns you ended up having to tear out large sections of your code and redo it. It was a good experience because it modeled real life, but in a setting where you could carefully observe and learn from the consequence of each design decision.

Communication Protocols CSCI E-131B

I took this class because I had been doing quite a bit of work in networking. In retrospect, I think I’ve used less of what I learned from this class than some of the others.  Of course, I also went into this class with a great deal of prior experience and training, so it is hard to separate my current knowledge into what came from the class and what came from other experience. In reality, I think the class clarified a lot of information that I kind of knew from my network training, but it really made me think through the process of exactly what is happening on the network.

For example, a typical homework assignment showed a network design with several hosts on either side of a router and asked you to provide a detailed list of exactly how a message was sent from a host on one side of the router to the host on the other side.  The correct answer included details about how the application passes data down the stack, the host sends and ARP request, gets a response from the router, enters the MAC address in the ARP table, etc.

The class was interesting, but not as hands-on as the programming classes.  My prior experience in networking made the class seem less memorable, but at the same time I have solved some incredibly complex networking problems that drew heavily on the information I learned in this class.

Adv Topics in Data Networking CSCI E-132

Like 131B, I took this online class because I was doing a lot of work in networking at the time. It felt like a continuation of E-131B, but with a different teacher and more of a “survey” course style.  One thing I took away from this course is how difficult open book tests can be. I remember the professor saying something about his grading tried to take into account how long your answer was.  The more you wrote, the less they assumed you knew the correct answer so they tried to give more points for correct short answers than “cover all the bases” answers.

Discrete Math MATH S-104

Before taking this class, I was trying to make it through Theory of Computation by sheer effort. I eventually dropped Theory of Computation, took Discrete Math and then went back and passed Theory of Computation.  Discrete Math didn’t count toward my degree, but it was well worth the effort for someone without a lot of math background.

I took this class during the summer semester when I was on campus.

Web Development Using XML CSCI S-L

This class was very interesting because it was taught by someone who works on the Harvard websites and turns the data in the Oracle database into the static HTML listing every course with links to the prerequisites, etc. My final project in this class was a system that would take an xml file listing book ISBN numbers and my review, download the associated information from Amazon and created a combined XML document.  This XML document was then processed using XSL to create a HTML website with an index, category and individual pages.  It also used FOP to create a PDF using the same data file.

Interestingly when I applied for my first job where I was going to be programming 100% of the time, this project was what they seemed to be most interested in hearing about. Their product didn’t really do anything with web-services or XML, so I’m not really sure what was impressive about it.

The class had a lot of interesting projects including using XML to generate SVG flags for various nations. We also used some of the Harvard course listings to produce PDFs with hyper linked indexes and Apache Forest and Cocoon to create dynamic pages defined in XML.

The class was a lot of work, and I took it during the summer session so the timeframe was very compressed, but it was very rewarding and the knowledge has been very useful.

Theory of Computation CSCI E-207

For me this was the hardest course out of the entire program.  As I mentioned above, I originally started this class and dropped it.  I was about 1/3rd of the way through and earning a B, but I felt my foundation was weak and I wanted to take Discrete Mathematics to help shore things up.

If you have a great deal of training in math this class might not be very difficult, but I was coming from a strong background in music composition–which wasn’t particularly useful in this context.

This class was the last time it was taught by Dr. Lewis.  From what I understand he was the same teacher who taught the course when Bill Gates took it years ago.

While the class was difficult, it probably stretched my mind more than just about anything else.  It was my first introduction to finite state machines, turing machines, Big O, etc. Beyond just computing topics, it changed how I approach business problems in both terms of the process and what is sustainable over the long term. The class was well worth the investment of my time.

The challenge of the class wasn’t so much understanding the concepts, but being able to prove something was right or wrong. Here are some questions from the mid-term. Telling whether the statements were true or false was easy. Proving them was a bit more of a challenge:

  • P ({n ∈ : n ≤ 2002}) is uncountable. (Recall that P (A) is the power set of A.)
  • {w : w is a regular expression for {an bm : n + m ≤ 2002}} is a finite language.

I think they have changed the degree plan sheet to require that you take this class or an algorithms class before you can apply for the degree.  This is probably a good idea, although if this had been the first class I took, I probably would have assumed that the rest of the courses would be too hard for me to complete.

Practical Perl CSCI E-13

This class was taught by a programmer who worked at Yahoo.  It had a very interesting grading process.  To submit your code, you had to run some tests on it.  If the tests passed, you were guaranteed at least a C.  If the tests didn’t pass, you couldn’t even submit your code.  With a large class, this kept the teachers from dealing with a great number of submissions that might not even run.

I learned a lot about Perl, but it wasn’t a particularly difficult class.  That was good because I took it at the same time I was taking Theory of Computation. As far as usefulness, I haven’t done much with Perl.  Still it has been nice to know what I’m looking at when faced with Perl code.

Unix Systems Programming CSCI E-215

This course was challenging, but very much worth it.  Most of the exercises were in the form of reproducing basic Unix commands. There were two projects that really stood out in my mind.  One was creating a simple web server. The second was creating a curses based pong game.

Software Engineering Thesis ITSE E-499

Probably the biggest problem I ran into was getting a thesis advisor.  The process literally took years.  In fact, by the time I was first assigned a thesis advisor, my original thesis proposal was irrelevant so I did another proposal and started over again. The thesis consists of a non-trivial piece of software along with a document explaining the problem, design, and implementation.

Personally I didn’t think the thesis was too difficult.  The hardest part is staying disciplined to get it done.  You layout a plan along with dates and milestones, but it is a different type of work than dealing with class assignments.

My project was a social news/link voting site similar to the concept behind Reddit or Digg.  The interesting part was the algorithms that controlled the ranking.  The algorithms were designed as plugins that could be loaded or unloaded at run time and different weight could be assigned to each one. Instead of a global rank, each person visiting the site would get a customized front page based on what they were likely to see as good content.  Another key part of the project was the way it tried to identify users without requiring cookies or having them log in.  It created a unique identifier based on their ip address, browser headers and other pieces of information. It also retrieved links from RSS feeds instead of relying on end users to submit links.

The basic idea of the project was to create software that would let you run a useful social news site with a much smaller number of users that what you’d need to successfully pull of something like Reddit or Digg.

The programming project definitely wasn’t the hardest programming I’ve ever done, but it did cover a lot of ground when it comes to demonstrating a mastery of the software engineering process.  The project used unit tests as well as Selenium tests and the builds were triggered by a continuous integration server that would turn on a green lava lamp when the tests were running correctly and a red lamp when they were failing. Cobertura was used to make sure the tests were actually covering the code and I used an issue tracking system to keep track of the bugs and features that needed added. I used Subversion for source management, Maven for the build and Mylyn for what I’d call “context management”.

The prose part of document consisted of the following sections:

  1. Introduction
  2. Overview of Link Rank Application
  3. Architecture
  4. Framework and Libraries
  5. Development Process and Tools
  6. Users Guide
  7. Summary and Conclusions

That was followed by the appendix which was mostly the code listing.  All in all the thesis document was 190 pages–about half appendix code and half text.

For many people writing the thesis is extremely difficult. In fact it isn’t uncommon for people to get all their coursework done only to get stalled on the thesis. I think I had an easier time because I spend a lot of time writing.

Real Degree?

A lot of people wonder if it is really a degree from Harvard.  Yes it is. You get a Harvard diploma (in Latin) just like everyone else. They did start adding a phrase that basically means “in extension” to the diploma after I started the program.

There are some people who complain that the Extension graduates aren’t really Harvard graduates. Their objections usually fall into one of two categories.  The first is that Extension students don’t have to go through the same competitive selection process.  The second is that they don’t have the social experience that traditional students get.

Obviously there is truth to both of these objections. The application for admission is merit based which means if you can do the work, you can get admitted.  It isn’t like there are 100,000 people competing for 15,000 spots. Personally I like the objective based approach where your admission is based on your proven ability to successfully handle the coursework. However, if a good part of your identity is wrapped up in the idea that “I’m special because I was admitted into a school that turns down lots of other people” you might not like the Extension School’s approach.

As to as whether or not it is a real “Harvard experience,” there are obviously interactions and networking that you don’t get like you would on campus.  The residency requirement helps some, but it is much more limited.  I wouldn’t recommend getting a bachelor’s degree online because the college experience is so important to kids fresh out of high school.  However, if you are like me and going back for a second master’s degree, you’ve probably already acquired most of your social skills and your focus is more on the class content than the other experiences.

If you see the Extension School as a way to “sneak into Harvard”  and get around the stringent admission process at other schools, you are probably going to be disappointed.  If you are concerned about whether or not people will know you took your classes online, you probably aren’t going to be a good fit for the program.  If you are the type of person who would sell yourself in an interview as someone who was able to complete a difficult online distance program while holding down a full-time job, the Extension School degrees are likely to be a very good fit.

Cost of the ALM in IT Degree

So how much does it cost to get the ALM in IT degree with a concentration in software engineering?  The program consists of 10 4 hour courses if you do a thesis. (I think there is a newer 11 course program that forgoes the thesis as well).   The classes cost $400 to $500 per credit hour so you are looking just under $20,ooo in tuition. By the time you add in lodging and travel for the residency requirement, books, etc. you are likely looking at $22,500 to $30,000.

All in all this is a pretty good deal. It is in line with the cost of graduate programs at many state schools.  By way of comparison, Columbia has some similar programs, but their cost is is over $1,300 per credit hour, plus an additional $375 per course.  So a four hour course from Harvard Extension school would cost $1,600 to $2,000.  A three hour course from Columbia would cost over $4,275. (Columbia’s program requires 10 3 hour courses, so a 3 credit hour course from Columbia Video Network represents the same percentage of the total degree plan as a 4 hour course from Harvard’s Extension School.)

Graduate tuition at KU for out of state students is $691 per credit hour. Residents are only charged $295. The closest degree I could find at KU would require at least 30 credit hours.  So tuition would be about $9,000 or $20,000 depending on whether or not you were a resident of Kansas.

The total cost of a degree from Harvard is more than going to a state school where you are a resident, but very comparable or better than the other options. However, the real cost of getting a masters degree is your time.  If you have to quit your job to go back to school, that will likely be a greater expense than the tuition you pay. Unless you live right next to a university an have a very flexible work schedule, the Extension School programs are going to be far cheaper than your other options once you account for your time away from work.

In addition, many employers have some type of tuition reimbursement program that can help pay for some of the cost–but it doesn’t help you if you have to quit your job in order to go back to school.

Job Prospects with the ALM in IT Master’s Degree

I only applied for a single job after beginning work on this degree, so I don’t have a lot of experience seeing how it perceived in the job market.  The job was my first full time programming position. Many of the classes had interesting final projects and this is what the interviewers asked me the most questions about.  Some of the projects I remember discussing:

  • Writing a simple webserver in C.
  • Writing a curses based version of the game Pong.
  • Java distributed computing projects.
  • XML and webservices projects with Amazon’s data.

The programmers who were in on the interview seemed impressed.  I think there were two reasons for this.  First, I had taken a number of the projects and expanded the after the class was complete.  For example, I had taken the project for the Amazon Web Services and expanded it quite a bit on my own to create a system for keeping track of the books I read. Second, the breadth of experience was great enough that I had experience with certain technologies doing things that the programmers weren’t exactly sure how to do themselves.

The interview went well and I got the job.

My next career move was to start my own company, so I really don’t know the true career impact of the degree on a career working for someone else.  However in dealing with clients there is one experience that kind of stuck out.  I was working on a project that went much better than the client had expected.  They commented, “I guess that is what we get when we contract with someone who went to Harvard.” This surprised me because I had never said anything about my education.  However, people talk and the name “Harvard” sticks in people’s memory.  It turned out that this client had talked to a friend of mine and said they had contracted with me.  My friend said something like, “Oh yeah.  Mark is really smart.  He even went to Harvard.”

A lot of what it takes to be successful in consulting is getting your name to be the first one that pops into people’s mind when they are looking for someone who can solve their problems. Having the Harvard name attached to you as a consultant isn’t a bad thing.


The ALM in IT program isn’t for everyone, but it can be an ideal fit for a working software engineering professional that wants to further develop their skills. It is relatively low cost and offers a reasonably flexible way of getting a degree while maintaining a full time job.


165 Replies to “Harvard Online Master’s Degree in Software Engineering”

  1. I’m starting my 7th class next week in the ALM – DIGM track and wanted to thank you for blog. It was a great inspiration in getting started at HES. I brought your site to the attention of Harvard the other day during a marketing research study by HES in case someone contacts you. Thanks again.

    1. I was pretty busy with work so I was checking in every few months to find out if there was anything I needed to do on my end of things. If I had of followed up more frequently I probably could have gotten one sooner.

      Also after I wrote my original thesis proposal, the problem became irrelevant before I got an advisor. So I had to start over with a new thesis proposal.

  2. Hi Mark,

    Your blog is very helpful. Why did discrete maths did not get counted in your degree?


  3. I like your blog. Is there any possibility for a Nigerian to participate in this Harvard Extension program? I’d love to do it as I have a good background in computer science. Will it be indicated on my certificate that I did an online masters?

    1. Charles – The only thing that I think might be an issue is getting a visa to get into the country in order to complete your residency requirement. I think you can probably get an educational visa, but I would check with the Extension School to find out what they recommend. The degrees offered through the Extension School say something like “in extension studies” on them somewhere in Latin. It doesn’t appear that there is any difference in the diplomas Extension School degrees where some courses were taken online and where all courses were taken in person.

      However, if your goal is to try to hide the fact that you took courses online, I’d recommend going with a local university.

  4. Hi Mark,

    Firstly, I want to thank you for responding to the many comments from different bloggers – it has been greatly appreciated by all of us. I had a personal question as I’m seeking to pursue graduate level studies…

    I’ll provide a bit of background:

    I’m 25 years old and graduated as an Electronic Engineer from a well known university in Canada and have been in the work force (software related – developing automation framework) for about 2 years now. I was recently accepted into a competetive masters program (i.e. Master in Software System ~ 2 year program) at University of British Columbia (among the top 30 post-secoundary institutions in the world) which I was contrasting with the ALM software engineering program at Harvard. In both cases, I plan on undertaking a full course load and being on campus – what would you advise someone such as myself? How should one compare a open program (i.e. ALM) against a competetive program at a well known University (UBC)? My aspiration is to become a senior software developer…

    1. One of the big advantages of the ALM in IT program is that you don’t have to be on campus for the whole thing. So you can work a full time job and still get the degree without going into debt. If you are going to be full time on campus, you might want to look at which school lets you graduate with the least amount of debt and which one is more recognized in the area you wish to work. For example UofBC might be better recognized by employers in Canada than Harvard’s Extension School. Another thing to consider is which program has classes that best align with the type of programming you wish to do.

      One last thing, the best way to become a good software engineer is by doing a lot of programming. The more experience you bring to either of these programs, the more you will get out of your coursework.

      1. Thanks for the prompt reply Mark. Just a follow-up question – how would you rate the quality of education at Harvard Extension School? Did you find that the skills from the program were of sufficient quality/proficiency that you were able to compete successfully with other candidates (mid-tier seniority) in the software industry after graduation?

        1. I don’t think I’ve ever been in a position where I was competing for a job opening with other prospective employees. If someone wanted to hire me, I’ve always been pretty much the only person they were looking at. Also I started my own company before completing the degree, so I’m probably not a very good person to ask about that.

          However, in interacting with senior level software engineers that I’m either working with or coaching at other companies, I haven’t run into issues where I felt like I was lacking in core skills that they possessed. I wouldn’t attribute that just to the degree though. If you go through the ALM in IT program and get a lot of experience programming, you should be well prepared as a software engineer. I would try to do as much programming as possible before and during your school work.

  5. Hello sir,

    It is easy to get a job? I am a truck driver, can I easily get a good job if I do the master’s in software engineering? thank you.

    1. Luke – If you successfully complete the ALM in IT degree you’ll probably have enough skills to get a job–especially if you don’t mind relocating. However, a degree doesn’t guarantee that you will be a great developer, easy to work with, interview well, etc. So while it can help you, there are a lot of other factors involved in getting a good job working for someone else.

  6. Mr. Shead,

    I will be finishing up my MS in Systems Engineering this spring and was considering the Software Engineering Certificate through Harvard Extension. Would you recommend this program?

    1. If you already have a MS, you may be better off getting a job and using your current qualifications. A job giving you work history in your field is probably going to be the most valuable thing you can get at this point. However, if you want to get more experience creating software, then the program or individual classes might be a great thing to pursue on nights and weekends.

  7. Mark,
    You listed your first class as Java for Distributed Computing CSCI E-160, upon reading the course description is does not appear to be an intro course. I read that you have a music background/degree, did you have any programming experience prior to taking this course?


  8. Thanks for sharing your experience with HES. Can you say more about why you said, “If you want to be a computer scientist, this isn’t the best degree for you”?

  9. Hi Mark, thank you so much for a very informative post. I’m going to start studying Law at Cambridge (UK) next year, but have always wanted to do a bit more on the software side (strange combination eh?). I’ve already done a bachelor’s, so should be eligible for the HES. What do you think about the work commitment level? Do you think it’s possible to balance the two?

  10. Thanks for your information. I am thinking about about starting some admission courses this spring. But I learned JAVA 5 years ago and I forgot most of the thing. Do you suggest I should study JAVA somewhere else like coursea before attending the admissions courses?

    1. It won’t hurt you to have reasonably good skills at programming. If you haven’t been writing code regularly, you might want to take a course like you suggested to make sure you can keep up with the classes and be able to focus on their content–not the mechanics or syntax of the language you are using.

  11. This is a really informational post, and very helpful for prosepctive students like me!

    I’m considering a graduate degree from HES, and I was just curious how long it took you to complete it? I know graduate students have five years to complete their degrees, but I wonder if that’s the average, or if it depends on what you can handle in a semester.

    1. It took me nearly 10 years, but most of that was spent waiting on a thesis advisor. Since I was waiting on them, I wasn’t subject to the 5-year limit. I finished the coursework in 4 years.

  12. Mark, thank you for answering everyone’s questions and the blog. I have been looking at online comp sci masters program. I have read the negative criticism on HSE and there isnt much about how the HSE software eng program ranks or how well it is structured. I have been a developer for some time now in the SF bay area and come from a math background. To an employer how much does it matter that it is a Masters in Liberal Arts or even Extension School vs Harvard School of Eng and Applied Sciences. Or do they just care that you at least have a masters. Im not completely sure how the extension school is viewed by the tech firms in silicon valley. Thank you so much again for your time and insight.

    1. Back before I started the program, I compared the degree plans from the Extension School ALM with several Master’s of Science programs at state universities. There were some state programs that (at least on paper) appeared slightly more rigorous. By “rigorous” I mean much more focused on the mathematics of computer science and less on industry type knowledge. However, there were quite a few where HES seemed to provide a better theoretical foundation. Of course, the degree plan sheet may not exactly correspond to the actual classroom experience, but it does give you an idea of how the college views the degree. I’d encourage you to do a similar comparison with other schools that you are looking at.

      As far as how employers view a particular degree, I honestly don’t know. Most of my work is done as a consultant coming in to help teams become more efficient in their development process. I haven’t ever heard anything negative about HES being on my resume, but I think my degree is more of background information and people are more interested in who has recommended me and what projects I’ve worked on.

      In fact, I tend to think that if an interview spends much time talking about your education, it is probably a bad sign. Even in interviews where Harvard was mentioned, I had people much more interested in the actual work I had done–even if it was for a class project. For example, in the only interview I remember where we actually discussed the Harvard Extension School for more than 30 seconds, they were very interested in a project I had done that involved manipulating large quantities of Amazon data and how I had optimized it. I realize that there are some places that you need a degree to even get an interview. I’ve never pursued those types of jobs, so I’m not sure how valid my opinion and experiences are for those types of positions.

  13. Hi Mark, thanks for taking the time to share your experience in detail! It is tremendously helpful. I am strongly considering the same degree path and was wondering what you felt was a good course load per semester while holding down a full time job. My hours are pretty much always 9-5 and not very demanding or stressful, but do have an one year old child with one more on the way in 2016.

    A bit of background on me:
    I have been in the web development field for 15 years (started as a graphic designer and now primarily doing front-end development). I was almost done at Rutgers for a BA in Communication but left to join a startup as a graphic designer and have been working since. I am currently working for a major consumer technology company as a web developer. I always felt not having a technical degree on my resume was a road block in getting through the HR filter for upper tier positions. I am currently in the process of finishing up my last few credits at Thomas Edison State College for a BA in Communications, since I have met most of the degree requirements already, and focused on getting a masters in CS or similar field to help with future employment and also to show my kids the importance of higher education.

    And guidance you can give me would be greatly appreciated.
    Thanks again!

    1. It really depends on your family situation and how hard the classes are. I don’t think I would try to take more than two classes at a time and even then I’d suggest trying to double up on classes you don’t think will be particularly difficult for you.

  14. Hi, Mr. Shead.

    I really enjoyed your article, and now I’m thinking of doing this program. I have a couple of questions for you.
    1. Did you have programming background before this program?

    2. Do admission classes count toward master degree? So after three admission courses, I only need to take seven courses?

    1. Yes. I had been doing a lot of programming on my own and also had taken a few classes.

      Yes the classes count toward the degree–if you take classes that are part of the degree program you plan to pursue.

  15. Hi Mark,

    Thanks for your blog. I am considering the SE masters program at HES as well as other programs. I am a consultant at IBM primarily working on ERP implementations. As I have become more involved in the technical aspects of software deployment, I would like to bolster my credentials and formerly learn software development. I have an MBA and the typical consultant background, but no experience in actually developing software (SQL and design work, but nothing comparable to actual development from the ground up). Is it possible to succeed in the program with no experience in Java or any other OOP language or would I likely just get blown away? Could someone sequence the courses in such a way to start with intro to programming courses? I have no interest in becoming a computer scientist or doing any further graduate study in CS, but would like to go from close to zero to at least competency in software development.

    Thank you!


    1. It might be worth taking an intro to programming course first to see if you are really interested in it. Check out some of the resources here for ideas.

      They have changed the sequence of courses since I did the program, so you’ll have to see what the current requirements are.

  16. Hi Mark,

    Great post, thanks for sharing. I am listing this as one of my options as I continue to shop for an MS in either Computer Science or Software Engineering. Have you kept in touch with any of your classmates and do you have any information as to their experience in the employment world? Finally, what sort of business did you start if you don’t mind

    Thank you.

    1. One of the downsides of taking classes online is that you don’t usually build as much of a relationship with fellow students. So no I didn’t keep in contact with anyone. My company does software engineering and helps existing teams be more efficient at writing software. So we do a mixture of coaching and coding.

  17. Hello, Mark. Thank you very much for taking the time to tell us about your experience. It was tremendously helpful.

    So, I was born in France but I’ve lived in Brazil all my life. I got my Bachelor’s in Mechatronics Engineering from one of the top universities here. I have a EU passport, so I don’t need a visa to get into the States.

    I’m thinking a lot about emigrating to another country, probable USA or Canada, but I’m finding very difficult to even get my emails replied from companies outside Brazil.

    I was thinking about getting a masters degree at HES. I’m currently well employed here and I foresee no major issue completing the program, provided I invest the hours needed.

    My question is, do you think the a MS at HES would make it easier to at least get interviews? To be taken seriously by recruiters? I have a good amount of experience, so for me the “getting my foot at the door” is the difficult part right now.

    I also would like to write better code, specially for larger projects, do you fell the HES program would help me at that?

    Than you.

    1. The coursework will make you a better programmer–especially if you choose interesting projects. I generally think it will help you get your foot in the door for interviews. I don’t know how much it has really helped me get clients because most of my clients are reaching out to me based on a referral. Although sometimes I think those referrals have been something like, “You need to talk to Mark. He is really smart and even has a degree from Harvard.”

      Now in some circles where they are specifically trying to look for Ivy League graduates I’ve seen some negativity associated with the Extension School. It hasn’t been a problem for me, but I have heard about it happening. For me, the ability to continue working while taking classes was very valuable–not just because of the income but also because it gave me a place to practically use what I was learning.

  18. Hello Mark!

    I’m really thankful for you amazingly informative and insightful post. You’ve basically highlighted all the concerns I had about the HES degree. I graduated from Duke University with a Mechanical Engineering degree. Not until the last semester of my senior year did I realize that I’m actually really interesting in programming and developing good software. I want to use my knowledge in mechanical engineering and software to create cutting edge automated systems and other applications. I’m very entrepreneurial and I’d like to work with a start-up or start my own company.

    My interest in doing the ALM in Software Engineering, despite having other state schools options, is expanding my alumni network. Duke University already has a huge network base of accomplished alumni, but I want to expand that more while being a proficient programmer at the same time. For these mentioned reasons, do you think I’m thinking about the ALM at HES the right way? Has the Harvard Alumni network helped you in bootstrapping your own company in any way (clients, investors, partners etc)?

    Just like you, I already have a full-time job and I hope the ALM at Harvard won’t force me to go ask Google or Facebook to give me a job. But in case I have to do that for a while, just for financial and work experience reasons, how bad is the stigma associate with HES graduates? Do traditional Harvard alumni stigmatize HES alumni? Will this degree dilute my already accomplished Duke graduate status? Are accomplished HES alumni allowed access to recruiting events at Harvard? Should I seek a traditional route instead?

    1. I didn’t find the Harvard Extension School to be a great place for networking, but that may have had more to do with how busy I was at the time than the lack of opportunities. I’m not sure about the recruiting events because I wasn’t on campus and wasn’t looking for a job. I haven’t had anyone react negatively to my degree, but then again, I’m selling myself based on my previous accomplishments and track record–not my college degrees.

  19. Hello!
    I am really considering this program due to cost and accessibility. I currently teach high school math and computer science, so clearly it would be applicable to that. However, I have my eyes on someday transitioning to working in the space industry perhaps. Do you think this degree will help in that or would not get me interviews for positions requiring a software engineering degree? My other degrees are in History and Math Education, though I have lots of undergrad math and computer science courses mixed in there.

    1. If you are looking at jobs that have an absolutely minimum requirement of a masters of science in software engineering, then I would do something else. However, most software engineering jobs are looking for people who are good at writing code and the degree would definitely get your resume noticed, but your ability to get a good job is going to depend on your coding skills and the programming you’ve done in the past. I recommend the degree, but you need to pair it with a lot of hours writing code on projects you find interesting.

      1. Thanks for the input! I do love coding, I teach it and just took a teaching license exam that was intense and fun. Seems like its worth a shot. Price is right compare to MS degrees-thats for sure.
        Did you go into the program with project ideas or did that come along as you did the degree?

  20. Thank you for detailing out your experience at HES, it is really helpful for people like me trying to find a good online degree.
    I want your advise on Certificate on Software Engineering from HES. The total cost of the program is around 10k and is delivered via online mode. Your advise would really help me take a decision. Thank you for your time!

    1. I believe the certificate is a subset of the classes you would take for the ALM degree, so I’m sure it would be useful as well. If getting the certificate would let you continue and finish the degree, that sounds like an excellent way to keep your options open.

  21. Hey Mark, thank you so much for the blog post.

    Couple of questions, how can I prepare for the HES Software Engineering Degree? I won’t be able to do this degree for at least two years. What can I study for the next two years that will make my time at Harvard much easier?

    If you can name specific topics, recommend books for those topics, or video courses, etc. that would be awesome.

    What programming languages did you cover during the degree coursework?
    What levels of math did you cover during the degree?
    What were the more difficult classes?

    Thank you for your time!

    1. I used Java, Perl, C and C++, but it depends on what classes you take. Most of my coursework was done in Java. If you aren’t familiar with both Java and C, I’d work on those. The Theory of Computation class was the most challenging for me. If you aren’t familiar with discreet mathematics, that would be a good thing to work on. I was told that for many people writing the thesis was the most challenging part. I do quite a bit of writing, so it wasn’t as big of deal for me.

      The best thing I can suggest is to spend time writing software for yourself. You will get a lot more out of the classes if you are coming in with more experience having written a great deal of code.

  22. hello,

    thanks for the detailed article. I want to apply for the same course and my objective is to be good in programming means to develop software from A to Z. There is one point that got my attention and made me worried to apply. you said “Probably the biggest problem I ran into was getting a thesis advisor. The process literally took years.”. Now my plan is to finish with this degree in only two years, so will that be possible or they have a delay to assign a thesis advisor for me?

    appreciate your reply,


    1. Two years is going to be a pretty aggressive schedule–especially if you aren’t abe to do it full time. I probably could have gotten a thesis advisor sooner by being more proactive in following up with them. I wouldn’t worry about that part slowing you down. Now writing the thesis might take a little while, but I think you may be able to do a capstone project now which wasn’t an option when I did it.

  23. Mark,

    I really appreciate your in depth analysis of the program. Could you give me some advice?
    My goal is to get a bachelors in Web Development and my first masters in Graphic Information Technology. I’m really interested in design and coding. I would like this software engineering program to be my second masters. Do you think this will benefit me and extend what I want to learn? Or will it just be a waste of time?

    1. It probably depends a lot on what type of work you want to do, but if you want to work at creating software a degree in software engineering is going to be beneficial.

      1. Thanks that does help. My goal is to do graphic design and create new software for companies. I’ve been doing a lot of research on this degree and trying to determine whether or not I should or not. Your blog and advice just sealed the deal. Thank you so much.

  24. Hey Mark,

    Thank you for the detailed blog about your Harvard experience. I am doing a similar program (MS in IT with a major in Data Analytics) from Carnegie Mellon University. I have chosen the distance track as I can’t move due to family commitments. I did consider HES programs but settled with CMU.
    How would you be able to compare CMU’s distance program with Harvard’s?

    1. I found the MS in IT, but didn’t find one focused on Data Analytics so I’m not entirely sure what the program at CMU includes. The HES program is basically a Master’s of Arts while it looks like you are working on a Master’s of Science. The Master’s of Science is probably a better degree in that respect.

      From a career perspective, CMU and Harvard are both well-recognized schools. In my experience, Harvard has more name recognition with people who are not as familiar with software development while the CMU degree is going to be a lot stronger than the HES one with people working in Computer Science.

Leave a Reply

Your email address will not be published. Required fields are marked *