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
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?
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.
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.