A few weeks ago I discussed what it takes to become a great developer, that guide was the most popular one I’ve posted on CronDose yet, so I wanted to follow that up with tips on how to stay sharp as a developer.
Before I get into the tips, let’s first drill down what it means to stay sharp as a developer. When I think of the concept of staying sharp images of focused skill come to my mind. From a programming perspective, a sharp developer is one that feels confident working with challenging projects and can calmly adjust to changing requirements.
I’ve mentioned in previous guides that developers never remain at the same skill level. As a programmer you’re either improving or losing your expertise, there’s no middle ground.
So how can you stay sharp as a developer?
Tips to Stay Sharp as a Developer
1. Coding Exercises
First on my list are coding exercises. At the end of the day nothing is going to help you improve as a programmer as diving straight into the code. You may think that working on work or hobby projects are enough to keep your skills sharp. However it’s been my experience that many of the projects I manage for work don’t test my skill as a developer. There are exceptions of course, but much of the coding I do on work projects revolve around application configuration as opposed to algorithm design.
Growing up I was able to watch the baseball players that my Dad coached. These were Major League athletes who were at the peak of their profession. I still remember how they stayed sharp as hitters. Playing in games was not how they improved, games were where they showed off their skill. Instead they became better players by going through drills and exercises that focused on improving specific components of their game.
In the same way we, as developers, need to dedicate time on improving specific elements of our coding techniques.
This image is a a GitHub gist of some coding exercises that I go through regularly. Above each code snippet is a task, and my job is to place the implementation code below the objective. These programming exercises force me to continually refine my skill and find new and better solutions to complex problems.
Example Coding Exercises
Some example questions are:
- Remove strings from an array that start with “system.” – This requires me to work with the array data structure, integrate a Regular Expression matcher, and know how to remove selected elements.
- Convert an array of strings into a hash that has the string as the key and value as the string’s length. – This exercise forces me to understand how the Hash data structure functions, how to use the enumerable Map method, and work with blocks.
And the list goes on and on. I’m continually adding new problems to solve and I try to spend some time each day. Around 30 minutes to an hour working through these exercises. If you are looking for a great list of programming problems check out Project Euler. There you’ll find hundreds of great challenges that you can work through.
2. Teaching Others to Code
Next on the list is to teach others how to code. I was homeschooled growing up and at around age 12 I had to start teaching myself algebra. I initially struggled with learning new concepts and I was getting frustrated. My Mom realized that when I studied by myself I had a hard time understanding what I was reading. But when I explained the lesson to her that my comprehension skyrocketed.
She was teaching all of my siblings, so she couldn’t be by my side all day. So instead she got one of my sisters dolls and sat it next to me at the table. She instructed me to read the lesson plan and then explain it to the doll. At first I thought it was the dumbest idea I’d ever heard. Explaining algebra to a doll, aptly named Big Dolly due to her size, seemed akin to a homeless person talking to himself at a bus stop.
So I did was every 12 year old would do and I ignored the advice… Until I went through my next lesson and realized that I had no idea what I just read. So, after staring at the doll for a few awkward seconds I started to explain the concept to her. Shockingly, by walking through the lesson with the doll I started to understand it! And no one was more surprised than myself. So Big Dolly helped get me through algebra, trig, and calculus.
How Does this Apply to Development?
So how does my weird story about teaching a doll algebra apply to staying sharp as a developer? Well, when I started to learn programming I didn’t pick it up right away. In fact I really struggled with how to build applications. But then I remembered back to my high school math era. But instead of bringing Big Dolly back from the attic I started creating programming tutorials.
It was through teaching others that I started to understand development better than I ever have. In fact, the origins of devCamp and CronDose can be traced back to my desire to improve by own skills by teaching others. So I highly recommend if you’re looking to learn coding or to improve as a developer, teach others and your own expertise will grow.
Next on the list of tips for staying sharp as a developer is reading. I have a membership to Safari Books Online, which is essentially a Netflix for developers. Through that membership I have access to thousands of coding books. On my daily todo list I have around 7-8 books that I go through. Sometimes I read a few small sections and other times I’ll read a few chapters, depending on how much time I have.
Going through development books has helped me continually refine my skills as a programmer and I’m constantly on the hunt for new great books to go through.
Fourth on the list are development newsletters. I try to keep my time very focused. Therefore I limit the number of newsletters that I subscribe to so that I can dedicate time to reviewing each of them when they get published. Some of my favorites are the newsletters from: Thoughtbot and CodeShip.
These types of resources contain comprehensive guides that will help give you a unique perspective on development and how to implement new features.
Last on the list of tips for staying sharp as a developer are tutorials. Whenever I’m learning a new language or framework tutorials are one of my favorite resources for studying. Screencasts are the closest you can get to having an instructor in the room with you. Providing you with step by step guides that you can follow to build applications from scratch.
Thankfully with the growth of the online educational industry there are tutorials for essentially everything that you want to learn.
I hope that this has been a helpful set of tips that will help you stay sharp as a developer, and good luck with the coding!