So as I've mentioned before I enjoy playing ping pong. I'm not that great at it, but I enjoy working on new skills. I also coach a couple of people on how to improve their game. The reason I'm the one doing the coaching is not due to my incredible skill, but rather due to my willingness to coach.
The other day I was coaching one of our interns who happens to be a woman. Now, she did not have a lot of table tennis experience at all which is an amazing blessing for a coach, because I didn't have to force her to unlearn bad habits. She also doesn't have an over-abundance of athletic talent (this is not an insult), by this I mean that she isn't overcompensating for bad technique with fast reaction time or strength.
What we worked on was the very basic fundamentals, and I can tell you she picked up way faster than I did because she didn't have a bunch of sloppy techniques that work some of the time or the athletic talent to compensate. She just did the clean techniques over and over and began to ingrain those good motor patterns. I can tell you that in 20 minutes her game improved at least 200%.
Talent can be a hindrance.
This is a pretty common pattern I've witnessed in coaching, that with a physically technical skill women will focus on technique immediately because they don't have the extra strength to just push through. Men will do it sloppily until they reach a stalling point, and only then will they be open to focusing on technique. The hard part is that depending on the person they may have already invested a lot of time into their existing methods, and that makes change hard. Some, if they are dedicated to improvement, will seek out assistance on improving. Others will just keep grinding away the same as before and remain stuck in the same place. The rest will just quit.
There are many correlations in software development, though it's not gender based. There will be developers that have a talent for cowboy coding that will just put in the hours and smash out working code. They don't see any need to improve their skills because they can muscle through it and create "working" code. The problem with that method is that "it works until it doesn't". Once you get a big and complicated enough projects, brute force won't work. At that point, just as above, you can improve, flail or quit.
Even you don't know everything and neither do I.
In coaching my intern in ping pong I was extremely pleased that she listened to me attentively and tried to follow my coaching to the best of her abilities. She didn't argue or immediately go back to doing it her old way. She just tried the new techniques as best she could. Then later in the day she went and practiced it on her own to further build her skills.
To get the most improvement quickly, you need to be open to hearing what your mentors/instructors/coaches have to say. You don't need to take it as gospel, but be open to the idea that you don't know everything and that there might be a better way.
Now I'm the type of coach that basically said this is the foundation of the technique, but you will need to find your own style. However, what I was really working on was the principles at the foundation of the techniques. A backspin serve works pretty much the same no matter how you hold the paddle, what angle you strike it at, foot position etc.
In development, we have things like SOLID, Clean Code, the DRY principle, and design patterns not to mention all the *DD paradigms (TDD, DDD etc.) this list is obviously not inclusive. Taking the time to learn and practice these things is hard and if you are anything like me you will not be good at it at first. The trick is you need to check your ego, be willing to be a beginner and be ok with failing (in the short term).
Just like ping pong, learning the new technique will be hard and you may need to unlearn some bad habits, but learning a consistently repeatable sharp technique will improve your coding game a great deal. Fundamentally solid techniques work as a ladder extension, where working harder at sloppy techniques works as a ceiling. You can only work so many hours, even if you are 19 years old without a family or a significant other there is still only 24 hours in a day. Also, if you ever do get other responsibilities you won't have the tools to keep up. Additionally, at some point, you might need to maintain your code and all that technical debt will slow you way down. These are the things that make it a ceiling.
**Now if you happen to be one of the talented people out there, don't fret, there is good news for all you, "Hard work beats talent unless talent works hard". So, if you are in either camp or somewhere in between the recipe works the same. Don't get complacent, seek out the best instruction you can find AND listen to it and then put in the work to improve.
No comments:
Post a Comment