Certainly there are a lot of pros and cons to getting a BA in CS. But "learning how to write code" is not the major advantage of a university education, nor should it be.
Certainly there are a lot of pros and cons to getting a BA in CS. But "learning how to write code" is not the major advantage of a university education, nor should it be.
However, I see this as a failure of CS education. Our work is with computers. If we do not teach, how to use the tool we work with properly, then we have failed. I know CS is not only developing software, but also a lot about the theory, but it should not exclude practice of working with the most commonly used tool, which graduates will use, the computer.
Often even things are taught wrongly (do not get me started on "every noun is a class" kind of teaching of OOP), by people, who have not developed a single larger code base for decades.
That said, the industry has at least in that regard caught up a bit, and realized, that fresh from university most people do not write good code immediately.
CS fundamentally is not about computers. It's about math and the flow of information between theoretical machines. Computers just happen to be a physical implement.
The idea that universities should teach to develop industry-fit individuals is just an extension of commodifying university education. Why not let the industry handle training for what they need their people to do, and let universities focus on their intended goal: create more university professors/researchers.
What about moving the responsibility (and financial risk) off students' backs and to the corporations that want to exploit the knowledge gained in a degree through apprenticeship and learning to code through experience?
CS departments are getting more students and funding in recent years precisely _because_ they are seen to be providing valuable education for would-be programmers and practitioners in the software industry. At the same time, some people like you perpetuate the myth that only the theory matters in a CS degree, and it shouldn't have any bearing at all with the demands of industry.
If what you propose is becomes reality, expect CS departments shrink to 10% of their current size and high school graduates skip university to take on apprenticeships. That's actually fine by me, but I doubt that's actually what you're envisioning.
The fact is that most universities these days _pretend_ that they can prepare somebody to become a software engineer by providing CS courses. That works to some extent, but as you say, the degree is generally more geared towards training researchers and academics. There's no fundamental reason why universities shouldn't provide a more practical-oriented "software engineering" degree of sorts, much like how they provide other engineering degrees (eg. Civil Engineering) as opposed to pure sciences. _Except that they generally aren't capable of doing so_, so they happily accept the sub-optimal arrangement that CS is the de-facto degree for prospective software engineers, while maintaining the whatever perceived high ground where they insist on teaching theoretical, impractical stuff because most of the faculty don't know a thing about developing software in modern environments. Basically they want to have their cake and eat it.
Software engineering has become such an important part of modern society that IMHO it should at least have the recognition and respect as such. Imagine somebody arguing that universities shouldn't provide Civil Engineering courses because, you know, it's just physics and applied maths, and civil engineers should just do a Bachelor of Science in Physics with a theoretical focus, leaving the practical knowledge of how to build a building to apprenticeships, because universities are too busy mentoring the next Einstein. Would you want to live in a society like that?
Which would result in universities eventually going out of business. An outcome I'm not opposed to, provided what replaces them functions better at training young people for real life.
I doubt, that a computer with its endless possibilities of using it and programming it, is comparable to a telescope. Also I did make note, that CS is not only about computer programming. So I am fully aware of the following:
> CS fundamentally is not about computers. It's about math and the flow of information between theoretical machines. Computers just happen to be a physical implement.
However, this does not mean, that universities should forego teaching about computer programming properly.
The alternative is, that we acknowledge, that first we study CS, but then employers finance year long computer programming classes for new employees, taught by people, who are actually good at this. The kind of people, who have lots of experience with different systems, programming languages, paradigms and teaching in general. That'll be expensive.
> What about moving the responsibility (and financial risk) off students' backs and to the corporations that want to exploit the knowledge gained in a degree through apprenticeship and learning to code through experience?
Yes indeed, that is one alternative.
I am saying, that employers should not expect and of do not expect good good to come out of people, who recently graduated from university and have their BSc or MSc. I don't think we are in disagreement about that point.
However, realistically this might lead to some employers being to much up in the clouds, only ever accepting employees, who were taught elsewhere and students having a really hard time finding _any_ job at all, because no one is willing to expend the resources to teach them. Furthermore, the teaching will probably be very one-sided, gaered towards what that particular employers uses in their tech stack. It is also highly unlikely, that most employers will have teachers, who are really that good, lets say up to Abelson and Sussman standards, if we may wish for something.
I think we can all agree that whether a company thinks something is good is completely unrelated to whether that thing actually improves your programming ability.
I never thought it would be held against me though. Seems weird.
I think the uncharitable view people take of a Bachelors followed immediately by a masters but with no PhD is that they presumably weren't planning to go for a PhD, and given that, had the choice between a) doing 2 more years of school for very tenuous benefit and b) going directly into a job where entry level pays 1.5x+ the median household income in many states. And they chose a).
So I think the uncharitable interpretation is then that the person was afraid of entering the adult world or felt like they couldn't hack it.
A Masters in CS doesn't tell me the person knows how to code well, but it does tell me that they are _more likely_ to
- Have had experience with a wider variety of algorithms, data structures, and general coding concepts
- Have written code to perform more complex things
- Written code for someone "outside of a classroom"
Certainly the last two are more directly accomplished by actually being in the workforce. However, an educational environment is a far better source for the first one. Now, I'm not saying having a Masters is necessarily _better_ for a developer but
- Given two developers with no work experience, one with a Masters and one with a Bachelors; I would generally assume the one with the Masters is a better developer.
- Given two developers with a similar amount of work experience, one with a Masters and one with a Bachelors; I would generally assume the one with the Masters is a better developer.
- Given two developers, one with a Masters and no work experience, one with a Bachelors a couple years of work experience; I wouldn't make any assumptions about their skill (they're certainly different, but I wouldn't assume one is a better developer than the other).
The same logic holds true for me when people try to convince me that a degree in CSci offers no benefit at all, and that it's better to just self study and start working. There's nothing you can learn during a degree that _can't_ be learned by self study; but there's a lot of things that are much more likely to be learned in an academic environment.
From downvoters: I would genuinely love to hear a defense of an MSc per se. What university has their shit together enough to actually accelerate/compress 2-4y of work experience into 1-2y years of academic project, which is what's always the claim? If all you're doing is the courses, those are accessible to 4th year undergraduates in every university I know.
To a person, everyone I've interviewed who did an MSc for the coursework had to because they finished their BSc with minimum effort and no one was interested in hiring them. Even worse is when you see 4y BSc, 2y work, 1y MSc.
Many master’s holders started out thinking they might have been interested in research and decided industry was a better fit after seeing how the sausage is made. You’re “rule of thumb” punishes undergrads who were inspired to push the boundaries of knowledge in the field.
Your explanation can be reframed as "many MSc holders did not invest any attention to how the academy works during their BSc years" - why should I prefer them? My rule of thumb punishes such people compared to those with a broader view and better self-knowledge, yes.
More inferiority complex. Some people give a shit about research and want to give it a try to see if they can make it work. There is no way you understand the nuances of how NSF or DoD funding works for your specific areas of research until you spend a lot of time in the weeds of grant proposals and reading reviews.
> My rule of thumb punishes such people compared to those with a broader view
This is a joke. Most BScs have no clue at all how academia works because they don’t care. They are absolutely not more enlightened to the nuances of career prospects in research in their areas of interest.
There are wide gulfs in the funding available depending on sub fields of CS. Research security and you’ll have plenty of money and opportunities at national labs, research arms of corporations, and academia. Go the P/L route and it gets dry pretty quickly.
> Cool personal insult - who has the inferiority complex here?
If you’re gonna try to insult, at least get it right. It would be a superiority complex if you wanted to view my post through the lens of pushing “how smart” grad students are. Yours is an inferiority complex because you’re taking out your lack of institutional credentials on anyone who has them with some convoluted logic about how people are stupid if they spend extra time in academia.
But for MScs, nah. The more focused coursework is directly accessible to undergraduates, and the projects are often like "port this 20yo tool to a new kernel version" or "build me a DB schema" or a few other things you'll have also done but 3x over in your first year of a real job.
This seems to suggest that asking a candidate with an MSc about their thesis might be useful
There are a lot of people coming with 4+1y or 4+2y purely CS/SE. That's who I'm talking about.
At any of the large CS universities, there are usually 4+ masters tracks you can go down (security, hpc, p/l, HCI, algorithms, etc).
Someone who quits with just a BS has no interest in going further theoretically. The absolutely did not cover all of the topics available - let alone get into research.
The most legitimate use of a MS degree is to move from one field to an adjacent field (eg math to CS). You know the basics, and you just need the advanced coursework in the other field.
A lot of people I have seen use a master's as a pure signaling tool, getting a high-profile University on their resume. For example, I have seen a lot of resumes with "BS from Unknown University" and "MS from Stanford/Harvard/MIT." In interviews, these students have not performed nearly as well as students with a BS from Stanford/Harvard/MIT, so I tend to discount the MS if I see this pattern.
Another common reason for the MS that I have seen is as an immigration tool. These people are usually pretty smart.
Maybe that's why you're getting downvoted. (Not by me, for the record.)
If you're just looking for a code monkey to do your e-commerce react website then obviously work experience will always trump academia.
For example, I used to work in our IT department that handled the CS/Math departments at our University. We are a fairly well regarded school in the computing fields. However when we did co-op hiring of students for roles we had in the department there was one thing that stood out. People who only had programming experience through the school were not good programmers. It was the people who either had past work experience or had their own side projects who actually knew their stuff well.
At the end of the day I think CS degrees often go heavy on the theoretical and I find much of the theory is not applicable to the majority of CS/SoftEng jobs out there. I feel like someone who is motivated can gain the skills to be hirable in many software companies out there without going to school. I view things like co-pilot not as a problem. This will hopefully force the professors to make assignments that teach people more complex and work applicable content, rather than having them write generic intro to programming style cookie cutter programs.
I don't see an MSc accelerating anything; in general one year of MSc seems worse than one year of work experience or one year of motivated self-study, and the students who do it were not the top tier of BSc students.
Yeah, no. This kind of nonsense filling it up is precisely why an MSc in SE is useless.
Seriously though, you clearly need a reality check. SWEBOK is by no means necessary; it’s far from it. Saying it’s a complete waste of time shows that you have poor judgement on the subject. To your earlier point, having someone guide you through the poignant aspects of CMMI 1.3 is exactly the kind of value added by paying a teacher (where you would otherwise have to sift through piles of less valuable material). I only preach out of a sense of trying to help you and the others you have influence over. If you’ve actually worked yourself into a position where you hire people, and you’re not just pretending on the internet, you could do yourself a favor by being a little more open minded. Maybe consider that your original reply has been downvoted on a forum with “hacker” in its name.