DEV Community

Zac Haluza
Zac Haluza

Posted on

Time Management for Self-Taught Coders

In this post, I’ll share a few effective time management strategies I’ve used through my self-taught coding journey. I’d like to hear your thoughts about time management in the comments!

A big part of being a developer is juggling priorities. This is true whether you’re working professionally or are looking for your first job.

If you’re self-taught, like me, you’ve been doing this since day one, managing your own schedule and your own curriculum.

As a self-taught (or is it self-teaching?) coder, you have to balance your time along with the new skills you need to learn and the current skills you need to solidify. And it’s really hard to get the balance right.

It’s even harder if you work a full-time job (like I do), or if you have kids, or if you have any other commitment that requires you to devote chunks of your day to non-coding priorities.

When I started coding, I tried a few different time management strategies, with varying degrees of success. I believe that each of these methods can be very helpful for up-and-coming coders, especially if you tailor and combine them to fit your personal learning style, daily routine, and skill level.

Feel free to share your own time management strategies in the comments! While this post is geared toward self-taught coders (primarily because of my own self-taught background), any thoughts on time management are welcome!

Strategy 1: Journaling

Very early into my coding journey, I started journaling my progress. After learning about the 100 Days of Code Challenge, I created a private GitHub repo and started recording my daily progress. I would write about what I learned that day, my thoughts about my progress, and anything else related to what I’d done that day.

As a beginner, I found it extremely helpful. It was really encouraging to look back a week or two and see how far I’d come since then. I’ve been coding for almost a year, and I still do my best to keep a daily journal, although it’s not my primary focus.

Strategy 2: Timekeeping

Once I had a decent grasp of the basics of HTML and CSS, I started balancing my time between coding static HTML/CSS layouts and learning the basic syntax of JavaScript. I used an app called Toggl to log my time for each activity. Toggl would tell me how long I had coded that day, and it would also tell me how much time I'd spent on each activity.

However, it wasn’t long before I had too many tasks to balance. I was building apps in React, learning Node.js and Ruby, and brushing up on my existing front-end skills. I needed a new system.

Strategy 3: Scheduling

Scheduling is by far the most effective strategy for me. I started self-scheduling a year or so ago, when I was studying for the FSOT (the Foreign Service Officer Test for entering the US State Department). I ended up passing the FSOT (although I decided against moving further ahead for a whole slew of personal and political reasons that I’ll omit here), so it certainly worked for me.

Every day, I wake up to a pre-written schedule of what I have to do that day. I don’t have to worry about timing myself. I just have to sit down in a chair and code for each block of time. It takes a lot of the worrying and guesswork out of my earlier strategies and adds a comforting framework to my studies.

Recently, I’ve split my mornings and evenings into chunks of 35 minutes. In my own variant of the Pomodoro method, I’ll work for 30 minutes and break for 5. Then I’ll switch on to the next task.

For instance, my schedule after dinner might look like this:

  • 5:30-6:00 - Redux practice
  • 6:05-6:35 - Dev.to blogging *(hey!)*
  • 6:40-7:10 - Leetcode grind
  • 7:15-7:45 - Node.js course
  • 8:00-9:00 - Exercise (Alotting time to stretch, shower, etc.)

And so on. Yes, I eat dinner way too early.

As someone who’s actively looking for a development job, this strategy helps me make sure I’m balancing my time among all the different skills I’m working on. And as it so happens, I have a lot of skills to work on.

Your goals are probably different, so you can tweak this last strategy in a few different ways. For instance, you could increase the amount of time for each interval. You could merge time blocks if you’re working on a more intensive project, or if you’re making insane progress on one task. For instance, I had a major burst of inspiration for this post, and instead of devoting a single 30-minute block to writing, I rewrote and finished the whole thing in an hour!

Closing Thoughts

These are three time management strategies that have worked for me. Right now, I’m obsessed with scheduling, and I expect to continue refining this particular strategy with practice. I'd also love to hear about the time management strategies that have worked for you on your coding journey.

In my experience, success as a developer comes down to three main factors:

  • Identifying your goals
  • Putting in the effort
  • Managing your available time

These factors are symbiotic. Once you’re aware of your goals, you can decide how you want to split your time. If you’re working hard toward your goals, your objectives will adjust, and your personal schedule will also adjust. But in many ways, efficient time management is the hardest to implement properly, and it’s also the most important.

Top comments (7)

Collapse
 
angelica203 profile image
Angelica Cruz

The article was very helpful. I can use some of these strategies to work towards my goal. Being a mom my Time is limited, But i do utilize the time they all in school. I try to Balance everything out that i want to work on when im kid free. So writing out a schedule in the beginning of the week, helps me micro manage time. So once again thank you.

Collapse
 
motilola profile image
Ola

Very helpful tips!

Collapse
 
zhaluza profile image
Zac Haluza

Thanks!

Collapse
 
aortizoj15 profile image
Alexis Ortiz Ojeda

Thanks for the article Zac! These are great tips that I will start applying right away!

Collapse
 
zhaluza profile image
Zac Haluza

Awesome! Glad they're helpful!

It can be easy to just code when you feel like it, but setting a schedule (and sticking to it) is a really effective way to chip away at all of your goals without neglecting any of them.

Collapse
 
qureshi81 profile image
qureshi81

This is very insightful Zac. I hope I can stick to it.

Collapse
 
julia_moskaliuk profile image
Julia Moskaliuk

Absolutely agree with every tip :) Thanks.
Maybe it can be useful for you...try to use TMetric to control your time and manage tasks. This app greatly simplified my workflow! tmetric.com/