DEV Community

Discussion on: Why I did my master's in software engineering instead of computer science

Collapse
 
tomowens profile image
Thomas J Owens

Instead of encouraging a graduate-level Software Engineering program, I would rather look at how we can promote learning the core topics of software engineering - requirements, design, testing, project management, process and methods, ethics, economics - in undergraduate education. As someone who has interviewed perspective interns and recent graduates for entry-level positions, I can say that there shouldn't be so many people who are completing undergraduate programs and entering industry with only exposure to a small fraction of things that they will end up encountering.

Another problem is the number of people from non-traditional educational backgrounds - graduate certificates, bootcamps, and self-taught. I've worked with people who either don't have a college education or have an education (in some cases, a graduate degree) in an area other than computing. I would consider some of these people to be very good software engineers, but they still needed to learn a lot on the job. I'm unsure how to make these topics accessible to entirely self-taught developers. Perhaps it's simply a risk that when a company employs someone from a non-traditional background, they are losing out on some topics taught in the classroom.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Part of the problem is that industry, and the economy at large, doesn't really reward quality software development. I covered this in my article are we forever cursed with buggy software

So long as ad-hoc solutions are capable of getting funding, being used by millions, and generating initial revenue, there is no incentive to build quality solutions. There is simply no competitive advantage to achieving more than the bare minimum for a product.

Granted, many companies will fail because they don't have a talent pool that achieves even that low threshold.

Collapse
 
tomowens profile image
Thomas J Owens

I wouldn't be surprised if the tolerance of the general public begins to drop, especially given some of the recent incidents. The sheer volume of data that these companies and applications have access to is staggering and can be rather personal. If data is leaked from Facebook, Amazon, or Google that involve geolocation data, purchase history, or personal files, I can see that being a huge incentive for companies to focus on quality.

But that requires an informed and engaged public...so...maybe not.

Collapse
 
jennifer profile image
Jennifer Konikowski

Those topics should be promoted - if you are getting a bachelor's in software engineering. If you are getting a bachelor's in computer science, then you should be focused on CS. A university is not a trade school and the whole point of it is not to get students ready for careers.

Collapse
 
tomowens profile image
Thomas J Owens

You're absolutely right that a university isn't a trade school. There's also value in computer science undergraduate education, for some people.

People who want a university education and to go into industry afterwards aren't typically served by a computer science degree, though. Completion of the program doesn't leave these people with the knowledge and skills needed to work in teams to build large and complex software systems.

There are far more undergrad CS programs than SE programs. Many students don't realize the difference and industry is worse off for it, since experienced engineers are now teaching university graduates things that they should have learned in the classroom.

Thread Thread
 
jennifer profile image
Jennifer Konikowski • Edited

I 100% agree with you. Part of the problem is trying to figure out a degree before you turn 18. It often does surprise me that more schools don't have SE degrees. I went to an engineering school for undergrad (did not do SE or CS) and my university didn't even have a SE degree, BS or MS.

Edit: Though part of me also thinks that maybe we shouldn't be expecting new grads to be ready for the job, in any field. Apprenticeships and formal mentoring should probably be bigger across the board. If you get a CS degree, you have a lot of knowledge that is very useful... but you still need more and, really, most of that is best learned on the job.

Thread Thread
 
tomowens profile image
Thomas J Owens

100% on apprenticeship, formal mentoring, and I'd add internship and co-op in university education.

Not every software engineer will have a university degree. But even those who have taught themselves or go to a boot camp can take advantage of apprenticeships and mentoring. In fact, I think that companies that offer students 3 to 6 month internships should be more open to people outside of degree programs participating.