The secret to getting good at anything with minimal effort
I never intended to go into software during high school. I thought I was going to be a doctor, yet on the side, I managed to amass a good amount of experience in all sorts of technologies. While learning all of these things, I never really tried. How is this possible?
As a pre-health student, I took a class on Behavioral Neuroscience. (It continues to be my favorite college class of my career, despite my major change.) One of the topics we covered happened to be learning environments.
In one experiment we covered in class, rats were placed in 3 different environments: one standard, one impoverished, and one enriched.
The rats that were raised in the enriched environments made many more neural pathways than the other two. They were able to learn more because they were exposed to more stimuli.
I usually give two dates as the time I began programming: in elementary school, when I discovered that you could create websites for your virtual pet, and in high school, when I found the modding community for a game called Minecraft.
In elementary school, I learned everything on my own. I had a book on HTML 4 by Wendy Willard and scoured Google for anything I could find about HTML, CSS, and PHP. I had no guidance and basically copied and pasted scripts to make things work. I had some okay projects out there, but overall, I didn’t really have understanding of how things worked.
Things changed when I found Bukkit, a Minecraft modding community. From the forums and IRC, I met some really cool people online and created games with them. We would code together all night while sharing different ideas, techniques, and technologies.
I learned even more when I found Spout, an open source Minecraft clone. I joined a “team” of developers called VolumetricPixels, which over time evolved into a sort of support group for people to talk about their projects. We discussed things ranging from Rust to managing a Jenkins CI server. The group taught me more than any of those W3Schools-like websites taught me, as I was put in an enriching environment surrounded by people who loved to code.
Even better was the opportunity to contribute to the Spout project. I learned so much about 3D rendering and game engines from the incredible mentorship I received from more senior members of the community. I had people that I could talk to that would tell me where my shortcomings were, and I would improve rapidly because of it.
VolumetricPixels set me on a path to become pretty good at programming, and I didn’t even realize that I was working. I was just playing around on the computer making games! The people I would talk to every day helped me realize what I could improve on, as everyone in the group had their own strengths and weaknesses.
The people you talk to the most generally influence the way you think and do things, so it was no surprise that I would become a person who loves programming after spending so much time talking to other teenage developers.
Every single person you decide to spend your time with influences your interests and decisions.
"You are the average of the five people you spend the most time with." -- Jim Rohn
Your choice of friends and the people you surround yourself with can either make or break your success. Pick people whom you know will help you become better in what you want to do in your life, and the knowledge and “discipline” will follow.
I say “discipline” in quotes because you do not feel like something is a chore when all your friends do it for fun. You don’t think of playing sports as a chore if all of your friends are doing it, despite it being exercise. Likewise, if all your friends are passionate about something and have fun doing it, you will absorb that energy and be able to love what they do as well.
Hence, the secret to getting good at anything is obvious: have fun doing it and you won’t notice even how hard you’re working. The results will come in without you even realizing it.