My mom recently sharedan article about developing an artistic style via simplificationwith me. While the content of the post focuses on art, I really think the points it made relate to the tech industry as well.
Take the second paragraph: "…what I’m seeing, over and over, from artists who would like a career in art, but seem stuck in first gear: versatility. Generally speaking, people don’t want to know how versatile you are! With very few exceptions, I think you have to specialize for a long time before you can allow yourself the luxury of versatility."
That’s definitely relevant for anyone in our industry. I’ve seen developers (myself included) really struggle to stand out because they go back and forth between technologies trying to fill in whatever role they can find. While this provides short term benefit and is good at exposing the dev to many different areas, it can stifle them in the long run.
Because they’re not spending the time getting to know a particular subject in depth, they’re not providing much value back into the community. Instead of producing, they’re simply consuming. How many personal projects have I failed to complete because I spent all my free time learning a new technology, instead of focusing on completing the project? Yeah, it’s great to learn new things, but I could have produced much more value if I had only taken advantage of what I already knew.
To provide real value, we should focus attention on one area of technology and become a pro at it. Only when we truly understand the technology in depth can we push the limits and contribute our own unique style.
To achieve this, I really like the idea of narrowing down practice to a single item. I’m taking piano lessons and the thing my teacher is having the hardest time with is getting me to slow down and simplify my practice. When I sit down at the piano, I don’t want to play an arpeggio at one beat per minute; I feel like I’ll never learn anything at that snail’s pace.
But the truth is, in order to improve, I have to get rid of the song entirely and focus on styling each individual note. It’s only when I give myself the time to feel and control every movement my body is making that I can understand how to control the sound and create my own style.
It’s the same with art and the same with programming. Take a single problem, focus on it and figure out all the ways it can be solved. Complete the same coding Kata again and again, with a slight variation each time.
By simplifying to a single exercise, you get the basics out of the way, leaving you free to experiment with differences in style. That’s where you can really see the benefits and drawbacks of each approach and understand how changing a single variable can affect everything from readability to performance.