For years, I wanted to learn how to program as I knew this knowledge could open future opportunities. I started with simply Googling “How to learn to code” way back in 2016 and poked around with a few tutorials. I had taken an hour to write a ‘Hello World’ tutorial in JavaScript without knowing any code whatsoever. It was fun, and I was hooked. More so, it seemed fairly easy, and a couple weeks later I was learning the basics.
After a couple of months of this, my first thoughts about getting a developer job started popping up. I had heard stories of the ‘self-taught’ developer. At the time, I was knee-deep in a house remodel and had a baby on the way, so I was surprised when 6 months had gone by and I hadn’t made any progress. I was still confused by basic syntax and was only studying a couple hours per week, if that. I redoubled my efforts and decided to study on my daily train commute.
Slowly, I realized that coding is hard. It is an overwhelming amount of material to learn, especially while working full time. There is what you know you don’t know, and then there is what you don’t know that you don’t know. I was getting lost trying to learn the language syntax, routing, front end, back end, databases, frameworks, source control, algorithms, design patterns, the terminal and deployment! I wanted some direction, guidance, and to learn best practices.
Preparation Helps You Succeed
The separation is in the preparation
–Russell Wilson
So I decided to join a coding bootcamp and enrolled in the Coding Dojo part-time online program, but I knew not to start from zero! Many bootcamps will test your knowledge during the application process. They’ll expect you to know the basics of the language and have the right attitude. For me, I had already spent a couple of years slowly learning the basics of JavaScript. I had completed a couple of tutorial side projects, with HTML, CSS, and JavaScript, and had spent some time on FreeCodeCamp.com.
Coding is hard and bootcamps move at a very fast pace, there is very little time to play catch-up — especially for online programs. To succeed in the bootcamp, I knew I would be coding daily for months. I prepared to handle this workload by studying every day for an hour during the month before my start date. Some of my cohorts in my bootcamp really struggled with basic JavaScript, CSS and HTML, simply because they hadn’t spent enough time preparing.
Setting Up My Life
By failing to prepare, you are preparing to fail.
–Benjamin Franklin
Having a full-time job and taking an intensive course will take up an enormous amount of time. When I attended, I spent every available minute studying and I still had trouble keeping up. I made sure that I finished any upcoming matters that would need tending to. In my case, I needed to support my family while attending, so I chose an online course. The tradeoff is that the online course would take longer than the in-person course: five months instead of three.
I decided to take the course during the fall and winter when I would have less yard work to attend to and less social events to skip. Fall and winter also have some additional holidays which I used to study. I also knew that my work schedule would likely have less ‘busy’ weeks requiring me to work extra hours.
I prepared my life as much as I could. This meant finishing any normal life projects I had, like winterizing my house and a few small home improvement projects I had taken on. I also spent the time fully setting up my work station with additional monitors.
I spent time preparing myself physically. I set up some new routines for myself, including a small diet change (I tried to cut out all bread/sugar/alcohol) and started changing my sleep routine. I knew that I would likely be sleeping less, and that I would need to be productive before my kids woke up. I also started to try to exercise more regularly, thinking that I could keep this habit throughout the course.
I Needed Help
Plan your work and work your plan.
–Margaret Thatcher
I knew I would need help during the course. I read everything I could find in forums about the bootcamp experience and talked with developers I knew. Some had gone through a course, others had not. I spent time reading and re-reading course expectations and discussed with the course admissions about what to expect. I asked as many questions as I could ponder of and discussed my concerns with my wife and friends to help focus my thinking.
Optimize Time
Success meant using my time wisely. I sought areas where I could optimize time. I listened to lectures and videos while driving. While I wasn’t able to watch the screen or take notes, I would get familiar with concepts or recover material.
- Turning off my phone. Often I would find myself checking my phone, and realize that I had spent 5 minutes looking at emails, texts, Twitter or Facebook. Turning off my phone broke this habit.
- Dedicating time to just code. I set aside time in my schedule to work on projects. This meant stopping what I was doing at a dedicated time and going to study or work on projects. I ultimately scheduled out each week to reach a quota of at least 30 hours dedicated to just the course.
- Disengaging from certain areas of life. Focusing on learning required a large amount of time. While I needed to take care of my family and chores, I stopped attending all social functions. This gave me a large portion of my time back. I also eliminated virtually all TV, and would spend only predetermined times (Saturday nights) to watch a movie at home with my wife. I required myself to stay on my quota track. Eventually, I had to eliminate exercise as well as cut back my sleep.
Set Expectations
A bootcamp is a great place to advance and accelerate learning, but the learning doesn’t stop when the course is complete. There is no way to retain all of the topics covered in such a short period. An online bootcamp while raising a toddler and working full-time isn’t a place to start from the very beginning. In my situation, there was no bandwidth for any catch-up.
My friends and family knew that I would not be attending social events, outside of holidays, and that the ones I would attend would have to be limited in their time span. My wife also had to make this commitment, so that we were aligned in my efforts. I worked to spend as much time as I could coding while my children were sleeping, and coordinated with my wife the times I set aside to code.
Afterwards
I didn’t always enjoy my course! It was hard, but success is supposed to be hard. If succeeding was easy then it simply wouldn’t be an accomplishment.
I am far better at writing code now that I was before. I now have a more complete understanding and can build some very cool real world projects that I couldn’t before. I also enjoy writing code more. I got exactly what I needed out of it – an acceleration of my development skills.
Postscript: In July 2019, less than six months after I graduated, I started as a Web Development Engineer with a local company.
I’m looking to give back to the developer community. You can follow my blog at www.santamariacode.com where I share my experiences in the hopes that I can help others learn to program.
Editor’s note: if you’re interested in learning more about Coding Dojo bootcamp programs, click here.
Source: https://www.codingdojo.com/blog/sam-santamaria