Thoughts on Becoming a Better Developer
I’ve been thinking a lot about how I can improve my productivity as a technical startup founder. “Work smart, not hard” is a constant, subconscious whisper. How often do I actually practice that idea? What does that even mean? Where do I draw the line between thinking too much or too little?
I’ve always wanted to play ball at the same level Facebook employees do. People like Dan Abramov, Andrew Clark and Lee Byron don’t just sit down and start writing code.
They identify a problem, think through it, brainstorm a few solutions and some implementation ideas for the solutions before writing any serious code. The evidence is everywhere. Every article starts with some form of “this was a problem and this is how we fixed it”.
I see them as the professional athletes of our world. Their stadium is Github. Their playing fields are Issues & Pull Requests. The bulk of the decision-making process happens right in front of you. You don’t need to wait for an announcement, just follow the pull requests. You can experience fumbles, touchdowns and the superbowl. Remember IsFiberReadyYet?
I’ve clearly drank the Facebook Koolaid, but these athletes exist outside the Facebook ecosystem as well. They play for themselves, big and small companies all over the world.
Being able to watch the people at the highest level practice & play is truly an exciting time in our lives.
So now what’s stopping me from becoming a professional athlete?
Civil engineers don’t show up at the job site and start digging. They research, plan and review for months before getting the stamp of approval to start digging.
Unlike civil engineers, we’ve been equally blessed and cursed with the privilege of writing code anytime, anywhere. There’s nothing stopping us from showing up at our own job site and digging to our heart’s content.
But what are we building and what are we digging up? This is where I should work smart:
- Am I solving a problem?
- Is this going to actually add value to my life?
- I’m not actually doing this for the tweets, am I?
It’s so tempting to sit down and start writing but you may find yourself taking 3 steps back sooner than you think! How will I interact with this function?
I think the best people in our industry are the ones that can think through a problem and solution before writing any code**.
It’s tempting to sit down and open up Atom and jumping right in but how often do you go 3 steps back just because you didn’t spend 5 minutes thinking through the data flow?
Give it hell. Be the best person you can be, whatever that means for you.