Near the end of June I decided to finally take the plunge and start seriously working towards pivoting my career towards ML and deep learning. Even though I have worked with, and deployed, production ML models in the past, and have supported ML researchers and analysts in my job for years, I didn’t consider myself an ML practitioner. While I understood different approaches for supervised and unsupervised learning, and how I could use them to perform rudimentary classifications, I was not confident about developing large productionized models with targeted end users. I truly wanted to go back to the roots, learn deep learning from a practical perspective in order to understand industry expectations, with the goal of filling in gaps leftover from the more theoretical approach of my masters degree. Voila! Enter the TensorFlow Developer Certificate Exam.
I am someone who needs a goal to work towards when it comes to learning; whether that be my degree, a project at work, or in this case a certificate, so long as it provides distinct focus and an actionable product at the end of the line. To me the certification wasn’t about the end certificate exactly, but more so the means of immersing myself into TensorFlow and using it as motivation to gain more understanding of deep learning as I explored the framework.
If I wanted to I could’ve just done the Coursera TensorFlow in Practice specialization and probably been able to pass the test. However, this whole exercise was about the journey and not the destination. I truly wanted to become as proficient as possible in TensorFlow and pass the certification within a timespan of four weeks.
The plan was simple, break down each section laid out in the TensorFlow Certification Handbook and dedicate a week to mastering it by utilizing a variety of resources. This meant performing the following each week:
- Watching MIT Deep Learning 6.S191 lectures on the topic to get a high level overview
- Completing the relevant TensorFlow in Practice course, while making sure to rewrite all their sample code to really learn the concepts
- Taking time to slowly read through Hands-On Machine Learning chapters and going back to do the exercises at a later date
- Read any other supporting blogs, articles, books, or YouTube videos
It ended up taking me 2 months to get through all the MIT lectures, Coursera courses, and a majority of the deep learning chapters in Hands-On, at the end of which I was ready to take (and pass) the certification exam on my first try.
Nothing EVER Goes According to Plan
Everything I planned looked good on paper, and had there not been any unexpected external stressors in my life I probably would have completed it within my initial time frame. However, like everything else in the software world, nothing ever goes according to plan.
A week after I started studying I made the decision to not renew my contract with my employment agency and instead dedicated myself entirely to becoming proficient at artificial intelligence, machine learning, and more specifically deep learning. I wanted to stay true to my mantra of never saving anything for the swim back, because I knew if I kept my job as a fallback I would never be able to fully commit to transforming myself into an ML practitioner and needing to split myself would only hinder my growth.
Not having to worry about full-time work did free up a lot of my time to enable me to focus on studying, but it did have its own downsides. My entire schedule was now self-determined and I very quickly lost track of the days making weekends meaningless and creating a routine of constantly working with little to no breaks in order to meet my deadline. As one would expect, this very quickly leads to intense mental exhaustion and burnout. My whole week was filled with reading, watching videos, performing practice problems, and trying to dump as much information as possible in as little time as possible.
The exhaustion of not being able to perform up to my expectations, meet my deadlines, and facing burnout, just amplified my self doubt and imposter syndrome. It’s difficult going from a place of comfort in a career, where I was confident in my ability and experience, and then try to transition into an entirely different role where I have little experience. The more I studied the more I realized how little I knew, and it was hard not to have doubts about myself and about my ability to even pursue this certification.
There were days when I couldn’t turn on my computer, and even thinking about studying gave me a headache. I was filled with guilt for what I perceived as not being good enough, for wasting time doing nothing, and for not being able to meet my impossible standards of studying every day. This guilt and the time delays created a negative feedback loop, continuing to feed my self doubt, which in turn made it harder to open the book the next day.
Not allowing my mind time to rest and process all the information, and holding myself up to unattainable expectations, was creating more of a hindrance than anything.
Overcoming Self-Doubt and Imposter Syndrome
The biggest thing I learned from all of this is that prioritizing mental health is important, and there is no shame in taking a few days off if it means I will be able to give my mind and body a much needed rest. Resting isn’t wasted time, making sure to find enjoyment outside of studying every now and then is more beneficial than trying to power through all the way to the finish line.
I wouldn’t have been able to come to this conclusion if it weren’t for the love and support of my girlfriend, who was constantly by my side through it all. She would remind me of my strengths and that, even though I may not be able to see it myself, I had been making tremendous progress with my studying and general understanding of deep learning. Progress doesn’t have to happen all at once, it’s a slow building over time, and that it’s important to give it the time it needs to settle and grow.
I was finally able to reclaim my weekends and set up a mental divide between working and enjoying myself. By refusing to look at anything relating to TensorFlow, or deep learning, starting on Saturday I was able to give my mind that break it needed while also setting up a timeline where it would be expected to work. In doing so I was able to be even more productive during my working hours than I was previously when all I was doing was studying.
I was able to come to terms with the fact that I was going from a point in my career where I had immense knowledge, down to an area I had very little domain in and that’s okay. It’s okay not to know things when you’re starting afresh, to be confused from time to time. Everyone has to start somewhere, you just have to take a step back every now and then and give yourself the space to recharge.
My passion for ML is real, and if it takes time for me to get to where I want to be then it takes time. It won’t happen all at once, and it won’t happen overnight, so it’s best to just enjoy the journey and make the most of it because I know I’ll make it to where I need to be eventually. Nothing is going to stop me from accomplishing my dreams.
As previously mentioned, the exam itself is basically just the Coursera Tensorflow in Practice Specialization, with the added bonus of getting an official certificate from Google themselves. The Coursera course is being renamed to better showcase this, so probably by the time you read this the course will have been renamed to TensorFlow Developer Professional Certificate with a new description specifically mentioning how it prepares you for the exam.
The exam gives you five hours to build multiple models of increasing difficulty and complexity, but provides an easy way to test the models and receive an idea of your scoring as you progress. All my preparation and note taking allowed me to finish the test in under two hours, after which I instantly received an email telling me I had passed.
I admit that my two months of intensive studying and fully committing myself to learning everything I could about TensorFlow and deep learning had greatly over prepared me for the exam, to the point that the exam itself was underwhelming. That said I am very happy, excited, and proud of myself to have gone through all this and completed the certification. I’m glad to have gone through the experience, not for the certification itself, but for what it enabled me to explore both within deep learning and myself. By combining multiple resources, I was able to gain way more confidence in the field of deep learning than I had when I started.
I am now empowered to keep actively seeking out additional learning resources to deepen my understanding of the field, and feel that I can now have the toolset to approach any deep learning problem. Over the course of studying I jotted down some project ideas that I am confident in exploring and experimenting with, so look forward to posts about those in the future.
I am very eager to continue to dive deeper into this field and explore all it has to offer, while introducing my own experiences to help shape it moving forwards.