Live data from Hacker News

You are never taught how to build quality software

florianbellmann.com

371–380 of 500 posts

Re: You are never taught how to build quality software

#371
post #276

Earlier quoted context omitted.

I've wished that students would be required to hand their semester long project to the person next to them each week.

Almost every CS course I took went the other way and had strict cheating policies that essentially made any group work verboten. There was 1 group project in 1 course I took in 4 years. My spouse on the other hand took an explicitly IT program and they had group projects, engaging with real world users, building real solutions, etc.

That's crazy! My uni had senior design projects, and labs. Shoot, my community college had those, too. Most of our classes had lab projects, and sometimes the lab projects were group projects. We were encouraged to help each other out. I can't imagine a class where collaboration was totally against the rules.

And I mean, that went with everything. In my EE classes we did lots of collaboration. We had study groups, homework groups, etc. It was a lot of fun. I'm sad to hear there are places where they straight up make that against the rules.

My uni also had engineering ethics classes - in my major it was mandatory to take 2 of them. I think it makes sense and should be more common for software engineers. A lot of software is used to operate planes, cars, medical equipment, and nowadays also help make decisions that can have life-threatening consequences.

Re: You are never taught how to build quality software

#372
I didn’t learn how to build quality _anything_ until I dove into woodworking. Order, organization, process, care, details. You can _work_ with mistakes, but you can’t undo them.

I highly recommend anyone wanting to learn how to do something with care, try to pick up a skill that requires you to do it right the first time.

Re: You are never taught how to build quality software

#373

Earlier quoted context omitted.

Almost every CS course I took went the other way and had strict cheating policies that essentially made any group work verboten. There was 1 group project in 1 course I took in 4 years. My spouse on the other hand took an explicitly IT program and they had group projects, engaging with real world users, building real solutions, etc.

> strict cheating policies that essentially made any group work verboten If I had to guess, some polytechnic school or another? With some classes even forbidding discussing work with other students, where each assignment required a signed (digitally or otherwise) affidavit listing everyone you consulted, acknowledging that if you actually listed anyone, you were admitting to violating the academic honesty policies an…

I taught a course "in a previous life" and while I wasn't anything close to as strict as you say here, I can tell you the flip side: students would copy, modify superficially (some, less superficially) and then claim "it's my work, we just talked, that's why the similarities!" (with some even having the nerve to say, "it's not copied, look, plagiarism detection software says similarity is less than x%!) Perhaps I was wrong but I really wanted the students who took the course to put in the work themselves. Just choose a different course/course set, you _knew_ this one was going to be hard!

So yeah, the guideline was that we'll be eventual judges of what was "too similar" and if you're concerned, just don't discuss implementation details with anyone. I realize it prevents honest colaboration, and that's bad too... but sometimes it's a "damned if you do, damned if you don't" kind of situation.

Re: You are never taught how to build quality software

#374
post #318

Earlier quoted context omitted.

Do they funnel soon to be grads into stressful zoom calls where product managers handwave an entire legacy stack still somehow running on coldfusion and want a rebrand with 'AI' starting Jan 1??

No, but our professor assigned teams at random, gave us a buggy spec, and then changed the spec with one week to go during finals week. (This last part appears to have planned; they did it every year.) This was a surprisingly effective course, if sadistic.

Talk about preparing graduates for the real world!

Re: You are never taught how to build quality software

#375
post #117

We 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…

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.

And then there was "Twenty dirty tricks to train software engineers" which I found even more suitable as preparation for working in the industry.

Re: You are never taught how to build quality software

#376
post #173

Earlier quoted context omitted.

If my friends hadn’t had such vividly bad experiences with the compiler class, I might not have taken the distributed computing class that was one of the other options to fulfill that category. It’s not the most defining class of my undergrad years, but it was pretty damned close. The fact that most people designing systems don’t know this material inspires a mix of anger and existential dread.

If you're specifically referring to CMU's compilers course, feel free to follow up with me offline.

Why does this feel like the professor trying to either fix the problem or give detention.

Re: You are never taught how to build quality software

#377
post #347

Earlier quoted context omitted.

Not everyone is writing a webapp where you can roll out upgrades anytime CI passes, or a phone app that you can upgrade every week. some of us work on code that will be shipped in a device that is not easy to upgrade.

Not all software that is frequently updated is a web app. Ask Tesla, Apple, Sonos, Garmin, ... Anything connected to a network could be released frequently if people wanted to. Not everything is connected to a network though.

[deleted]

Re: You are never taught how to build quality software

#378
QA/Integrations/SQM and how to avoid rejection was one of the skills taught hands-on AFTER university by the great masters who were unceremoniously forced into other occupations like: auto leasing, banner print shop, etc. when they were forced to crack open their 401Ks to make their house and family support payments in spite of the dot com bubble crashing the NASDAQ and related capX for six miserable years.

For example, at 16, my QA manager (whose husband had a Nobel Prize) and my tech lead (who wrote malloc/free for Unix and was learning VMS from me as fast as I could learn C from him) were totally opposite forces, separated by HR and different directors. QA didn’t code anything but batch jobs/shell scripts and contracted back to Engineering for any apps they wanted (or simply required them to be in the release package). If you wanted to keep your job, you didn’t submit programs with performance/functional deficiencies and definitely not logic issues as compared to the SPEC that all parties signed at the outset of the project (put that in yoh Kan Ban, Man rofl)

Ok another arrogant post from older former child prodigy! Happy Holidays!

Re: You are never taught how to build quality software

#379
post #378

QA/Integrations/SQM and how to avoid rejection was one of the skills taught hands-on AFTER university by the great masters who were unceremoniously forced into other occupations like: auto leasing, banner print shop, etc. when they were forced to crack open their 401Ks to make their house and family support payments in spite of the dot com bubble crashing the NASDAQ and related capX for six miserable years. For examp…

[deleted]

Re: You are never taught how to build quality software

#380
post #276

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.

I've wished that students would be required to hand their semester long project to the person next to them each week.

Me too. All throughout my education, group projects and speeches were both these scary, uncommon things that you could afford to fuck up, and I skated by on individual talent.

Now I'm an adult, several years into my career, wishing that the schools had done a bigger quantity of low-stakes group projects instead. It's a muscle that was never exercised

Post reply on HN