The following is a transcript of the latest episode on the Professional JavaScript podcast.
Tagline
Hey everyone and welcome to the sixth episode of Professional JavaScript, the podcast for learning how to grow as a JavaScript developer in a professional environment where the problems are greater than just another todo list tutorial.
Each week, I, Michael Mangialardi, will be sharing what I’m learning as I write JavaScript code on a professional team. I’ll cover tips, tricks, technologies, and other goodies that you don’t always get when consuming other online resources.
Today’s Episode
In today’s episode, I’ll be discussing how boost your energy and grow your professional skills by changing things up project to project.
Introduction
Back in college, I was a competing powerlifter. Weighing in at 181, I was able to squat 600 pounds, bench 400 pounds, and deadlift 655 pounds.
Other than good genetics that gave me a stocky frame, an athletic upbringing, and an incredible amount of passion, discipline, and hard work, I attribute my success to Daily Undulating Periodization (DUP).
The gist of Daily Undulating Periodization is that it pushed for repeating compound lifts (weight lifting exercises that work your entire body and compose the major lifts of power — such as squat, bench, and deadlift) multiple times a week.
In contrast, many powerlifters only do lifting sessions that include compound lifts targeting a specific muscle group.
An example of this would be squatting on Monday (targeting your legs), benching on Wednesday (targeting your chest), and deadlifting on Friday (targeting your back and hamstrings).
In a powerlifting routine like that, you target a specific muscle group once per week.
In contrast, a Daily Undulating Periodization routine may consist of squatting and benching on Monday, deadlifting on Tuesday, and then squatting, deadlifting, and bench on Friday. Every lift targeting a specific muscle group would be done twice a week — doubling the frequency that occurs in a traditional routine.
Studies and my experience have shown that this alternative, higher-frequency routine allows you to increase strength at a greater rate.
The downside is that doing the same lifts multiple times a week removes the edge of the traditional routine where every lifting session in the week is a unique experience as they each have a different focus to utilize a particular compound lift.
The workaround that I found successful for my DUP routine was to use a different rep scheme on the workout where I repeated a lift for a specific muscle group.
So, while on Monday I would squat for 4 sets with 9 repetitions during each set, on Friday I would squat for 3 sets with 3 repetitions.
By changing the goal for how much and how long to squat, each squatting session would be unique, providing a mental boost.
Let’s talk about how these principles can be applied to our work as professional JavaScript developers.
Body
The principle behind my Daily Undulating Periodization routine was to change things up whenever I was going to do a repeated task.
As a professional JavaScript developer, you will certainly have a repetitive responsibility to work on projects where you add features to an application.
Now, there may be plenty of energy to do this repetitive work so long as the features that are being developed are interesting and have a clear connection to the success of a product and the happiness of a customer.
As ideal as it would be to only work on features you are energetic about, they are bound to plenty of projects to work on that will be not quite as stimulating.
Especially as you become familiar with a role, the repetition of adding features through projects will become tedious.
Hopefully, you find yourself on a team that recognizes this tendency and helps fill in the gaps for you.
Even if this is the case though, you will need to take initiative to address the repetition yourself.
So, how can you take initiative to address the repetition of adding features to an application through projects?
Well, like my powerlifting sessions, you will have to changes things up every time you work on a new project.
Let me provide an example.
Ok, so you’ve been tasked with adding a new feature to your application in an upcoming project.
You would love to start using React Query to manage the data layer of your code. You’ve been itching to learn this new technology and work with it.
So, you make it a goal to have learned React Query and implemented it by the time you finish the upcoming project.
To make this work, you include the additional work to learn and implement React Query in the project estimate.
Working on this new technology as you do the repetitive task of adding a new feature to the application will boost your mental energy and help grow your professional skills.
Now, you might question whether it is ok to include working on new technology as it grows the estimate.
Well, it is up to your dev manager to communicate to you whether the estimate is acceptable or not.
At the end of the day, you are just responsible for turning in your features on time.
Let the manager communicate to you whether that responsibility is being compromised by your estimate.
You should have confidence recognizing that a manager should have your best interest, understanding that implementing new technologies inspires developers, boosts morale, and improves the code.
In the case that there are concerns with the provided estimate that includes working on new technology, you will just have to update the scope of your work, saving time where possible.
In other words, the worst that can happen is that you cut scope.
Also, the productivity sparked by the energy to work on new technology may make up for the cost required to implement it.
For any project, you can follow the steps in this example.
First, you decide on something new to work on.
Second, you make it a result of the project, factoring the additional work into your estimates.
Third, you present the estimate with your manager and negotiate the scope as needed.
In addition to implementing new technology, here are some other ways you can change things up from project to project:
- Implement a new coding pattern/design (i.e. functional programming concepts)
- Implement a new productivity hack (i.e. use the Pomodoro method)
- Implement a new way to develop (i.e. do pair programming with a teammate)
- Implement a new process (i.e. talking about the solution with a teammate before writing code)
Conclusion
The list of ideas can certainly be expanded, but I hope this provides a framework for boosting your energy and growing your professional skills as you go about the repetitive tasks of your role.