The Optimist's Guide To Coding
Scrolling through my twitter feed, I saw Tweet about how software engineers seem to become less happy over time with coding. Personally I’ve been coding stuff in some capacity for a little over 22 years and still enjoy it just as much as those early days. It made me think about why coding is still fun and seemed like a great opportunity to share some of the things I do to keep it that way.
Looking at my twitter feed, it feels like the longer you've been coding professionally, the less you actually like coding.
— Saron (@saronyitbarek) December 29, 2017
For people who've been coding for 10+ years, is this how you feel?
Dedicate “Work” Time For Learning Every Day
I spend 30-60 minutes at the start of each work day either learning something new or writing about something I recently learned. It is important that this be time set aside from working hours rather than your personal time. I keep finding over and over that a skill I learned last month or last year ends up being super useful today. It is more of an investment and takes a bit for it to pay off. Some examples of learning projects I’ve done in the past:
- Build a hello world React app
- Implement merge sort in an unfamiliar language
- Take a storytelling class on Kahn Academy
Surround Yourself With People Who Are Excited
Excitement tends to be infectious. When you’re around a group of people who are enthusiastic about what they’re doing, it tends to rub off. Sometimes it is the little extra push that keeps you motivated to get through a challenging problem. Often times these end up being the people who inspire you to learn something new - providing ideas for the 30-60 minutes of daily learning time.
Be A Mentor
Few things in software are as rewarding as guiding others through their software engineering journey. Pairing with teammates helps your teammate learn while reinforcing your own skills. More often than not, your teammate will surprise you with the way they solved a problem or used a library you’ve never seen. Most importantly you’re helping someone else level up their skills and grow as an engineer. Over time you’ll end up being surrounded by people who want to learn and grow!
Stop Doing Things That Aren’t Working
Over the years, ideas around software come along that seem great at first glance but end up doing more harm than good. One example is the “Software Craftsman” concept. I found that always striving for producing high quality software was making me think more about how to structure the code than the problem. I was over thinking things and spending too much time on problems where a quick and hacky solution would have been enough.
As a general trend, ideas that always push farther into the perfectionist mindset seem to decrease my levels of happiness. When I started spending more time thinking about the level of quality a project needed, I felt a sense of purpose in why I was coding with high quality – I could justify what I was doing. Done is better than perfect but perfect is never done.
…
Keep building things that interest you and keep learning! The world has enough consumers but never has enough builders and doers.
Have some thoughts on this? Reach out to me on Twitter: @hjharnis