3 ms·
That's certainly impressive, though 99% of developers aren't in the business of making high level language design decisions like that. I agree though I think it
by sodafountan 7y ago
That's certainly impressive, though 99% of developers aren't in the business of making high level language design decisions like that. I agree though I think it would be very rare to find a self-taught developer that's studied category theory and other high level mathematical concepts on their own. I think Brian Mckenna made some very convincing points with that article.
I don't think college is bad, I think debt is bad and for the vast majority of people entering software development the key is to get things done in a timely and efficient manor, I think it's pretty safe to say you'll never get the opportunity to apply category theory during your daily standup meetings with your scrum team as your managers are trying to meet deadlines for their clients, it's the unfortunate world we live in, if everything was free and nobody had to work hell stay in college your whole life. I wish I had that luxury.
- 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.