DEV Community

Cover image for Learning Code While Working a Full Time Job
Bennett Dungan
Bennett Dungan

Posted on

Learning Code While Working a Full Time Job

Originally published here

This is about my journey of learning how to code while also maintaining typical 8 to 5. Spoiler, its hard as hell and the burn-out is super easy. Though I'm here to hopefully shed some light on what's worked for me and how I maintain my sanity...

1. Make coding your hobby

I've talked a bit about this in my previous posts but I think it's worth reiterating. I haven't had success in the past attempting to balance work, social activities, hobbies and learning code. There's just not enough time in the day to do everything I wanted so I had to prioritize. I used to come home after work and get online with friends to play games. As hard as it was, I've had to cut that out of my life temporarily. Anyone who's ever played online games knows that its a sinkhole for time. One moment you've promised to just play one 20 min game of Overwatch and the next thing you know it 3 hours have passed by. So it was imperative that I put a halt to this if I wanted to progress in any sort of fashion. I've also been cooking less than I used to. That's something I didn't want to see diminish but cooking can take me a whole evening of preparation, so I usually just opt for the simple sandwich or omelet lately (my girlfriend is upset by this side-effect). The point is, if the majority of your day is taken up by your day job then you're going to need to make major sacrifices. Its just the nature of the beast but a necessary step if you're wanting to progress.

Update: Just to clarify, I'm not suggesting to totally rid yourself of everything that makes you happy. My suggestion is to take a hard look at what you're doing before/after work and ask yourself "Is this worth my time? Can I utilize this time to learn code?". Assuming you're learning code to one day land a dev position, this is something I've found to work the best for me. Adjust your time constraints on leisure activities according to what fits your life balance.

2. Have a long-term outlook

This isn't going to come to you overnight. With the influx of these coding 'bootcamps' that promise to get you job ready in 3-6 months, the realistic expectation for people has been massively skewed. This is a bit like weight training, your muscles can only strengthen so much in a given period of time. If you're bench-pressing 95lbs today and some guy promises to train you up to 225lbs in 6 months, it's just not physically possible for most people to achieve this. Your brain is like a muscle, you can only train it to absorb so much in a given day before you just burn out. So I've adopted the slow and steady approach. I don't cram 5-6 hours of coding in after work because that is a recipe for disaster. In fact, I recently spent the weekend trying to cram as much coding as I could in to get this weather app built and quite frankly, I was miserable afterward. I find an hour or two of coding each and every day to be much healthier than just doing these cram sessions. Plus it gives your mind time to process what you've learned in much more manageable chunks. If you haven't been to my Daily Coding Log then you might not have seen this quote:

“Continuous improvement is better than delayed perfection.” – Mark Twain

Just keep at it each and every day no matter how little you do or learn. Just keep chugging.

3. Start a Coding Log

With the long-term approach, it's sometimes hard to remember where you started and just how much you've progressed. Even though I've only had my coding log for a few months, I have gone back a few times and looked at my notes on Git and Javascript basics and it makes me feel really good to know how far I've come. I've also named it "Daily Coding Log" for a reason, so I commit to myself to code daily. It basically doubles as an accountability tool when there's no one else there to make sure you're keeping up. 

4. Code in the mornings before work

This was probably the hardest one for me to adapt to because I have always been a night owl. I started off coding after work but found my attention span to be much less and often found myself getting distracted often since I was usually at home. I just didn't have the energy after work because I'm mentally exhausted by the evening so pushing more information into my head just didn't pan out. One day I forced myself out of bed at 6am and got to work just before 7am so I could get 1 hour of coding in before 8am rolled around. Turns out, my head was much clearer without the clutter of the day fogging up my mind and I was able to focus a lot easier (this could also be because of the coffee). This is now my go-to time of day for coding since the distractions are minimal and I'm able to start the day coding with a clear mind. 

5. Make friends with smart people

This one might sound kind of weird to you, you might be thinking "what do my friends have to do with this?". There have been a bunch of times where I've hit a brick wall and there wasn't a single Stack Overflow document on the entire web that could have helped me. This is where having a friend whose very well versed in programming comes in. I'm very lucky to be friends with multiple programmers all of whom are very good at what they do. I've reached out to a few of them on occasion when I was losing all hope and just getting 10-30minutes of their time can be immensely helpful. Having someone right there to show you the process and how to go about doing even the littlest of things has been one of the most helpful learning resources for me in my coding journey. 

6. Go to local coding meetups

So you just read tip #5 and are thinking, "Wow cool Bennett, you've got smarty pants friends, great freakin' job. But I don't know anyone who programs. What do I do?". Well, you could go online and ask random internet people for help, which is useful OR you can go to your local coding group's meetups. This place is great for getting to know other local programmers and networking for when you're job-ready. Having trouble finding a coding meetup?

Try here: www.meetup.com/topics/computer-programming/

If that doesn't work then do a little searching around on Facebook. My local coding group, Acadiana Software Group, isn't on meetup.com but they have a Facebook page so give that a shot. 

Conclusion

Those are my 6 tips for all my fellow aspiring developers who are struggling with the 8-5 grind. These tips are just what have worked for me so if you're stuck in a rut, give them a try and let me know how they worked. If you have any of your own tips you'd like to share, please leave me a comment! Happy coding.

Top comments (29)

Collapse
 
muygalan profile image
Joshua Galan 👨‍💻

Number 4 works for me one thousand percent.

I wake up at 5AM every weekday and devote a minimum of 1 hour to coding. I have my sweet iced coffee already prepared in my fridge the night before so I can jump right in and not waste time.

There's something beautiful about being awake while the world is asleep. It's nice and quiet, tranquil, and allows me to focus better. Post-work evening coding is strenuous when physical and mental energy levels are depleted.

Collapse
 
itsasine profile image
ItsASine (Kayla)

There's something beautiful about being awake while the world is asleep. It's nice and quiet, tranquil, and allows me to focus better.

That's part of what I don't get about advice to wake up early and code... I get that feeling at midnight. Or 2am. Because staying up to code works better than me dragging in the morning trying to pretend to be productive.

Collapse
 
beznet profile image
Bennett Dungan

Yeah mornings aren't meant for everyone. I've listened to quite a bit of Tim Ferris on his podcast and he's also a night owl who finds himself most productive between 2am and 4am. Although he has the luxury to work during those times, most of us do not.

Collapse
 
owlypixel profile image
Owlypixel

Great article!

Of course, everyone is swamped with work, but you still can find ways to learn to code on the job.

Here's my story.

I used to work as a support engineer at a small company and we had a problem - our clients kept calling and asking the same questions over and over again. They didn't like to read pdf documentation because you could easily lose hours of your time browsing countless pages of complex specialized technical text. So, I decided to deal with this in a way that will fix the problem and at the same time allow me to learn something new.

With the help of some tutorial online, I spent one hour a day building a little help-desk app using Vue and CSS Grid. It looked really simple but straightforward and provided clear step-by-step answers to common questions.

Being good friends with sysadmin we put my little creation online and sent an email for people to check it out. Then things got busy, and we kind of forgot about it for a while.

After some time, my boss called me and said that our clients really liked this new website that we have. They were able to easily find what they need in a matter of minutes right from their mobile phones. He asked me to work on this website full-time, adding new features and various other improvements.

Things like that show your initiative to make things better and also the ability for you to learn some new stuff. And also I got paid for the thing I was building. Isn’t it cool?

So, I'd say find a little side project at work and hone your skills there. You need to build something that is fun to build and solves a real problem that people have. It really doesn’t matter whether your boss knows about it or not.

What matters is the end result of your work. The amount of time that this is going to take is not super extreme but it will push you forward.

Collapse
 
beznet profile image
Bennett Dungan

This is such a great story, thanks so much for sharing! I've actually had some similar situations at my job where I created some simple Adwords scripts (written in vanilla JS) that made reporting a lot easier for me at the time.

Collapse
 
jrohatiner profile image
Judith

Awesome! Very motivating. IMO it’s a good idea to let your boss know what you’re doing - even if it’s for the purpose of accounting for the time.

Collapse
 
yechielk profile image
Yechiel Kalmenson

This is great!

I also learned to code while still keeping my previous 9-5 job, so a year of staying up to 2 am and coding through the weekends.

1 tip that helped me was to set aside one day a week to take a break from coding. For me it was Saturday, I would stay away from the computer and reserved the day for family/personal time.

I also tried to get to bed early at least one night a week (usually Tue-Wed). That broke the pattern of all-nighters and let me "catch my breath."

Can't stress enough your point about surrounding yourself with a community of others who code. I couldn't really get out to meetups as much as I would have liked, but I did find a few supportive online communities, such as dev.to, CodeNewbie on Twitter, and the Flatiron School's Slack channel (the bootcamp I took).

Collapse
 
beznet profile image
Bennett Dungan

Speaking of taking a break from coding, I actually did that this weekend. Its definitely necessary to take some time off from code altogether every so often

Collapse
 
jaredgeddy profile image
Jared • Edited

Great tips. I especially agree with your points of making small amounts of progress everyday and coding the first part of your day rather than the last part. Someone once described our brains like a flower vase. We can hold a large amount of knowledge (water) but can only allow so much in at one time, or over a period of time. (Like the narrow neck of a vase)

One other encouraging point I would make is that it's okay if you get burnt out, we all do. Missing a day or a week even is okay, but get back into it afterwards. Don't let missing a day be an excuse to give up. If you fell down a stair you wouldn't throw yourself down the rest of the stairs, you'd get back up and keep going.

To anyone struggling, hang in there. Remind yourself daily that the goal is progress not perfection, and progress is a marathon not a sprint.

Collapse
 
beznet profile image
Bennett Dungan

Yes you're totally correct, burn-out is inevitable in many people's cases. I think there are strategies on minimizing it by taking the long/slow approach though. Even with that, there will be times that you just need a breather from coding all together.

Collapse
 
shostarsson profile image
Rémi Lavedrine

Great story.
Keep up the good work.
And you can be assured that it is only the beginning. Because when you start coding, as new frameworks, languages, technologies comes out every month (ok, year is more appropriate ^^), you are going to train yourself everyday.
But it is so fun to learn new things.
And then (as I experienced recently) share it on dev.to even if you are an absolute beginner (as this beautiful post encouraged me to do)

Share your experiences with us

How many times you thought to yourself: "maybe I should write an article about that" and then didn't? I'm going to guess that it happened more than a few times. The short answer: just do it already!

Even if it improves the life of just one person, isn't it worth it?

And by the way, it doesn't matter what you write about or if there's a million articles on the subject already. Your experience is unique. Your perspective is unique. Your background is unique. So just please share it with us.

Collapse
 
beznet profile image
Bennett Dungan

Yeah learning code is something we as developers will do till the day we retire. I really enjoyed your article that you linked btw, dev.to is a great community.

Collapse
 
stacy profile image
Stacy Montemayor

I really like the coding log idea. I'm super fortunate because I only have to work a tiny bit while learning - so learning is my full-time job, but it's still hard to see where I've been, how I've progressed, and what exactly has brought me to my current place.

I have been maintaining a spreadsheet that high-level tracks what courses, projects, etc. I've done (with start and end dates). But, it's not really doing it for me. As an example, this week I went back to a little crash course on Ruby that I had tried to start about five weeks ago - I had stopped doing it because it was so challenging that I was getting really frustrated. But, the last two days working on it again - suddenly I am able to successfully write each part of the exercises usually on the first or second attempt. And each time I run the code I'm SO surprised that it works! And, for the life of me, I can't understand why it's suddenly so much less challenging. (I've mostly worked on front end learning over the last five weeks...) I think a daily log would help me to understand how my learning is progressing.

Collapse
 
beznet profile image
Bennett Dungan

I like your idea about the spreadsheet to record what courses you've taken. I've gone through quite a few tutorials and having a dedicated spreadsheet to kinda pair with my coding log might not be a bad idea.

Collapse
 
alejandra_quetzalli profile image
Alejandra Quetzalli 🐾

Tip #4 on "coding before you go to work" is SPOT ON!

I did that for a while a few months ago when I was interviewing for my current role, and I can honestly say that setting aside that morning time worked better. It was the only realistic time I wasn't mentally exhausted from work yet... haha

Go you! =]

Collapse
 
ben profile image
Ben Halpern

This is brilliant advice.

Collapse
 
craigbutcher profile image
Craig Butcher

Great post. I do try and sneak in some learning by firing up codepen to give myself a sense of purpose that I can still do front end dev. It’s freedom to enjoy rather than being boxed in to a project. I think I’ll try 4) soon.

Collapse
 
thabisoddx profile image
Thabiso Mohatlane

Awesome article and great tips. I try to sleep early so I can wake up between 3 - 4am everyday to study before I go to my 8 - 5 job. I also try jog in the morning, but I am thinking of using a bicycle to work.