0% found this document useful (0 votes)
15 views14 pages

Python Roadmap Based On Google

Updated Python Learning roadmap from Exactitude academy

Uploaded by

Ola ope
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views14 pages

Python Roadmap Based On Google

Updated Python Learning roadmap from Exactitude academy

Uploaded by

Ola ope
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Exaltitude Python Roadmap

(Based on Google for Education)

Master Python for FREE!

Hi, I’m Jean,


I'm the Founder and host of Exaltitude on YouTube. I
was an early engineer at WhatsApp before its $19B
acquisition by Meta, then led engineering teams at Meta,
where I experienced firsthand how technology evolves
and shapes the world.

Now, I’m on a mission to break down how AI is changing our careers, industries, and the
future of work. AI will transform how we work, learn, and live, and many are
overwhelmed by what this means, especially those without access or context.

My goal is to simplify these concepts and make them accessible to everyone, whether
you’re starting in tech, pivoting careers, or just curious about AI’s impact. I’m here to
bring credible, practical insights into the conversation, helping you not just keep up, but
take advantage of AI opportunities.

No hype. No jargon. Just real-world insights for navigating AI and what’s next.

Stay connected for updates, industry insights, and career advice on LinkedIn and
YouTube. Have questions? Reach out on my website!
Part 1. Setting Expectations

Timeline
At Google, this material is taught in a fast-paced 2-day class, with videos split into Day 1
and Day 2 sections. However, if you're studying part-time, it may take much longer to
complete. The time required will vary depending on factors like your experience level,
how much time you can dedicate to studying, and how deeply you want to understand
each topic.
Set realistic expectations and be patient with yourself—remember, the goal is to learn
and understand the material, not just rush through the class.

Goal Setting

When deciding to learn Python, the first and most important step is to define your goal.
Are you aiming to become a software developer, a web developer, a data scientist, or
dive into machine learning and AI? Each career path requires a different set of skills, so
having clarity about your destination will help you focus on what truly matters.

We analyzed 150 job postings to uncover the most in-demand programming languages
sought by real companies. Here are some key insights!

●​ Software Developer: Design, create, and maintains software for applications and
systems. They are involved in the entire software development process, from the
initial concept to the final product
○​ Core skills: data structures and algorithms, object-oriented programming,
system design, version control, testing, and debugging.
○​ Python is asked in 67% of job postings
●​ Back-end Developers: Build and maintain the server-side logic, databases, and
APIs that power the functionality of web applications.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


○​ Core skills: server-side programming, database management, data
structures and algorithms, system design, and cloud computing.
■​ Python is asked for in 82% of job postings
■​ Django is asked for in 36% of job post,ings and Flask is 17%.
○​ Resource: Django Tutorial
●​ Data Scientist and Engineer: Data Scientists analyze and interpret complex data
to help organizations make data-driven decisions, while Data Engineers design,
build, and maintain the infrastructure and systems needed to process and store
large datasets for analysis.
○​ Core skills: statistics, data management, machine learning, and data
visualization.
○​ Python is asked in 100% of job postings
○​ Related Libraries: Pandas, Numpy
○​ Resources:
■​ Full Data Science Roadmap: 16-page PDF by Jean
■​ Data Science roadmap video on YouTube by Jean
■​ NumPy Tutorial for Beginners by Jean
■​ Pandas Tutorial by PyData
●​ AI Engineer: Designs and deploys artificial intelligence systems, integrating
machine learning models and algorithms into scalable, real-world applications.
○​ Core skills: machine learning, neural networks, deep learning frameworks,
and natural language processing.
■​ Python is asked from 58% of job postings
■​ PyTorch and TensorFlow are asked from 17% of job postings
○​ Related Libraries: Scikit-learn, Matplotlib, Seaborn
○​ Resources:
■​ AI Roadmap video on YouTube by Jean
■​ AI Roadmap 19-page PDF by Jean
●​ ML Engineer: Specialists who create and optimize machine learning models to
solve specific data-driven problems.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


○​ Core skills: data management, model training and evaluation, and
expertise in ML frameworks.
■​ Python is asked from 83% of job postings
■​ PyTorch and TensorFlow are asked from 75% of job postings
○​ Related Libraries: Scikit-learn, Keras, Matplotlib, Seaborn
○​ Resources:
■​ Pytorch Tutorial
■​ TensorFlow Tutorial
■​ Scikit-learn Tutorial
■​ Keras Tutorial
■​ Matplotlib Tutorial
■​ Seaborn Tutorial

Before jumping into advanced tools and technologies, it’s critical to build a strong
foundation. This roadmap will guide you through mastering the fundamentals and then
provide tailored resources to help you dive deeper into the skills needed for your chosen
career. At the end, optional resources will be shared for those who want to explore even
further.

Start building your Python skills with purpose!

Part 2. Career Preparation and Guidance

This section is important because learning to code and getting a job are two different
skills. Coding is about building your technical knowledge and creating projects while
getting a job is about writing a strong resume, networking, and preparing for interviews.
Balancing both skill sets is key to achieving your career goals.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


Resume Writing:

●​ The Ultimate Resume Handbook by Jean (paid): A comprehensive guide to


crafting standout resumes tailored for tech roles. Also, download the free
Ultimate Resume Template.
●​ Developer Resume with ChatGPT for ATS Success by Jean on YouTube: Learn how
to use ChatGPT effectively to optimize your resume for applicant tracking
systems.
●​ Engineering Resume Hack (from Big Tech Hiring Manager) by Jean on YouTube:
Insider tips from Jean, a former hiring manager, to make your resume stand out
in big tech.

Interviews:

●​ Cracking the Coding Interview by Gayle L. McDowell (paid book)


●​ Blind 75 Leet code questions by Leetcode
●​ Python cheat sheet by Leetcode
●​ DSA study guide by Leetcode
●​ System Design Interview Survival Guide (2024): Strategies and Tips (blog)

Join FREE Monthly LinkedIn Live Q&A with Jean:

●​ What it is: An open session where Jean answers your career-related questions
live—completely free.
●​ Why it matters: Gain expert insights on navigating the tech industry, job search
strategies, and career development.
●​ Next session: January 6, 2025. Sign up here. Follow Jean on LinkedIn to get
updates on the newest events.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


Job Market Insights:

●​ Tech Salaries Trends for 2025 by Jean on YouTube: Stay informed about the
latest salary trends in the tech industry.
●​ Top Machine Learning Engineer Salary by Jean on YouTube: Explore the earning
potential of ML roles in various industries.

Career Development:

●​ What Color Is Your Parachute? By Richard N. Bolles (Paid book)


●​ Zero to AI ML Engineer: Get Hired Without Experience by Jean on YouTube: A
roadmap for breaking into AI/ML engineering without prior experience.
●​ 7 Habits That Will Make You a Better Programmer by Jean on YouTube: Simple
habits to improve your coding skills and professional growth.
●​ 7 Mistakes that Ruin Your Career as a Junior Software Engineer by Jean on
YouTube: Avoid common pitfalls that could derail your early career.

Part 3. Learn Python

Setup

The Python setup guide in Google’s class walks you through installing Python on your
computer and configuring your text editor.

●​ IDE: The course doesn’t go into much detail about the editor, likely because
Google assumes you’re already familiar with their recommended IDEs.
○​ If you’re new to programming, there are many options, including:
■​ Jupyter Notebook
■​ PyCharm
■​ VS Code
■​ Atom

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


■​ Eclipse PyDev
■​ Vim
●​ Editor Settings: Configure it to insert spaces instead of tabs, use
auto-indentation, and save files with Unix line endings to avoid errors.
●​ PEP 8 – Style Guide for Python Code (optional): This document outlines coding
conventions for Python's standard library like blank lines, block comments, and
naming conventions.

Day 1, Module 1: Python Intro


●​ Imports allow you to include external Python modules or libraries in your code.
●​ Command-line arguments are inputs passed to a Python script when executed
from the command line, accessible via sys.argv.

●​ len() is a built-in function that returns the number of items in an object, such as
elements in a list or characters in a string.

●​ In Python, functions are reusable blocks of code that perform specific tasks and
can accept inputs and return outputs.

●​ Indentation in Python defines code blocks, making it essential for code structure.
●​ Variable names are identifiers for storing values and must be descriptive,
case-sensitive, and follow naming rules.

○​ Case-sensitive variable examples: “Python” and “python” are different!

Day 1, Module 2: Strings


●​ Python offers a versatile string class with various features.
●​ Strings are immutable, meaning they cannot be changed after creation.
●​ To modify strings, new ones must be constructed.
●​ String indexing and slicing allow for character access and extraction, while the
len() function determines string length.

●​ Common string methods you should know:

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


○​ s.lower(), s.upper(), s.strip(), s.isalpha(), s.isdigit(),
s.isspace(), s.startswith('other'), s.endswith('other'),
s.find('other'), s.replace('old', 'new'), s.split('delim'),
s.join(list)

●​ Slices: Python's slice syntax, s[start:end], allows for flexible substring


extraction by specifying starting and ending indices, with negative indices
indicating positions from the end of the string.

●​ Formatting: Python offers two primary string formatting techniques: f-strings,


which provide concise formatting within strings, and the older str.format()
method.

●​ %: The % operator in Python is an older string formatting method that uses


placeholders like %d, %s, and %f to insert values into a string.

●​ If statement uses indentation to define code blocks, and evaluates conditions


without requiring parentheses.

Day 1, Module 3: Lists


●​ Python lists, written in square brackets [ ], are mutable, ordered collections
where elements are accessed by index and assignment creates references.

●​ For loop iterates over elements in a sequence.


●​ While loop repeatedly executes a code block as long as a condition is true.
●​ Common list methods you should learn:
○​ append, insert, extend, index, remove, sort, reverse, pop

Day 2, Module 1: Sorting


●​ The sorted() function creates a new sorted list from an iterable, leaving the
original list unchanged, and can be customized with options like reverse=True
for descending order.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


●​ The sorted() function's key argument allows custom sorting by providing a
function that transforms each element into a value used for comparison.
●​ The sort() method sorts a list in-place, modifying the original list and returning
None.

●​ Tuples are immutable, ordered sequences of elements, often used to represent


fixed-size groups of data.

Day 2, Module 2: Dicts and Files


●​ Dict Hash Table: A Python dictionary, defined with curly braces {}, is an efficient
key-value store that allows for quick lookup and retrieval of values based on their
associated keys.
●​ Dict Formatting:
○​ The % operator can be used to format strings by substituting values from a
dictionary using named placeholders.
○​ del removes variables, list elements/slices, or dictionary entries.
○​ open() function opens a file for reading, writing, or appending, returning a
file handle.
○​ Text files can be read line by line using a for loop.
●​ Files:
○​ To handle Unicode files, open them in text mode ('rt') with a specified
encoding like 'utf-8'.

Day 2, Module 3: Regular Expressions


●​ Python's re module supports regular expressions for text pattern matching. The
re.search(pattern, string) function searches for the pattern in the string,

returning a match object or None if not found.


●​ Basic Patterns: Regular expressions use metacharacters like ., \w, \s, ^, $, and
\ to match various character patterns, including word characters, whitespace,

digits, and specific positions within a string.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


●​ Example: Regular expressions search left-to-right in a string for the entire pattern,
but not necessarily the entire string. A successful match object (match.group())
contains the matched text.
●​ Repetition: Regular expressions use +, *, and ? quantifiers to match one or more,
zero or more, or zero or one occurrences of the preceding pattern, respectively,
always trying to match the leftmost and longest possible substring.
●​ Group Extraction: Parentheses in regular expressions define capture groups,
allowing you to extract specific parts of the matched pattern using
match.group(n) where n is the group number.

●​ Findall:
○​ The re.findall(pattern, string) function finds all occurrences of the
pattern in the string and returns them as a list.
○​ For files containing text, re.findall(pattern, f.read()) is a more
efficient way to find all matches of the pattern in the entire file content
returned by f.read().
○​ Combining parentheses and findall returns a list of tuples: each tuple
represents a match with captured groups accessible by index (e.g.,
tuple[0] for the first group). If there are no groups, findall returns a list

of strings as usual.
●​ RE Workflow and Debug:
○​ Debugging regular expressions involves iterative refinement, starting with
a loose pattern to get some matches, and then gradually tightening it to
match the desired specific patterns.
●​ Options: Regular expression functions like search and findall accept optional
flags (e.g., re.IGNORECASE) to modify matching behavior, such as ignoring case,
allowing . to match newlines, or treating ^ and $ as line anchors.
●​ Greedy vs. Non-Greedy (optional): Greedy quantifiers (+, *) match as much
text as possible, while non-greedy quantifiers (+?, *?) match as little as
possible to satisfy the pattern, often used with character classes like [^>]* to
match specific patterns within larger text.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


Day 2, Module 4: Utilities
●​ File System -- os, os.path, shutil: The os, os.path, and shutil modules provide
functions for file system operations like listing directories, constructing paths,
checking file existence, creating directories, and copying files.
●​ External Processes -- subprocess: The subprocess.check_output function from
the subprocess module executes an external command and captures its
combined standard output and standard error as text.
●​ Exceptions are errors that occur during program execution, halting normal flow
and transferring control to error handling code (like try...except blocks) for
alternative behavior or informative messages.
●​ HTTP -- urllib and urlparse: The urllib.request module fetches URLs and
returns file-like objects, while urlparse parses and constructs URLs. You can use
urlopen(url) to retrieve a URL, read its content, and get its metadata (like

content type and base URL).

Additional Resources (Optional)


●​ Linux Command Line:
○​ Master essential Linux commands and shell scripting.
○​ Free Class: Linux Academy
○​ Recommended Written Tutorial: Ubuntu’s The Linux command line for
beginners

●​ Object-Oriented Programming (OOP):


○​ Understand data types, control flow, and functions through object-oriented
programming (OOP)

○​ Free Classes/Resources (choose one):


■​ Codecademy’s Learn Java
■​ Introduction to Java and Object-Oriented Programming on Coursera

●​ Data Structures and Algorithms:

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


○​ Learn common data structures and algorithms.
○​ Free Classes/Resources (choose one):
■​ Coursera’s Foundations of Data Structures and Algorithms
Specialization
●​ Algorithms for Searching, Sorting, and Indexing
(recommended)
●​ Trees and Graphs: Basics (recommended)
●​ Dynamic Programming, Greedy Algorithms (optional)
●​ Approximation Algorithms and Linear Programming
(optional)
●​ Advanced Data Structures, RSA and Quantum Algorithms
(optional)
■​ Google Tech Dev Guide

○​ Recommended Book: Introduction to Algorithms, Third Edition by Cormen,


Leiserson, Rivest, and Stein (paid resource)

Part 4. Capstone project

This class includes four exercises:

1.​ The Basic Python Exercises will cover topics like Python Strings, Lists, Sorting,
Dicts, and Files.
2.​ The Baby Names Python Exercise helps you extract baby name data from HTML
files provided by the Social Security Administration. In Part A, you'll create a
function to get the year and name-rank data from an HTML file and return it as a
list, then update the program to print the results. In Part B, you'll change the
program to save the summary to a new file instead of printing it, and add a
feature to process multiple files at once.
3.​ The Copy Special Python exercise involves working with file paths and external
commands to manage special files. In Part A, you'll write a function to gather

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


files with a specific pattern in their names and print their absolute paths. Then
you'll add functionality to copy these files to a directory or zip them into a file,
depending on the command-line options.
4.​ The Log Puzzle Python exercise teaches you how to extract image URLs from
log files and use them to download and display image slices. In Part A, you find
and list the URLs, and in Part B, you download the images and create an HTML
file to show them. In Part C, you sort the URLs correctly to solve a second puzzle
with image slices.

When working on projects, remember that completing exercises is just the first step to
learning — real-world projects will push you further and prepare you for landing a job.

Tips for the project


Here are some steps to help you develop a plan for real-world projects:

1.​ Define the Problem: Identify a clear problem or need you want to solve. Ensure
it’s something relevant and practical, either from your personal experiences or
something you've noticed in the industry.
2.​ Break It Down: Divide the project into smaller, manageable tasks. This could
include gathering requirements, designing the solution, coding, testing, and
deploying.
3.​ Set Clear Goals: Establish what success looks like for each phase of the project.
Set both short-term milestones (e.g., completing a specific feature) and
long-term goals (e.g., fully functional system).
4.​ Research: Before jumping into coding, research existing solutions, tools, and
technologies that can help streamline your project. Learn from what others have
done to save time and avoid common pitfalls.
5.​ Develop Iteratively: Start small and build the project step by step. Don’t try to
build everything at once. Focus on one feature at a time, and gradually add
complexity.

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]


6.​ Test as You Go: Regularly test the code to ensure everything works as expected.
It’s easier to catch and fix bugs early than to wait until the end.
7.​ Document Your Work: Keep detailed notes about your development process,
including any challenges you face and how you solve them.
8.​ Iterate and Improve: After completing your first version, look for areas to
improve. Whether it’s refactoring code, enhancing the UI, or adding additional
features, strive for continuous improvement.
9.​ Deploy and Share: Once your project is polished, deploy it and share it with
others. Use platforms like GitHub, LinkedIn, or personal blogs to showcase your
work and get it seen by potential employers.
Ultimately, the best project for you will depend on your specific interests and career
goals.

Good luck!

www.exaltitude.io ● www.youtube.com/@exaltitude ● [email protected]

You might also like