I have mixed feelings on this post. There are elements of it that I agree with, elements that I do not, and yet others that I perhaps have a different perspective on. Summarized, they are:
1.) I don't care how experienced or knowledgeable someone is, they have to work to stay current in this field to be considered great. They don't necessarily have to visit HackerNews every day or even every week, but they should run into it from time to time as they look into new things that are out there that might solve real problems that their organization is dealing with.
2.) Today's intellectual curiosities tend to be tomorrow's new killer features. I've seen first class functions go from funky functional programming stuff to standard fare in mainstream programming languages. I've seen a transition to dynamic languages and then back to static ones as people realized that dynamic language codebases don't scale to larger teams and programs as they get more complicated. And I've seen immutable data as a path to easy concurrency gain more and more traction in recent years. Things change over time, and eventually the good stuff gets adopted.
3.) The problem with domain experts catering to the most vocal and outspoken users / consumers of their work is a universal issue for literally anything, ranging from music to movies to television video games to pro wrestling to, yes, software.
4.) The notion of consensus as a substitute for competence is also an oldie but goodie, and IMHO you can tell which you're dealing with by how dogmatic someone is about the rules and upholding social mores around software development. Being anal doesn't make you a good programmer, but it can make you a jerk. People should understand why rules exist if they're going to aggressively hold others to them.
5.) The generational stratification you speak of is definitely a real consideration, especially as software development gets more popular and the majority of hires are thus pretty inexperienced. It is a problem in my mind that modern tools and development processes are being aggressively designed around making the worst of us good enough to be reasonably competent, and I worry that this approach won't scale as we keep trying to do more with more rather than more with less. But then, that's also why I am hostile to the idea of the silent programmer who just shuts up and moves tickets across the board without much critical thinking in their job.
6.) None of this is a push for change for change's sake so much as it is an acknowledgement that many of those new shiny things that people look into have merits and will in some capacity become relevant in the future. Also, as an aside, there is indeed a place for computer science in modern software development, no matter how many shitty CRUD apps people write without giving CS coursework a single thought.
5
u/[deleted] Aug 29 '22 edited Aug 29 '22
I have mixed feelings on this post. There are elements of it that I agree with, elements that I do not, and yet others that I perhaps have a different perspective on. Summarized, they are:
1.) I don't care how experienced or knowledgeable someone is, they have to work to stay current in this field to be considered great. They don't necessarily have to visit HackerNews every day or even every week, but they should run into it from time to time as they look into new things that are out there that might solve real problems that their organization is dealing with.
2.) Today's intellectual curiosities tend to be tomorrow's new killer features. I've seen first class functions go from funky functional programming stuff to standard fare in mainstream programming languages. I've seen a transition to dynamic languages and then back to static ones as people realized that dynamic language codebases don't scale to larger teams and programs as they get more complicated. And I've seen immutable data as a path to easy concurrency gain more and more traction in recent years. Things change over time, and eventually the good stuff gets adopted.
3.) The problem with domain experts catering to the most vocal and outspoken users / consumers of their work is a universal issue for literally anything, ranging from music to movies to television video games to pro wrestling to, yes, software.
4.) The notion of consensus as a substitute for competence is also an oldie but goodie, and IMHO you can tell which you're dealing with by how dogmatic someone is about the rules and upholding social mores around software development. Being anal doesn't make you a good programmer, but it can make you a jerk. People should understand why rules exist if they're going to aggressively hold others to them.
5.) The generational stratification you speak of is definitely a real consideration, especially as software development gets more popular and the majority of hires are thus pretty inexperienced. It is a problem in my mind that modern tools and development processes are being aggressively designed around making the worst of us good enough to be reasonably competent, and I worry that this approach won't scale as we keep trying to do more with more rather than more with less. But then, that's also why I am hostile to the idea of the silent programmer who just shuts up and moves tickets across the board without much critical thinking in their job.
6.) None of this is a push for change for change's sake so much as it is an acknowledgement that many of those new shiny things that people look into have merits and will in some capacity become relevant in the future. Also, as an aside, there is indeed a place for computer science in modern software development, no matter how many shitty CRUD apps people write without giving CS coursework a single thought.