The Complete Python & PostgreSQL Developer Course
4.5 (1,052 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
9,435 students enrolled
Wishlisted Wishlist

Please confirm that you want to add The Complete Python & PostgreSQL Developer Course to your Wishlist.

Add to Wishlist

The Complete Python & PostgreSQL Developer Course

Build 9 projects—master two essential and modern technologies in Python and PostgreSQL
Bestselling
4.5 (1,052 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
9,435 students enrolled
Last updated 12/2016
English
English
Current price: $10 Original price: $120 Discount: 92% off
4 days left at this price!
30-Day Money-Back Guarantee
Includes:
  • 21.5 hours on-demand video
  • 18 Articles
  • 20 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand software and programming with Python from beginning to end
  • Create Python applications ranging from beginner, basic applications to advanced, useful and engaging applications
  • Learn how to extend Python applications by using a professional data storage which is PostgreSQL
  • Understand advanced concepts extremely useful in jobs and interviews, such as data structures and algorithms
View Curriculum
Requirements
  • No pre-knowledge is required: I'll teach you absolutely everything you need to know!
  • A computer is required, but any will do. A desktop or a laptop running Mac, Windows, or Linux
  • All the software used in the course is free, and I'll personally walk you through setting it all up
Description

Ever wanted to learn one of the most popular programming languages on the planet? Why not learn two of the most popular at the same time?

Python and SQL are used by many technology companies, small and large. That's because they are powerful, yet extremely flexible.

Python is used in the industry for things like embedded software, web development, desktop applications, and even mobile apps!

PostgreSQL allows your applications to become even more powerful by storing, retrieving, and filtering through large data sets easily.

This course is your one-stop shop for everything Python and PostgreSQL, and the instructor is constantly available to support your learning and answer questions.

Gallop through — or go at your own speed

You'll gain immediate access over 160 lectures and more than 20 hours of content, each developed with ease of learning in mind.

Using my previous teaching experience I've created crystal-clear and original content which you'll find easy to understand - and more importantly - to absorb.

You'll find learning both quick and fun. And, I've used techniques proven to effortlessly lock that knowledge in, as you breeze through each comprehensive chapter.

Fun, fast, and effective

This course will get you from being an absolute Python and PostgreSQL beginner to an experienced software developer.

Don't believe me? I offer a full money back guarantee, so long as you request it within 30 days of your purchase of the course.

Are you ready to transform your world and become an uber-confident app developer?

I'll see you on the inside!

Who is the target audience?
  • Complete beginners to programming and Python. The course follows concise explanations with hands-on projects, and has been created with the beginner in mind.
  • Intermediate programmers can fly through the first couple of sections and quickly learn about PostgreSQL and advanced Python concepts
  • This course is likely not for advanced programmers, although it has a lot of useful information and can serve well as a reference!
Students Who Viewed This Course Also Viewed
Curriculum For This Course
180 Lectures
21:51:31
+
Installing Python
3 Lectures 07:12

In this first lecture video we introduce the course and what we are going to be learning!

Preview 03:29

Learn how to install Python on Windows. Remember to add Python to the PATH!

Preview 02:19

Learn how to install Python on Mac. It's very straightforward.

Preview 01:24
+
Python 101
11 Lectures 41:08

I have written private letters for students of this course to help in their learning journey. Take a look at this first one before you start learning programming.

My private letter to you as you start learning programming
00:09

As part of the course, students have full access to a live chat to ask questions in.

The Live Chat for Q&A
00:28

The Python Shell (also known as IDLE) is ideal for learning Python. It lets you run Python code interactively.

Preview 03:36

Learn about numbers and strings in Python, two key data types.

Preview 05:21

Learn how to create variables in Python.

Preview 06:14

Learn about the str() method, used to convert variables to strings.

Preview 03:33

Learn how to run a Python file from within IDLE. This is useful in order to be able to write larger programs and run them, as opposed to programming everything through the interactive console.

Running a Python file from the IDLE
06:32

Learn about the input() method, used to prompt the user for a string value.

Preview 05:39

Learn about the int() method, used to convert variables to an integer data type. Remember the variable value has have a format that you can convert to a number. This means converting something like "a" to an integer won't work.

The int() method to convert to Integers
02:26

Learn about the format() method, probably one of the most used methods in Python. It's used to replace elements of a string with other elements, which let you format strings easily and concisely.

The format() method to simplify String formatting
06:50

Download the code for the Age Program in this lecture. This is the app we've built in this section!

Age Program Code
00:19

This quiz is to test your knowledge and help you remember what we've covered. Don't skip it!

Section 2 Final Quiz
6 questions
+
Magic Numbers in Python
10 Lectures 53:37

Lists are used to store groups of items in order. Learn about lists in Python in this video.

Lists in Python
05:19

The for loop is one of two loops available to Python programmers.

The for loop in Python
03:07

Boolean expressions are True/False expressions. They are used to make decisions.

Boolean expressions, True and False
05:22

Learn about the if statement, a construct which uses Boolean expressions to alter the flow of your programs.

If statements in Python
04:57

Learn about the "in" keyword in Python, essential to check whether an element is inside a list.

The 'in' keyword to check whether a list contains an element
04:43

Let's change our application to allow our user to have multiple attempts at getting the right magic number.

Giving the user multiple chances in our program
09:27

Learn about the "random" module, and how we can use it to generate random integers in Python.

Generating random integers in Python
08:19

Learn in this video how to define your own methods. This is essential to divide your programs into manageable chunks. This improves readability and reusability of your code.

Defining our own methods in Python
07:10

Learn in this video how to return a value from a method. This is necessary so we can distribute the work that our program does across multiple methods.

Returning values from our methods in Python
04:54

Download the code for the Magic Numbers app in this lecture. This is the app we've built in this section!

Magic Numbers Code
00:19

This quiz will test your knowledge of the section, and help you retain all you've learnt! Don't skip it!

Section 3 Final Quiz
8 questions
+
A Lottery app
7 Lectures 38:15

Learn about the string split() method, used to separate a string into a list, where each element is a part of the string.

The String split() method
03:47

A key part of Python (and a fun part!) is list comprehension, which allows us to construct lists in place, using specific syntax.

List comprehension in Python
06:43

Learn about Sets in this video. Sets are not unique to Python, but they are extremely useful when dealing with unordered and unique groups of elements.

Python Sets — what is a Set?
07:24

Learn about set comprehension, which is extremely similar to list comprehension.

Set comprehension in Python
06:05

In this video we create the lottery numbers for our app.

Creating our lottery numbers
07:37

In this video we calculate the winnings of the user by calculating a Set intersection.

Calculating the lottery winnings
06:20

Download the code for the Lottery app in this lecture. This is the app we've built in this section!

Lottery App Code
00:19

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 4 Final Quiz
3 questions
+
More complex applications: a student registration system
12 Lectures 01:17:42

In this video we look at downloading PyCharm, arguably the most used Python IDE in the industry.

Installing PyCharm, a professional Python tool
02:31

In this video we look at setting up PyCharm on Mac.

Setting up PyCharm on Mac
03:03

In this video we look at setting up PyCharm on Windows.

Setting up PyCharm on Windows
04:33

Learn about dictionaries in Python. These are essential data structure in the form of key-value pairs.

Dictionaries in Python
09:20

Learn advanced dictionary usage in Python, such as including lists and other dictionaries inside a dictionary.

Advanced Dictionary usage in Python
07:53

Learn how a method returning a dictionary affects the dictionary.

Methods returning dictionaries
07:19

Learn how to append (add at the end) and element to an existing list. 

Appending to a list in Python
05:11

In this video we add marks to our student data structure by appending to the marks list.

Adding marks to our student data structure
08:33

Learn about the sum() method, used to easily add all elements of a list. Here we use it to help calculate the average mark of a student.

The sum() method in Python
08:17

Learn how to iterate over a dictionary. Here we need two iteration values, one for the key, and one for the value.

Iterating over a dictionary's keys and values
06:06

In the final video of this section, learn about creating a menu for our application so users can interact with it.

Creating the application menu
14:44

Download the code for the Student Registration System in this lecture. This is the app we've built in this section!

Student Registration System Code
00:12

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 5 Final Quiz
5 questions
+
Object-Oriented Programming: a movie rental system
13 Lectures 01:44:37

Learn about classes by comparing a Class to what we created in the last section. Learn how to implement classes in Python.

What are classes? Classes in Python
12:05

Create the Movie class for this section's application.

The Movie Class
08:03

Learn about the __repr__ method, used when printing out an object, and create the User class.

The User Class (and the __repr__ method)
06:17

Learn about the filter() method, which is extremely useful. It is used to remove elements from a list matching a boolean expression.

The filter() method in Python
09:33

Implement more methods of the Movie class with the help provided in this video.

More Movie operations and methods
06:23

Learn about opening files for reading and writing in Python.

Writing to a file in Python
04:27

Learn about CSV (Comma-Separated Value) files and how to save our data to a file in this format.

Saving CSV files with our data
09:53

Learn about loading data from CSV files in this video.

Loading our data from CSV files
12:12

Learn about JSON (JavaScript Object Notation), and how to save our data to a file with this format. JSON is more advanced and nowadays more common than CSV, although CSV is still used in many places.

Saving JSON files with our data
06:26

Learn about loading data into our application by reading JSON files.

Loading our data from JSON files
08:09

Learn about an extremely common Python construct which is the double asterisk. It is called argument unpacking.

Argument unpacking in Python (the two asterisks)
05:31

Create a menu for users to interact with our application in this video.

Creating the menu for our application
15:25

Download the code for the Movie Rental System in this lecture. This is the app we've built in this section!

Movie Rental System Code
00:13

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 6 Final Quiz
5 questions
+
Introduction to PostgreSQL
23 Lectures 02:36:46

In this lecture learn a bit more about what a database is, about relational database management systems, and also about other systems. We also touch into what scalability is and why it is important.

Introduction to databases
12:52

In this lecture learn how to install PostgreSQL on Windows.

Installing PostgreSQL on Windows
03:59

In this lecture learn how to use and run PostgreSQL on Windows.

Using PostgreSQL on Windows
06:41

In this lecture learn how to execute SQL queries on your database on Windows.

Executing SQL queries on Windows
02:08

In this lecture learn how to install PostgreSQL on Mac.

Installing PostgreSQL on Mac
05:01

In this lecture learn how to use and run PostgreSQL on Mac.

Using PostgreSQL on Mac
09:03

In this lecture learn how to execute SQL queries on your database on Mac.

Executing SQL commands on Mac
01:29

In this lecture learn how to import the data provided in the downloadable resources.

Using the sample data provided
03:15

This lecture explains the SELECT command, and how you can construct queries using it.

Preview 07:31

This lecture explains the WHERE command, and how you can filter queries with it.

Preview 04:16

This lecture explains the LIMIT command, and how you can limit the number of results returned by a query.

SQL: LIMIT for limiting the number of results
01:43

This lecture explains the UPDATE command, and how you can construct queries using it.

SQL: UPDATE data in a table
05:34

This lecture explains the DELETE command, and how you can remove data from a table with it. Remember to use a WHERE clause too so you don't delete all your data!

SQL: DELETE data from a table
04:32

This lecture explains the different SQL wildcards you can use for fuzzy matching of data in your filters.

SQL Wildcards for filtering unknowns
05:00

This important lecture explains what a JOIN is, and why it is essential for relational databases to support this.

Preview 14:21

This lecture gives some examples of constructing JOINs.

SQL: JOINs and JOIN examples
09:55

This lecture explains the GROUP BY command, and how you can aggregate results with it.

SQL: GROUP BY for aggregation of data
09:08

This lecture explains the ORDER BY command, and how you can sort results with it.

SQL: ORDER BY for sorting data
04:41

This lecture explains the CREATE TABLE command, and how you can create tables. It also talks about PRIMARY KEY, NOT NULL, CONSTRAINTS, and FOREIGN KEY.

SQL: CREATE TABLE
11:38

This lecture explains the INSERT INTO command, and how you can add data to a table using it.

SQL: INSERT INTO for adding data to a table
09:48

This lecture talks about SEQUENCE, a PostgreSQL-only construct used to generate auto-incrementing values.

SQL: SEQUENCE for auto-incrementing fields
06:45

This lecture talks about what indexes are, how to create them (using CREATE INDEX), and also important things to remember about how PostgreSQL works with indexes, and multi-column indexes.

SQL: CREATE INDEX and advanced information about indexes
11:54

This lecture explains the DROP TABLE command, and how you can delete tables and their data.

SQL: DROP TABLE for deleting tables and data
05:32

This quiz will test your knowledge and help you retain all you've learned in this section. Don't skip it!

Section 7 Final Quiz
5 questions
+
Advanced PostgreSQL
6 Lectures 01:08:38

Learn about VIEWs in SQL and what they are used for. VIEWs provide more flexibility and restrictions in some scenarios for data entry.

SQL: VIEWs and what they are used for
19:01

Learn about some of the SQL built-in functions and the HAVING construct.

SQL: built-in functions and the HAVING construct
11:36

Learn about the age-old problem of dates in databases: timezones, representation, and daylight saving.

Dates in SQL: an old problem
14:22

Learn about more available data types in PostgreSQL, such as BYTEA and JSON.

Other data types in SQL (including JSON in PostgreSQL)
10:57

Learn about nested SELECT statements, which allow for much more flexible and complex queries.

Nested SELECT statements for complex queries
09:29

After looking at SEQUENCE, learn about the SERIAL type, which is a shorthand.

The PostgreSQL SERIAL type
03:13

This quiz will test your knowledge and help you retain all that you've learned in this section. Don't skip it!

Section 8 Final Quiz
5 questions
+
Python and PostgreSQL
19 Lectures 02:37:25

In this lecture we learn how to install Psycopg2 on Windows. It is a bit of a confusing process, so please bear with me!

Installing psycopg2 on Windows
10:29

In this video we learn how to set up psycopg2 on Mac. Fortunately, setting up on Mac or Linux is substantially simpler than on Windows.

Installing psycopg2 on Mac
03:57

In this video we verify that the psycopg2 installation was successful. Make sure that it is, and if not, ask a question in the course Q&A and we'll help you out!

Verifying everything works—don't proceed if it doesn't!
03:28

In this video we go through how to fix a problem with the PostgreSQL installation on Mac OS X 10.11. This problem is due to the way it installs alongside OS X 10.11 new feature SIP (System Integrity Protection).

Mac OS X: Fixing psycopg2 'library not loaded' error
05:44

In this lecture we look at an important part of the Python ecosystem: virtual environments (usually called virtualenvs).

What is a virtual environment?
08:22

In this video we install psycopg2 on a virtualenv on Windows so that our project can use it. It's essentially the same as installing on Windows, but we need to make sure that we are using the virtualenv's Python binary instead of the system Python.

Psycopg2 on a virtualenv on Windows
05:11

In this lecture we set up the application structure, and we look at what pip is and how to create a requirements.txt file.

Setting up the app structure, pip, and requirements.txt
04:14

In this lecture we review classes and how to create them, as they will be the foundation of this section's small app.

Recap on classes and object-oriented programming
09:53

In this lecture we look at saving our User object to the database using an INSERT statement executed with Python and psycopg2.

Saving to database from Python
17:27

In this lecture we look at loading from the database using a SELECT statement executed with Python and psycopg2.

Loading from the database from Python
15:39

In this lecture we remove a bit of duplicated code from our app and look into why readable and maintainable code is important.

Removing some duplicate code from our app
04:19

In this lecture we look at connection pooling. Connection pooling is an extremely important part of an app when dealing with a relational database management system such as PostgreSQL, because it improves performance.

Connection pooling and why it is important
13:22

In this lecture we create a ConnectionPool class which allows us to use the with...as... clause in Python.

Creating the ConnectionPool class
09:03

The ConnectionPool class was not exactly what we were looking for, so in this lecture we change it to a ConnectionFromPool class which does what we need.

Creating the ConnectionFromPool class
09:22

In this lecture we look at obtaining a cursor from our ConnectionFromPool class as opposed to just a connection to PostgreSQL.

Obtaining a cursor from the ConnectionFromPool class
08:04

In this lecture we look at selectively initialising the connection pool by putting it in a Database class, as opposed to as a lone variable at the top of the file.

The Database class and selective initialisation
18:50

In this lecture we clean up the Database class and review the meaning of the double asterisk sign—argument unpacking.

Cleaning up the Database class
06:10

In this video, we review what we have accomplished and learned! This section was an intense Python and psycopg2 learning experience, and we are now ready to learn more and build apps that use a great database system like PostgreSQL.

End of section review
03:43

This quiz will test your knowledge and help you retain all you've learned in this section! Don't skip it!

Section 9 Final Quiz
3 questions

In this "Keep thinking", I ask a few questions regarding files, folders, and operating systems. Have a look and play around with your computer while answering the questions. I promise that experimenting with this will be worthwhile.

Keep thinking: Section 9
00:08
+
Python Web and APIs
27 Lectures 04:38:10

An extremely important concept nowadays is the concept of API. Learn in this video what an API is, about different types of APIs, including REST APIs!

What is an API?
25:38

Learn how to make arbitrary web requests in Python. This is useful to request websites and web APIs.

Making requests in Python
11:45

Learn about what OAuth is in this video. This is extremely useful for those "log in with..." buttons.

What is OAuth?
07:26

In this video we quickly create the Twitter app so we can get our consumer key and secret, which are used to identify and sign our Twitter app.

Creating a Twitter app
04:13

In this video we set up necessary constants for our Twitter login.

Setting up Twitter login
04:50

Learn in this video about the request token, and how to retrieve one using Twitter and the oauth2 Python library.

Getting the OAuth request token
15:12

Important video—learn about the Python debugger and interacting with it through PyCharm. The debugger is an essential tool for any programmer, and we will be using it often!

More on the Python debugger—an essential tool
04:51

In this video we get the authorization code from the user, which we need in order to get an access token.

Getting authorization by the user
09:38

In this video learn about using the request token and the authorization code provided by the user to get the access token, which is used to represent the user in Twitter and our Twitter app.

Getting the OAuth access token
06:25

In this lecture we learn about using the Twitter Search API to search through recent tweets.

Performing Twitter requests: getting images
16:44

In this video we reuse code from the last section and reimplement the User class and saving to database. Now that we have that, it's easy to save access tokens alongside our user details.

Reusing code from the last section to save users
10:59

In this video we create our User object with an access token.

Creating users in our app
07:47

In this lecture we learn about retrieving users from the database together with their Twitter access tokens so we can then make requests on their behalf.

Retrieving users in our app
13:39

This very important lecture covers cleaning up the code and making it maintainable and readable. This is essential!

Cleaning up the code—extremely important!
19:28

Flask is a Python library which allows us to create web interfaces. In this lecture we create a simple Flask application to serve HTML content over the internet.

Introduction to Flask and Python Web Development
15:52

In this lecture we continue with our Flask application and add an endpoint to send users to Twitter to authorize our app.

Adding a Twitter login endpoint
11:25

In this lecture we add Twitter authorization to our app by having Twitter redirect to our app's URL.

Adding Twitter authorization
23:16

In this lecture we create the user profile, which is just another endpoint in our app.

Creating the user profile
08:44

In this lecture we look at a very useful decorator in Flask, the before_request decorator.

The Flask before_request decorator
08:47

In this lecture we learn to check if a user is already logged in, so we avoid re-authorizing.

Checking if a user is already logged in
02:40

In this lecture we create another endpoint that interacts with the Twitter API to search for tweets and display them in a HTML page.

Searching tweets and displaying them
07:54

In this lecture we make sure that the search endpoint is not limited to searching only with one query, but rather that the query is dynamic.

Searching for different things
03:19

In this lecture we look at Bootstrap, which is a framework for rapid styling of web pages.

What is Bootstrap?
08:36

In this lecture we quickly look into how we might go about writing our own CSS.

Writing our own CSS
06:09

In this lecture we create a form to allow our users to perform custom searches using the Twitter API.

Allowing users to perform custom searches
06:45

In this lecture we add sentiment analysis to our web application by interacting with yet another API. This is why learning to make API requests is important!

Adding sentiment analysis with another API
15:55

This quiz will test your knowledge and help you retain all you've learned in this section. Don't skip it!

Section 10 Final Quiz
6 questions

Download the code for the Twitter Login app in this lecture. This is the app we've built in this section!

Section 10: Twitter Login code
00:13
4 More Sections
About the Instructor
Rob Percival
4.6 Average rating
59,689 Reviews
317,430 Students
20 Courses
Web Developer And Teacher

Hi! I'm Rob. I have a degree in Mathematics from Cambridge University and you might call me a bit of coding geek.

After building websites for friends and family for fun, I soon learned that web development was a very lucrative career choice. I gave up my successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

I'm passionate about teaching kids to code, so every summer I run Code School in the beautiful city of Cambridge. I also run the popular web hosting and design service, Eco Web Hosting which leaves me free to share my secrets with people like you.

You wouldn't believe the freedom that being a web developer offers. Sign up and find out for yourself why so many people are taking and recommending this course. I genuinely believe it's the best on the market and if you don't agree, I'll happily refund your money.

Sign up to my courses and join me in this amazing adventure today.

Jose Salvatierra
4.6 Average rating
2,796 Reviews
20,880 Students
6 Courses
Founder of School of Code and Computer Science instructor

I've been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. Here's my story so far.

I started programming at the age of 10, just a couple years after I started studying music, when my dad, excited that I had showed interest in similar things to himself, taught me the basics of Marin Saric's METAL. Shortly thereafter we moved on to RealBASIC, and from there I started learning, after a couple years, Java and C.

Ever since I started learning programming I knew I wanted to study Computer Science or something along those lines. Half a decade ago I ended up at the University of Dundee, studying Applied Computing.

The University of Dundee is one of the most prestigious for computing-related courses, and I was offered the chance to participate in their computing scholarships due to academic achievement.

I have worked for "Eseye", an M2M company, as an intern doing mainly backend developing, writing PHP scripts and programming Zenoss ZenPacks, and currently work for Skyscanner, one of Scotland's largest technology companies, programming mainly in Python and web languages.

At the moment I enjoy programming in Python, Java and C, playing and recording music, usually as an accompanying pianist for singers, and sports and bodybuilding. I hope that my courses are interesting to you, enjoyable and that you learn from them!