Quick start with Python
In this section you will write your first Python programs. Yes, we will do it right away, without theory or setting up environment (that will come later).
Our Python Project
This course is project based. We are building a simulation of Bank system and learning Python along the way. Isn't that cool? :) But for real, best learning is project based learning. This section describes what we are building within this course.
Introduction to Python (theory and environment)
This is a theoretical section. You can quickly read trough it or return back to it if you are tired of coding at any point.
Python Basics (variables, operators, input and output)
Before working on a more complex subjects we need to get our basics. Python variables, how to handle operators, strings, inputs and outputs.
Data structures in Python
Programming is all about managing data. To be able to manage data good, we need to know different ways to keep this data stored (data structures).
Code flow in Python
Programming is also abaut managing decisions. To be able to control our program, we need to learn code flow rules.
Functions in Python
Programming is all about reusing. We don't want to code same things over and over again. This is why we need functions.
Object Oriented programming in Python
Finally, it is time for us to make our banking software example. This part actually goes above "Python for Beginners", but still, try it. You might like it.
Debugging in Python
If we are to continue our programming career we will have bugs, lots of them. We need to learn how to find and fix them.
This picture is old but gold.
- Defining correct goal(s) at the beginning of our development is extremely important.
- It doesn’t matter if you are just starting with a programming or you are seasoned developer which is updating his programming stack.
- This is something you should learn from the beginning:
- Write clear requirements and make an action plan.
- Create proper technical documentation or at least rough plan of implementation.
- Start coding and periodically revisit your requirements and technical documentation to check if you are still within a frame.
- Constantly improve quality of your code.
- General tip: If your project has some requirements which you do not know, learn how to quickly figure out new programming language or framework.
Let’s quickly define our project requirements.
This is a project where we want to learn programming in Python by making a simulation of banking software.
So, we have two goals:
- Learn Python basics
- Make a simulation or prototype if you like, of banking system
First goal is quite straight forward. We want to go trough this complete course, check out all the examples and do all the quizzes.
Second goal, however, needs to be described in details.
Banking System – Project Requirements
Firstly, let’s define actors in our banking system:
- Bank – represented by bank employee
- Client – customer of a bank
- Account – storage for finances for a customer
- Transaction – movement of finances/money from one part of the system to the other (i.e. from one customer to the other customer)
- System Administrator – person responsible for proper function of system, security, events inside of the system, etc.
Secondly, let’s make a requirements in form of statements. For this, we will imagine that each actor (user) of the system has a requirement (a story) which we need to implement in our software.
Here is a couple of requirements/stories which describe what do we want to do if we are a bank (meaning bank employee):
- As bank employee, I want to be able to create new clients in our system.
- As bank employee, I want to be able to delete or close current clients in our banking system.
- As bank employee, I want to be able to create new accounts (banking accounts)
- As bank employee, I want to be able to delete existing banking accounts.
- As bank employee, I want to be able to assign client to some account (to assign ownership).
Now, if we are using our software as a Client, this is what we want to do:
- As client, I want to be able to login to banking system.
- As client, I want to be able to logout from banking system.
- As client, I want to be able to change my email.
- As client, I want to be able to make transfers between accounts.
- As client, I want to be able to withdraw money from my account (using ATM for example).
- As client, I want to be able to make deposit to my account.
Finally, as system administrator or security auditor, this is what we want do to:
- As system administrator, I want to be able to examine events (logs) inside of the system.
Now, when we defined requirements for our software, let’s continue with the next lesson and write technical specifications for these requirements.