Hacker News new | ask | show | jobs
by overgard 2398 days ago
Depends on the axis.

In terms of working software that is somewhat dependable, we're probably better than ever before.

In terms of using the system resources efficiently? Unmitigated disaster. So. Much. Bloat. Chat clients should never use gigabytes of RAM

In terms of average talent level? It seems like its getting worse every decade. I was talking to some recent CS grads about Turing completeness and they had no idea what I was talking about. How can you have a CS degree and not know Turing completeness? Also so many developers refuse to understand how their tools work. There are so many developers terrified of C. C is warty, but to be frank, if you can't write some system level code you're going to be a weak developer. If you don't understand how your machine works, and you're unwilling to leave the world of HTML and Javascript, you're always going to be a novice

I have a theory about the "10x developer" thing. I think so many software developers are essentially "expert beginners" (https://daedtech.com/how-developers-stop-learning-rise-of-th... ) that when someone comes along with experience and competency they look "10x". But in truth, I think its more that the industry has a lot of 1/10th developers so the 1x guys look like rock stars.

I also think in terms of project management we've gone in a really wrong direction, and the rise of the expert beginner is not unrelated. Early agile had the right mindset, but its morphed into a gross ineffective caricature of itself that operates on a factory metaphor. The expert beginners need all the micromanaging that comes from scrum, and the project managers are more than happy to do it, and the people that know what they're doing get dragged down into it because management thinks every programmer is as bad as the average.

2 comments

> I was talking to some recent CS grads about Turing completeness and they had no idea what I was talking about. How can you have a CS degree and not know Turing completeness?

Having studied CS, I agree that you should know about the concept, but does it really give the normal Software Engineer an advantage in their day to day? Most likely not. It always depends on what you are working on, but the body of CS knowledge is huge and it requires a lot of work to keep all the concepts fresh in your mind if you are not applying them. I'd rather have people with a strong grasp of software architecture, algorithmic complexity, system design and networking protocols. On the other hand a game developer should be strong in other theory areas that they need for the job. Machine Learning engineers have again different focus areas etc.

> There are so many developers terrified of C.

I don't think even an above-average developer can make C work reliably. You absolutely should be terrified of C. And C++. Now, if you had said Rust, or Haskell, I might see a point to what you're talking about.