Learning Python & Programming

Johannes Seikowsky
4 min readJan 3, 2019

--

This is the introduction to my “Python & Programming” course:

This course is designed for any modern computer user who
wants to acquire a useful understanding of what maybe called the “basics of programming”.

To achieve that purpose we are going to look at the Python programming language. The choice of Python as our programming language has two main reasons. Firstly, Python is, plainly put, a very nice language to write programs in — in my opinion that is. And secondly, Python is used in many, many different fields — data science, machine learning, game development, network programming — you name it. This is important, because chances are that you don’t have a very clear understanding yet of what you want to work on in the future — what you want to use your programming skills for. Given that circumstance, it seems wise to choose a language that has a wide range of applicability — a regard in which I know of no language superior to Python.

One important thing to understand is that programming is a practical pursuit and not a theoretical subject. Conceptually being a programmer is closer to being an architect or a painter than it is to being a Geologist or Historian. As a programmer, you are at your core a maker and a designer — a maker and a designer of programs, charged first and foremost with the task of conceiving and writing novel and useful programs.

This is not to say that theory can be disregarded. On the contrary — acquiring a good understanding is indispensable. In particular acquiring a good understanding of your programming language of choice, as that language will be your main tool for writing programs. And in particular of the core concepts of that language, as many things further down the line will in turn be based on these core concepts.

The understanding we’re aiming at is however a practical one. In the same way that professional chefs may know a wide variety of ingredients and taste-patterns and such things in order to prepare good dishes, in that way programmers aim to know their language well in order to write good programs.

That is why we are going to focus on theory as well as application.
I’m going to explain as clearly as I can the practically important core concepts of Python and how they relate to the practice of programming. But unlike most other courses, we are going to start work on an actual program that you actually want to write relatively soon. In fact, we are going to start as soon as possible. This project will probably be a small one at first, but it will be a genuine one. And, as said before, that is what programming is all about — writing good, novel programs that actually do something useful.

For that reason, I’ve put together the rest of the course in the following way. The next lesson will briefly deal with our setup for writing code using a very good website called Repl.it. This setup will be very simple — no need for installations or similarly tedious things. After that we are going to cover those Python concepts that in my opinion constitute the absolute minimum that one would need to know to start work on a small project. We will try to learn “the minimum to be dangerous” so to speak, with each lesson being dedicated to one of the necessary concepts. Overall there are 8 such concepts and therefore 8 lessons. After that we are going to use one of our 1-on-1 sessions to guide you through the beginning stage of a coding project — coming up with an idea and getting started with the code. And after that I will provide continual practical support throughout that project until it’s done to a reasonable standard.

If all goes well, you will, by the end of it, have a reasonable hold on the basics of Python programming and thereby of computer programming in general and moreover have a project to show for it — your first programming reference work.

Regarding the 8 “theory” lessons that follow, each one will have a content part that’s made up of a video or a written explanation or both and a DIY part with 2 or 3 practical tasks designed to give you a chance to play around with code and internalize the content of the lesson. I would recommend not skipping these practical tasks, as in programming there is a sort of “muscle memory” if you will, that develops only if you actually type out code yourself, even if you don’t completely understand what you’re typing.

I also recommend that you don’t expect everything to make perfect intuitive sense on the first go. In programming things often take a while to sink in properly, and usually not because they are so incredibly complicated, but plainly because they can look so unfamiliar on the first encounter (and on the second encounter). So I would suggest to not worry excessively if things seem a little hazy at first, but instead proceed and plan to revisit them once again later and maybe even once more after that. With every such “round” things will seem less hazy until eventually they will be clear and pretty much obvious — to you that is.

Let’s dive into it.

p.s. I also do 1-on-1 Python coaching via Skype on a flexible basis. If you’re interested, just drop me a message at joseikowsky@gmail.com.

--

--