Having been through the process of preparing for, and passing, the TensorFlow Developer Certificate exam, I thought it might be useful to give other people an overview of what to expect, the best resources to use to prepare, what to watch out for in the exam, and advice on whether it would be useful for you in particular.
Note: this article will NOT reveal any questions / answers on the actual exam. Although this might disappoint some people, it is very important to uphold the integrity of the exam. This is to ensure that when you finally get your certificate, it has value.
What is the TensorFlow Developer Certificate? #
The TensorFlow certificate website describes this quite succinctly:
This certificate in TensorFlow development is intended as a foundational certificate for students, developers, and data scientists who want to demonstrate practical machine learning skills through the building and training of models using TensorFlow.
The program consists of an assessment exam developed by the TensorFlow team. Developers who pass the exam can join our Certificate Network and display their certificate and badges on their resume, GitHub, and social media platforms including LinkedIn, making it easy to share their level of TensorFlow expertise with the world.
...so it is a practical exam that requires you to build actual TensorFlow models to predict outcomes (categorical and regression).
Frame of reference for my advice #
Now you know what the certificate is, I think it is important to understand a little about my background and experience before I continue. This may help some people formulate a plan of attack for their preparation, and also judge how relevant my advice is to them.
- On a day to day basis I am a 'traditional' engineer (i.e. Mechanical Engineer, Civil Engineer etc.), not a software developer or data scientist / data analyst.
- I have experience with software development, and data analysis within my day to day work roles (a lot of traditional engineering work is data analysis of some sort).
- I have made a concerted effort over the past 5 to 6 years to expand and improve upon my software development / data analysis skill set. This is both due to it being beneficial to my work, and also out of interest in the subject in general.
- Although I have a Masters degree, it is not in the software development domain (Aeronautical Engineering).
- I spend a reasonable amount of my spare time working on various software / analytics projects.
The above should give you a good gauge as to where your level of experience might fit compared to me, and allow you to take the advice that follows as such.
Is it worth doing? #
This is a very valid question, and one I want to cover before I explain what resources I recommend etc.
It costs $100 to do the certificate. That might be fine for some people, but I can see this being a significant hurdle for some.
Fortunately, there is a stipend program if you meet the criteria, so this could be help to reduce this cost in some cases.
Job prospects #
If the cost doesn't put you off, then the main question is:
Will this certificate improve my job prospects?
In my opinion, this all depends on your current status. If you have a CS degree and are currently employed as a data scientist with years of experience, then this is going to add little value to your CV. However, as you peel away the skills, the further up the pecking order this certificate will go:
- Have a CS degree but no data science experience?
- Have no CS degree, and some data analyst experience?
- Have none of the above?
- Straight out of university?
In all of the above situations (and many variations inbetween) it is clear to see that some value can be added by this certificate. It is a proof of competence in a very specific skill.
However, I think the most important factor to remember is visibility.
If the only thing this certificate achieves is getting your CV noticed initially, it is worth it.
When applying for jobs, the person that initially scans your CV (and they do just scan them) may be checking against key criteria, and if one of those is TensorFlow then you have a clear defining proof of competence. If the only thing this certificate achieves is getting your CV noticed initially, it is worth it. This could even apply to very experienced data scientists, as the person who initially scans the CVs at larger companies may not have significant domain knowledge.
So is it worth it? I think in most cases, yes. If you can stomach the cost.
Is it difficult, and what do I need to know? #
The best place to start in terms of understanding what knowledge is required for the exam is the candidate handbook.
It details exactly which topics you will be expected to know in five major sections, and even breaks down each section into specific skills. The five sections are:
- TensorFlow developer skills
- Building and training neural network models using TensorFlow 2.x
- Image classification
- Natural language processing (NLP)
- Time series, sequences and predictions
If you can go through this checklist and tick off most, if not all the requirements, then you should be in good stead for the exam. If not, then you need some prep work...
Photo by Siora Photography on Unsplash
we will get to that shortly!
Even if you have experience, or work as a data scientist, you will likely need to do some preparation for this exam (although there are always exceptions!). If you think you can do no prep and pass this exam, I think you might be in for a shock.
Is this because it is really hard? No. But it isn't a walk in the park either, you need to know more than the basics.
If you work as a data scientist you will likely have a very specific skill set (object detection / classification maybe?), and this test also covers Natural Language Processing (NLP), among others, which you may be rusty on. So you may just need a refresh.
To summarise, it is not something you can just jump into with zero prep. If you are relatively new to the subject you will need to study properly, and if you have experience you will likely need a bit of a refresh on some areas that you may not have used in a while.
How should I prepare? #
Before I get into the courses I recommend to prepare for the test, I just wanted to mention that I am assuming that you are familiar with the Python programming language. This is kind of essential. If not you should first start by learning Python.
Photo by David Clode on Unsplash
Furthermore, I would also recommend that you are familiar with the following, before you attempt this certificate:
- Python libraries: pandas, numpy, matplotlib, scikit-learn.
- Some practise with machine learning algorithms - this is not essential, but gives you a solid base, and typically provides exposure to the ins and outs of libraries such as scikit-learn without the added complication of TensorFlow.
There are some great courses designed to help you, and it is very easy to tune based on your experience level.
There are two courses I recommend, both are designed to help with this certification:
- Coursera: DeepLearning.AI TensorFlow Developer Professional Certificate
- Udemy: TensorFlow Developer Certificate in 2022: Zero to Mastery
The two courses above are very different in their method, and I would recommend the approach detailed in the following sections based on your experience.
In all cases #
I am about to recommend which resources I think are best in relation to your skill level. However, I need to ram home one particular item first:
Regardless of whether you use the courses I suggest, or books, or YouTube videos to prepare for the exam. It ESSENTIAL to practise by coding it out yourself. Just watching the videos / reading will not be enough in most cases.
Experience: mid-level to expert #
If are reasonably familiar with TensorFlow and comfortable building, testing and debugging models, then I would recommend you go with the course from Coursera.
The course is listed as taking "Approximately 4 months to complete", but this is not really true. You could easily get through the course content in a couple of days if you already have experience with the subject matter.
Content is concise and to the point, with plenty of explanation of why things are done a certain way. You also have access to coded examples and walkthroughs of code.
It covers all the main areas that are required for the exam.
It should also be noted that this course is an officially listed course on the TensorFlow website.
Experience: Little to none #
If you have very little experience with TensorFlow or machine/deep learning in general, I would recommend that you start with the course from Udemy.
While the Coursera course is concise and focused, the course from Udemy is significantly more drawn out. It will take quite a while to get through all the videos, but if you stick with it you will have a great general understanding of the subject, rather than just hyper-focused content for an exam.
The course is taught in a very code-centric way, and the teacher codes throughout the videos. What is interesting is the teacher makes mistakes (most likely deliberately) as they are coding, and teaches you approaches to fix things on the fly. The mistakes are usually things that are overlooked by beginners, so it is a very useful feature of the videos.
However, if you have experience you may find these videos repetitive and annoying after a while, hence why I think the Coursera course is preferable if you have a bit more experience.
I should also note that the Jupyter notebooks provided for this course are extensive, and a very useful reference.
Once you have finished the Udemy course, I still HIGHLY recommend that you go through the Coursera course. It covers some content you won't see in the Udemy course, and is a great general refresher that can be completed relatively quickly.
Other courses #
There is also a course available from Udacity, but I have not seen the content, so cannot comment on whether it is a good course or not. Might be worth checking out though.
What is the exam like? #
- it is open book, so you can use all the resources you need throughout the exam
- it is timed (5 hours). You can finish at any time, but the test will auto submit if 5 hours elapses.
- you are tested on the models. Models are uploaded by you, and a score out of 5 is returned. You can submit as many models as you want over the course of the test, but you must submit only one final model for each section.
- you must do the test in PyCharm IDE with a specific version of TensorFlow and Python.
Photo by Bima Rahmanda on Unsplash
You have to use a specific version of PyCharm to complete the test, you then install a specific 'TensorFlow Test' Module. This module creates the test environment and provides the interface and buttons you need to complete and submit the test.
When you 'buy' the test you will be sent a pdf which details exactly what you need to setup, down to the version of PyCharm and Python that you must use, and the packages that it will install in the environment.
You can check out the latest environment setup guidance here.
I would highly recommend setting up a test environment in PyCharm using the exact version of Python and packages that the guidance details. This should mitigate any potential problems you might come across in the exam. This is important, as the test is timed (5 hours), so you don't want to waste time debugging your environment while the test clock is running!
Starting the test #
Once you are setup and you have clicked to 'start the test' you will have folders / files that contain everything you need to complete each section of the test. Instructions on exactly what you need to do are contained within the files that you will write the code. Obviously I can't go into detail here, but once you are at this point you just read the instructions and go!
You are graded on the models that you generate. These models are uploaded using the plugin (you just hit a button) and then the model you submit is tested. Throughout the course of the test you can submit as many models as you like, so you have plenty of opportunity to improve your models throughout the course of the exam.
When you submit a model you receive a grade out of 5 for the submitted model. For example, you may submit a model and the result comes back as 3/5. You might therefore want to try and improve the model to get 5/5 before you end the test, or the time runs out.
I should point out at this point that I have no idea what you need to achieve in terms of test scores to ensure you pass. I completed the test with 5/5 in every section, but this may not be necessary. I have no way of knowing.
One of the things to remember is that this is an open book exam. You can use any resources you want to help you as you go through the exam, so have the resources you think will be helpful setup and readily accessible.
If you do not have a GPU in the computer that you will use for the test, then you need to bear in mind that some of your models (depending on your strategy and choices in the test) may take a little while to run through. In reality the test time of 5 hours takes this into account, and the models you are required to build are reasonable, so it is not a major problem. However, if possible using a GPU would be preferable, and save you some time.
One good option, if GPU access is not possible, is to use Google Colab to run your tests, and then transfer your code to PyCharm on your final model run. This is perfectly valid and even mentioned in 'setting up' documentation:
During the exam, you are welcome to experiment with training models using GCP, AWS, Jupyter Notebooks or Google Colab, but you will still need to define, train and save your models within the exam environment, inside PyCharm, in order to submit it for grading
This allows you to take advantage of the free GPU provided in a Colab environment, which should help you iterate a bit quicker as you fine tune your models.
In general the test went very smoothly. However, I did have an issue with my final model. When I ran the code for the model within PyCharm it would not save the model, and instead gave an error.
Photo by Elisa Ventur on Unsplash
In the end I had to run the code in Colab and transfer the model to PyCharm to upload it. Fortunately, that worked fine, but due to the requirements of a specific version of Python etc. I can't guarantee this will always work. So, where possible I would try to stick to running your models in the PyCharm environment. It is, however, good to know that there is a potential alternative should you hit a technical issue like I did.
How do I know if I passed? #
Once you have submitted your test with your final models, you should receive a confirmation that you completed the test.
In my case, shortly after that I received an email saying I had passed. Literally within 5 minutes or so after completion. Again, I can't guarantee this will happen in your case, but that is what happened to me.
What do you get in the end? #
You are basically issued with a certificate through Google's partner service accredible:
Through the interface you have on your Accredible account you can do various things like download the certificate, create Gmail signatures, outlook signatures, and various embedding options for webpages.
The certificate is valid for 3 years, after which:
To renew your certification at that time, you need to complete the registration and certificate process again.
Slightly vague wording, but I think that means you need to do the exam again.
TensorFlow Certificate Network #
Apart from the actual certificate, you are also added to the TensorFlow Certificate Network (if you opt in).
This is basically an online searchable directory of all the people that have passed the TensorFlow certification. You can filter by name, country, experience etc. so it is very useful for employers, or potential clients to find local 'experts'.
TensorFlow Certificate Network
Again, this may or may not add value for you personally, it is impossible to say, but it is extra visibility none the less.
All in all I think the TensorFlow Developer Certificate is a positive addition to the machine learning / deep learning landscape.
It has spawned a multitude of online courses that are tuned to give you a broad understanding of the main problems (Natural Language Processing (NLP), image classification, time series prediction etc.) that are currently being used within industry to solve a multitude of real world problems.
This gives beginners a structured way to get a good feel for the machine learning / deep learning topic. It also allows more experienced practitioners to check or level-up their skill set. Even seasoned veterans of the industry may benefit from the added benefit of having a certification from Google, one of the biggest players in the deep learning space.
Is it essential to do it? Of course not, but depending on your circumstances it could be of real benefit.
Since you've made it this far, sharing this article on your favorite social media network would be highly appreciated. For feedback, please ping me on Twitter.
...or if you want fuel my next article, you could always: