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.
The university I went to had this. We had to maintain an application that was built by our seniors and then hand that off to the next batch.
You are never taught how to build quality software
401–410 of 500 posts
Re: You are never taught how to build quality software
#402Earlier quoted context omitted.
Cryptography yes, but are you sure about parsers? As far as I can tell, there's some kind of U-curve there. Beginners code them by hand, intermediate-level programmers and intermediate-scope projects use parser generators, and people maintaining the most sophisticated parsers prefer to code them by hand too. For example, GCC used to have a bison parser, but they switched to a hand-coded recursive descent one because…
I offer, again, my JetBrains GrammarKit counterpoint from the last time that assertion came up https://news.ycombinator.com/item?id=38192427 > >>> I consider the JetBrains parsing system to be world class and they seem to hand-write very few (instead building on this system: https://github.com/JetBrains/Grammar-Kit#readme ) - https://github.com/JetBrains/intellij-community/blob/idea/23... (the parser I'll concede, as…
Re: You are never taught how to build quality software
#403We 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.
If you observe a car mechanic trying to find the problem with a car, he would go like: "is this pin faulty? No. Is the combustion engine faulty? No. Are the pedals faulty? Yes." where the mechanic starts with some assumptions and disproves them by testing each of those assumptions until (hopefully) the mechanic finds the cause of the fault and is able to fix it. Similar types of investigations are important to how natural science is done.
So it would be helpful if you can clarify your intended meaning a bit more. Maybe I or someone else would learn from it.
Re: You are never taught how to build quality software
#404Earlier quoted context omitted.
If you want numbers and research like content, that is available as well. "Measuring Complexity of Object Oriented Programs" https://link.springer.com/chapter/10.1007/978-3-540-69848-7_...
This is much more interesting. I don't suppose you know where I can get their list of references without hitting a paywall? Specifically [16] and [24]. EDIT: [For anyone following along] The linked paper is Measuring Complexity of Object Oriented Programs. Although, the paper isn't free. They reference several other papers which they assert talk about OO complexity metrics as well as procedural cognitive complexity,…
The main point still stays, "You are never taught how to build quality software" is wrong, and plenty of Engineering degrees do teach about it.
Re: You are never taught how to build quality software
#405We 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…
Thanks for sharing, I'm reviewing the curriculum for the program [0] and it looks great. Do you know if any of these courses has been opened sourced? It would be great to have access to part of the material. [0]: https://www.ece.cmu.edu/academics/ms-se/index.html .
Re: You are never taught how to build quality software
#406Earlier quoted context omitted.
Fair enough, I was being annoyingly pedantic. [I believe that] it's important to get attribution correct.
To be fair, annoyingly pedantic is the best kind of pedantic. - Futurama (kind of)
Gödel's really was a rather unique mind, and the story of his death is kind of sad.. but I wonder if it takes such a severe kind of paranoia to look for how math can break itself, especially during that time when all the greatest mathematicians were in pursuit of formalizing a complete and consistent mathematics.
Re: You are never taught how to build quality software
#407Earlier quoted context omitted.
+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!
I don't believe this personally, but I bet that many people with MBA's would tell you that this was what their MBA was about.
After the first failed project, everyone agrees that they need a boss without assigned duties. Then in 5th year, we’d have one or two class-wide projects (20-30 people).
This, along with joining event-organizing charities on the campus, where you’d work 3-5hrs a week to build a hundred-thousand-to-a-million dollars event (NGOs on campus, or concerts, or a sports meeting, to each their preferences, but it was the culture). And it wasn’t always a good time together, it’s not flowers all the way down.
I’m only surprised some school might consider engineering without group effort. On the other hand, I deeply deeply regret spending this much time in charities and not enough dating, as I have never been recognized for charity service, and family was important to me.
Re: You are never taught how to build quality software
#408We 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.
And I don't feel is not something that is worth teaching in universities, because it is 90% experience and for me, the point of universities is not to replace experience, just give enough to students so that they are not completely clueless for their first job, the rest will come naturally.
What universities can teach you are the tools that you can use for debugging: debuggers, logging, static and dynamic analyzers, etc..., different classes of bugs: memory errors, the heap, the stack, injection, race conditions, etc..., and testing: branch and line coverage, mocking, fuzzing, etc... How to apply the techniques is down to experience.
In fact, that's what I find most disappointing is not juniors programmers struggling with debugging, this is normal, you need experience to debug efficiently and juniors don't have enough yet. The problem is when seniors are missing entire classes of tools and techniques, as in, they don't even know they exist.
Re: You are never taught how to build quality software
#409Here's my take on testing[0].
I write Quality software. It's a matter of personal satisfaction. Many folks can't really tell the difference between relatively good software, and very high Quality software, but the cost difference can be quite large. We don't get rich, writing top-shelf software.
The issue is, in my opinion, that we don't even produce much "relatively good" software, these days.
I won't get into it. It doesn't win me any friends. I was fortunate, to find a company that shared my values. Many of their processes would absolutely horrify a majority of folks on this site, and it was, quite frankly, often maddening.
But you can't argue with results. They produced extremely expensive kit, for over 100 years, and they are regularly used on the ISS.
[0] https://littlegreenviper.com/miscellany/testing-harness-vs-u...
Re: You are never taught how to build quality software
#410> It will be necessary to deliver software without bugs in time. Seems like a pretty bad premise to start an article on quality software. If you believe you can ship bug free code, it's time to switch careers.
Engineers cannot be responsible for all the vertical stack and the components which were built by others. If somebody claims it is bug free then they have not enough experience. Pretty much anything can fail, we just need to test as many possible cases as possible with a variety of available tools to reduce the chances of bugs.