Being Humble is Important
I want to talk (briefly) about why being humble is an important aspect of being a developer in the modern world.
Take it from a 50 year old programmer
One of the people who work with my company is a 50-something programmer, who's been doing this work for a very long time, and is mostly self-taught. (Maybe even entirely.) Recently I got the opportunity to sit down with this person for a one-on-one discussion, and his mentality and actions really put things in to perspective.
To give you some background information: this meeting was a discussion on some systems that he built which we'll be taking over shortly, we were going through a lot of the code and trying to make sure that we understood the flow of the software. It wasn't particularly confusing or disheartening, but there were some questions that I thought to myself as we were reviewing it, and thought "boy this part could really be done better."
This is the wrong mentality. Recently, it seems like society (especially the United States) has become very centralized on the idea of finding and pointing out other person's flaws, especially during a technical review. It's much easier to say "this is wrong" than it is to say "I like how you did __". It's much easier to put someone down than lift them up.
I'm telling you this because this particular gentleman changed my aspect on software engineering, as we were going through some of this code (which he had been the only maintainer of for a decade, literally), he was commenting to us out-loud, things such as the following:
I know there's a better way to do that now, but when I wrote this I only knew how to do it this way.
Now this wasn't prompted, we didn't point out flaws in his code, we didn't ask "why is this _ instead of _?", we were just making sure we understood the broader picture. He felt the need to tell us that, which means he probably felt somewhat threatened by us.
The biggest mistake you can make is to be rude or aggressive towards your own camp
This is so much bigger than we think. For a seasoned developer to feel threatened enough to have to preemtively defend himself in that manner is a tragedy. And I won't lie: this is my fault, we had a similar sit-down with this same person several months ago and I had pointed out some things that could have been done better. This is the wrong thing to do.
A colleague of mine on Twitter recently quoted and sed replaced and effectively coined the following phrase:
If you comment on someone's code, especially a junior dev, I expect you to say something nice, even if you have valid criticisms too.
It's easy to make people (especially junior developers) feel bad about the code they write, it's much harder to point out the good things. Just do it, swallow your pride (I know I have recently) and tell them what you liked, no matter how big or small.
I really liked the name you used for this, it actually makes the intent extremely clear.
Don't be sarcastic, mean it.
Don't worry, this post won't interrupt our continued adventures tomorrow, I'm going to be posting the technical articles on Monday/Wednesday/Friday, and non-technical articles (if I have any) on Tuesday and Thursday.