Best Free Software Engineering Courses

Find the best online Free Software Engineering Courses for you. The courses are sorted based on popularity and user ratings. We do not allow paid placements in any of our rankings.

Basics of Scrum, Agile and Project Delivery

The Scrum Body of Knowledge (SBOK™) provides guidelines for the successful implementation of Scrum methodology.

Created by SCRUMstudy Certification - (Global Training Provider)


Students: 157297, Price: Free

'Introduction to Scrum' course is tailored to help anyone interested to know more about Scrum; learn about key concepts in Scrum as defined in the SBOK™ Guide; and to get a basic understanding of how Scrum framework works in delivering successful projects. 

This course contains video lectures on all aspects of Scrum and how Scrum Body of Knowledge (SBOK Guide) has been designed to help you implement scrum in your projects. 

Happy Learning. 

Learn Python: Build a Virtual Assistant

Go from basic python to creating a virtual assistant for your computer

Created by Adam Eubanks - Self Taught Programmer And Learning Enthusiast


Students: 82308, Price: Free

In Learn Python: Build a Virtual Assistant In Python, you will go from beginner to intermediate level the fun way; creating a real-world application! In this course, I will teach you how to create and set up a virtual assistant for your computer. We will learn how to get data from Wikipedia and Wolfram Alpha, as well as create a GUI. After that, I will regularly release new videos on other optional things that you could add to our application.

This course will help you add something fun to your portfolio and give you good practice for using python. This course is especially good for beginner hobbyists who want to learn how to use various APIs and how to apply them.

Students who enroll will be able to create a real-world, personalized application for your personal use.

Visual Paradigm Essential

Learn all essential skills of software design and modeling including, UML, BPMN and SysML with Visual Paradigm.

Created by Visual Paradigm - Design & Management Tool for Business IT System Development


Students: 53862, Price: Free

Visual Paradigm Essential is an introductory course that is tailor-made for software development teams who want to design and build high quality software with Visual Paradigm. There are altogether 27 lectures throughout the training with more than 5-hour quality videos with user-friendly contents. All lectures embraces clear voice-over as well as demonstrations to walk you through different tools with you step by step. We are sure you can master different skills with ease and will have learned most key features in Visual Paradigm after attending the lectures.

The lectures cover wide range of contents. Firstly, you will start by an overview of Visual Paradigm, different editions and licensing, installation methods as well as its user interface. After gaining a better knowledge about Visual Paradigm, you can then jump into learning ways to draw different types of diagrams. In addition, this course also covers basic introduction to BPMN, UML and UeXceler (Agile requirements capturing approach). Last but not least, the training teaches important Visual Paradigm features, like Teamwork with VPository, import project, export images and managing glossary as well. This is very helpful because you might come across with it every day.

Once you have completed this online training, you will be confident with using Visual Paradigm to design IT software system and collaborate with other team members comfortably.

Python Programming Bootcamp (2019)

Introductory Course on Programming with Python

Created by Bordeianu Adrian - Developper


Students: 39563, Price: Free

Become a Python Programmer and learn one of employer's most requested skills of 2019! 

This course assumes no previous programming or Python experience. If  you’ve never programmed a computer before, or if you know another  programming language and want to learn Python, this course will teach  you how.

The goal of the course is to introduce students to Python Version 3.x programming.

Here is what you will get and learn by taking this Python Programming Bootcamp (2019)  course:

  • How to work with various data types.

  • What variables are and when to use them.

  • The importance of white space in Python.

  • Other.

RESTful Web Services with Spring Framework – A quick start

A quick start to building your REST API with Spring Boot and Spring MVC

Created by Sergey Kargopolov - Software developer


Students: 38871, Price: Free

This video course is a Quick Start to learning How to Build RESTful Web Services with Spring Framework.

As you go through this video course you will learn how to use tools like:

  • Spring Tool Suite Development Environment,

  • Postman HTTP client, so that you can send HTTP Requests and Receive HTTP Responses,

  • You will also learn how to Download and Install Java if you do not have it already.

Although this video course is very short, and is very simple, it is also very practical!

  • You will write Java code that handles different types of HTTP Requests. You will learn how to create web service endpoints that accept HTTP Post, HTTP GET, HTTP PUT and HTTP Delete requests.

  • You will learn how to make your RESTful Web Service endpoints accept information via URL Query String parameters, via URL Path Parameters as well as information sent via the body of HTTP Request,

  • Additionally to learning how to read request parameters from HTTP request, you will learn how to make your RESTful Web Service, return information in different formats. For example, you will learn how to return information as a plain text or as a JSON or XML document.

  • You will learn how to validate HTTP request parameters and also how to validate a information sent via HTTP Request body. Make sure that certain required fields are not empty and that email address for example is of a correct format.

  • You will learn how to handle errors in your RESTful Web Service and also learn how to return information about the error in different custom formats.

  • And finally, additionally to building and running your RESTful Web Service with a Spring Tool Suite development environment, you will learn how to run your RESTful Web Service as a standalone Java application which runs independently of your development environment.

MATLAB/Simulink for the Absolute Beginner

Learn the basics of Simulink and build 3 Simulink-based Projects

Created by Dr. Ryan Ahmed, Ph.D., MBA - Professor & Best-selling Instructor, 200K+ students


Students: 26248, Price: Free

This course will cover the basic of Simulink and students will be able to create basic Simulink models and run simulations. Students will be able to develop fun, useful and practical Simulink models from scratch. 

In this course, students will be able to: 

  1. Experience a practical project-based learning experience.
  2. Students will build 3 Simulink projects.
  3. Access all the Simulink models and slides.

Get Started with MATLAB & Simulink: An Intro for Beginners

A beginner's overview to get you started. This course will introduce you to the capabilities of MATLAB and Simulink.

Created by Jordan Christman - FPGA * VHDL * MATLAB Enthusiast


Students: 25995, Price: Free

Get Started with MATLAB & Simulink: An Intro for beginners is a course that focuses on teaching students about the various commands, functions, and features that MATLAB and Simulink have to offer. MATLAB and Simulink have a lot of capabilities however, this course will only focus on the introductory topics to get you comfortable in the MATLAB environment.

Course Structure

This course is designed to teach students through a combination of articles to help explain various topics and videos to show examples of these topics. There is a quiz that is designed to test students and let them know if they sufficiently understand the basic information about MATLAB. This course starts out by covering an overview of the MATLAB environment and where specific tools are located. 


The project in this course contains the following information:

Instructions: This article explains what is required to complete the project. 

Demonstration: This lecture demonstrates what is expected of the students in terms of how to complete the project.

Step-By-Step Solution: This lecture explains the thought process and how to complete the project in a step-by-step fashion.

Feel free to message me with any questions before signing up for this course!

Containers 101

Building and deploying containerize applications with Kubernetes, Docker and Helm

Created by Raziel Tabib - Co-Founder and CEO, Codefresh


Students: 25133, Price: Free

In this course, we'll introduce the basics of building and deploying containerized applications. We'll introduce the concepts of containers powered by Docker and how to create them. You'll learn the essentials needed for modern DevOps with orchestration, packaging, and more built on the the fast growing Docker, Kubernetes, and Helm stack.

Coding Interview Jumpstart: Algorithms and Problem Solving

Learn the principles behind fundamental computer science algorihms asked on interviews for top tech companies.

Created by Branko Fulurija - Proffessional programming tutor, 2x Microsoft intern, 5+ years of competitive programming, Full-Stack developer


Students: 22509, Price: Free


In this course we will together make the first steps in the exciting world of algorithms. If you have never learned anything about algorithms, don’t be afraid or intimidated. Algorithms aren’t as hard as people often consider them to be. I’m convinced that any programmer can master the art of problem solving and algorithms if he or she has the motivation to succeed. In fact, I believe that most of the algorithms can be very easy to understand if they are explained in a clear and simple way. 

Considering that I know how hard can the beginning be, because I have been in the same situation once, I have invested my knowledge and experience into this course, to help you guys making the first steps towards mastering algorithms and bringing you one step  closer to your dream job.


Section 1: Introduction

In this section, I will introduce you with the material and the structure of the course. 

Section 2: Algorithm Analysis

In section 2, we are going to talk about algorithm analysis. For some of you, this will be your first step into the world of algorithms and you will understand why is this such an important topic.

We are going to learn several things:

  • First, we will learn about the importance of analysis, and why do we have to analyze our solutions.

  • Then we are going to focus on Asymptotic notation, which is basically a language that allows us to analyze program running time by identifying its behavior as the input size for the algorithm increases.

  • After that we will focus on a specific type of notation, called Big-O notation, and we  will use the Big-O notation to compare algorithms.

  • Finally we are going to practice these concepts by calculating time and space complexity of some given algorithms.

Section 3: Sorting

Sorting is one of the most common algorithms in the world, if you look all around you can find a lot of applications that are using a sorting algorithm to put elements of some list in a certain order. The elements don’t have to be numbers, they can be strings or maybe some events which are sorted by date.

In this section we will learn several sorting algorithms:

  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Merge Sort

  • Quick Sort

  • Counting Sort

For each algorithm we will determine the time and space complexity and compare trade-offs.

At the end of this section you will learn the most important sorting algorithms and you will be able to determine what is the best algorithm to use depending on the type and range of the data which needs to be sorted.

Section 4: Binary Search

This section is dedicated to a fundamental searching algorithm in computer science: binary search.

We start with an explanation about the basic idea of the algorithm and its implementation. 

Then we are going to explore some variations of binary search and how we can implement them:

  • Finding the first occurrence of a target value in the input array

  • Finding the last occurrence of a target value in the input array

  • Finding the number of occurrences of a target value in the input array

Section 5: BONUS: Interview Problems 

This section is a special bonus section, here I will post detailed interview problems solutions. I encourage you to post some interesting problems in the discussions, and each one-two weeks I will choose new problems and post a new video in this section where we solve those new problems.

I also encourage you to post questions about problems that you don't know how to solve or if you have some bugs in your code and you're not sure why your program isn't working

Practical beginners course to Serverless Applications

Hands on course of all the basics that you need to get started building applications with AWS and Serverless Framework

Created by Marcia Villalba - AWS Serverless Hero


Students: 21161, Price: Free

The adoption of serverless computing is increasing over the years. Serverless is a great technology to save costs in the development of new applications. Also it reduces the time to market. 

So why not to get started learning it? Serverless is the future and lots of companies are starting to adopt it now as the technology is becoming more mature. 

In addition, AWS is the most popular cloud provider when it comes to running serverless loads and also for traditional computing. 

So this course is the right course for you if you want to get started with Serverless, if you want to improve in your career and become a more desired hire, if you want to start a new project at work and you want to try the latest technologies, if you want to get started with cloud but you don't want to get started with servers and virtual machines. 


In this course you will learn all the basic concepts that you need in order to get started building serverless application with AWS and Serverless Framework.

  • You will learn how to create an AWS account and secure it
  • You will learn what is Serverless Framework and how to install it
  • You will run your first AWS Lambda 
  • You will learn about API Gateway
  • You will be deploying your whole Serverless application as infrastructure as code
  • You will learn about DynamoDB
  • You will learn the basics of monitoring with CloudWatch


  • In order to take this course you don't need to have any previous knowledge on AWS or Serverless.
  • You just need to know some Javascript and have the basic understanding on how to build backends.
  • You will need access to a phone and a credit card to configure your AWS account (don't worry you wont get charged for any activity done in this course as it all falls in the AWS free tier)

Java 8 Interview Questions Preparation Course

Learn Top 50 Interview Questions on Java 8. Get Success in your Interview.

Created by KnowledgePowerhouse ! - Top most career courses! 30,000+ students are enjoying it!


Students: 19956, Price: Free

Java 8 is one of the major releases from Java with features like Streams, Lambdas etc. A lot of companies are looking for software developers proficient in Java 8 features.

This course contains basic to expert level Java 8 interview questions that an interviewer asks. Each question is accompanied with an answer so that you can prepare for job interview in short time. 

We have compiled this course after attending dozens of technical interviews in top-notch companies like- Google, Netflix, Amazon etc.

Often, these questions and concepts are used in our daily programming work. But these are most helpful when an Interviewer is trying to test your deep knowledge of Java 8 features.

What is the biggest benefit of this course to me?

Finally, the biggest benefit of this course is that you will be able to demand higher salary in your next job interview.

It is good to learn Java 8 for theoretical benefits. But if you do not know how to handle interview questions on Java 8, you can not convert your Java 8 knowledge into higher salary.

What are the topics covered in this course?

We cover a wide range of topics in this course. We have questions on Java 8 best practices, Security, Pact, Bulkhead Design Pattern etc.

How will this course help me?

By attending this course, you do not have to spend time searching the Internet for Java 8 interview questions. We have already compiled the list of the most popular and the latest Java 8 Interview questions. 

Are there answers in this course?

Yes, in this course each question is followed by an answer. So you can save time in interview preparation.

What is the best way of viewing this course?

You have to just watch the course from beginning to end. Once you go through all the videos, try to answer the questions in your own words. Also mark the questions that you could not answer by yourself. Then, in second pass go through only the difficult questions. After going through this course 2-3 times, you will be well prepared to face a technical interview in Java 8 topic.

What is the level of questions in this course?

This course contains questions that are good for a Fresher to an Architect level. The difficulty level of question varies in the course from a Fresher to an Experienced professional.

What are the sample questions covered in this course?

Sample questions covered in this course are as follows:

  1. What are the new features released in Java 8?
  2. What are the main benefits of new features introduced in Java 8?
  3. What is a Lambda expression in Java 8?
  4. What are the three main parts of a Lambda expression in Java?
  5. What is the data type of a Lambda expression?
  6. What is the meaning of following lambda expression?
  7. Why did Oracle release a new version of Java like Java 8?
  8. What are the advantages of a lambda expression?
  9. What is a Functional interface in Java 8?
  10. What is a Single Abstract Method (SAM) interface in Java 8?
  11. How can we define a Functional interface in Java 8?
  12. Why do we need Functional interface in Java?
  13. Is it mandatory to use @FunctionalInterface annotation to define a Functional interface in Java 8?
  14. What are the differences between Collection and Stream API in Java 8?
  15. What are the main uses of Stream API in Java 8?
  16. What are the differences between Intermediate and Terminal Operations in Java 8 Streams?
  17. What is a Spliterator in Java 8?
  18. What are the differences between Iterator and Spliterator in Java 8?
  19. What is Type Inference in Java 8?
  20. Does Java 7 support Type Inference?
  21. How does Internal Iteration work in Java 8?
  22. What are the main differences between Internal and External Iterator?
  23. What are the main advantages of Internal Iterator over External Iterator in Java 8?
  24. What are the applications in which we should use Internal Iteration?
  25. What is the main disadvantage of Internal Iteration over External Iteration?
  26. Can we provide implementation of a method in a Java Interface?
  27. What is a Default Method in an Interface?
  28. Why do we need Default method in a Java 8 Interface?
  29. What is the purpose of a Static method in an Interface in Java 8?
  30. What are the core ideas behind the Date/Time API of Java 8?
  31. What are the advantages of new Date and Time API in Java 8 over old Date API?
  32. What are the main differences between legacy Date/Time API in Java and Date/Time API of Java 8?
  33. How can we get duration between two dates or time in Java 8?
  34. What is the new method family introduced in Java 8 for processing of Arrays on multi core machines?
  35. How does Java 8 solve Diamond problem of Multiple Inheritance?
  36. What are the differences between Predicate, Supplier and Consumer in Java 8?
  37. Is it possible to have default method definition in an interface without marking it with default keyword?
  38. Can we create a class that implements two Interfaces with default methods of same name and signature?
  39. How Java 8 supports Multiple Inheritance?
  40. Can we access a static method of an interface by using reference of the interface?
  41. How can you get the name of Parameter in Java by using reflection?
  42. What is Optional in Java 8?
  43. What are the uses of Optional?
  44. Which method in Optional provides the fallback mechanism in case of null value?
  45. How can we get current time by using Date/Time API of Java 8?
  46. Is it possible to define a static method in an Interface?
  47. How can we analyze the dependencies in Java classes and packages?
  48. What are the new JVM arguments introduced by Java 8?
  49. What are the popular annotations introduced in Java 8?
  50. What is a StringJoiner in Java 8?
  51. What is the type of a Lambda expression in Java 8?
  52. What is the target type of a lambda expression ?
  53. What are the main differences between an interface with default method and an abstract class in Java 8?

Ethereum Development Course – Blockchain at Berkeley

This course will teach you how to become an experienced solidity developer

Created by Blockchain at Berkeley Organization - Blockchain at Berkeley


Students: 18073, Price: Free

Blockchain at Berkeley and leaders of well-respected Blockchain start-ups like Consensys, BlockApps, Virtue Poker, and UJO Music have pooled their experience and knowledge to design a curriculum to turn you into an effective developer of secure Decentralized Applications (dApps) on Ethereum.

The Blockchain Development Bootcamp is comprised four modules of full stack programming on the Ethereum Blockchain:

[FREE] Module 1: Developer Environment Setup and Hello World

  1. Getting Started
    1. Ethereum and Solidity Recap
    2. A Starting Example
      1. The bank contract
  2. Hands-on Development
    1. Installing Dependencies
    2. Project Structure
    3. “Hello World!” (Greeter) Contract
      1. Truffle Init
  3. Connecting to the Real World
    1. Attaching Frontend
    2. Web3 api
    3. Create-react-app
    4. Truffle Migrations
  4. Finishing Touches
    1. Javascript Console
    2. Contract Interaction and Final Questions

Module 2: Solidity In-Depth

  1. Data Types and Associated Methods
    1. Typing and your contracts storage
      1. Typing in solidity
  2. Data Structures
    1. Your contracts storage
    2. Structs
    3. Mappings
  3. Simple Operators
  4. Global Variables
  5. Functions and More
    1. Accessor functions
    2. Events
    3. Modifiers
  6. Branching and Loops
  7. Objects and Contracts
    1. Calling external contract
    2. Inheritance
    3. Import
  8. Other Keywords
    1. Throwing
    2. Selfdestruct

Module 3: Advanced Dapp Development

  1. Greeter Review
    1. Git clone if needed
    2. Testrpc window, npm install/start window, truffle migrate, EthereumSetup.js
    3. Truffle console and final product
    4. How to fetch chain state
      1. What is the web3 api
      2. What is a contract abi?
      3. Why do I have to change the address every time
  2. Web3 API
    1. Pulling information from the blockchain
    2. Modify greeter app that uses web3 to retrieve:
      1. Wallet address
      2. Balance (BigNumber note. Have people try to get as decimal and fail)
      3. Latest block number
      4. Latest block timestamp
      5. Latest block hash
      6. Gas price
  3. Developer Tools I: MetaMask and Deployment
    1. Metamask Chrome Setup
    2. Communication between your browser and your blockchain
    3. Sending and Signing Transactions
    4. Live deployment to Kovan testnet
    5. Live deployment to Ethereum Mainnet

Module 4: Security and Attacks Vectors

  1. Philosophy and Fundamentals
  2. Basic Security
    1. Solidity defaults
    2. .send() vs .transfer vs .call().value()
    3. “Smart” smart contract standards
  3. Attack Vectors
    1. Data races
    2. Integer overflow
  4. Community tools
    1. OpenZeppelin
    2. Oyente
    3. SolCover

Practical Python

Solving everyday problems with python.

Created by Szabó Dániel Ernő - DevOps Engineer


Students: 17767, Price: Free

This is a compilation of my videos uploaded to youtube, if you would like to support me you can buy this course. From oop to ad-hoc problem solving you can find anything in this course. Should you have any questions you can contact me on my public profiles or check my private site too.

If you want you can also check out my youtube channel.

Robust Qt & C++ Gui Programming 2D Graphics App Tutorial

Become a confident Qt GUI and C++ software developer with step by step programming tutorials and 2D graphics examples

Created by Dan Munteanu - Teacher


Students: 17728, Price: Free

This course will help you upgrade your C++ software development skills today!

You will learn how to build an application using Qt and C++, from the ground up.

**This course is now FREE as a token of gratitude to my Udemy followers; Enjoy!**

As I've put my heart and soul into producing this course, I understand it's no longer up to date with the Qt platform.

But it does still have valuable insights into robust app design, so I believe you'll find quite a bunch of useful stuff in here

Here's what others have to say about this course:

"Great course. Instructions are clear and accurate. Dan logically teaches how to build an app from the simplest parts to the harder ones. Tasks for you to complete are getting a little bit bigger every time and you don't feel lost between instructions and the tasks as they are connected to each other (unlike in many other courses). Even though for me this course wasn't hard it was useful and I enjoyed it very much. After finishing the course I found out that there are new videos and new tasks! That's awesome! I like that course is being improved! " - Kateryna Brylliantova

"One of the best courses I ever had. Very well structured, very good program structure and complexity of the application. The explanation should be an example for many ohter teachers. A big and real triple-A. Thank You, Dan." - Matthias Kunka

"Well thought out and paced, I have learned quite a few interesting points on robust code."  - Asad Raja

"I felt this was a very good course for intermediary C++ programmers. It has some easy to follow for the novice sections, but also plenty for the seasoned programmer." - Gino Manifred

C++ is a very powerful and versatile programming language.

Qt is multi-platform framework, the perfect choice for open source GUI development with C++.

Before investing in this course, please watch the FREE lectures (30 minutes) to: 

  • see the final app in action (check out the Final App DEMO lesson)

  • decide if this course is really the right one for you

With this course, you will design and create your own C++ program for the Windows platform.

You will add new features to the app, step by step.

You will learn how to write good source code, at professional-level.

You can learn programming in C++ from anyone you wish to, there are many teachers and a lot of free know-how out there.

But if you want to learn to code like a professional, here's my advice to you:

  • Choose to learn from someone who has already done professional level coding

  • Choose a teacher who has a proven track record working experience with C++ and Qt

  • Choose a mentor who has done this for years, and knows what it takes to create industry-level software

Here's how the course is structured. Each lecture prepares the groundwork for the next one. You will:

  • write code in C++ (standard '03)

  • use the Qt toolkit's UI elements to create the GUI (Graphical User Interface)

  • set up the main application window

  • drag and drop the required user interface elements (buttons, widgets, labels, spinners...) on the main window

  • connect UI elements to UI events (mouse clicks, value changed)

  • write custom event handling code that updates the painted graphic

You need to have a good understanding of OOP (Object Oriented Programming) fundamentals, as you will be adding and working with:

  • class member variables

  • class member functions

  • setters / getters

  • private / public / protected access modifiers

  • encapsulation to protect the data

  • constructors and destructors

  • overriding virtual base class functions for Qt objects

  • pointers to objects

You will organize the C++ program logic into header (.h) and implementation (.cpp) source files.

You will design a simple GUI (Graphical User Interface) with QtCreator (part of the Qt toolkit) and use the signal and slots mechanism to make the buttons (and other UI elements) respond to mouse clicks or value changed events.


You will setup a custom rendering area widget that integrates flawlessly with the Qt5 framework, by inheriting from the QWidget base class and overriding abstract class methods.


You wil learn how to fix compiler errors that can occur during development.

You will also learn to fix linker errors caused by missing function implementations.


You will use a bottom-up approach to develop robust software.


Notice the key word here - robust.


That means professional-level C++ code.


You will learn to design reusable programs with programs will be designed with reusability in mind. And will be written with future upgrade capabilities in mind.


You will also use Math and Geometry in an unexpected way, to create unusual 2D graphics shapes.


You will also get some hands-on experience by taking the course assignments.

The assignments are designed to get you comfortable with the code and teach you to extend the application on your own, after you have completed the course.

Should I go on or do you want to start learning now?


I've invested around 10 years into learning software development and have worked 7 years in the IT industry.

Ok, here are a few more things you will get from it:

  • How to create an online repository (with BitBucket)

  • How to use source versioning (with GIT) to save intermediary code changes and revert back to them anytime if you make a mistake


  • Tips and tricks for good coding practices


So come on, let's start creating some 2D graphics with Qt5 And C++ Gui Programming!

Beginners Guide to Unit Testing with NUnit and C#

Learn the basics of unit testing with NUnit and C#.

Created by Engineer Spock - Software Engineer - 1000+ Reviews, Average Score - 4.5


Students: 17331, Price: Free

This course is all about writing unit tests using C# programming language and NUnit as a unit testing framework. Today unit testing is an absolutely required skill from any professional developer. Companies expect from developers to know how to write unit tests.

Learning unit testing puts a powerful and very useful tool at your fingertips. Being familiar with unit testing you can write reliable and maintainable applications. It is very hard to lead a project which is not covered by unit tests.

Content and Overview

This course is primarily aimed at beginner developers.

We start with basics of unit testing. What is a unit test? What unit testing frameworks exist? How to run and debug unit tests. After getting acquainted with the basics, we will get to the NUnit framework. Here you’ll learn how to install the framework, set the runner. Then you’ll learn the basics of assertions and arrange-act-assert triplet. Other key features of NUnit are also covered:

  • Running tests from the console
  • Setup and teardown unit tests
  • Parameterized tests
  • Grouping and ignoring

Git tutorials for Beginners – Complete Course

a complete practical course on git and github

Created by Kamal Girdher - Professional Trainer and Automation Expert


Students: 16078, Price: Free

Far away from books, we have created this course to give you practical exposure of how git and github. You can easily follow our tutorials and become expert on git even if you have never worked on it.

In this course, you will not learn everything there is to know about  Git, but you will build a strong conceptual understanding of the  technology, and afterward will be able to confidently dig deeper on any  topic that interests you. This course assumes no previous knowledge of  Git, but if you do have experience with it, you may find this course to  be both useful and challenging. This is especially true if you currently  "know just enough Git to be dangerous".

Join us on Telegram for Questions/ Live Chat - t[dot]me/letsautomate

Practical Python – Part 2

More of python awesomeness

Created by Szabó Dániel Ernő - DevOps Engineer


Students: 15447, Price: Free

This course is a continuation of my previous one, another batch of exceptional videos. Full of insight, teaching you tips and tricks as to how you  can use python to do things the right way and make your life easier. Please watch, rate and comment. I appreciate a good feedback :)

If you want you can also check out my youtube channel.

Beginners Guide to Dependency Injection for C# Developers

Learn the basics of Dependency Injection techniques.

Created by Engineer Spock - Software Engineer - 1000+ Reviews, Average Score - 4.5


Students: 14528, Price: Free

Teaching Approach

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All the important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners, I offer my help on Skype absolutely free, if requested.

Take this course, and you will be satisfied.

Build a solid foundation in software architecture applying Dependency Injection

In many of my courses I use techniques of Dependency Injection and each time students write me private messages saying that they don't what it is and thus they don't understand what's going on in the course I teach. This is very unfortunate from the learning perspectives.

Dependency Injection is the set of techniques that allow to supply dependencies to objects. Actually, if you have ever passed dependencies via constructors, then you applied the so-called constructor injection. Dependency Injection (DI) is simple and difficult at the same time. On one hand, DI is comprised of simple techniques and on the other hand, when we need to bring DI to the next level, we need to make things more complicated using the so-called DI or IoC (Inversion of Control) Containers.

If you still don't understand what am I talking about, just believe me, you absolutely need to know about Dependency Injection. This course will tremendously improve your understanding of how software architectures emerge. So, this course is "must watch" for anyone who still doesn't understand what is DI and IoC-Containers.

Content and Overview

This course is aimed at all kind of developers. 

The course covers:

  • Introduction to Inversion of Control
    Dependency Inversion Principle (DIP), Inversion of Control (IoC), Dependency Injection (DI),
    Dependencies and their types, Pure DI and IoC-Containers, Service Locator
  • The Architectural Implications of Dependency Injection

Practical Python – Part 4

This gonna be so much fun

Created by Szabó Dániel Ernő - DevOps Engineer


Students: 13677, Price: Free

This is the part 4 which means there are other parts out there to be discovered. Here I continue my journey into the pythonista life, give you new solutions to new problems. There is a lot more on the plate this time too.

You want to take your career to the next level? You want to get acknowledgement from your boss, and colleagues? This course is just for you.

If you want you can also check out my youtube channel.

Quick Start Guide to Oracle SOA 12c

Get up and running with Oracle SOA 12c using the Quick Start distribution.

Created by Chris Parent - Cloud Architect, Aspiring Educator, and Geek


Students: 13474, Price: Free

Oracle's SOA Suite 12c product is the leading enterprise SOA development and integration platform on the market today. Oracle SOA Suite allows organizations to build reusable business services, integrations, and model business processes rapidly using the latest industry standards such as SCA, BPEL, SOAP and REST.  

A traditional enterprise deployment of Oracle SOA 12c requires an enterprise database deployment (read: NO MYSQL or similar support) along with a distributed deployment. Such a deployment is overkill and unnecessary to build a development or proof of concept environment.

In this course, you will learn how to use the Quick Start distribution to stand up an Oracle SOA 12c development environment rather than spending hours installing the full distribution.  You will learn where to find the Quick Start distribution and how to install and create a SOA domain. Lastly, I will show you how to launch and connect JDeveloper to a SOA domain.

Simple Blogging Analytics Dashboard in Python

Build a small data pipeline in Python by scraping a blog.

Created by Ty Shaikh - Curriculum Engineer at K2 Data Science


Students: 13385, Price: Free

This video series will walk through building a simple blogging analytics dashboard in Python

Here is a synopsis of each video:

  1. Talks about the project and data pipeline

  2. Talks about web scraping basics

  3. Shows how to scrape one blog article

  4. Shows how to scrape all the blog articles in one category

  5. Shows how to scrape all the blog articles in all the categories

  6. Shows how to compute basic analytics

  7. Shows basic design and front-end development

  8. Shows how to setup a Flask sever

  9. Shows how to deploy the app to Heroku

  10. Explores further improvements to the pipeline

Everything in the project is done manually to show the steps between. I plan to upload a 2nd version that shows how to automate the entire pipeline.

SDLC models:basics for beginners

learn basics of software development life cycle and it's models

Created by Naveen Kumar A - Best Selling Instructor | having students in 160+ countries


Students: 13251, Price: Free

This course mainly focuses on the phases involved in software development and it's complete life cycle. it also focuses on different types of SDLC's(software Development Life Cycle) and what are the advantages and disadvantages associated  with it them. it is beginner level and basic level course and it is also a quintessential course for anyone who want to become a software developer since it focuses completely on how a software is developed from initial phase to final phase. so by the end of the course they will have a basic idea about how a software is developed.before enrolling for this course it is better if you have some knowledge on software development in order to understand this course well

Introduction to TDD in C#

Learn test driven development: make code testable, robust and maintainable. Bring unit testing skills to the next level.

Created by Engineer Spock - Software Engineer - 1000+ Reviews, Average Score - 4.5


Students: 12766, Price: Free

Today unit testing is the absolutely required skill which is required from any professional developer. Companies expect from developers to know how to write unit tests including all the most important topics such as mocking and test driven development (TDD in short).

This course is all about practicing TDD using C# programming language and NUnit as a unit testing framework. Along the way, we will learn the concepts related to unit testing. This course does not cover all the features of NUnit. This course is way more interesting.

Learning unit testing and TDD puts a powerful and very useful tool at your fingertips. Being familiar with unit testing and TDD you can write reliable and maintainable applications. It is very hard to lead a project which is not covered by unit tests.

Content and Overview   

This course is primarily aimed at developers who’re already familiar with the basics of unit testing and dependency injection. Some experience in C# programming is required. 

Theory is dead without practice, so starting from the second section, you’ll see tons of programming sessions where I’ll demonstrate how to implement generating of Fibonacci numbers, FizzBuzz, parsing of roman numerals, updateable spin synchronization primitives, tic-tac-toe or crosses and noughts game and game in sticks. You’ll also learn:   

  • How a regular agile development process looks like   

  • That you need to learn shortcuts to practice TDD more smoothly   

  • Three Main TDD techniques: faking, triangulation and obvious implementation   

  • Which tests to write first   

  • How to start writing a test in a TDD manner

Here is my Teaching Approach -

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners, I offer my help on Skype absolutely free, if requested.

Take this course, and you will be satisfied.

Learn Python: Python in 80 Minutes for Beginners (2020)

Learn programming with Python to move on to branches like machine learning, data science, web development, django, etc.

Created by Muhammed Ali Dilek - Programming enthusiast


Students: 12681, Price: Free

This course will go through the fundamentals of programming with Python. By the end of the course you will have gained enough knowledge to move on to different branches or continue to learn more advanced topics with Python. The course includes 6 quizzes and 4 coding exercises that will help you through your learning process. Keep in mind that this course will only teach the basics of Python, so if you are looking to learn more advanced topics, this is not the right course for you. This course is best for those who are looking to learn the basics of Python or just people looking to revise their basic Python knowledge. The course only takes 80 minutes, so if you have any doubts about learning programming, think about how much a new skill can help you in life, from automating your boring task to starting a career in programming.

[NEW] Functional programming for javascript developers

Learn functional programming and how it enables developers to move from imperative to declarative programming

Created by Daniel Arzuaga - Daniel Arzuaga: Programer, Dr, Esq, Chief Engineer at NASA


Students: 11849, Price: Free

Improve your code with functional patterns like pure functions, compose & map/reduce/ advanced concepts like fusion, transducing and monads!

Solidify your knowledge of functional JavaScript programming, including objects, arrays, and prototypes

Learn higher-order functions, closures, scope, master key functional methods like map, reduce and filter and promises and ES6+ asynchronous JavaScript. Go beyond the fundamentals of asynchronous JavaScript and use features and techniques that will help you reduce code and create smarter applications.

Learning how to build and manage asynchronous functional programs is perhaps the most important part of becoming an effective JavaScript programmer.

Build a Streaming Twitter Filter with Python and Redis

Learn how to use Twitter's Streaming API, Redis and Flask together.

Created by Ty Shaikh - Curriculum Engineer at K2 Data Science


Students: 11649, Price: Free

This video series will walk through building a streaming Twitter filter using Python and Redis. 

Here is a synopsis of each video:

  1. Talks about the project and data pipeline

  2. Show how to ingest the Twitter stream

  3. Explain sentiment analysis and how to do it using Python

  4. Explain Redis and show how to setup a local server

  5. Design a pen & paper mockup, then convert to front-end code

  6. Prepare a custom Python class to preprocess and format data fields

  7. Build a simple Flask server to combine all the code so far

  8. Explores further improvements to the pipeline

How to quickly create a Discord bot

Launch a Discord bot today!

Created by Erik Petersson - .NET developer & online instructor


Students: 11534, Price: Free

Course update! august 2019
The course has been updated with lectures teaching you about the websocket, creating !help command, using reconnecting & disconnect events, token safety, added questions in quiz and few more updates.

Hey there student!

This course is made to quickly show you how to develop a simple Discord bot. This course is designed to get you to launch a Discord bot within the same day of enrollment. Very very basic bot to show you the proof of concept about Discord bots.

Why are Discord bots useful? Discord bots can do a lot for you, such as gathering advanced API data from ex Blizzard websites displaying character information in World of Warcraft. Or down to a simple feature that welcomes a new user to the Discord server. Or keeping track of when a user edits or deletes a message.

Why trust me?

I've been developing different kinds of software including a lot of web development during my timespan as a developer. Creating complex functions with tons of security is my favorite. Creating outstanding code is my focus. I'm teaching you nodejs in this course which is the fastest language to use when it comes to Discord bots. I have 4 years of experience in programming and I've used different languages to build different type of software applications. When my first Discord bot course was released, I received a lot of positive feedback. Now I'm creating a short and sweet course for those who wants to develop a basic Discord bot.

Why this course?

• You will be able to launch a Discord bot today.
• You have lifetime access, and you will get new content for free.
Free of any charge.
• Downloadable code so you can use my code for free.
• 1080p HD videos.

Data Structures : LinkedList Animations and Implementations

Learn Singly, Doubly and Circular LinkedList Data Structures in Java through Animations and Implementations.

Created by Dinesh Varyani - FullStack Developer and Tech Lead Engineer


Students: 11531, Price: Free

Want to be expert in various types of Linked Lists such as - Singly Linked List, Doubly Linked List and Circular Linked List? This course is here to help. The course walks you through each type of list with multiple problems and their solutions with step by step visualizations, so that you are actually learning instead of blindly memorizing solutions.

The course covers in and outs of Linked List Data Structures in Java. Java is used as the programming language in the course. Students familiar with Javascript, Python, C#, C++, C etc will also get to learn concepts without any difficulty. The implementation of various Data Structures have been demonstrated and implemented through animated slides. It covers most of the interview room questions on Algorithms and Data Structures. The questions and solutions are demonstrated by -

1. Animated slide. (To make visualization of algorithms faster)
2. Coding algorithm on IDE.

Debugging for Novice to Intermediate Developers

Master essential debugging skills needed for professional coding

Created by Lyuba Fridman - Software Engineering Teacher


Students: 11362, Price: Free

Debugging is an essential skill every professional software developer needs to master! Best for computer science students, coding bootcamp grads, or anyone just starting out in the field of software development, this course will teach you:

  • simple yet effective debugging techniques like commenting out code and printing to the console
  • how Eclipse IDE can help you find your bug quickly
  • powerful tools like breakpoints and step that show you the internal state of your program while it's running
  • expert debugging strategies that can be used for any programming language.

This class will help bridge that gap between coding for school and real-life. Take that next step in your software development journey and become a confident debugger!

Learn Creational Design Patterns in Java

The only course you need to learn creational design patterns!

Created by Chiranjivee Thakur - Software Engineer


Students: 10555, Price: Free

In this course, we will discuss what are creational design patterns. We will get a high level overview of what are these patterns and we will see why it is important to have these patterns. Later on, we will do a deep dive in these patterns and go through all the design patterns which are part of these categories.

  1. Factory

  2. Abstract Factory

  3. Builder

  4. Prototype

  5. Singleton

We will discuss all these patterns mentioned above in a great detail, and we will code along and understand what problems they are solving.

Are you excited?

Let's get started!

Links to source code is provided at the bottom of the introduction section.