Python - The Practical Guide
This is a highly practice-oriented Python course that teaches you Python from scratch - no prior programming experience required! Python is probably 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.
More
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! :-)
Requirements:
NO prior programming language is required
You can use whatever operating system you want - macOS, Linux or Windows: It's all covered
- Anyone interested in learning Python and building a real project with it
- Anyone who's interested in learning about the core internals of a blockchain
- Beginner developers who want to dive into one of the most trending and popular programming languages
What you'll learn:
- Students can take advanced Python courses and build real projects with it
- Students may build upon the Python and Blockchain knowledge gained in this course and start working on their own Blockchain
- Students can dive into Web Development or Data Science with Python
Watch Online Python - The Practical Guide
# | Title | Duration |
---|---|---|
1 | Introduction | 01:52 |
2 | What is Python? | 05:08 |
3 | Setting Up Python | 03:12 |
4 | Writing our First Python Code | 05:06 |
5 | What is the Blockchain? | 06:49 |
6 | Course Outline | 04:42 |
7 | Python Alternatives | 03:59 |
8 | Understanding the Python Versions | 02:23 |
9 | How To Get The Most Out Of This Course | 03:29 |
10 | Module Introduction | 02:17 |
11 | Understanding the REPL and Data Types | 04:26 |
12 | Working with Variables | 04:47 |
13 | Working with Numbers | 05:37 |
14 | Using Operators | 03:49 |
15 | Understanding a "Special" Behaviour when Working with Numbers | 03:36 |
16 | Working with Strings | 02:19 |
17 | Working with Lists | 05:10 |
18 | Adding & Removing List Items | 03:03 |
19 | Preparing the Blockchain - The Theory | 02:03 |
20 | Installing our IDE | 05:18 |
21 | Using Functions to Add List Items | 06:46 |
22 | Accessing the Last List Item | 03:25 |
23 | Adding Arguments to Functions | 02:37 |
24 | Understanding the "return" Keyword | 03:58 |
25 | Using Default Arguments | 04:07 |
26 | Working with Keyword Arguments | 03:00 |
27 | Using the "input" Function | 03:01 |
28 | Avoiding Repetitive Code Execution | 02:08 |
29 | Understanding the Variable Scope | 06:50 |
30 | Exploring the Official Documentation | 02:26 |
31 | Adding Comments and Doc Strings | 04:21 |
32 | Structuring Multi Line Code in Python | 01:57 |
33 | Wrap Up | 03:29 |
34 | Module Introduction | 01:39 |
35 | Understanding Loops - Theory | 02:56 |
36 | Creating a "for" Loop | 03:03 |
37 | Creating a "while" Loop | 03:34 |
38 | Understanding Conditionals - Theory | 02:02 |
39 | Adding "if-else" to our Blockchain | 07:46 |
40 | Working with "elif" | 03:44 |
41 | Understanding "break" & "continue" | 03:32 |
42 | Improving our Code with Loops & Conditionals | 06:40 |
43 | Understanding Boolean Operators - "is" & "in" | 03:38 |
44 | The "not" Keyword | 01:18 |
45 | Understanding "and" and "or" | 02:27 |
46 | Grouping Conditionals | 03:23 |
47 | What About "switch" in Python? | 00:42 |
48 | Verifying our Blockchain | 13:11 |
49 | Using Conditions inside the "while" Loop | 01:57 |
50 | Using "else" in Loops | 02:08 |
51 | Adding the "range" Function | 07:10 |
52 | Wrap Up | 02:32 |
53 | Module Introduction | 02:51 |
54 | Understanding the Required Data Structure for our Blockchain | 07:04 |
55 | Working with Iterables | 05:03 |
56 | Choosing the Right Datastructure | 02:56 |
57 | Transactions with Dictionaries & Tuples | 07:47 |
58 | Unpacking the Tuple | 03:21 |
59 | Mining Blocks | 06:18 |
60 | Hashing Previous Blocks | 06:24 |
61 | Understanding List Comprehensions | 05:49 |
62 | And What are Dict Comprehensions? | 01:40 |
63 | Combining List Comprehensions & "if" | 02:54 |
64 | Improving the Blockchain Validation Logic | 08:21 |
65 | Managing a List of Participants in the Blockchain | 03:34 |
66 | Calculating Balances | 07:47 |
67 | Rewarding the Miners of our Blockchain | 03:24 |
68 | Verifying Transactions | 05:46 |
69 | Understanding Reference vs Value Copying | 07:08 |
70 | Working with the Range Selector | 05:43 |
71 | Understanding Shallow vs Deep Copies | 02:43 |
72 | Comparing "is" & "==" | 01:37 |
73 | Diving Deeper Into Iterable Methods | 07:28 |
74 | Understanding the "all" & "any" Functions | 07:36 |
75 | Comparing Iterables | 06:47 |
76 | Wrap Up | 03:18 |
77 | Module Introduction | 01:31 |
78 | Comparing Strings & Lists | 03:58 |
79 | Understanding the "format" Method | 08:12 |
80 | Escaping Characters | 01:48 |
81 | Formatting Strings Conveniently with "f" | 01:28 |
82 | Adding String Formatting to our Project | 02:01 |
83 | Understanding the "map" Function | 02:54 |
84 | Working with Lambda Functions | 02:14 |
85 | Reducing Lists | 07:41 |
86 | Unpacking Function Arguments | 06:33 |
87 | Fixing a Bug | 04:14 |
88 | Wrap Up | 01:31 |
89 | Module Introduction | 01:44 |
90 | Exploring the Python Standard Library | 02:13 |
91 | Importing Packages - Theory | 04:19 |
92 | Importing "hashlib" to Create a Unique Hash | 07:15 |
93 | Using Other Import Syntaxes | 01:48 |
94 | The "Proof of Work" | 06:54 |
95 | Adding the Proof of Work to our Blockchain | 05:49 |
96 | Including the Proof of Work in our Mining Function | 07:50 |
97 | Fixing a Hash Order Fault | 06:23 |
98 | Splitting Up our Code | 04:34 |
99 | Wrap Up | 02:03 |
100 | Module Introduction | 01:45 |
101 | Handling File Access | 05:45 |
102 | Reading Data From a File | 02:34 |
103 | Reading Multi-Line Content | 05:53 |
104 | Using the "with" Block Statement | 02:58 |
105 | Adding File Access to our Blockchain | 08:40 |
106 | Converting Strings Into Python Objects | 16:02 |
107 | Storing Data with Pickle | 06:06 |
108 | Comparing Pickle & JSON | 01:06 |
109 | Changing the Project Back to JSON | 02:31 |
110 | Why we need Proper Error Handling | 00:47 |
111 | Wrap Up | 01:18 |
112 | Module Introduction | 00:58 |
113 | Finding Logical Errors with the Debugger | 05:54 |
114 | Finding Syntax Errors | 01:41 |
115 | Using "try" to Find Runtime Errors | 04:34 |
116 | Which Errors Should you Handle? | 03:02 |
117 | Adding Error Handlers to our Blockchain | 02:33 |
118 | Wrap Up | 01:50 |
119 | Module Introduction | 01:14 |
120 | What is Object Oriented Programming? | 02:13 |
121 | Understanding Classes | 01:25 |
122 | Creating a Class | 05:10 |
123 | Comparing Classes, Instances & Dictionaries | 02:45 |
124 | Understanding Class Attributes | 03:38 |
125 | Constructor & Instance Attributes | 04:22 |
126 | Printing Classes with Special Methods | 06:05 |
127 | Private & Public Attributes | 04:40 |
128 | Understanding Inheritance | 08:47 |
129 | Planning Blockchain Classes | 01:33 |
130 | Adding a "Block" Class to the Blockchain | 11:08 |
131 | Saving Custom Class Objects via .json | 04:50 |
132 | Adding a "Transaction" Class | 17:47 |
133 | Inheritance in Action | 05:44 |
134 | Adding a "Verification" Helper Class | 10:04 |
135 | Initialising the "Node" Class | 04:52 |
136 | Turning the Blockchain Into a Class | 07:31 |
137 | Adding a "Node" Class | 11:12 |
138 | Understanding "Instance" vs "Class" vs "Static Methods" & "Attributes" | 03:40 |
139 | Using "Static" & "Class" Methods on the "Verification" Class | 03:45 |
140 | Using Private Attributes in the Blockchain | 03:44 |
141 | Properties vs Attributes | 05:21 |
142 | Wrap Up | 02:16 |
143 | Module Introduction | 01:42 |
144 | Creating Packages - Module Bundles | 04:41 |
145 | The "pycache" Folder | 00:44 |
146 | Module Docstrings | 00:52 |
147 | Controlling Exports | 05:37 |
148 | Understanding Execution Context & "__name__" | 04:12 |
149 | Why we Need a Private & Public Key Transaction Protection | 04:26 |
150 | Using Anaconda to Install Third Party Packages | 06:24 |
151 | Generating Keys with a Third Party Package | 06:22 |
152 | Connecting the Node & the Wallet | 06:16 |
153 | Generating Keys on the Node | 04:07 |
154 | Saving & Loading Keys to Files | 08:25 |
155 | Creating Transaction Signatures | 06:25 |
156 | Adding a Signature to our Transactions | 02:43 |
157 | Verifying Signatures | 06:50 |
158 | Improving the Verification Logic | 05:42 |
159 | Wrap Up | 01:22 |
160 | Module Introduction | 02:05 |
161 | HTTP Requests - The Basics | 05:41 |
162 | Understanding API-Endpoints/ URLs | 03:33 |
163 | Data Formats | 03:19 |
164 | Planning our API | 02:06 |
165 | Setting Up our Environment with Flask | 10:09 |
166 | Adding our First Route | 10:10 |
167 | Installing Postman | 02:22 |
168 | Adding a POST Request | 07:22 |
169 | Setting Up Routes to Manage our Wallet | 08:24 |
170 | Returning Funds | 05:44 |
171 | Adding Transactions | 11:27 |
172 | Fetching Open Transactions | 03:15 |
173 | Testing the Public Key | 01:47 |
174 | Adding a User Interface | 02:42 |
175 | Optional: Configuring our UI - Creating a Wallet | 13:18 |
176 | Optional: Configuring our UI - Loading a Wallet and Adding Mining & Transactions | 11:59 |
177 | Exploring our UI | 02:46 |
178 | Wrap Up | 01:53 |
179 | Module Introduction | 01:43 |
180 | Adding Node Management Methods to the Blockchain | 07:19 |
181 | Setting Up Routes to Add Nodes | 07:41 |
182 | Adding a Remove Node Route | 05:18 |
183 | Adding "get_Nodes" to get all Nodes | 01:20 |
184 | Attaching a Node User Interface | 11:08 |
185 | Running Multiple Nodes | 11:20 |
186 | Sending Requests from within Python | 10:37 |
187 | Broadcasting Transactions - Adding the Function & Route | 12:07 |
188 | Broadcasting Transactions - Testing & Fixing Errors | 05:52 |
189 | Broadcasting New Blocks: Adding the Function & Route | 11:13 |
190 | Broadcasting New Blocks: Informing the Peer Nodes | 09:54 |
191 | Broadcasting Transactions: Testing | 03:29 |
192 | Solving Conflicts | 05:34 |
193 | Understanding Consensus | 03:29 |
194 | Finding Conflicts | 09:35 |
195 | Implementing a Consensus Algorithm | 17:21 |
196 | Testing Consensus | 05:50 |
197 | Wrap Up | 01:02 |
198 | Module Introduction | 00:47 |
199 | Don't Forget PEP 8 | 02:47 |
200 | Using PEP 8 | 08:30 |
201 | Using Comments | 01:02 |
202 | Diving Deeper Into Python | 05:08 |
203 | Improving the Blockchain | 10:03 |
204 | Congratulations | 00:58 |