In this blog we look at the top ten most important topics that should be covered in any training provision - in whatever format is being considered and dip into the certification options to show off your new found skills.
The Python language itself is not that large, but it does come with a set of built-in modules (or libraries) that extend the basic language significantly, once the wider third party eco-system of modules / libraries is taken into account there is a huge range of features available (including everything from game creation libraries, to web frameworks, data analytics and machine learning and beyond). It can therefore be daunting to know where to start and what to look for in any training provision whether that be online or in class, passive or interactive at introductory level or beyond.
In this blog we are going to look at the top ten most important topics that should be covered in any training provision in whatever format is being considered. We will then look briefly at what certification options are available to evidence your new found skills.
1: Basics of the Syntax. Of course it is important in any programming language to understand the basics of the syntax of the language. By this we mean the keywords, and characters that make up the fundamentals of the language. This is the equivalent of the meaning of full stops, semi colons, commas etc with a written language such as English. In addition, although many programming languages are free format and can be laid out in whatever manner the programmer designers (although most language have common layout conventions), Python is much stricter about program layout. Indeed, the layout of your code is part of the structure of your program and determines how the logic of your program is executed. It is therefore important that this is also explained in any course.
2: Variables, Data types, Operators and Flow of Control statements. Once the basic syntax is presented, then how variables and data types work should be discussed. This naturally leads into a consideration of the operations (or operators) that can be used between different types of data, for example two numbers and b added together in Python but by default, a string and a number cannot be added as that has no meaning in Python. At this point flow-of-control statements such as if statements and for loops should be considered.
3. Basics of Input / Output. Of course to be able to see what the effect of your program is it is useful to be able to work with the basic input and output features in Python, specifically the input() function and the print() function and the various options available.
4. Data Containers. Python’s built-in Data Containers are the core of almost all the data structures that you are likely to work with. These containers allow multiple values to be held in a single variable. The most commonly used data containers are Lists, Sets, Dictionaries and Tuples. The meaning of each, their differences and when to use which one should be covered by any training material.
5. Functions. A core element used to structure programs in Python is a function. Any course worth its salt should explain what a function is in python, how it is defined, how data can be passed into a function and returned from a function. It should also explain the purpose and use of default parameter values as well as how to return multiple values from a function. It should also indicate how to define named functions and lambda functions. Ideally it should also indicate the difference between invoking a function and merely referencing it as this is the basis of functional programming in python.
6. Object Oriented Programming. Although it is possible to write a Python programming with defining any user defined classes (and many people do), OOP is basic of much of the Python ecosystem. It is therefore important to learn what a class is, how it is defined, how object data (or attributes) are created and how methods are defined. It can be useful to understand inheritance and be clear on the difference between an instance of a class (aka an object) and the class definition.
7. Error Handling. Python has a sophisticated error handling system that can deal with errors that can occur within an executing program. For example, if the program attempts to access a file that does not exist then an appropriate error will be generated and can be caught and managed so that the program does not merely crash. Any professional software should manage such errors with appropriate notifications to any user or administrator.
8. Modules and Libraries. There is a huge eco system of libraries / modules available to Python programmers from many different vendors and individuals. It is important to understand how to access this eco system and how to add new modules to your existing Python environment – as without this that eco-system will be out of reach.
9. Testing. While testing is a whole subject in its own right, there are several commonly used testing libraries that can help developers ensure that the software does what is intended. The most commonly used libraries are unittest (which is provided with Python) and PyTest which is essentially a superset of unittest.
10. Basic File Handling. While there are several ways in which data held in a file can be accessed, all good introductory courses should include at least the basic file handling techniques. These should allow the data in a file to be read and for new data to be written to a file.
Beyond this there are of course a wide range of additional topics that could be covered depending on the focus or interest of any delegate such as database access, web development, data analysis, Machine Learning, and networking to name just a few.
Of course, once you have learned how to program in Python you might want to be able to prove to a potential employer that you have these skills, and this is where certification can come in.
The certification options offered by the Python Institute is the most widely recognized set of Python certificates. The Python Institute is an independent organisation that collaborates with the Python Software Foundation and various governmental organisations and educational establishments to promote and future Python education and certification. It provides a Certification Roadmap covering General Purpose Programming, Testing and Data Analysis. The core certification levels are:
It should be noted that certification is not a replacement for learning and understand the language, but it can be a useful addition to evidence your level of proficiency.
We've got lots of great Python training courses to choose from: