Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
11 views

EXA Python Roadmap_ based on Google

The EXA Python Roadmap, created by Jean from Exaltitude, provides a structured approach to mastering Python for various career paths such as software development, data science, and machine learning. It emphasizes the importance of goal setting, foundational skills, and offers resources for further learning, including optional advanced topics. The roadmap includes practical exercises and project tips to enhance real-world application of Python skills.

Uploaded by

testdebuging
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

EXA Python Roadmap_ based on Google

The EXA Python Roadmap, created by Jean from Exaltitude, provides a structured approach to mastering Python for various career paths such as software development, data science, and machine learning. It emphasizes the importance of goal setting, foundational skills, and offers resources for further learning, including optional advanced topics. The roadmap includes practical exercises and project tips to enhance real-world application of Python skills.

Uploaded by

testdebuging
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

EXA 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’ve worked in tech for the past 20 years as an
engineer, an engineering manager, and a team builder.
I was the 19th engineer at WhatsApp and worked with
Facebook as an Engineering Manager for six years
after the $19B acquisition.
Throughout my career, I've mentored and coached
countless Software Engineers and Managers from diverse backgrounds, noticing
common questions around direction and growth: "Where am I headed, and how do I get
there?" This inspired me to share my insights, helping future engineers build purposeful,
successful careers.
Stay connected for updates, industry insights, and career advice on LinkedIn and
YouTube.
Have questions? Reach out on my website!

Expected 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,

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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 from 67% of job postings
●​ Back-end Developers: Build and maintain the server-side logic, databases, and
APIs that power the functionality of web applications.
○​ Core skills: server-side programming, database management, data
structures and algorithms, system design, and cloud computing.
■​ Python is asked from 82% of job postings
■​ Django is asked from 36% of job postings 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,

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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 from 100% of job postings
○​ Related Libraries: Pandas, Numpy
○​ Resources:
■​ Stanford’s Numpy Tutorial
■​ Pandas Tutorial
●​ 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
●​ ML Engineer: Specialists who create and optimize machine learning models to
solve specific data-driven problems.
○​ 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

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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.

Let’s get started on building your Python skills with purpose!

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
■​ 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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


●​ 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:


○​ 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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


●​ %: 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.
●​ 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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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.


●​ 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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


●​ 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.

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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


●​ 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:


○​ Learn common data structures and algorithms.
○​ Free Classes/Resources (choose one):
■​ Coursera’s Foundations of Data Structures and Algorithms
Specialization

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


●​ 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)

Phase 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
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

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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.
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.

www.exaltitude.io ● www.youtube.com/@exaltitude ● jean@exaltitude.io


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 ● jean@exaltitude.io

You might also like