I'm a software engineer with experience across the software development lifecycle. My primary interest is software development methodologies and software process improvement.
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.
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.
I'm a software engineer with experience across the software development lifecycle. My primary interest is software development methodologies and software process improvement.
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.
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.
I'm a software engineer with experience across the software development lifecycle. My primary interest is software development methodologies and software process improvement.
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.
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.
I'm a software engineer with experience across the software development lifecycle. My primary interest is software development methodologies and software process improvement.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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.
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.
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.
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.
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.
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.
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.