The Shockingly Simple Secrets from The Pragmatic Engineer
I am always on the lookout for excellent developer wisdom. A few months ago a friend recommended checking out the Pragmatic Engineer. Gergely Orosz shares his learnings.
I asked him about his favorite items to share, and he mentioned the following article.
Read
Gergely and I agree on this. Developers must read. “Take the time to read two books per year on software engineering.”
That is a nice minimum requirement. Plus there are numerous other things to read about. Networking and databases to name a few.
Learn
I enjoy learning. His next piece of advice got me excited. Gergely shared how we need to learn a language in-depth.
Learning the language I used at work in-depth was one of the best decisions I made. At my first workplace, this was accidental and had to do with the senior developer inspiring me. However, this knowledge became an advantage both at work and when interviewing for other jobs
I did this with my Java skills. We each need to find a level of mastery. For some skills, we can just learn surface-level knowledge. Others require a level of depth.
Refactor
Early in my career, I remember developers talking about refactoring. I wasn’t quite sure what that word meant. Then I saw the seminal book Refactoring: Improving Design of Existing Code on a bookshelf.
They define it as “Refactoring is a controlled technique for improving the design of an existing code base.” I would liken it to the way a chef cleans and organizes their kitchen. It makes the next meal that much easier.
Gergely said how he started doing large refactorings. Then switched to doing smaller ones. Likewise, learning the tools of refactoring too. He said, “I realized I was afraid of refactoring as I missed both the practice and the tools to do this well.”
Pair
He also recommends pairing up. Two heads are better than one.
I feel like pairing is out of style these days. When I started, both Extreme Programming with continuous pairing, TDD, and mob programming were popular things to do. Some of my biggest professional leaps came after pairing with people. These leaps were more significant than reading any book.
As I learn new technologies, pairing is a wonderful way to transfer knowledge.
Teach
My mother was a teacher. She would work with young children to learn the basics. Occasionally, she shared stories of how difficult it was for some to learn.
A few years ago I was allowed to teach mainframe developers how to program in Java. It gave me a greater appreciation for my mother's career. Each student had different challenges.
Gergely learned this wisdom by presenting at conferences. At first, he said he wasn’t very good. Each time he would learn and build his skills and understanding.
Every experienced developer I have reached out to shares great suggestions. Gergely Orosz is no different. Keep reading and learning. Once you have built momentum refactor your code and teach others.