The Complete Python & PostgreSQL Developer Course

Build 9 projects—master two essential and modern technologies in Python and PostgreSQL
4.6 (787 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.
7,637 students enrolled
88% off
Take This Course
  • Lectures 180
  • Length 22 hours
  • Skill Level Beginner Level
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 6/2016 English Closed captions available

Course 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!

What are the 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

What am I going to get from this course?

  • 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

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!

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Installing Python

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


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


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

Section 2: Python 101

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.


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


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


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


Learn how to create variables in Python.


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


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.


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


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.


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.


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

6 questions

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

Section 3: Magic Numbers in Python

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


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


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


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


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


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


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


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.


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.


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

8 questions

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

Section 4: A Lottery app

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


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


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.


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


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


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


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

3 questions

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

Section 5: More complex applications: a student registration system

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


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


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


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


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


Learn how a method returning a dictionary affects the dictionary.


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


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


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.


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


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


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

5 questions

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

Section 6: Object-Oriented Programming: a movie rental system

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


Create the Movie class for this section's application.


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


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


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


Learn about opening files for reading and writing in Python.


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


Learn about loading data from CSV files in this video.


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.


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


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


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


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

5 questions

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

Section 7: Introduction to PostgreSQL

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.


In this lecture learn how to install PostgreSQL on Windows.


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


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


In this lecture learn how to install PostgreSQL on Mac.


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


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


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


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


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


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


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


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!


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


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


This lecture gives some examples of constructing JOINs.


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


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


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.


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


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


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.


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

5 questions

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

Section 8: Advanced PostgreSQL

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


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


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


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


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


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

5 questions

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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Rob Percival, 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.

Instructor Biography

Jose Salvatierra, 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. Last year 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!

Ready to start learning?
Take This Course