Ask HN: Is a master degree in CS worth it

87 points by chrisherd ↗ HN
I'm an Architecture graduate who's looking to change careers. I've dabbled with coding for years but feel a formalised education may be prudent in enabling me to make the change. Has anybody else made a similar switch, and if so what did they encounter?

103 comments

[ 55.8 ms ] story [ 1540 ms ] thread
No, it is not necessary to work.

Yes it is necessary as it is a certification, it will make easier move across borders, will make you pay less taxes and will make you easier to hire.

You can really get all the notion without a formal education, provided that you are curious enough.

It is not worth going $60k-$100k in debt. If you do, at least get an online one.
(comment deleted)
I don't think this is good advice. Online degrees don't give you the same benefits a "real" degree does. Degrees don't just establish a level of mastery within a field, they also provide social status and connections. Even if an online degree is qualitatively equivalent to a real degree, it's worth only a fraction because you don't get these secondary benefits.

As a software engineer your earning power will be extremely high, especially if you make wise career choices. 60k debt you can pay off in a single year when you have a decent job. The opportunity cost of not being in industry for a number of years is way higher than anything else, so if you want to focus on the monetary aspect it's the opportunity cost you should be concerned about, not the cost of tuition.

Fortunately I'm based in Scotland, and comparative the the states a master degree is priced far more reasonably and we have some excellent institution I.e. St Andrews university
That changes things a bit, it's definitely worth doing then. I think St Andrews and Edinburgh have especially good reputations for CS.
I took a (second) Masters in the UK, basically because I was interested and it was cheap. I think you shouldn't even waver; a quality masters at that price is a steal. Save up some pennies, take a year, enjoy the subject, enjoy learning, have a great experience.

Even now I toy with the idea of taking a year off and just travelling somewhere to do another one. Something just plain interesting. Modern Japanese Literature, for example, or just identifying a few universities with cheap rates and picking something really interesting out of their catalogue.

If you do it for yourself, out of interest in the subject and because you just want to be better than you are, at that price it will be worth every penny. There is a frame of mind that struggles to comprehend education for the fun and satisfaction of it, rather than as part of earning more money. I smiled politely and stopped talking about it with them.

That's interesting. Could people chime in with their opinion on online post-graduate degrees like the one Georgia Tech offers? [1] How impressive would you find a CV that has this degree compared to one that has the conventional degree?

[1] - http://www.omscs.gatech.edu/

You will learn a lot about programming and it will change your perspective on it. It will give you a deeper understanding of how things work than you would otherwise get. It will make getting that first job easier. That said, it is expensive and you may be able to get a job without it.
It will help in interviews since you lack work experience. You could retire as a teacher. You can get higher rates for government contracts. Outside of that you can learn more here in a few months. You just don't have the peice of paper to prove you did anything.
Look into Georgia Tech's OMSCS. Great program that costs little and and can be taken while working.
Seconded. ~$6k for a reasonably challenging online program. Like anything, you get out of it (education-wise) what you put in, but the price can't be beat.
The other big upside to me was that I could keep working full time while studying. The opportunity cost calculation looks a fair bit different when you're giving up (less quantifiable) leisure time rather than paid work.

I agree that it wasn't all amazing, though -- some courses are great full stop, some are just bad, and many (as you say) really shine only when you go above and beyond.

Still, for those with existing programming experience or an undergrad CS degree, it may not be the best thing to do. If you want to learn some particular skillset, there are more direct paths. It might help with the resume filter, though, and it's handy for non-US people who want to get an H1B for now.

What are the pros and cons of doing OMSCS if one already has a BSCS?

I'm about to graduate with a BS and I will be going straight into the workforce, but I'd like to pursue a MS (without taking time off from work).

Pros: Deepens your knowledge of CS and can be used to focus on a more specialized field e.g. machine learning

Cons: Time and money investment. May be unnecessary if you just want a standard dev job.

It's a great program but if you can find a local one at a good school, it's still better to do it in person. Meeting faculty (and other students, researchers, doctoral or postdoc, etc) in a field you want to pursue for a long time and working on research with them is the main benefit of a graduate degree and is still invaluable. They will provide all sorts of guidance and opportunities over the years that you can't get online.
A masters will be a faster, more expensive path.

Without a CS degree of some sort you're going to need to prove you can code. Dabbling helps but you'll need to show work experience.

Getting work experience without a CS degree likely means taking jobs that aren't otherwise appealing.

Contracting or freelance can be a way to get that experience since the bar for proof is often lower, especially when working in non-technical industries.

But those are jobs, and they pay money.

If you have the financial means and can attend a reputable school, I'd recommend getting the masters, or even a bachelors.

Having that degree, and learning what they teach you in a CS program, will help you get a much better job and will help you perform in that job earlier than learning as you go.

You're going to need to make the call if you can afford the short term financial hit/investment.

So, if I'm a full stack developer without a CS degree, would you say it's worth it to take a shitty software development role @ a Uni to go back and get a CS degree?

I say it's shitty because they don't follow best practices and just focus on pushing out workflow apps as quickly as possible. No docs, old tooling, etc. Really a mess.

That's the situation I'm in now, first full time job. I majored in business [first economics, then MIS], big mistake. Now I'm working for the uni with plans to get a second bachelor's in CS beginning in the Fall (for free).

People always ask me why I majored in business. I've had recruiters say to me "Have you considered a minor in CS", etc. despite a very nice portfolio and 2 years worth of clients.

So, since I must deal with HR and would like to be taken seriously as an engineer, I'm going against the advice of the great Charles Manson and going out of my way to prove something to the phonies.

Plus, I wanna learn my maths much better but can't bring myself to go it alone so I figure it's worth it in that regard.

> I say it's shitty because they don't follow best practices and just focus on pushing out workflow apps as quickly as possible. No docs, old tooling, etc. Really a mess.

I doubt schooling would fix this. It tends to be more about theory and algorithms than building "real world"(depending on what you're doing) apps.

Also, those are problems you can fix by reading a few books on best practices, learning from your team, keeping up to date on tools and just doing it (docs). If anything, the school would likely be behind on things like tooling and many best practices related to the modern frameworks.

It's not all bad, you'll learn things that from time to time come in handy, but getting a CS degree won't turn someone into a good programmer. That's a skill you'll develop over time from doing it and learning from others.

This repo is pretty cool and links to lots of free courses that show the kind of things you'd learn at Uni: https://github.com/open-source-society/computer-science

I'm already well aware of best practices and I was really surprised that they didn't have any documentation or anything.

I meant, is going to school for CS worth working at a place like that.

They really aren't willing to make changes, as I said the goal is to push out apps as quickly as possible.

Coming from my previous job, where I was the only developer, I have full jsdocs/phpdocs, quite a few tests and high level user manuals. They have nothing resembling that.

I would say it depends entirely on your goal.

Is the CS program high quality? If yes, then the job you work in order to attend that program is merely a means to an end. Think of it as waiting tables, just slightly more related to what you're interested in.

You could take the opportunity (not too quickly, be mindful of politics) to make a case study out of it and attempt to apply some best practices, it sounds like it could turn into a thesis about software development in the real world.

(comment deleted)
Masters Degreees seldom seem worth it. It's just delaying you from doing real work and getting hands on experience. When I interview someone with a Masters I just think, "Kid couldn't get a job out of undergrad... wonder what's wrong with him." But if it gives you confidence, go for it... Give me a self-taught applicant who builds side projects and has an active GitHub account over a Masters any day.
Depends what stuff you want. I would assume a self taught applicant would be building web apps and such.

Master's degree applicant would be building something like, compilers, distributed systems, machine learning etc as part of the degree

I think that also depends. What makes you think that self-taught applicants can't learn compilers, distributed systems, or machine learning? If the candidate has proven the same amount of knowledge acquired during the interview, I'd definitely go for the self-taught one.
I think back to the best developers I've ever worked with, and one of them did have a Masters... in Philosophy.

I just haven't seen any correlation between skill and education level. Ha, with the exception of people who get a PMP... I've found them to almost always be bad at running projects.

Because that stuff is harder to learn on the web simply because of the lack of comprehensive materials.

For web development there is tons of resources on the web to learn.

The other stuff you really need to start reading books or academic papers. And it's useful to have someone to tell you where to start.

After five years of full time work I saw my MSc (Systems Engineering) as an opportunity to have a bit of meaningful time off of work. Most universities are much more relaxed with their postgraduate programs and allow you to focus your energy on the stuff that interests you most. You might learn a thing or two during lectures but might learn even more through all the extracurriculars that you will suddenly have the time to engage with. Yes, it was expensive and I'm not sure if I'll ever break even but it was money well spent on a fantastic experience. As a plus I managed to switch careers (aerospace to management consulting) which was not something I had planned to do but simply emerged out of the people I met throughout the program.
I don't think there is a field in the world where practice and theory is as far apart as software engineering. Having a CS degree is an entirely meaningless indicator of that person having any clue what to do at their job.

Some schools are obviously better than others. The good ones are expensive as hell though. The bad ones are nothing but a mountain of useless shit.

I don't have a single college credit, but theory is important for a lot of non trivial shit, for example cassandra, dynamo, project voldemort all use chord+ gossip protocols , i. What about concurrency and parallelism CSP, and the actor model are from where academia. What about Zookeeper, Chubby, Etcd where do Raft and Paxos come from academia.

You don't need a degree yes but theory is relevant however yes a CS degree is not a good indicator of any skill and too many CS educated people can't code worth a damn. Theory is not useless as long as you can implement it.

It depends. In the end, nothing beats experience and a good track record of getting things done. When I was responsible for taking hiring decisions at a startup, formal education was just one indicator of many. If you are talented, your time is probably better invested in taking a few months off to complete a few relevant online courses and program an app or website to show off your skills.
I did a Masters in Software Engineering, having switched from Sociology and Philosophy. It allows you to work in software engineering which may or may not be a good thing

Side note: why do so many people abandon architecture after successfully graduating? As an outsider, architecture seems like a great thing to do for a living.

Based on conversations with friends who did exactly that, the pay is crap, competition is intense (way too many architects graduating for the number of jobs available), client demands are ridiculous (extreme hours to meet deadlines are not uncommon), and a lot of the people running architectural firms are assholes.
Exactly that, architcute is an altruistic pursuit where the hours you invest are never appreciated. Clients don't see, nor do they care about, the amount of time it takes to create great work.
Look at financial outcomes from your target institution.
(comment deleted)
There is no single answer that someone can give you; It really depends on you and your background. As a personal rule of thumb I look at what big companies like Microsoft or Google expect of their employees (particularly Google). I know not every tech company is like Google, but they are a company with a very rigorous vetting process for applications. That said, even Google doesn't require a formal degree for their engineers, and they offer a guide for potential applicants listing what they expect [1].

IMO, what it really comes down to is if your learning style is best suited for a class-room education, and if so then whether you can afford to 'stop the world' and go back to school. A grad-student should be capable of doing independent research, so in theory you should be able to learn how to code on your own (if you wish to be a software engineer). You'll need to be sure you have a way to receive objective feedback on your output, and be ready to humble yourself as you descend down the Computer Science rabbit hole.

In full disclosure, I'm going back to school for a MS in Information Technology. It's not as rigorous as CS, but it's reasonable given that I have a BA in Music. I wouldn't necessarily have gone back if it weren't for having a perfect opportunity to do so (My wife got a job as a professor at a university that had a masters program for IT, and so I'm getting a good deal on tuition).

[1] https://www.google.com/about/careers/students/guide-to-techn...

Just FYI, getting an Information Systems degree instead of a Computer Science degree is one of my regrets. I would not advise it to anyone.

If you want to work in tech, go for the CS degree. Yes it'll be harder, but it's vastly more valuable. IS/IT degrees are nearly all fluff, especially a MS.

I agree, but hey, at least you have a framework you can use to fill in the missing CS pieces on your own! You're probably in a better position to be promoted to a management level with an IS degree over a CS, so that's not a bad thing.

In my case, the school that I'm attending only has a MS in IT. I decided that spending a short amount of time getting a higher degree in a 'softer' field would be better than struggling through the (somewhat arbitrary) math for a long time just to earn another Bachelors.

Either way, I'm trying to use all of the free-time that I have now to supplement my education as thoroughly as possible in the realms of hard CS topics. I hope to integrate this into my thesis as a way of demonstrating that I made the most of my time.

Your reasoning isn't far off from what mine was at the time I was choosing a major.

With the benefit of hindsight I can tell you that if you want to work in the quantitive side of technology, the pain of suffering through the math and truly grasping it, is absolutely and completely worth it.

As time goes past, the tech industry appears to be becoming more specialized. An analogy that I think works pretty well is the medical field. In the beginning you just had "doctors", then as more advances were made, the field specialized into nurses, doctors, physicians assistants, and then further into specialties and now sub-specialities.

Someone can absolutely work in technology without a firm grasp on the fundamentals, hell they can even make a lot of money. But it's a difficult leap to go from working on a React & Rails app to working on distributed systems, advancing the state of the art AI, etc.

Also be careful about assumptions about who is in 'management'. This is also a mistake that I made when I didn't really understand the industry. I have spent time working for managers who are non-technical and am rebuilding my life so that I never have to do that again.

Happy to chat more about this if you'd like. Good luck with your degree and I hope it works out well for you.

I was just recounting how useful and profitable both my degrees have been. However I put myself into them both to get the most out of the experience. More so my masters which let me explore a number of creative ideas in depth to weed out bad ones and hone skills I am using every day now.

Academia has a specific purpose for self development of providing a cognitive playground of sorts tempered with tough accountability, critical review and deadlines.

I got a Civil Engineer bachelors degree, worked for a bit and then got a Masters Degree in CS.

I took a few classes at university before I started a degree program. Despite this there were classes where classmates with undergrad CS degrees were at an advantage, so it was a fair amount of work to catch up/ keep up. Those with an undergrad degree had seen this stuff before for me it was new. On the plus side I was not wasting time in classes with stuff I already knew.

It was worth it for me, I actually saw a lot of things from university at work (I did some time doing Operating System "Augmentation", writing libraries. Datastructures and algorithms and database classes were also useful post graduation. I think the degree helped get work and I enjoyed getting it.

Yes if: they give you a scholarship AND (one of the following) it's at an ivy league college, you are deeply interested in a specific topic and you'd like to continue with a PhD, you like the work of a specific professor and he has agreed to work with you.

No if: you want to work as a software engineer (made the mistake myself, some friends are in lead positions and earn way more than me and have generally more opportunities because they worked two years more than me, even if I graduated with a 3.8 GPA from one of the top 2 unis of the country) or if you think it will boost your skills as a developer (Udemy/Coursera work better).

Maybe: if you want to work in the government where these things have a value. But spending two years of your life (even if with a scholarship) doing something that might not turn out to be a good investment just for this reason is insane.

There's a point at where experience starts to matter a lot less. Who cares about 10 vs 12 years of experience?

Where as maybe a master's is a small advantage.

I recall reading a study showing that a master's degree hurt total lifetime earnings rather than helping them. Having a few years paying large sums for a boost in initial pay was not worthwhile because experience eventually put the two at parity. This is all from memory though. I do not have a link to reference.

However, it does make sense given that the capabilities of people with bachelor's degrees and master's degrees become equal at some point, assuming all other things are equal. I do not think a master's degree is a ticket to a lifetime of greater competence in CS and salaries ought to reflect that.

The same could be said for PhDs too given the quality of work that we saw come out of places like Sun. There are plenty of CS people that I believe have only bachelor degrees that are not in any way inferior to holders of PhDs and in some ways, are more capable because their solutions are demonstrated to work in the field. I imagine some of them will receive honorary PhDs for their work.

This is not relevant to someone without a bachelor in CS though. I will post my opinion on that separately.

I got my masters while I worked over 4 years. Not always required to quit work.
You can often get your employer to foot the bill too.
I think at that point the comparison will be _what_ experience is in those 10 vs 12 years
Unless you're doing heavily theoretical work, no one even thinks about your education after you have a few years of real experience under your belt. In practical terms, real experience is many times more valuable than "education".

If you're going to look for a job in academia or research, then yeah, the educational background will matter. If you're going to write code that makes things work, it doesn't matter.

It depends on what those years are -- it is the old cliche that there is a difference between 10 years of experience, and one year of experience repeated 10 times.

The same is true for the difference between 10 and 12. If those additional 2 years were more of the same, they matter little. But they also could have been full of significant new work and learning.

Also: yes, if you want to immigrate to a Western country.
If you want to work in a more academic area such as Machine Learning it would be helpful. For something like frontend development it would not be very useful.
Even if someone is going to do front-end development, Western countries' immigration authorities typically award a big boost in points for graduate degrees in critical fields (e.g., frequently CS).
A lot of countries grant citizenship based on some points system. In most of them having a Master's degree brings you more points.
Is it a good idea for an Indian to use masters as an entry point to the US industry?
In general, Ivy league schools aren't that great for CS education. It makes sense of its a top 10 or 20 CS program.
No? How is he supposed to learn basic theory of data structures and algorithms? Of course everything can be learned outside of college, but doing that in a part time unstructured way is not easy.

Knowing relevant theory is power. Is the goal to be an enterprise CRUD programmer or an architect who is a thought leader and helps set the direction of what you're working on?

I know everything can be done without a degree, I have a few genius friends who are doing great. But could they have had more options to choose from, more freedom, more potential with a degree? Hard to say, but most people don't self-learn everything they would otherwise.

I think what chpmrc means is that going for a Masters degree in CS versus stopping at a Bachelors degree in CS may or may not be of value.
I'm not sure you're right. I read OP as already having a BS in another discipline, and considering doing a CS masters (without a BS CS first).
rahimnathwani that's correct. for this person a masters would be like intro to cs.
I kind of agree and disagree I work a lot with distributed systems so I have to read a lot of papers, and I have to implement a lot of data structures myself, however I am severely lacking in formal education. While initially my lack of education was a difficult barrier I overcame it pretty quickly. I also have been writing nontrivial code in haskell just to improve my use of scala so that's more of academia I have to deal with.

But I still stand by the fact that unless you're going to stanford, CMU, or MIT, or a professor who is not strictly a theorist at an above average school takes a liking to you.

If not and you really enjoy the field you're better off teaching yourself.

I'm currently finishing up my masters program in CS. So take into consideration that I haven't had enough time out to get a full perspective on the choice but I can give you an outline of my experience and why I think it was the right choice for me. I finished undergrad with a degree in Math and a minor in business admin. The last year or so I didn't know what I wanted to do after graduation but was interested in tech. I had read online that not too long ago (I think these Oppourtunities may still be out there) that people could finish with a math degree and a company would hire them and just teach them to code. My experience applying around is places expected you to atleast have a class or two under your belt. I didn't have time in my schedule before graduating so I didn't get a chance to take any of these classes. I eventually went back because of a few reasons. A) Like you I had done a little bit of self learning but wasn't producing anything super meaningful. B) I was primarily interested in getting into the data side of things (more math) C) I felt it could potentially come in handy down the line and lead to more challenging/interesting positions. So first and foremost the question to address is why not just figure it out on your own? These is certainly a viable path as there are a ton of great resources on line and more every day. I think I decided not to because I thought formal education would be a faster route. This obviously won't hold for everyone but if I could learn what I needed to know in a year or two vs longer with self study then I could get in a job quicker and basically move faster. I also wasn't super confident in my ability to create anything meaningful that would get me a job on my own. I think another advantage of formal is there is a social aspect to it and you can learn from your peers. If you are doing it by yourself you can meet people and try to ask questions but it may be harder. For point B I think a masters can make sense depending on what area you want to go into. If you want to do web dev I say skip it. For me though the chance to learn ML techniques from experts who study it for a living made it more appealing than trying to figure it out myself. I know there are options and classes for an emphasis in "software engineering" at my school but the vibe I get for those is that there is nothing there you couldn't learn by working in the field for a few years. So what you want to do is a pretty big factor in my opinion. As for point C this is definitely more speculation at this point but I have theories to suggest it is true. First being that contrary to what people want to think about tech transcending the rules of other industries it doesn't. People are people and still respect formal education. If there is a situation where all things being equal you have a degree and the other person doesn't you will have the edge. It also signals aafety for managers making hiring decisions. They won't look as stupid if they hire someone with a masters vs someone who self taught and it doesn't work out. I have also heard and seen people in developer positions coming back to get their masters. So either these people are irrational or like spending money for something they could find online. You can certainly find programs where you aren't "60k-100k" in debt. And I think my final thought though not rigorous is if you want to do this as a career why would you want to invest the time and energy on something you will plan to take up a large chunk of your waking life for the rest of your life. You get out of life/career/etc what you put into it. Hope this helps.
How did you get admitted to a Masters program without a background in CS? Most CS departments (Masters, PhD) look for standard courses in programming and data structures. I ask a fellow pure math degree holder with little CS coursework. I intend to pursue a PhD in CS and enrolled as a post-bac to make up the coursework to then apply for graduate programs.
Same route. Had to take the pre reqs. Honestly it seemed more time consuming than anything compared to higher level math courses
It depends on what you want to do. If your goal is to be a web developer or a game programmer then no, it's a lot of time investment and you'll come out of it still needing to learn a lot on the job.

If your goal is to go into a more academic area like AI or some other topic that's more of an area of R&D, then it's probably more worthwhile. If your goal is to be an academic, then obviously you need not only a masters but a PhD.

Note: these thoughts are intuition based and are not refined. I'd need 20 hours at least to make a text like this refined.

I'm a CS master student in Amsterdam. I feel I have more similarity to you since you're also from Europe. The US system is nuts, I don't get it. My current debt is gasps 3000 euro's! If I finish my master degree it will be looks in horror 300 euro's! When someone from the US thinks about giving advice, please know that educational systems are different everywhere. So you need to disclaim where your experience is based upon. Mine is based upon the Dutch educational system, where the whole experience was (back then) funded by the government.

Furthermore, the idea of a university and also the idea of getting a master degree (in The Netherlands) have different cultural connontations. In The Netherlands it is kind of a given to do a master degree after a bachelor. No one knows why, but I feel that a lot of children were raised with the idea to "finish school," and most people feel that getting a master degree is what "finishing school" is like (there are exceptions of course).

Should you get a master degree? I'm going to give you a very opinionated answer. I'd be delighted if people countered me, because my story might be dangerous to take at face value, though less dangerous than having no or not enough information.

I'm a programmer teacher myself right now and one thing I've never realized is that you need to keep pace. Some students fall below the pace, others above it and to some it's the right pace. Chances are high that you're either above it or below it, since I can literally divide my students into 3 equal groups.

Furthermore, my Dutch curriculum gave me a many many obligatory courses during my bachelor. It gave me some freedom in my master. This is bad. Get as much freedom as possible. I've noticed that -- on average -- obligatory courses teach me less useful things. In some cases, I did need to learn certain basics that I didn't want to learn, but more often than not: I learned some academic arcane wizardry that I'm never going to use again (or at least, chances are a lot lower).

By the way, good obligatory courses are everything that's involved with how computers work. So distributed systems, computer systems and the like. Other good obligatory courses are theory of computation, algorithms, etc. You're not necessarily going to use that knowledge but they teach you a certain way of thinking.

Bad obligatory courses: anything that has to do with ontologies (as an optional course it's great, as an obligatory course, not so much), research on Multimedia Systems (too in-depth), software engineering courses (if they don't have a practical/pragmatic basis and emphasis), basically anything that focuses too much on science and research. They're all great as optional courses, but having them as obligatory courses, no. Also, obligatory courses that only show powerpoint slides and academic research paper assignments are a no go. Even as optional courses I'd be wary to take these (from a pragmatic computer science standpoint, go ahead if you want to be more broadly educated).

The next thing that is really important is the student body. You want to be in a student body that suits your goals. If you want to overachieve during your studies, you need to go to a university of overachievers. If you just want to go solo at it, you need a university that's not getting in your way when you do that.

These 3 things:

- pace

- ratio of obligatory courses and optional ones

- the type of students that are here

Are all metrics to answer one single question: to what extent does this study program fit your learning goals and your learning style?

Anything below 80%, don't do it. Everything between 80% to 85%, meh. You'd want at least a 90% fit or higher to consider it to be worth it. Remember, if you have an 80% fit, th...

Yes, a terminal master's degree in CS is absolutely worth it for a person in your position looking to make a career switch. It will help you learn things you do not know and qualify you for many jobs you would not currently be considered for. A CS masters is not the only way to do what you're trying to do, but it may be the easiest. You do not have to attend a prestige university or a win a scholarship to make this path worthwhile, though certainly those things are nice if you can get them.

I would not say the same thing to someone who already has a BS in CS; but for someone looking for a career switch like you are, it makes a lot of sense.

I'm in a similar position thinking about going back to school, but I admit I'm confused about the question, because the programs I've looked at won't consider masters' students unless they have a bachelor's in CS (or equivalent, which there are nontrivial requirements there). So from my vantage point it's always been going back to do a second bachelor's.

I have a lot of programming experience, and a lot of statistics/numerical computing experience, but not so much experience with more hardware- or low-level networking stuff.

If you can't write code, please flyings Spaghetti monster don't try. I've wasted too much time trying to fix shit people have left broken
If you just want to do some sort of programming for a living, you probably don't need a degree to make the switch. It will help you get your foot in the door, but it's going to be an expensive way to go about it. If you have a particular idea of what area you want to focus in - ML, systems programming, embedded, etc - then it can help secure a job that would simply be inaccessible any other way.

I went back to school after a decade of professional programming and finally finished a BS. It was worth it on a number of levels, but it was not cheap to do as an adult.

I can't give you any advice on the Masters CS degree (other then that I think some sort of CS background would be really useful), but career-wise - have you considered sticking to architecture and follow a more tech path? There are some great opportunities in the internal research labs of the more cutting edge firms to develop software. Off the top of my head: P+W (where I work), Norman Foster, Thornton Tomasetti's Core studio, AECOM, SOM, Zaha. Have you checked out some of the big computational conferences/symposiums like ACADIA, AEC Hackathon & Symposium, SmartGeometry?

Perhaps you've already checked out the field out and still want to switch, but if not, I think you'll (a) find a lot of like-minded people and (b) find a lot of meaningful work in the field that needs computational expertise. That latter point is what's most important to me: issues like building/urban energy consumption, affordable/dense housing are low-hanging fruit that are being done in manual/non-optimal ways right now.

You can email me if you'd like to talk.

Interesting idea. Could you elaborate a bit more on what are some specific positions and tasks inside architectural companies, where the CS + architecture combined knowledge would be valuable for an employer?
It's a huge, diverse field so I wouldn't be able to do it justice in a comment. I suggest looking at some papers from http://acadia.org/, and http://www.ibpsa.org/. The latter being an example of a more specific subset of computational/architecture work (building performance simulation).
(comment deleted)
It, obviously, depends. If you went through really good courses and extraordinary teachers, like old-school scheme-based Berkeley CS61A, then, perhaps, some AIMA based course with CL code, leave alone original SICP courses at MIT, then it definitely worth it. Berkeley CS188 (Python-based) is very good one too.

But if you just passed through some crappy courses which ends with "in Java" in some third-rate school, then you have, probably, wasted your time and money.

Good schools which still taught fundamental principles, like MIT, will always worth it.