I took a bunch of time and focused on helping coders instead of coding myself. I came to coding naturally and never thought of it as much more than intellectual self-stimulation. It was a lot of fun, and there is some value to it -- but it tends to get a lot more attention than it should simply because it feels so good to do it well. Successful startup founders say that coding is no more than 2-3% of the total effort of providing value to people. I've found nothing to prove that false; and I've seen a lot of companies and startups.
Recently I'm back to focusing more on coding. I find two things most interesting:
1. As I get older, I struggle with attention span and short-term memory more, but I have greater ability to see deep and widespread cross-cutting patterns. It's probably an even trade.
2. I'm not so sure that smart people should be coding. The more I think about it, the more convinced I become that good coding is managing cognitive complexity. You're always trying to make it work, then make it easy to understand and maintain. When I think back on all of the multi-billion-dollars I've seen in project/program disasters, none of it was because the problems were hard. They were all a combination of poor customer/user participation and smart folks taking a problem of n complexity and making it into a problem of n^n complexity. Usually the two were related: tech was constantly used as sort of a band-aid to fix people problems. It never worked, but it kept a lot of coders employed for a long time.
Hopefully this wasn't cynical. I love coding and I love making useful things for people. I have a deep passion for helping developers lead happier and more productive lives. But I also feel an obligation to be honest about what happens. It looks a lot different at 50 than it did at 25.
Think about it. Seriously, would you want somebody telling you that you wasted three years of dev time and could scrap what you have and roll something useful to production in a month? I've done that several times in my career, at various ages, and nobody ever liked hearing it. As I got older they liked hearing it even less. In this business, inexperience, raw intelligence, and enthusiasm are the things we reward. They come mostly with younger folks.
Tech development is amazing and incredible because we create our own realities. But part of that awesomeness is the fact that left alone, we create realities that look like ourselves. It is the nature of the work.
> 2. I'm not so sure that smart people should be coding.
It depends on their attitude. The smarter the better, IMO, as long as they understand that the code they're writing isn't for them. They can go hack on some personal project if they want to flex their "I'm so clever" muscles, but if they're writing commercial code, that code is for the dumbest of the dumb who will ever have to maintain it. If someone can focus their intellect towards making their code clear and simple then great.
Of course, as you say, someone who's competent but has a slightly humbler intellect will just automatically write simpler code.
Recently I'm back to focusing more on coding. I find two things most interesting:
1. As I get older, I struggle with attention span and short-term memory more, but I have greater ability to see deep and widespread cross-cutting patterns. It's probably an even trade.
2. I'm not so sure that smart people should be coding. The more I think about it, the more convinced I become that good coding is managing cognitive complexity. You're always trying to make it work, then make it easy to understand and maintain. When I think back on all of the multi-billion-dollars I've seen in project/program disasters, none of it was because the problems were hard. They were all a combination of poor customer/user participation and smart folks taking a problem of n complexity and making it into a problem of n^n complexity. Usually the two were related: tech was constantly used as sort of a band-aid to fix people problems. It never worked, but it kept a lot of coders employed for a long time.
Hopefully this wasn't cynical. I love coding and I love making useful things for people. I have a deep passion for helping developers lead happier and more productive lives. But I also feel an obligation to be honest about what happens. It looks a lot different at 50 than it did at 25.
Think about it. Seriously, would you want somebody telling you that you wasted three years of dev time and could scrap what you have and roll something useful to production in a month? I've done that several times in my career, at various ages, and nobody ever liked hearing it. As I got older they liked hearing it even less. In this business, inexperience, raw intelligence, and enthusiasm are the things we reward. They come mostly with younger folks.
Tech development is amazing and incredible because we create our own realities. But part of that awesomeness is the fact that left alone, we create realities that look like ourselves. It is the nature of the work.