DEV Community

loading...
Cover image for Software development: 5 career lessons from running ­čĆâ­čžĹÔÇŹ­čĺ╗

Software development: 5 career lessons from running ­čĆâ­čžĹÔÇŹ­čĺ╗

Ismael González Trujillo
I am a software engineer with a strong focus on modern frontend technologies. I've helped build digital products for brands like Google, BBC, NatWest/RBS and NHS.
Ńâ╗Updated on Ńâ╗5 min read

Last year I took up running and I wanted to share some things I learned along the way. Basic lessons, bordering on the self-evident, that can be applied to running, other sports or, why not, career development.

#1 - Starting is the hardest part

At first I couldn't run five minutes without taking a walk break. After years of being a couch potato my body and my mind weren't prepared for this. Starting was going to be hard and I had no other choice than accepting it. But, as it usually happens, I'm not a special case.

Every day it gets a little easier. You just have to do it every day. That's the hard part.

Couch to 5K (C25k) is a beginners 8-week program that starts with a mix of running and walking, gradually building up strength and stamina to fully running 5K.

So I went through the pain of completing the full program and, imagine what... I saw progress! Who would have imagined? Developing a new skill (like running) is a process made of different stages.

The four stages of competence are the psychological states involved in the process of progressing from incompetence to competence in a skill:

  1. Unconscious incompetence: The learner isn't aware that a skill or knowledge gap exists.
  2. Conscious incompetence: The learner is aware of a skill or knowledge gap and understands the importance of acquiring the new skill. It's in this stage that learning can begin.
  3. Conscious competence: The learner knows how to use the skill or perform the task, but doing so requires practice, conscious thought and hard work.
  4. Unconscious competence: The individual has enough experience with the skill that they can perform it so easily they do it unconsciously.

As software developers we go through these stages, not once, but multiple times in our careers. It's a cycle that starts over and over again at different levels. Starting a new job in a new position, new project with a different team, new programming language or paradigm, new framework... They all require us to master new skills.

#2 - Don't compare to others

Once I finished the 8-week C25k program, I started looking at my times and comparing them to my running friends'. Then I started wondering. Why am I so slow?

There's an immediate and easy answer to that question. I had just started running. But very rarely do we just accept this obvious truth. Because... other people who have also just started running are faster than us. Well, the truth is that genetics also plays an essential role in running performance, along with age, exercising history and a myriad of other factors. It would be impossible for you to know how all of them are affecting other runners.

We tend to make a lot of assumptions. But the truth is that reality is way too complex to make these direct comparisons.

But the main reason why you shouldn't compare yourself to others is this one:

Comparison is the thief of joy.

A much more positive approach is to compare with your previous self and focus on your progress.

Career comparison can also be dangerous, even if the original intention is positive. Pay inequality is a big problem for underrepresented groups, not only in tech. Making it visible might seem like a good idea. Trying to get everyone to go public with their salaries, however, starts an infinite loop of misleading comparisons where all the individual circumstances are ignored.

#3 - Set achievable goals

Being able to run 5k was my first goal. Running a marathon wouldn't have been realistic given my fitness level. Setting long-term goals is a good way to improve motivation, but I prefer working towards short-term ones. Some short-term goals I've already achieved include:

These are S.M.A.R.T. goals, as defined by George T. Doran in a paper included in the November 1981 issue of Management Review:

  • Specific (simple, sensible, significant).
  • Measurable (meaningful, motivating).
  • Achievable (agreed, attainable).
  • Relevant (reasonable, realistic and resourced, results-based).
  • Time bound (time-based, time limited, time/cost limited, timely, time-sensitive).

Need inspiration for your programming goals? Have a look at the comments on this post.

#4 - Slow down to avoid burnout

Ok, I can run. But I am very slow so I set a (SMART) goal to run 5k in under 25 minutes by the end of the year. So every time I go for a run, I push really hard to try to do a new PB. This, obviously, doesn't work. Your body and your mind need recovery.

Multiple studies have shown that runners of all ability and experience levels seem to improve the most when they do approximately 80 percent of their training at low intensity and 20 percent at moderate and high intensity.

Feeling drained from pushing too hard is not alien to software developers.

Burnout is, unfortunately, a common phenomenon in our career. It can be defined as a state of physical or emotional exhaustion that also involves a sense of reduced accomplishment and loss of personal identity and is often due to long-term and unresolvable job stress.

Want some tips to avoid burnout? Addy Osmani has you covered.

#5 - Learn from others

Running is a sport that suits introverts and extroverts. A long run is perfect for those who enjoy having me-time. But it's also great as a social activity. You can do it with friends, colleagues or a running club. Even though I lean towards the introverted side of the spectrum and I do a majority of my runs solo, I enjoy running with my colleagues every Thursday at the Potato running club or at my local parkrun (where I also volunteer). Sharing my experience with others has increased my motivation and taught me a lot about running.

If you enjoy the social component of software development there are a lot of ways to keep yourself up-to-date with new technologies, get to know new interesting people and work on interesting projects:

  • Meetups
  • Hackathons
  • Tech talks
  • Open Source community

Some of these social gatherings can even push your performance to unimaginable limits...

Conclusion

Taking up running has made me reflect on basic aspects of career development like the four stages of skill competence, setting SMART goals, the importance of avoiding burnout, or the social aspect of learning.

Think about them. They will help your career in the long run.

Discussion (21)

Collapse
shaijut profile image
Shaiju T • Edited

Good advice ­čśä, People usually advice to have 6 hours of sleep , But do you know how long its advisable to sit before the computer coding ?

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Good point! Burnout is something to watch out for, definitely.

Collapse
banirezaie profile image
BANI

It was so impressive and useful.

thanks for sharing.

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thanks for reading, Bani!

Collapse
storrence88 profile image
Steven Torrence

Great article! Thanks for writing!

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thanks for reading!

Collapse
saramiteva profile image
Sara Miteva

Thanks Ismael, this article is really inspiring! I actually find it very motivating as I'm struggling to prepare for a half-marathon these days :)

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thanks Sara! I'm preparing for a half marathon too! ­čś▒Let me know how your training is going ­čÖé

Collapse
saramiteva profile image
Sara Miteva

Will do! Still stuck on 10 km tho :(

Collapse
artoale profile image
Alessandro Artoni

Very inspiring, worth a couple of re-reads :)

Collapse
ismaelgt profile image
Ismael González Trujillo Author

­čśë

Collapse
joshpuetz profile image
Josh Puetz

This is amazing advice, thank for sharing! This mirrors my own experience starting CrossFit: it's hard, and hurts, and gets easier.

Collapse
samuelemattiuzzo profile image
Samuele Mattiuzzo

Thanks Ismael, it's amazing to see that you made this connection and was able to put it into words!!!!

Collapse
ismaelgt profile image
Ismael González Trujillo Author

­čśë

Collapse
murrayvarey profile image
MurrayVarey

Yeah, great quote.

Collapse
murrayvarey profile image
MurrayVarey

Awesome post. Thanks Ismael!

Running has taught me so much -- the feeling at the end is worth the struggle.

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thank you for reading!

Me too. And the lessons learned can be applied to many other things in life :)

Collapse
mx profile image
Maxime Moreau

Hi Ismael,
Really nice written, thank you. Specially loved the "four stages of competence" :)

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thanks for reading, Maxime ­čÖé

Collapse
ismaelgt profile image
Ismael González Trujillo Author

Thank you :)