I was in college when I had my first child. I was studying East Asian Studies and Computer Science. K was conveniently born over Christmas break, and I was lucky enough to have my mom around to watch him while I studied.

It was hard, I won’t lie. Even with help, it was hard to code, to practice Japanese, and to study data structures – with an infant (and one with colic, no less.).

I struggled to understand the concept of Big O notation (a fact my son, now 18, teases me about.) But I got through it and graduated with an almost perfect GPA.

I didn’t go into computer science (or Asian Studies) then, but instead spent years raising K and then his two younger sisters while their dad started work as a software engineer. Those years were tough but magical, and I wouldn’t trade anything for the time I got to spend with my children.

Now, many years later, I’m starting over with my “new” partner. (That is in quotation marks because we’ve been together for over 10 years at this point.) We have a son together now, and I have rededicated myself to studying computer science. I like to play on hard mode, I guess.

The big challenge, of course, is figuring out how to find time for studying and coding projects. My mom is not available to watch this guy, and while he’s not colicky, he is clingy (as newborns tend to be.)

I did an online software engineering intensive program through Codesmith that ended right as my son, R, was being born. (I’m not kidding. Our graduation happened while I was in labor.) Now it is time to try to get a job in SWE, but in the meantime, I need to work to keep my skills sharp – but how??

Here's my advice based on what I've learned over the years.

Pick a learning resource (or 2) and stick with it

There are so many awesome resources for learning software engineering and reinforcing coding practice. So it’s easy to get overwhelmed. Do I practice problems on AlgoExpert? Watch videos on Frontend Masters? Make something with Chingu?

I decided to focus partially on Frontend Masters, to gain a deeper understanding of the inner workings of JS and React, partially on completing AlgoExpert problems, and partially on working on coding projects.

I've also found a nonprofit that needed software engineering volunteers and am making live demo sites for them. But I could just as easily work on my own projects or find an open source project to contribute to.

Make a plan before starting for the day

I have ADHD. When I sit down to work, it is very likely that, without a plan, I will start out watching a video on JavaScript and end up, two hours later, with the video paused, looking up info about tardigrades.

Projects can take three times as long for me if I’m not careful, just because my brain keeps going off on tangents.

This is not a luxury I can afford with a newborn. When I get time to work on SWE stuff, it can be very limited, so I need to make the best of it. I’ve decided that the best way to do this is to set an achievable and measurable goal at the beginning of the work time.

For example, I might:

  • Watch 1/2 hour of video
  • Fix a bug
  • Work on one algorithm challenge
  • Do some styling on a project
  • Comment my code
  • Read an article on Medium

When my mind starts to wander, I reign it in by focusing on my end goal for that time period.

Work with the Baby’s Schedule

I generally work best in the morning, but the baby is usually quite awake then, which makes it a bad time for anything that requires deep concentration.

I might get an odd morning here or there where he takes an unusually long nap and I can get some stuff done, but I can’t count on that. So, I plan on working in the afternoon or evening.

During the time that I’m not working on coding, I try to be as present with my son as possible. If thoughts arise about a SWE problem I’m trying to solve, I try to set it aside until I can dedicate my full attention to the problem. That way, I can be fully present with my son while also getting time to focus deeply on my coding task(s) for the day.

Focus on Relevant Technologies

At Codesmith, we primarily used the PERN stack. But as I look at the requirements of jobs I’m interested in, I find myself wondering what other technologies I should learn.

Should I learn Ruby/Rails? .NET? C#? Django? COBOL? (Joking, sort of.) This is another situation where it is easy to get overwhelmed, and I don’t have time for that lack of focus!

Regardless of what other things there are out there, I certainly don’t know everything there is to know about JavaScript and React, so I am attempting to, for now, stay focused on what I already know.

If I do see a major trend in another language or framework being used at jobs I’m specifically interested in, I’ll add that into the mix.

In Conclusion

I think it’s important to talk about how we fit coding into our lives when we have a family, especially as mothers, and especially as COVID forces many women out of the workforce to stay home with their children.

I believe it is possible to be both an awesome hands-on parents and a great software engineer with a little bit of focus and time management.