Plan what to learn for Junior Python Developer
Tags: python, tutorial, beginners, devjournal
Published: 2021-11-05 06:51:52

Photo by <a href="https://unsplash.com/@nick_rickert?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Nick Rickert</a> on <a href="https://unsplash.com/s/photos/python?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  
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 <br> Performs basic operations like Check in, check out |
| Common operations with Version Control |Creates new branches<br>Merges branches|
| Branching strategies | Understands purpose of branching<br>Explains Centralized (Trunk Based) approach<br>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<br>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<br>Decimal, hexadecimal, octal, binary number syntax
|Lists - Novice |Definition and properties<br>Basic methods and operations<br>Indexing and slicing<br>list vs tuple|
|Files - Novice |Definition and properties<br>Basic methods and operations|
|Dynamic typing - Novice|Definitions|
|Sets - Novice |Definition and properties<br>Basic methods and operations|
|Dictionaries - Novice|Definition and properties<br>Basic methods and operations|
|Shared references - Novice |Equality: == vs is<br>In-place changes|
|Strings - Novice |Definitions<br>Syntax<br>Different formats: single-, double-quoted, multiline.<br>Special characters<br>Basic operations and methods<br>Indexing and slicing<br>Formatting|
|Tuples - Novice|Definitions<br>Syntax<br>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.<br>Comparison: normal and chained.<br>Division: classic, floor, true.|
|Operators - Advanced|Precedence of operators.|
|Dynamic typing - Advanced|Strong and weak typing|
|Strings - Advanced|Raw strings<br>Unicode and ASCII strings|

Python Statements and Syntax| Success criteria |
| ------------------------- |:--------------:|
| Condition statements - Novice | if-elif-else |
| Loop statements - Novice | for, while<br>Control of cycle<br>execution(break, continue, pass)|
| Condition statements - Intermediate | inline if, ternary operator |
| Generators - Novice | Definitions |
| Iterators - Novice | Definitions<br>Built-In iterables. |
| Loop statements - Intermediate | How to use else in cycles |
| Generators - Intermediate | yield<br>comprehensions vs generators<br>gen expressions<br>range vs xrange |
| Iterators - Intermediate | Manual iteration: iter() and next()<br>Iteration protocol.<br>Iterable, Range iterable |
|Loop statements - Advanced | Implementation details |

Functions in Python| Success criteria |
| ------------------------- |:--------------:|
| Argument-Passing - Novice |required, keyword, default |
| Argument-Passing - Intermediate |arbitrary argument<br>values,keyword<br> arguments in dictionary |
| Definition and calls |Syntax |
| Decorators - Novice |Definitions<br>Standard class<br>Decorators: @classmethod, @staticmethod, @property(getter, setter, deleter) |
| Functional programming - Novice |map, reduce, filter, zip |
| Lambda expressions |Definitions<br>Syntax<br>Usage |
|Argument-Passing - Advanced |When and how many times are default arguments evaluated?<br>Partial |
| Decorators - Advanced |decorators for functions, decorators for classes<br>wraps<br>passing args to decorators |

Modules in Python	| Success criteria |
| ------------------------- |:--------------:|
|Modules in Python - Novice |import<br>packages<br> __ init __ .py -  __ name __  and  __ main __ |

OOP in Python	| Success criteria |
| ------------------------- |:--------------:|
| Attribute access - Novice|Direct access<br>Class and instance attributes |
|Definition and syntax - Novice |OOP definitions<br>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<br>Classic algorithm<br>Diamond problem<br>MRO, super<br>Mixins |
| Inheritance - Advanced |C3 algorithm<br>How to change MRO |
|Context managers - Advanced |Implementation details<br>contextlib decorator<br>with-enabled class |


Troubleshooting in Python| Success criteria |
| ------------------------- |:--------------:|
| Logging fundamentals |Explains purpose of logging.<br>Understands logging levels. |
|Debugging in Python - Novice |Definitions |

Exceptions in Python| Success criteria |
| ------------------------- |:--------------:|
|Definitions and syntax - Novice |Definitions |
| Definitions and syntax - Intermediate |Custom exceptions<br>try-except-else, try-finally<br>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](https://dev.to/vadimkolobanov/series/15329)
[Step by Step to Junior](https://dev.to/vadimkolobanov/series/15349)
[Ideas](https://dev.to/vadimkolobanov/series/15331)

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

[Write me on Face....oh...Meta](https://www.facebook.com/neo.skarynsky)

[My Twitter](https://twitter.com/decodesperato)