4 ms·
> I think it's pretty safe to say you'll never get the opportunity to apply category theory during your daily standup meetings Theory tends to bite when someth
by ben509 7y ago
> I think it's pretty safe to say you'll never get the opportunity to apply category theory during your daily standup meetings
Theory tends to bite when something breaks, though.
Performance problems are often explained through computational complexity, or concurrency theory. Strange values can be due to numerical error. If you see something weird in Javascript transformed by Babel, or really any compiler, you might be dealing with graph theory. If there are problems in a databsae, you're dealing with relational theory.
And yes, you can often Google the problem, but you're definitely doing better if you're the person whose answer everyone is searching for.
> That's certainly impressive, though 99% of developers aren't in the business of making high level language design decisions like that.
I think they do, though, because they get an incomplete spec and have to fill in the blanks.
"Agile languages" can be characterized as having concrete types: strings, ints, floats, lists, maps, sets. And the 99% of developers are using these languages and creating data structures using those types, and sharing those data structures, often via JSON.
This results in what I call "data pasta" being shipped back and forth between systems. And those ad hoc structures are effectively codified when they become APIs or are saved in NoSQL systems.
Does a CS degree help with this? I'm mostly aware of the problem because I've done it and then tried to clean it up in systems I work on. So the theory helps, but you need some practical guidance.
What the dichotomy of CS degree or self-taught misses is that the CS degree is aimed at learning the math, and while the math can guide best practices, you don't actually study best practices.
> I don't think college is bad, I think debt is bad
Yeah, I graudated in '03, so debt hadn't blown up. Even if we stop shoveling money into universities, not working for four years is still a massive opportunity cost, and a partially completed degree is worthless, exposing students to a tremendous risk.
And so it makes a lot of sense for people to do bootcamps to get their start in the industry, and regardless of whether you're self-taught or not, it seems like you could benefit from some formal training before you take on a senior role.
My degree had some courses on software engineering, but they were focused on requirements documents and UML diagrams and other high level stuff, which I wasn't going to see for year to come.
So maybe a software engineering course for people with industry experience could go over best practices and justify them through the math.