Python – The Practical Guide
-
Getting StartedIntroduction1m 51sWhat is Python?0sJoin our Online Learning CommunitySetting Up Python0sRunning Python 3 as a Default (on macOS)Writing Our First Python Code0sWhat is the Blockchain?0sCourse Outline0sPython Alternatives0sUnderstanding the Python Versions0sHow To Get The Most Out Of This Course0sUseful Resources & Links
-
Diving Into the Basics of PythonModule Introduction0sUnderstanding the REPL and Data Types0sWorking with Variables0sWorking with Numbers0sUsing Operators0sUnderstanding a “Special” Behaviour when Working with Numbers0sWorking with Strings0sWorking with Lists0sAdding & Removing List Items0sPreparing the Blockchain – The Theory0sInstalling our IDE0sUsing Functions to Add List Items0sBlockchain Theory: Understanding BlocksAccessing the Last List Item0sAdding Arguments to Functions0sUnderstanding the “return” Keyword0sUsing Default Arguments0sWorking with Keyword Arguments0sUsing the “input” Function0sAvoiding Repetitive Code Execution0sUnderstanding the Variable Scope0sExploring the Official Documentation0sAdding Comments and Doc Strings0sStructuring Multi Line Code in Python0sTime to Practice – The BasicsWrap Up0sUseful Resources & Links
-
Working With Loops & ConditionalsModule Introduction0sUnderstanding Loops – Theory0sCreating a “for” Loop0sCreating a “while” Loop0sClosing the REPLUnderstanding Conditionals – Theory0sAdding “if-else” to our Blockchain0sWorking with “elif”0sUnderstanding “break” & “continue”0sImproving our Code with Loops & Conditionals0sUnderstanding Boolean Operators – “is” & “in”0sThe “not” Keyword0sUnderstanding “and” and “or”0sGrouping Conditionals0sWhat About “switch” in Python?0sVerifying our Blockchain0sBlockchain Theory: Understanding Blockchain VerificationUsing Conditions inside the “while” Loop0sUsing “else” in Loops0sAdding the “range” Function0sTime to Practice – Loops & ConditionalsWrap Up0sUseful Resources & Links
-
Understanding Complex Data StructuresModule Introduction0sUnderstanding the Required Data Structure for our Blockchain0sWorking with Iterables0sChoosing the Right Datastructure0sTransactions with Dictionaries & Tuples0sBlockchain Theory: Understanding TransactionsUnpacking the Tuple0sMining Blocks0sHashing Previous Blocks0sUnderstanding List Comprehensions0sAnd What are Dict Comprehensions?0sCombining List Comprehensions & “if”0sImproving the Blockchain Validation Logic0sManaging a List of Participants in the Blockchain0sCalculating Balances0sRewarding the Miners of our Blockchain0sVerifying Transactions0sUnderstanding Reference vs Value Copying0sWorking with the Range Selector0sUnderstanding Shallow vs Deep Copies0sComparing “is” & “==”0sDiving Deeper Into Iterable Methods0sUnderstanding the “all” & “any” Functions0sComparing Iterables0sTime to Practice – Complex DatastructuresWrap Up0sUseful Resources & Links
-
Working with Functions & StringsModule Introduction0sComparing Strings & Lists0sUnderstanding the “format” Method0sEscaping Characters0sFormatting Strings Conveniently with “f”0sAdding String Formatting to our Project0sUnderstanding the “map” Function0sWorking with Lambda Functions0sReducing Lists0sUnpacking Function Arguments0sTime to Practice – Functions & StringsFixing a Bug0sWrap Up0sUseful Resources & Links
-
Working with the Python Standard LibraryModule Introduction0sExploring the Python Standard Library0sImporting Packages – Theory0sImporting “hashlib” to Create a Unique Hash0sBlockchain Theory: Understanding HashesUsing Other Import Syntaxes0sThe “Proof of Work”0sBlockchain Theory: Understanding the “Proof of Work”Adding the Proof of Work to our Blockchain0sIncluding the Proof of Work in our Mining Function0sFixing a Hash Order Fault0sSplitting Up our Code0sTime to Practice – The Standard LibraryWrap Up0sUseful Resources & Links
-
Working with FilesModule Introduction0sHandling File Access0sReading Data From a File0sReading Multi-Line Content0sUsing the “with” Block Statement0sAdding File Access to our Blockchain0sConverting Strings Into Python Objects0sStoring Data with Pickle0sComparing Pickle & JSON0sChanging the Project Back to JSON0sWhy we need Proper Error Handling0sTime to Practice – Working with FilesWrap Up0sUseful Resources & Links
-
Handling Errors & Debugging
-
Object Oriented ProgrammingModule Introduction0sWhat is Object Oriented Programming?0sUnderstanding Classes0sCreating a Class0sComparing Classes, Instances & Dictionaries0sUnderstanding Class Attributes0sConstructor & Instance Attributes0sPrinting Classes with Special Methods0sPrivate & Public Attributes0sUnderstanding Inheritance0sPlanning Blockchain Classes0sAdding a “Block” Class to the Blockchain0sAn Issue with Default ArgumentsSaving Custom Class Objects via .json0sAdding a “Transaction” Class0sInheritance in Action0sAdding a “Verification” Helper Class0sInitialising the “Node” Class0sTurning the Blockchain Into a Class0sAdding a “Node” Class0sUnderstanding “Instance” vs “Class” vs “Static Methods” & “Attributes”0sUsing “Static” & “Class” Methods on the “Verification” Class0sUsing Private Attributes in the Blockchain0sProperties vs Attributes0sTime to Practice – Object Oriented ProgrammingWrap Up0sUseful Resources & Links
-
ModulesModule Introduction0sCreating Packages – Module Bundles0sThe “pycache” Folder0sModule Docstrings0sControlling Exports0sUnderstanding Execution Context & “__name__”0sWhy we Need a Private & Public Key Transaction Protection0sUsing Anaconda to Install Third Party Packages0sUsing Virtual EnvironmentsUse Pycryptodome instead of PyCryptoGenerating Keys with a Third Party Package0sConnecting the Node & the Wallet0sGenerating Keys on the Node0sSaving & Loading Keys to Files0sCreating Transaction Signatures0sAdding a Signature to our Transactions0sVerifying Signatures0sImproving the Verification Logic0sWrap Up0sUseful Resources & Links
-
Adding HTTP with FlaskModule Introduction0sHTTP Requests – The Basics0sUnderstanding API-Endpoints/ URLs0sData Formats0sPlanning our API0sSetting Up our Environment with Flask0sAdding our First Route0sInstalling Postman0sAdding a POST Request0sSetting Up Routes to Manage our Wallet0sReturning Funds0sAdding Transactions0sFetching Open Transactions0sTesting the Public Key0sAdding a User Interface0sOptional: Configuring our UI – Creating a Wallet0sOptional: Configuring our UI – Loading a Wallet and Adding Mining & Transactions0sExploring our UI0sWrap Up0sUseful Resources & Links
-
The Node NetworkModule Introduction0sAdding Node Management Methods to the Blockchain0sSetting Up Routes to Add Nodes0sAdding a Remove Node Route0sAdding “get_Nodes” to get all Nodes0sAttaching a Node User Interface0sRunning Multiple Nodes0sSending Requests from within Python0sBroadcasting Transactions – Adding the Function & Route0sBroadcasting Transactions – Testing & Fixing Errors0sBroadcasting New Blocks: Adding the Function & Route0sBroadcasting New Blocks: Informing the Peer Nodes0sBroadcasting Transactions: Testing0sSolving Conflicts0sUnderstanding Consensus0sFinding Conflicts0sImplementing a Consensus Algorithm0sTesting Consensus0sWrap Up0sUseful Resources & Links
-
Next Steps and Course Roundup
Want to learn Python “on the job” whilst building an exciting course project? This course is for you!
This is a highly practice-oriented Python course that teaches you Python from scratch – no prior programming experience required!
Python is THE most trending programming language you can learn these days!
It’s very popular because it’s easy to learn and use, runs on all operating systems and allows you to build a broad variety of programs: Be that web applications, desktop applications, utility scripts or using it for data science and machine learning.
In this course, you’ll learn Python from scratch – and you’ll do so whilst building your own Blockchain and Cryptocurrency. These are of course also highly trending topics and not a lot of people understand what a Blockchain really is. As a nice side-effect, you will know how a Blockchain works once you completed this course. It’s an exciting course project that allows you to learn and apply Python to something you know and you can use.
Why Python?
As written above, Python is both easy-to-use and extremely versatile and powerful at the same time. Certainly not the worst combination. If you check it on Google trends (and compare it to other programming languages), you’ll see that it’s very popular these days.
It’s being used by almost any important company – be that Google, Amazon or Facebook. It’s used to run web applications, scripts, desktop programs and machine learning algorithms. This course sets the basics for all these use-cases!
Why Blockchain?
I believe that you learn something best if you directly apply it to a real-world project. And the Blockchain technology is an exciting trend which is there to stay. In this course, you’ll learn a lot about the core concepts of the Blockchain and you’ll see how Python can be used for the many aspects that make up a Blockchain and Cryptocurrency.
In my opinion, a perfect course project is challenging, interesting, something you know from real-life but also not overly complex. And that’s all the case for the Blockchain! It poses some nice challenges where a lot of different Python features can be used to overcome them. It also is something we hear about all the time and yet no one knows how it works. And we can dive into the core Blockchain concepts without spending 100+ hours working on it.
Who’s teaching you?
My name is Maximilian Schwarzmüller and I’m a freelance developer. My focus is on web development but I’ve been working with Python for many years. It’s actually one of the first languages I started with when I was 13. I’m the creator of many 5 star bestseller courses here on Udemy and I love diving into new technologies. That’s why I had to dive into this whole Blockchain thing when it became more popular and why I chose it as a project for this course.
I can’t wait to welcome you on board of this course and I hope you’ll enjoy it just as much as I did creating it! 🙂
What’s in the course?
Great question! Here’s a brief summary:
A summary of Python and the Blockchain technology
All the base Python syntax you need to know (variables, operators, functions, …)
Loops and conditional statements
More complex data structures like tuples or dictionaries
A closer look at built-in functions and the standard library Python ships with
String manipulation
How to work with files
Error handling
Debugging
Object-oriented programming with classes and inheritance
Internal & external modules (packages)
How to spin up an Http server with the Flask package
Handling Http requests (sending & receiving)
And more!
What are the course prerequisites?
NO prior programming knowledge is required
Very basic knowledge about how a computer works will help you though (but can also be built up whilst you’re going through the course)
Is this course for you?
It’s for you if
You want to get into programming => Python is a great “first language” since it’s easy to learn and very versatile
You want to broaden your horizon => Are you a web developer? Want to learn something new? Here you go!
You’re interested in Python for web development => This course will teach you Python in general but there are two modules where we’ll also dive into web development a bit
You’re interested in the Blockchain technology => You’ll learn the core concepts of it as a side-effect of this course!
You know Python but want to practice it => The course project is challenging and taken from real-life – there probably is no better practice
Does that sound good to you? I’d be honoured to welcome you in this course! 🙂
What's included
- 17.5 hours on-demand video
- Assignments
- 26 articles
- 224 downloadable resources
- Access on mobile and TV
- Certificate of completion