Python Best Practices in Design

Masterclass offered by: ir. Jacques de Hooge

Whom this masterclass is for

You're quite comfortable programming in Python, using language facilities like modules, classes, inheritance, tuples, lists, sets and dicts. Still you know that in order to build professional applications in this language, there's still a lot to learn. In source code written by others you sometimes encounter the use of special, handy facilities like metaclasses and operator overloading. And how exactly can * and ** parameters be used during function definition on one hand and during function calling on the other. How about properties? And how to make a package available via PyPi, e.g. as pip installable?

By searching the Internet and some trial and error you can find your way in these matters, but you'd like to have a systematic overview, including possibilities whose mere existence may be unknown to you. You want to level up your skills from Python developer to Python expert.

Besides that, there's the question of how, given all those possibilities, you can build a professional, stable application with this language. In other words, how do you get from requirements to a good realisation by means of the right design choices, using the Python idiom. This is largely a matter of experience and can only partially be tackled by applying a fixed set of design guidelines. By going through this process while thinking aloud, offering you insight in the considerations that underly a certain design choice, I help you develop a way of thinking that predictably leads to good results. Good, not only by fostering an application that functions correctly, but at the same time resulting in understandable, efficient and "elegant" code, suitable to evolve with demands changing through time.

What will you learn

After completion of the masterclass you're proficient in applying the following facilities and tools on a professional level in the right situations:

Some practical things

If you enter a learning agreement with me, we'll see each other regularly. Als je met mij een leerovereenkomst aan gaat, gaan we elkaar regelmatig zien. Most things will happen in a small group, never more than 10 people. The costs of a 2 hours lesson are €60,-. You'll receive an invoice that you can present to your employer. You work on your individual level and receive individual explanation and coaching.

The location depends upon the size of the group. If the situation requires it, part of the coaching can also take place on-line, e.g. if you live in a remote location or if your availability is limited because you have a job

You'll enter into your teaching agreement directly with me, also in case your employer pays back your training to you after the fact. In that way anyone can take part in the training, also if you're not employed at the moment.

Before you start your training, we have an intake of half an hour. There are no costs in connection with this. Depending on the intake, we both have the freedom to enter a learning agreement or not. My conclusion about this I'll base upon your previous knowledge and experience, but also on your preparedness to learn something new. How you reach your conclusion is totally upto you. Probably you'll at least want to know if I can offer you something that will really help you along. Feel free to ask in depth questions. You'll invest time and money, so you have every right to know what you're embarking on.

Once you successfully completed a subject, you'll obtain a certificate for that subject and you can call on me in case you'll apply for a job, in order to convince your future employer of your skills. I'll gladly stay in touch with you and your career.

In conclusion

If you are truly proficient in designing and building applications with Python, you are employable with many companies, but you can also work as freelance developer, building professional applications in minimal time. Apart from that, the language is very suitable as a vehicle for learning effective design habits, using object orientation, functional programming and, above all, common sense.

The Python masterclass offers a unique possibility to acquire the skills of software designer from an experienced craftsman, who worked as lead designer in many projects involving a broad diversity of applications. It strikes me as remarkable how much pleasure people take in acquiring this knowledge. It is like, after many years of consuming textbook wisdom, something falls into place. Walking and talking are learned by doing. Skillful programming is learned in the same way. For many this opens up a world of possibilities and long lasting job satisfaction!