Plan what to learn for Junior Python Developer
Vadim Kolobanov
Posted on November 5, 2021
Photo by Nick Rickert on Unsplash
Hello everyone I want to share with you my training plan from beginner to Junior in Python. It is important to know that it will be effective to learn in exactly this order. Many of the self-taught may be outraged that the Python developer does not need some of this. Your opinion is worthy of attention and I take it into account, so I want to say in advance that this plan is suitable for a junior before applying for a job as a programmer. To know what I described in the tables is not just to be a Python coder, but to really have the skills to develop a project.
I saw that on dev.to there are many beginners who are looking for tips to start in programming. This plan will suit you very well. And most importantly, do not deviate from your goal! Good luck!
Version Conrol | Success criteria |
---|---|
Version Control Basics | Used at least one VCS Performs basic operations like Check in, check out |
Common operations with Version Control | Creates new branches Merges branches |
Branching strategies | Understands purpose of branching Explains Centralized (Trunk Based) approach Explains GitFlow approach |
Version control is needed so that you can competently store your work and create your resume
Python General Information | Success criteria |
---|---|
Code execution - Novice | Interactive shell Script execution |
Versions of Python - Intermediate | Differences between 2.x and 3.x in general (print, unicode, etc) |
In some points, I have divided one direction by beginner or advanced level, so it is important to follow this order. The learning process of the next topic will be based on the previous one.
Python Types and Operations | Success criteria |
---|---|
Operators - Novice | Types: arithmetic, comparison, assignment, bitwise, logical, membership, identity. |
Numbers - Novice | Definitions Decimal, hexadecimal, octal, binary number syntax |
Lists - Novice | Definition and properties Basic methods and operations Indexing and slicing list vs tuple |
Files - Novice | Definition and properties Basic methods and operations |
Dynamic typing - Novice | Definitions |
Sets - Novice | Definition and properties Basic methods and operations |
Dictionaries - Novice | Definition and properties Basic methods and operations |
Shared references - Novice | Equality: == vs is In-place changes |
Strings - Novice | Definitions Syntax Different formats: single-, double-quoted, multiline. Special characters Basic operations and methods Indexing and slicing Formatting |
Tuples - Novice | Definitions Syntax list vs tuples |
Copying procedure | deepcopy, method copy, slicing, etc. |
Dictionaries - Intermediate | Iteration and comprehensions |
Lists -Advanced | Iteration and comprehensions |
Numbers - Advanced | Numeric operations with mixed types. Comparison: normal and chained. Division: classic, floor, true. |
Operators - Advanced | Precedence of operators. |
Dynamic typing - Advanced | Strong and weak typing |
Strings - Advanced | Raw strings Unicode and ASCII strings |
Python Statements and Syntax | Success criteria |
---|---|
Condition statements - Novice | if-elif-else |
Loop statements - Novice | for, while Control of cycle execution(break, continue, pass) |
Condition statements - Intermediate | inline if, ternary operator |
Generators - Novice | Definitions |
Iterators - Novice | Definitions Built-In iterables. |
Loop statements - Intermediate | How to use else in cycles |
Generators - Intermediate | yield comprehensions vs generators gen expressions range vs xrange |
Iterators - Intermediate | Manual iteration: iter() and next() Iteration protocol. Iterable, Range iterable |
Loop statements - Advanced | Implementation details |
Functions in Python | Success criteria |
---|---|
Argument-Passing - Novice | required, keyword, default |
Argument-Passing - Intermediate | arbitrary argument values,keyword arguments in dictionary |
Definition and calls | Syntax |
Decorators - Novice | Definitions Standard class Decorators: @classmethod, @staticmethod, @property(getter, setter, deleter) |
Functional programming - Novice | map, reduce, filter, zip |
Lambda expressions | Definitions Syntax Usage |
Argument-Passing - Advanced | When and how many times are default arguments evaluated? Partial |
Decorators - Advanced | decorators for functions, decorators for classes wraps passing args to decorators |
Modules in Python | Success criteria |
---|---|
Modules in Python - Novice | import packages __ init __ .py - __ name __ and __ main __ |
OOP in Python | Success criteria |
---|---|
Attribute access - Novice | Direct access Class and instance attributes |
Definition and syntax - Novice | OOP definitions classes syntax |
Inheritance - Novice | Definitions |
Basic customization and Operators overloading - Novice | Definitions |
Relations between classes and instances - Novice | Definitions |
Abstract base class - Novice | Definition and syntax |
Inheritance - Intermediate | Multiple inheritance Classic algorithm Diamond problem MRO, super Mixins |
Inheritance - Advanced | C3 algorithm How to change MRO |
Context managers - Advanced | Implementation details contextlib decorator with-enabled class |
Troubleshooting in Python | Success criteria |
---|---|
Logging fundamentals | Explains purpose of logging. Understands logging levels. |
Debugging in Python - Novice | Definitions |
Exceptions in Python | Success criteria |
---|---|
Definitions and syntax - Novice | Definitions |
Definitions and syntax - Intermediate | Custom exceptions try-except-else, try-finally raise, assert |
and Python standard library.
In this series you will find material on all these issues
Write in private messages, in comments, on social networks. I will always try to help everyone
FAQ
I am a beginner, how should I learn Python?
Look into the following series:
Learning Python
Step by Step to Junior
Ideas
Would you mentor me?
Of course I am ready to participate in the training. The big difficulty is that English is not my native language and it will be possible to communicate through a translator
Would you like to collaborate on our organization?
If you have interesting ideas, we will be happy to invite your writing from our organization. Write in private messages or in social networks below
Connect to me on
Posted on November 5, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.