Better Programmer with Python Be a master
Course Highlight
- 40-45 hour of instructor led training, sessions on alternate days
- Detailed understanding of basic and advanced concepts of Python language
- Exercises throughout the course to enforce the learning
- Project on solving sudoku puzzle
- Understand the concept of requirement gathering and documentation
- Comments – do we need these?
- Doc Strings and Annotations
- Don’t Repeat Yourself (DRY) / Once and Only Once (OAOO)
- Keep it Simple (KIS)
- Easier to Ask Forgiveness than Permission (EAFP)
- Look Before You Leap (LBYL)
- SOLID Principles
Learn and implement the concepts clean coding
- Learn the skill of debugging
- Learn the concepts of logging
- Implement exception handling techniques
- Learn to write good test cases, a prerequisite for todays agile environment
- Learn the concepts of GIT / GIT HUB
- Learn the concepts of OOP and its implementation in Python
- Learn the concepts of DBMS and RDBMS
Where it is used?
- Python is one of the fastest growing language in the world today (source GitHub)
- A mature language, been in existence for more than 20 years
- Open source / freely available
- Easy to learn
- Huge active community and documentation
- Cross platform
- Has 200K+ packages available
- Web Development
- Data Science and Data visualization
- DevOps / Automation scripts
- Educational research
- Machine learning and Artificial Intelligence
- Prototyping
- Game development
- Web scraping
- Business applications
And used for…
Training Outline
Week 1
- Overview of Python Language
- Installation and Env setup on Windows
- Install PyCharm
- Install Jupyter Notebook
- Getting Started
- Write first Python Program
- Datatypes and variables
- Numbers
- Numeric, Integer,
- Float, Complex
- Sequence
- Strings, Lists, Tuples
- Dictionary
- Set
- Boolean
- Variable definition
- Numbers
- Keywords and Operators
- Python Language keywords
- Operators
- Arithmetic, Comparison, Bitwise,
- Logical, Assignment,
- Identity, Membership
- Python Language keywords
Week 2
- Working with Datatypes
- Mutable vs Immutable
- Strings,
- Lists,
- Tuples,
- Dictionary
- Sets
- String formatting
- Python helpful functions
- Common functions and modules
- Dunder variable __name__
- Understanding the control flow
- Boolean and Comparison
- If – else – endif statements
- For loop
- While loops
Week 3
- Methods and Functions
- Functions Introduction
- Basics of functions
- Function arguments and parameters
- Function return values
- Unpacking of values
- Return vs yield
- Recursive functions
- Modules and Packages
- scope
- Namespace
- Types of namespace
- Modules and its operations
- Module import best practice
- Package and its operations
- Understanding __init__.py file
Week 4
- Object Oriented Programming in Python
- Understand OOP concepts
- Implement classes in Python
- Understand access specifier
- Static variables and methods
- Class variables and methods
- Abstract methods
- Implementing Inheritance
- Super()
- Polymorphism in Python
- Getter and Setter methods
- Iterators and generators
- Development Environment
- Create and manage virtual environments
- List comprehension
- List comprehension
- Supporting functions
Week 5
- GIT and GITHUB
- Version Control System (VCS)
- Centralized version control system (CVCS)
- Distributed version control system (DVCS)
- Installing GIT
- – First time setup
- Three areas
- Important terms
- GIT Commands
- GIT Flow
- Local sync from repo
- – Local changes
- Sync back to repo
- GITHub Flow
- Common Issues with GIT
- We will discuss 8 such scenarios
- UNIT Testing
- Assert statement
- Module unittest
Week 6
- Important terms
- Test fixtures and suites
- Test driven development – concept
- Logging
- module logging
- Levels of logging
- Four modules of logging
- Understanding ROOT logger
- Logging hierarchy
- Logging configuration
- Exceptions
- What is error and exception
- What is “Error Condition”
- Exception handling
- Using try and except
- Using else and finally
- Throwing exception
- User defined exception
Week 7
- Input and Output
- Managing user input
- Folder Management
- File Operations
- – Open, read, write operation
- – Searching through file
- DBMS
- MySQL Installation
- mysql-connector-python installation
- DBMS / RDBMS introduction
- SQL Basics
- Constraints
- Data Integrity
- Normalization
- SQL Statements
- – Select statement
- Hands-On
Who can attend this course
- Has a zeal to learn new language & techniques
- Ready to make mistakes and learn from mistakes and still be ready to make more mistakes and learn again
- Is ready to explore new domains to work on
- Wants to be a better and a disciplined programmer
- Ready to put in good amount of effort in this course
Focus of this course
To develop you as a ready to deploy Python developer with focus on
- Python basic and advance features
- Concepts of OOPs & DBMS and its implementation in Python
- Write easily readable and understandable code
- Write and debug code easily
- Change a program with minimum effort and maximum accuracy
- Maintain the code properly understand the concept of refactoring
Understand importance of clean code and..
- Understand the concept of requirement gathering and its documentation
- Understand how logging works
- Learn the debugging skills
- Implement exception handling
- Learn and implement the SOLID Principle
- Understand the importance to writing test cases
- Discuss how language(s) help and what precautions we can take to avoid bugs
- GIT and GITHB
- A project to solve Sudoku puzzle