How I learned to code and got a job as a data scientist in 9 months

Photo by Emile Perron on Unsplash

When I was first learning how to code, I often relied on stories like this as sources of inspiration to keep me going. It gave me a sense of hope to hear that other people were also trying to learn how to code and actually switching career paths. It made me believe that it was possible for me too. Sometimes, I even imagined what I would say when I finally reach that goal. Now, I don’t have to imagine anymore, I get to share that story with you guys today.

A little background on me. I did not graduate with a Computer Science degree. I graduated with a degree in Clothing Technology. At the time, it didn’t really bother me. I actually enjoyed studying it, and I really planned to work in the industry. My first job out of college was working for an international garments manufacturer. It was a great experience and I have no regrets, but I also realized that I had learned everything I wanted to learn in that industry, and I wanted to do something different moving forward.

Learning to code wasn’t a spur of the moment decision. It was something I had always wanted to do, but I was never really put in that position where I HAD to do it. I would dabble with it from time to time, but it never really stuck because I would give up on it too quickly. I revisited the idea again when I was deciding what to do next, and it was the thing I was drawn to the most.

Immersing Myself in Programming

I didn’t really have an extensive plan when it came to learning how to code. I knew I wanted to do web development, but that was it. At this point still, I just wanted to dive into it headfirst, capitalize on the momentum I had, and see if this time it would stick with me. I did a bit of research, but I didn’t want to get lost down the rabbit hole of it, so I took the first advice I got, which was to buy a course on Udemy, and it was the best decision I ever made. The first ever course I bought on Udemy was The Complete 2019 (Now 2020) Web Development Bootcamp for about $11 (around Php 500+), and it opened my eyes to the world of web development. (Tip: Udemy always goes on sale, and when they are, it’s usually around 90% off. I highly recommend buying their courses during sales).

This was December 2018, right around Christmas, and I had like a week’s worth of holiday break time. Besides the holiday festivities, I did nothing but go through the course and try to finish it within that time. It wasn’t actually hard, It had around 40+ hours worth of content and I had a lot of free time. The course was really engaging, and honestly, I didn’t feel like doing anything else as well. If you asked me what was different this time around as opposed to learning to code before, I felt a new kind of hunger while I was going through it now, maybe it was because I had to make it work and it was driving me to really open myself up to the idea and the possibilities of changing my future from it.

I really wanted to finish the course during the break time (and I did), because I just wanted to immerse myself in it with no interruption, even if it is just a small amount of time, kind of like being in school. When I did finish it, I felt more engaged to learn about web development. The course felt like a good start, and honestly, sometimes, you just need that kickstart and the rest falls into place naturally.

Balancing Learning with Work

The course introduced me to a lot of useful concepts in HTML, CSS, JavaScript, NodeJS, and NoSQL. After completing course, I knew I wanted to dive into these areas further, so that was my first challenge. My second challenge was balancing learning to code with work. After the holiday break, obviously, I had to go back to work and continue my everyday routine as usual, this time I had to set aside time for programming.

The biggest advice I can give to those who are also learning how to code while working is to really find time to do it everyday even if it is just an hour. When I realized I couldn’t just code all day like on break, I knew I had to manage my time well. I knew that practice makes perfect, so I couldn’t just wait for the weekend to program, I had to do it everyday. 1 hour everyday is better than 7 hours once a week. I made a spreadsheet of my Monday to Sunday similar to those weekly planners, and I blocked off all my “nonnegotiable” times — basically, the times I spent for eating, sleeping, work and maybe exercise. Once I did that, I saw where my free times where, 1–2 hours before bedtime, and I made that decision to block off learning to program during that time everyday.

It might mean saying goodbye to some of old habits. For me, I had to say goodbye to watching a movie everyday. This felt like the more important choice, and it wasn’t really that hard to do. For some, it will be a harder choice to make. It might mean trading some sleep time for programming time. That is why you have to really have to decide if this is something you can commit to.

Falling Down and Getting Back Up

Focusing in on a goal is sometimes hard. I still find myself distracted while programming from time to time. When I was reading Atomic Habits, I learned that habits are triggered by an event. For me, I get distracted a lot whenever I use my phone. I also realized that I could trigger myself to be in that “learn to program” mindset whenever I opened my laptop, so what I did was I left my phone in another room or I left it in my bag after coming home from work and went straight to open my laptop. This worked for me and it still works for me up to this day. I associated my phone for entertainment and laptop for work.

The journey to learning to code is not a linear one. There are going to be ups and downs. I experienced my first major down about 3–4 months in. At this point, I was already programming everyday. I would go straight home after work, eat dinner, and just program. I even stopped hanging out with friends that much. I believed that I had to maximize all of my free time for programming. I pushed myself hard and it lead to a burnout. Suddenly, my brain just didn’t want to program anymore. I couldn’t bring myself to open my laptop. This habit I built of leaving my phone in another place was destroyed. I quickly reverted to watching movies after work again. I consider this is as one of my lowest points in my journey and I really thought I would never be able to bring myself to program again. Little did I know that this was normal. There was no cure but time itself. I gave myself this month to just do whatever I wanted to do, and you know what happened? After a month, I returned to programming again. I didn’t trick myself or anything. I just simply rested.

Setbacks are normal in this journey, and if you are in one right now, trust that it won’t last. If you’ve built a great foundation/relationship with programming, that interest won’t simply go away just because you don’t feel like doing it that day. When I experienced the burnout, I didn’t tell myself that I don’t want to program anymore. I told myself to rest. Sometimes, we just need to give ourselves that time to rest. When I started to slowly program again, I told myself to give myself some slack from time to time, and if I didn’t feel like programming that day I won’t. This wasn’t the last time it happened to me, but I always find my way back to program.

Best Free Websites to Learn Programming

Some of the free resources I used to learn web development were MDN (Mozilla Developer Network) Web Docs and freeCodeCamp. These two are great and are always included in someone’s list when recommending free programming resources. I have two other sites I go to, which are personally my favorite, and I don’t think a lot of people know about these: Rithm School and PY4E (Python for Everybody). Rithm School also covers HTML, CSS, JavaScript and NodeJS. Unlike Udemy, it isn’t a series of videos, it’s like an online book. If your learning style is reading, I highly recommend going through this course. It also has a lot of examples, and I like that it is more application focused. PY4E focuses on Python and to this date, it is still my favorite Python book. PY4E’s concept is to show the things you can do with Python even if you don’t intend to become a software engineer. They walk you through Python and also additional gems like web crawling, regular expressions and using databases. It’s not comprehensive but a really good start.

These are not the only ones I used to learn programming although I find that they are the ones I keep coming back to whenever I need a quick refresher on something. Paid doesn’t always mean that it’s the best. There’s nothing wrong with spending money for education, I am always supportive of people of investing in their personal development, but it is not the only choice, especially in learning programming. If you’re just starting out and don’t know where to start, I recommended the free resources above or going to YouTube and searching for a video on HTML/CSS or anything you are curious about. There are so many free options out there to get you started, you just have to do a bit research.

After going through these tutorials, I would also set aside time to go through a project on my own using what I’ve learned. You don’t know how many times I made a Todo list — a Todo list using just JavaScript, a Todo list using Python, a Todo list using a web app framework, and a Todo list using REST Framework. I believe the best way to learn is really by programming a lot, even if it is just a simple project.

Knowing When to Apply

I’ve been learning on my own for about 9 months when I finally decided to start looking for a new job. Initially, I wanted to do web development, but I wasn’t really choosy at the time. I saw this job posting for a Data Scientist position in Facebook, and they only required you to know Excel, knowing Python was an advantage to have, but not really required. It seemed like a good fit for me. I took a screenshot of it first because I still wanted to think about it for a couple of days, but I remember going back to Facebook and checking that posting everyday, until one day it was just gone. I really thought I had missed my chance by taking such a long time to think about it. I said “screw it” and prepared my resume and sent my application then and there (which I don’t recommend, take your time in preparing your resume and don’t cram it in one night like I did). I also attached one of my Todo lists in the email, hoping it would make me stand out.

I heard back from them, and they set up an interview and Excel exam with me. When the day came for it, I told them what I had done in my previous job and highlighted everything I did that was related to what they were doing, that means all of the Excel work I had previously done. I also told them that I was learning programming on my spare time and I was interested in pursuing a future career with it. I don’t know if that is what made me stood out from the rest. I manage to finish the Excel exam, confident of my answers. A few days later, I got an email telling me I got the job. It was an offer for a 1-year contract with them. I was reluctant at first and deciding if I should try other companies at first, but I told myself to this could be a good start for me, and plus it was a big increase from my previous salary.

I know what you are probably thinking “Where’s the programming part?”. When I joined the company, most of them were just using Excel. I wasn’t really expected to use Python at all, but I opted to use it whenever I was given a task. I still laugh thinking about it, because at that time I was still relatively new to Python and was fumbling my way through Python, Pandas, and Excel. One day, my boss saw this and asked me about it. I told him that I preferred to work with Python, and he actually encouraged me to use it. After around 3–4 months, I was converted to a full-time position instead of the 1-year contract, and I became very comfortable in programming with Python. Now, not a day goes by at work when I don’t open my Visual Studio Code.

A common struggle among self-taught programmers is knowing when to apply. The truth is there is no right answer to that question. You will never feel like you know enough because the technology we have is constantly evolving. If you read a listicle of top 10 things every programmer should know, a year wouldn’t be enough to learn all those things. My advice is to “screw it” and to apply anyway. If you know basic HTML, CSS, and JavaScript, try your luck at different job postings while continuing to learn on the side. If you are currently employed, why don’t you look at job postings on the inside, it is easier to switch career paths from within a company, or maybe you could even use Python in your current profession now, why wait for a new job to use it, in that way, you could start building your portfolio already. It took me 9 months to start applying for new jobs. When I got the job, it felt like luck had a lot more to do with it, and I am okay with that because “the harder you work, the luckier you get”. And getting that job, even if luck did play a major part of it, did not invalidate all time and effort I spent to learn how to program, it just emphasized it further.

I hope that by sharing my experiences with you guys I am able to inspire you if this is something you are interested at. If it is just to confirm whether it is possible or not to actually learn to code on your own and to switch career paths, I just want to tell you that it is, and it doesn’t cost much, it only asks you to put some time and effort into it.

Happy coding!

Learning to code, growing up, and figuring out life.