Earlier quoted context omitted.
There's a massive gap between taught at CMU and taught at most universities. And even if it is taught, it's usually outdated or focused on very literal stuff like how to write web applications. I'd have killed for a class that actually focuses on implementation, on teamwork, on building complicated systems.
+1 for teamwork... I wished there was an established field of study for teamwork in software. If you are impressed with 10x devs, imagine 10x teams!
You are never taught how to build quality software
301–310 of 500 posts
Re: You are never taught how to build quality software
#302We do teach these things, they are just not core CS topics, but rather in other areas, relegated to electives like a software engineering course. At CMU we have entire Master's program for software engineering and an entire PhD program (in my department). We teach exactly the kinds of things the blog post is about, and more. Software Engineering is a whole field, a whole discipline. I get that this is a blog post and…
Do SE classes teach debugging skills? I hope they do. So many times I have seen people try random things rather than follow a systematic approach.
Re: You are never taught how to build quality software
#303Earlier quoted context omitted.
I worked with programmers around my junior year and some of them were in classes I was in. I thought they were all playing one-upsmanship when I heard how little time they were spending on homework. 90 minutes, sometimes an hour. I was a lot faster than my roommate, and after I turned in my homework I’d help him debug (not solve) his. Then I was helping other people. They really did not get debugging. Definitely felt…
This is why internships and real world experience is so important. A course is 3 in class hours a week over 12-14 weeks typically. After homework and assignments it is ultimately maybe 40-80 hours of content. Which means you learn more in one month of being on a normal, 40 hour workweek job than you have in an entire semester of one course.
Huh? I was spending 20+ hours a week on assignments alone in upper level software engineering classes.
Also, internships were required.
Re: You are never taught how to build quality software
#304We do teach these things, they are just not core CS topics, but rather in other areas, relegated to electives like a software engineering course. At CMU we have entire Master's program for software engineering and an entire PhD program (in my department). We teach exactly the kinds of things the blog post is about, and more. Software Engineering is a whole field, a whole discipline. I get that this is a blog post and…
Here's the thing, though: Of a CS graduating class, 90% of them will work as software engineers, not as computer scientists. (All numbers made up, but I think they're about right.) We don't need these things to be electives. We don't need them to be a master's program. We need an undergraduate software engineering program, and we need 90% of the people in CS to switch to that program instead.
Re: You are never taught how to build quality software
#305Earlier quoted context omitted.
There's a massive gap between taught at CMU and taught at most universities. And even if it is taught, it's usually outdated or focused on very literal stuff like how to write web applications. I'd have killed for a class that actually focuses on implementation, on teamwork, on building complicated systems.
That was a dedicated software engineering course I took at university. Teams of 5. Had to put the soft eng theory into practice. And if’s not CMU.
Re: You are never taught how to build quality software
#306Re: You are never taught how to build quality software
#307Earlier quoted context omitted.
I chose software engineering. 3 years into the program the head of the department made a speech at an event to the effect of "Software hasn't changed in the last 10 years". It instantly devalued the entire program for me.
I have news for you... He's not wrong. The porcelain is different, but the same methodologies and processes are in place. The biggest change recently is distributed (mostly ignored) version control, that's 20 years old, and continuous integration/development (probably also around 20 years old, but only catching on in the last 10-15 years). Computer science has changed more, there are lots of developments in the last…
So tell us what these are so I/we can learn from you
Re: You are never taught how to build quality software
#308Today? TailScale and stuff like that.
You can just noT have a bunch of pointless micro services and docker in your runc and layer on layer of json de/re, and unit test to get coverage but ignore quickcheck and hypothesis and fuzzing.
You can use stacked diffs and run oncall loops out of the team authoring the code and all of it.
You can minimize dynamic linking and all the other forms of unforced dependency error.
You can understand and play towards the runtimes of all the managed languages in your stack. You can insist that a halfway decent verbal grammar for the languages is “readability”.
It gets shouted down over and over but it’s public knowledge how to ship quality software.
Re: You are never taught how to build quality software
#309Re: You are never taught how to build quality software
#310You learn this at quality shops. 10-15 years ago roughly FAANG. Today? TailScale and stuff like that. You can just noT have a bunch of pointless micro services and docker in your runc and layer on layer of json de/re, and unit test to get coverage but ignore quickcheck and hypothesis and fuzzing. You can use stacked diffs and run oncall loops out of the team authoring the code and all of it. You can minimize dynamic…