This is why I can't understand age discrimination. We oldies have a wealth of experience which we can turn to. How can a new programmer have a "gut feel" which should be listened-to when there is little to no experience? The oldies "gut feel" is real because it is based on true experiences; either direct experiences or experiences of (say) a colleague.And most of the experiences that I have, for example, are largely independent of a particular language or environment, they are more about the correct way to structure 'things' within programming regardless if it's GO or COBOL.
LyndsySimon|9 years ago
It seems to me that developers go one of two ways as they gain experience - they either become set in their preferences and ideas and become resistant to change, or they consciously suppress that instinct and realize their preconceptions may be incomplete.
I try to be the second type.
For example: I have been writing HTML/CSS/JS for around fifteen years, and have established a strong pattern for separating structure (HTML), presentation (CSS), and behavior (JS). There are obviously instances where these barriers are crossed but those should be the exception rather than the rule. When I first picked up React, I was appalled by the mixture of the three. Using inline CSS is a huge code smell to me, yet that seems to be the convention in React.
The other developers out there who created React and who use it idiomatically are not morons. Instead of trying to make React fit the way I want to do things, I set aside my "gut feeling" and follow the convention. I already know plenty about the type of debt that can be incurred by using inline CSS, so I watch for that to begin to accrue. If I start to run into those issues I can raise the alarm and refactor before it gets to the point where doing so would be a prohibitively complex undertaking.
My point is, you can find a lot of value in that gut feeling without allowing it to control you.
I'll even go so far as to say that my "gut feeling" is one of my greatest assets. If code smells to me and it costs very little to satisfy that sense, I refactor it. I don't have the space in my working memory to remember all the rules and guidelines I've developed over time much less the reasons for each of those.
Now, if I'm doing a code review, that's another story. Then I'll note that something has a smell, describe how I identified that smell, and describe my justification for it. I see code review as an opportunity to transfer that knowledge.