Python Programming Primer: for C/C++/Java/JavaScript developers
Duration: 15 hours (5 days @ 3 hours per day)
Course Track: Intermediate / Advanced
Price: ₹6000 INR / $100 USD / £80 GBP / €85 EUR
Schedule: Monday to Friday – 8:00 PM to 10:00 PM IST
About the course
This master class is designed to ramp-up your coding skills on Python with focus on a pythonic approach towards problem-solving. You will undergo a smooth transition into the world of Python coding while learning the internals and intricate details of Python syntax, datatypes and language design in general. After successful completion of this course, you should be competent enough to crack most technical coding job interviews on Python skillsets. Kindly note that this training class will be fast-paced with live coding demonstations and discussions (similar to most corporate training sessions delivered by the instructor).
Target audience
This training class is intended for engineers and coding enthusiasts who have basic understanding and coding skills in other programming / scripting languages and are interested in acquiring coding skills on Python language.
Prerequisites
Participants should be familiar with programming in any programming language. Most comparative examples demonstrated in the training classes will be based on the assumption that the participant is familiar with C/C++/Java programming concepts.
Course Objectives
- Learn the Pythonic approach towards problem-solving.
- Unlearn traditional coding practices from other programming languages and think in terms of Python.
- Learn the features, syntax and best practices in Python coding.
- Deep dive in to the dynamic nature of Python language design for writing code.
- Learn how to leverage Python features like ducktyping, monkey-patching, functional programming, concurrent programming and AOP.
- Learn the best practices in choosing builtin datatypes and from standard library modules.
What Will NOT be Covered
- Process and network automation-related library modules/concepts.
- Multi-threading, multiprocessing miscellaneous Python libraries.
- Web programming or web automation.
- Any third-party library/modules.
Training Mode
This training program is designed to be a live master class conducted via Google Meet. Most concepts will be explained by live coding – attendees are expected to learn by interacting with the master and trying out short exercises provided by the master.
Training Requirements
As the training will be a live master class, each attendee must have a working computer/laptop with reliable internet connectivity for practice sessions and have the following software installed on their computer/laptop:
- Python 3.10 or above installed and configured [Download available at python.org/downloads or from Microsoft Store for Windows users. You can also use Anaconda Python from anaconda.com/downloads]
- Visual Studio Code with Python extensions enabled. [Download from code.visualstudio.com/Download]
Module 1
Python coding bootstrap
Introduction to Python
- An overview on python programming.
- Python vs other mainstream languages (comparitive demonstrations)
- Problem-solving approaches
- Practices and paradigms
Common misconceptions about Python: demystified
[Breaking the following myths by code demonstrations, explanations and citing use-cases]
- Python is a scripting language (?!)
- Python is slow (?!)
- Python is not fully object-oriented (?!)
- Python is not scalable (?!)
- Python is not designed for enterprise applications (?!)
- Python is not meant for low-level / embedded development (?!)
An overview on Python development tools.
- Python runtimes and implementations.
- Using the Python REPL
- Using
IPython
for exploration and rapid productivity - Using
Jupyter
notebook to maintain re-usable code snippets - Using
VisualStudio Code
- An overview on other IDE / Environments for programming and maintaining python code.
- Using
pylint
to check whether python program following PEP8 style guidelines - An overview on Python PEPs with insight on PEP8 (style guide for writing Python programs).
Module 2
Getting started on Python
Python language syntax overview
- Python statements and expressions
- Simple statements and compound statements
- Identifiers and expressions
- Literals notations: numbers, strings, tuples, lists, sets and dictionaries
- Python indentation rules
- Flow control constructs:
- Conditions
- Loops
- Iterations
- Exception handling
- Basic builtin functions:
print()
,input()
,dir()
,type()
Python language features and terminologies
- Python as a dynamic programming language.
- Static vs Dynamic typing – the unsettled debate.
- Gradual typing syntax support in Python code.
- Statements are not expressions.
- The rationale behind the lack of
++
and--
operators. - Understanding immutable and hashable objects.
- The “
==
” vs “is
” operator. - The “
in
” operator. - Functions vs methods vs type constructors.
- Type casting vs type constructors.
- Names, Objects, Values, Types and Attributes.
- Variables vs Attributes.
Module 3
Python design paradigms
Pythonisms (with demonstrations)
- Everything in Python are ultimately objects.
- All identifiers are names that act as references.
- Python programs are modules.
- Functions and classes are callable objects.
- Methods are attributes that refer to callable objects.
- Statements are not expressions.
- Every object express boolean truthiness.
- Every object express an offical and/or an unoffical string representation.
- Every object can be introspected in runtime
- Popular Python Zen idioms:
- “Errors should never pass silently (unless explicitly silenced)!”
- “There should be one and preferably only one obvious way to do it!”
- “In the face of ambiguity — refuse the temptation to guess!”
Python programming styles and paradigms
- Choosing the right style/paradigms for a given problem
- Procedural paradigm and modularity
- Object-Oriented-Programming (OOP)
- Functional programming patterns
- Aspect-Oriented-Programming (AOP) patterns
- Assignment statements in Python: interesting ways.
- More about type constructors: dealing with tuples, lists, sets and dictionaries.
- Sequence indexing and slicing techniques.
- Iterables, Collections, Generators and the Iterator protocol.
Module 4
Strings and Text processing
Working with Strings
- String literal representations and syntax.
- String-related operators, methods, expressions and built-in functions.
- String formatting using the
%
operator,str.format()
method
and usingf-strings
. - Using
str
,bytes
andbytearray
types.
Regular expressions
- Using regular expressions in Python with the
re
module re.Pattern
andre.Match
objects- Using
match()
,search()
,findall()
andfinditer()
methods - Python-specific regex syntax nuances
- Pythonic approaches to use regular expression match groups
Module 5
Working with files and filesystem
File I/O operations
- An overview on I/O streams.
- Using the
with
clause. - Reading and writing to small text files.
- Managing read/write operations on large text files.
- Managing read/write operations on binary files.
- Working with CSV, INI, TOML and JSON files.
- Using
pickle
to serialize data. - Patterns for reading/parsing text files and binary files
Filesystem path / stat / directory handling.
- Creating, renaming and deleting files and directories.
- Iterating through directory contents.
- Gathering
stat
of files and directories. - Path manipulation using
os.path
andpathlib
modules.
Module 6
Builtin collections and iteration helpers
Lists, Tuples and Sets.
- Creating lists, tuples and sets:
- Using literal notations.
- Using constructor expressions.
- Using comprehensions.
- Tuple: sequence operations and methods.
- Using
min()
,max()
,sum()
,
all()
,any()
functions - List: operations and methods
- List: slicing/dicing operations
- Built-in iteration helpers:
range()
,zip()
,enumerate()
,reversed()
andsorted()
- Iteration helpers in
itertools
module - Sets: overview, operations and methods.
- Using
map()
,filter()
,reduce()
functions. - More about comprehensions.
- Using
collections.deque
. - Using
heapq
,bisect
andarray
modules.
Module 7
Working with dictionaries
- Introduction to dictionaries.
- Creating, updating and managing dictionaries.
- An overview on dictionary operators, functions and built-in methods.
- Dictionary manipulation tips and techniques.
- Using
collections.ChainMap
,collections.defaultdict
andcollections.Counter
objects. - Working with persistent dictionaries using the
shelve
module. - Dictionaries everywhere in Python code:
- Object’s attributes as dictionaries.
- Variable namespace as dictionaries.
- OS environment variables as dictionaries.
- Examples of dictionary interface in various frameworks.
Module 8
All about Python functions
- Defining functions
- Function arguments, prototypes and polymorphism
- Functions as first-class objects
- Pure functions, functions with side-effects and Higher-order functions.
- Improving readability of function definitions:
- Using consistent doc-strings (PEP-257 and PEP-287).
- Type hints for function prototypes (PEP-484).
- Best practices for function design in Python.
- Creating functions using
lambda
expressions - Inner functions and their use-cases.
- Scoping rules: Python’s name resolution order
Module 9
On overview on Python OOP using class-based design
- Defining a class in Python
- Understanding scoping rules and name resolution within classes.
- Instantiation and Inheritance
- Class attributes and instance attributes
- Life-cycle methods:
__new__()
,__init__()
and__del__()
- An overview on data-model methods (a.k.a dunder methods)
- Using the
@classmethod
and@property
accessors. - The
@staticmethod
debate: why you should rethink about using them.
Module 10
Odds and Ends
- Classes vs Modules: when should you choose creating classes over modules.
- Modules as namespaces, modules as first-class objects.
- Unlearning classical OOP paradigms (from C++ / Java / Objective-C / C# and others).
- Duck-typing and Monkey-patching: the way of life in python coding.
- Python packaging: creating reusable and redistributable libraries.
- On overview on creating standalone executables from Python code using
PyInstaller
andNuitka
Course fee: ₹6000 INR / $100 USD / £80 GBP / €85 EUR (to be paid in advance for enrollment)
How to enroll ?
In order to enroll to this training class, you can fill in the form below registering your interest with the required details.
You will receive an acknowledgement email from registrations@slashprog.com once you submit the form. In this email, we will provide you with the details for paying the course fee including payment links if you chose “Pay via Stripe” or UPI/NEFT details if you chose UPI/NEFT payment option.
Once we receive the payment, we will reply back with the confirmation of your training registration and provide you links to connect using Google Meet along with the exact schedule for the classes by email.
If you have any further queries, you can email us directly to contact@slashprog.com