educative.io

Grokking the System Design Interview (Design Gurus)

System design questions have become a standard part of the software engineering interview process. Performance in these interviews reflects upon your ability to work with complex systems and translates into the position and salary the interviewing company offers you. Most engineers struggle with the system design interview (SDI), partly because of their lack of experience in developing large-scale systems and partly because of the unstructured nature of SDIs. Even engineers who’ve some experience building such systems aren't comfortable with these interviews, mainly due to the open-ended nature of design problems that don't have a standard answer. This course is a complete guide to master the SDIs. It is created by hiring managers who’ve been working at Google, Facebook, Microsoft, and Amazon. We've carefully chosen a set of questions that have not only been repeatedly asked at top companies, but also provide a thorough experience to handle any system design problem. Let’s get started! View the course [here](https://www.educative.io/collection/5668639101419520/5649050225344512).

Data Structures in Python: An Interview Refresher (Coderust)

Data structures are amongst the most fundamental concepts of Computer Science. The data structure chosen can make or break an entire computer program. Consequently, they are also largely categorized as a vital benchmark of computer science knowledge when it comes to industry interviews. This course contains a detailed review of all the common data structures and provides implementation level details in Python to allow readers to become well equipped. Now with more code solutions, lessons, and illustrations than ever, this is the course for you! View the course [here](https://www.educative.io/collection/5642554087309312/5634727314718720).

Grokking Dynamic Programming Patterns for Coding Interviews (Design Gurus)

The fact is, Dynamic Programming (DP) problems can be some of the most intimidating on a coding interview. Even when it's actually clear if a problem can be solved using DP (which it rarely is), it can be pretty challenging to even know where to start on the solution. Unless, that is, you're trained on the approach to solving DP problems. This course was made from scratch with just that goal in mind. It'll equip you with a set of easy-to-understand techniques to handle any DP problem. Rather than just having you try to memorize solutions, you'll be walked through five underlying DP patterns that can then be applied to solve 35+ DP problems. In each pattern, we'll start with a recursive brute-force solution -- this is actually the best way to start solving a DP problem! Once we have a recursive solution, we'll then apply the advanced DP methods of Memoization and Tabulation. The practice problems in this course were carefully chosen, covering the most frequently asked DP questions in coding interviews. View the course [here](https://www.educative.io/collection/5668639101419520/5633779737559040).

Software Design Patterns: Best Practices for Software Developers (C. H. Afzal)

Being good at problem-solving is one thing but to take your career to the next level, one must know how complex software projects are architected. Software design patterns provide templates and tricks used to design and solve recurring software problems and tasks. Applying time-tested patterns result in extensible, maintainable and flexible high-quality code, exhibiting superior craftsmanship of a software engineer. Being well-versed in knowledge of design patterns allows one to spot brittle and immature code from miles away. The course goes to great lengths to lay bare the esoteric concepts of various design patterns before the reader and is replete with real-world examples and sample code. The readership for this course is expected to be familiar with some object orientated language. The course examples and snippets are written in the Java language but folks with experience in other OOP languages should easily be able to follow the discussion and code intent. View the course [here](https://www.educative.io/collection/5307417243942912/5631943370604544).

Learn C from Scratch (Fahim ul Haq)

Do you want to get a grip on the basic programming concepts from scratch? Do you feel the need to have a better and enhanced understanding of how it all works? Well, you've come to the right place. This course outlines data types, control flow, functions, input/output, memory, compilation, debugging and other advanced topics in a comprehensive, yet concise manner. C is where it all begins and where you should also begin to embark on your programming journey. The incredibly efficient and powerful C language forms the basis for many other languages like C++ and Java. It allows you to interact directly with memory and low-level computer operations, thereby enhancing your programming skills and deepening your understanding. This comprehensive and detailed course will introduce you to all the basic and advanced programming concepts of C language. In addition, it also addresses memory, debugging and parallel programming in C. Sounds awesome? Let's dive in! View the course [here](https://www.educative.io/collection/10370001/5119797780021248).

Mastering Data Structures and Sorting Algorithms in JavaScript (Lydia Hallie)

Are you ready to become a top-notch JavaScript developer? Understand two of the most important concepts in programming - Data Structures & Sorting Algorithms.

Data Structures in Java: An Interview Refresher (Coderust)

Data structures are amongst the fundamentals of Computer Science and an important decision in every program. Consequently, they are also largely categorized as a vital benchmark of computer science knowledge when it comes to industry interviews. This course contains a detailed review of all the common data structures and provides implementation level details in Java to allow readers to become well equipped. Now with more code solutions, lessons, and illustrations than ever, this is the course for you! View the course [here](https://www.educative.io/collection/5642554087309312/5724822843686912).

Python 201 - Interactively Learn Advanced Concepts in Python 3 (Michael Driscoll)

I created this course to help take you to the next level in your programming journey. It will also demonstrate to you some of the many
ways you can use Python in your day-to-day work. I will be covering intermediate and some advanced level material in this course.
Python 201 is split into four parts:

Grokking the Object Oriented Design Interview (Design Gurus)

Object-oriented design has always been a critical part of the software engineering interview process. Most of the engineers struggle with the object-oriented design interviews (OODI), partly because of their lack of experience in laying down the design of a complex system, and partly because of the unstructured nature of OODI. Even engineers, who have some sort of experience in building such systems are not comfortable with these interviews. It is mainly because of the open-ended nature of the design problems that don't have a standard answer. This course is a complete guide to master the OODI. It is designed by the hiring managers of Google, Facebook, Microsoft, and Amazon. It not only has a set of carefully handpicked case studies, which have been repeatedly asked at the top tech companies, but also provides a thorough experience to handle different object-oriented design scenarios. View the course [here](https://www.educative.io/collection/5668639101419520/5692201761767424).

A Practical Guide to Kubernetes (Viktor Farcic)

Kubernetes is a powerful container management tool that's taking the world by storm. This detailed course will help you master it. In this course, you'll start with the fundamentals of Kubernetes and what the main components of a cluster look like. You'll then learn how to use those components to build, test, deploy, and upgrade applications, as well as how to achieve state persistence once your application is deployed. You'll also learn how to secure your deployments and manage resources, which are crucial DevOps skills. By the time you're done, you'll have a firm grasp on what Kubernetes is, as well as the skills to deploy your own clusters and applications with confidence. View the course [here](https://www.educative.io/collection/10370001/5920988434792448).

Understanding Redux: A Beginner's Guide To State Management (Educative)

This course is a beginner's gateway into the mechanics of using Redux as an application building platform. It takes a bottom-up approach, enforcing the basic aspects of Redux before incorporating them together in a creative and interactive way. It begins with a short theoretical section before moving on to application based problems. The course does assume that the user has a basic idea of how React works, as Redux works in the React environment. Let's dive in!

The Road to learn React (Robin Wieruch)

[Updated: October 2018 🔥] 33.000+ students have learnt React from "The Road to Learn React". The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals you need to become a successful React developer. You will gain hands-on experience by building a Hacker News App along the way. Afterward, you will be prepared to build your own applications.

JavaScript in Practice: Getting Started (Zsolt Nagy)

You can expect some beginner-friendly content in this course along with some learning paths.
I strongly believe in practical application. Therefore, I will not bore you with facts, long theory, or rant about which parts of JavaScript I consider good or bad. This course is all about getting our hands dirty and understanding how JavaScript works inside out.
This highly practical course will start off from covering basic programming concepts in Javascript to introducing JavaScript with HTML and CSS. In addition, you will also get an insight into the JavaScript history and its growth in the Software World.

JavaScript In Practice: ES6 And Beyond (Zsolt Nagy)

JavaScript is a fundamental asset for any web developer. As an evolving language, new releases continue to refine it to make it more accessible for large-scale use. ECMA Script, or ES in short, is the standardized name for the programming language popularly known as JavaScript. The sixth release of the script is known as ES6 and features major enhancements which improve Javascript’s usability. Writing and reading code is now easier with the introduction of features like Arrows, Symbols, etc.

JavaScript Fundamentals Before Learning React (Robin Wieruch)

After teaching React extensively (33.000+ students), be it online for a larger audience or on-site for companies transitioning to web development and React, I always come to the conclusion that React is all about JavaScript. Most of it boils down to JavaScript ES6 and beyond features and syntax, but also ternary operators, shorthand versions in the language, the 'this' object, JavaScript built-in functions (map, reduce, filter) or more general concepts such as composability, reusability, immutability or higher-order functions. While you don’t need necessarily to master all of these before starting with React, they will come up while practicing it and so to learn them will put you at a great advantage. This course is my attempt to give you comprehensive JavaScript skills that will make your React journey smooth and straight-forward. View the course [here](https://www.educative.io/collection/10370001/5637225408626688).

Modern C++ Concurrency: Get the most out of any machine (Rainer Grimm)

"Concurrency with Modern C++" is a journey through the present and upcoming concurrency features in C++. - C++11 and C++14 have the basic building blocks for creating concurrent and parallel programs. - With C++17 we have the parallel algorithms from the Standard Template Library (STL). That means that most STL based algorithms can be executed sequentially, parallel, or vectorized. - The concurrency story in C++ goes on. With C++20 we can hope for extended futures, co-routines, transactions, and more. In addition to explaining the details of concurrency in modern C++, this course gives you many interactive code examples; therefore, you can combine theory with practice to get the most out of it. Apart from theory, this course contains a lot of real-world scenarios and use-cases along with pitfalls and how to overcome them using best practices. View the course [here](https://www.educative.io/collection/10370001/5731772033662976).

Step Up Your JS: A Comprehensive Guide to Intermediate JavaScript (Arnav Aggarwal)

This is for those familiar with the basics of JavaScript and looking to advance their knowledge and really understand how the language works. We'll cover topics that are essential to help you read, understand, and write better code. Before starting, you should be familiar with the basics of variables, functions, and loops in JavaScript. This course will enable you to master JavaScript interview questions that stump most developers. You'll be able to talk intelligently about the fundamentals of the language and about common design patterns. This course has been created by Arnav Aggarwal, a full-stack engineer. Having attended a coding boot camp and having taught at another one, Arnav has extensive experience understanding how new developers learn to code. In under a month, Arnav's published articles on JavaScript concepts have received over 50,000 views and have been featured as staff selections on Medium.com and codementor.io because of their educational value. View the course [here](https://www.educative.io/collection/5679346740101120/5707702298738688).

Learn the A to Z of Amazon Web Services (AWS) (Cloud Experts)

Learn about the core AWS’s services like compute, storage, networking services and how they work with other services like Identity, Mobile, Routing, and Security. This course provides you with a good grasp an all you need to know of AWS services.

Intermediate JavaScript: Building Frontend Components (Educative)

Learn to apply your introductory knowledge of HTML, CSS, and JavaScript to build beautiful, real-world components. In this course, you'll go through the process of developing several complex components, including: - eBay's dropdown menu - Gmail's auto-validating form - Google's main autocomplete enabled search - Twitter's infinitely scrolling list - Medium's tooltips You'll learn how to approach common frontend challenges, what questions to ask yourself, how to design solutions once you've thought of them, how to debug and work with mistakes, and more. The end-goal is to empower you to look at anything you see on a website and be able to say, "I can build that!" View the course [here](https://www.educative.io/collection/10370001/5165314803236864).

Java Multithreading for Senior Engineering Interviews (C. H. Afzal)

Concurrency in Java is one of the most complex and advanced topics brought up during senior engineering interviews. Knowledge of concurrency and multithreading can put interviewees at a considerable advantage. This course lays the foundations of advanced concurrency and multithreading and explains concepts such as Monitors and Deferred Callbacks in depth. It also builds simple and complete solutions to popular concurrency problems that can be asked about in interviews like the Reader-Writer Problem and the Dining Philosopher Problem. While prior knowledge of concurrency is not required to follow through with this course, familiarity with the very basics of concurrency would be helpful View the course [here](https://www.educative.io/collection/5307417243942912/5707702298738688).

Cloud Architecture: A Guide To Design & Architect Your Cloud (Cloud Experts)

“Cloud Architecture: A Guide To Design & Architect Your Cloud”, is a course designed by a group of AWS, Azure Cloud Solution Architects. This course is for Leaders who are thinking about moving their applications to the cloud or for managers what to be a part of the cloud movement one way or the other. The people who generally benefit from this course are Software Development Managers (SDM), IT Managers, Engineering Managers, Technical Program Managers (TPM) and even developers.

Bash for Programmers (Educative)

Ever wondered why command line is still in use even when there are hundreds of human-friendly GUI’s and tools available? Everyone in the programmer's world would agree on one thing: Command Line is far more powerful than any GUI. It provides a richer experience in terms of speed and expressiveness. For beginners, it might be hard to appreciate its beauty and a little challenging to shift from an interactive interface to a blank box with just a “$” sign showing that keeps prompting the user to enter complex commands if you want to get something done. This is why we felt the need to build a course which could help the user overcome his/her fear of using the terminal (we have all been there). The objective of this course is to help you get a strong grip over Linux, mainly focusing on BASH. You will be covering both, the theoretical and practical sides. First, you will learn a bunch of concepts necessary to understand things and then study some nifty commands to get useful things done out of them.

Python 101: Interactively learn how to program with Python 3 (Michael Driscoll)

Welcome to Python 101! I created this course to help you learn Python 3. My objective is to get you acquainted with the building blocks of Python so that you can write something useful yourself. With interactive playgrounds to help you learn right away, I will endeavor to not only get you up to speed on the basics, but also to show you how to create useful programs.

Introduction to JavaScript: First Steps (Arnav Aggarwal)

This is an introduction to JavaScript for the complete beginner. It'll provide the fundamentals of the language. Topics include variables, operators, functions, arrays, objects, and loops. After this course, you should be ready to further your learning through advanced courses or other resources. There is NO installation required for this course. Code can be viewed and run directly from the lessons. This course has been created by Arnav Aggarwal, a full-stack engineer. Arnav has attended a coding boot camp and has taught at another one. He has extensive experience understanding how pepole learn to code. In under a month, Arnav's published articles on JavaScript concepts have received over 50,000 views and have been featured on Medium.com and codementor.io due to their value. After this course, check out the next one in the series. Step Up Your JS: A Comprehensive Guide to Intermediate JavaScript https://goo.gl/GjM8Mu View the course [here](https://www.educative.io/collection/5679346740101120/5720605454237696).

Make Your Own Neural Network in Python (Tariq Rashid)

Machine learning is one of the fastest growing fields, and we cannot emphasize enough about its importance. This course aims to teach one of the fundamental concepts of machine learning, i.e., Neural Network. You will learn the basic concepts of building a model as well as the mathematical explanation behind Neural Network and based on that; you will build one from scratch (in Python). You will also learn how to train and optimize your network to achieve a better result.

The Complete Advanced Guide to CSS (Ohans Emmanuel)

My Goal is to take you from a beginner (or intermediate) CSS user to becoming one of the best CSS devs you know! 👉🏻 COURSE CONTENT? 1. A detailed look at CSS Fundamentals 2. Practical SVG for today 3. A Sane Guide to Responsive Design 4. Creating sleek Interfaces with CSS Animations and Transitions 5. Writing Maintainable CSS and tips for CSS at Scale 6. Learn the CSS Grid by Building ... wait for it! 😉 7. Get a Private slack Invite where you can ask me anything 8. Gain a Solid Understanding of CSS Fundamentals 9. Build Practical Projects 10. Flexbox, Variables, Gradients, Backgrounds, Responsive Images, Handy pro tools, and many more! 👉🏻 WHAT ARE THE REQUIREMENTS? The course assumes no previous knowledge of CSS 👉🏻 WHAT'S THE TARGET AUDIENCE? 1. Backend Engineers looking to level up their frontend design skills 2. Budding developers looking to create beautiful applications 3. Generally, engineers who want to stand out by truly understanding the internals of CSS Ready to upgrade? View the course [here](https://www.educative.io/collection/5191711974227968/5641332169113600).

Learn web development from scratch: Go Beyond the syntax (Medhir Bhargava)

When I started out learning about web development, the number of resources that were available on the web made the task challenging. I had no idea where to start. Should I watch videos on HTML and CSS? Do I use Javascript or jQuery? Getting a handle on the number of concepts and jargon surrounding developing applications for the web can be a full-time job in and of itself. I've designed this course to cover the basics of web pages, from semantically marking up your page with HTML to stylizing your content with CSS. Then I will introduce you to programming fundamentals with Javascript, and by the end, you'll be comfortable enough to develop fully-functional web modules using Javascript, including an image carousel and a to-do list application! Instead of watching endless videos and wondering how to translate those videos into real code, you'll be practicing what you learn through interactive, test-based exercises. View the course [here](https://www.educative.io/collection/10370001/5686791109607424).

HTML5 Canvas: From Noob to Ninja - an interactive deep dive (Kirupa Chinnathambi)

Kirupa is an MIT grad who works at Microsoft as Senior Program Manager. He has been tinkering with web technologies since 1998. He works on the Edge browser team where he gets to sink his teeth into the cutting-edge web technologies.

Practical Redux (Mark Erikson)

Hi, I’m Mark Erikson, also known as @acemarke. I’m a Redux maintainer, and I want help you better understand how to use Redux (and React) in the real world.

Master the JavaScript Interview (Arnav Aggarwal)

Master the JavaScript interview by practicing 20 carefully curated interview questions and solutions. These problems will provide the tools you need to tackle any question you find in an interview. Allow ~1 hour per question. Most questions have multiple solutions presented. All solutions are thoroughly explained and time and space complexity are discussed. A passing familiarity with these ideas is expected. You'll learn how to tackle different types of problems so you can proceed with confidence in your interviews. These questions go beyond the common problems that we've all seen. FizzBuzz and bubble sort? We start past those. We'll discuss how to refine algorithms. We'll go over clever, advanced ways of manipulating data that interviewers are looking for. You'll walk away more skilled and confident in your problem solving and interviewing abilities. This course is taught in ES2015. View the course [here](https://www.educative.io/collection/5679346740101120/5703274724327424).

Coding for Visual Learners: Learning JavaScript with p5.js (Engin Arslan)

At this age and time that we live in, coding is simply invaluable. It has the power to uplift your career, your future prospects and even your intellectual capacity. Computation is driving one of the largest capital expansions in history and there has never been a better time to learn coding than now.

Let's learn ES6! Master new JavaScript features faster and easier (Ryan Christiani)

ES6 is the future of JavaScript and modern JavaScript frameworks like React are based on ES6. Every web developer needs to learn ES6 to stay relevant. It’s also more fun to write ES6 code.

Learn Data Science with Bash Shell (Scientific Programmer)

1500+ students have taken this innovative project-based data learning course (includes video lectures). It demonstrates the use of Bash shell (Bash, sed and awk including RegEx) in processing textual data. It can help to learn to sort, search, match, replace, clean and optimize various aspects of data with Bash Shell. The target audience (students, researchers, scientists, journalists, data miners, developers) didn't have to go through any tough learning curve. This course also should have helped RedHat, SuSE and Ubuntu Linux learners and Data Science enthusiasts. Regularly updated, new projects to come! - Learn Bash commands interactively - Projects with own stories and conclusive decisions - Animated video lectures (for visual learners) - Demonstrations - Quizzes - Learning tasks Bloom's taxonomy (remember, understand, apply, analyze, evaluate and create) in developing your Linux skills.

Hour of Code: Build Your Robot World in Java (Devin Balkcom)

Learn the basics of coding while driving a simulated robot through a maze. By the end of this tutorial, you’ll be able to use variables, use Java commands called methods, generate random numbers, and use coding constructs, loops, to instruct the computer to solve repetitive tasks.

Building Tesla’s Battery Range Calculator with React & Redux (Matthew Choi)

This FREE interactive course is designed to teach how to create complete applications using React and Redux by building Tesla’s Battery Range Calculator.

Become a data visualization engineer with React + D3v4 (Swizec Teller)

Hi, I’m Swizec Teller. Over the years I've helped over 10,000 engineers hone their craft. With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour. Get started immediately without installing anything. I based React+D3v4 on 20 years of experience with learning how to code on my own, reading blogs and articles, listening to professors, and working with mentors. Don't know React? React+D3v4 starts at the very beginning. Struggling with D3? Every function is explained.

Python Regular Expressions with Data Scraping Projects (Scientific Programmer)

Python + Regex? Many of you do not find this combination easy, which partly happens because of the Python's obfuscated regex documentation too! In this course, to make your life easy, I have used some real-world examples. The goals are: - Teach you how to use the Python regular expressions (re) module and relevant functions by running interactive examples; - Educate you to deal with projects with real world data examples (e.g., pdf and web scraping, more coming soon!); - Challenge you with coding exercises and quizzes; and - Beginner friendly video lectures to explain the basic REGEX concepts. This is a short course, should be pretty quick and easy to complete. However, it assumes that you have basic Python skills (see the other Python courses on this platform). This course should get you going with Python Regex in less than 30mins. This course is a core component of the 'Learn Scientific Programming' project. Do you want to know more? www.scientificprogramming.io View the course [here](https://www.educative.io/collection/5183519089229824/5682462386552832).

Coderust: Hacking the Coding Interview (Coderust)

Want to land a software engineering job in the tech industry? Coderust is here to help. The course walks you through 80+ example problems and their solutions with step by step visualizations - so that you are actually learning instead of blindly memorizing solutions. All the solutions can be run in the browser, and you can modify your code on the fly to test different approaches. Solutions are available in Python, C++, Java, JavaScript, and Ruby. Coderust was created by former hiring managers with years of experience in today's top tech companies. View the course [here](https://www.educative.io/collection/5642554087309312/5679846214598656).

Data Structures in Javascript: Visualizations & Exercises (Educative)

This course provides a quick introduction to Data Structures using Javascript. The audience for this course is someone who understands the basics of programming in Javascript (e.g. an undergrad student or a coding boot camp graduate). Data Structures included in this course are Array, Stack, Queue, Dictionary, Set, Hash Table, Linked List, Binary Tree and Binary Search Tree and Graphs. Each tutorial includes step-by-step visualizations and interactive exercises. View the course [here](https://www.educative.io/collection/10370001/160001).

Learn Pure React - An Interactive Deep Dive into the basics of React.js (Dave Ceddia)

Welcome to Learn Pure React. I’m going to teach you the core concepts of React, in isolation, without Redux, Webpack, and the rest.

Learn React.js, Redux & Immutable.js while building a weather app (Max Stoiber)

I’m Max Stoiber (@mxstbr) - the creator of react-boilerplate, one of the most popular react starter kits (10K+ stars on github).

Understanding Flexbox: Everything you need to know (Ohans Emmanuel)

This course will cover all the fundamental and advanced concepts you need to get good with the CSS Flexbox model. You will learn to layout a Responsive Music App in the process. It is a detailed course, and I hope you’re ready for it.

Learn to Use HPC Systems and Supercomputers (Scientific Programmer)

Learn to use High Performance Computing (HPC) Systems and solve large computational problems. This course assumes basic familiarity with the Bash command line environment found on GNU/Linux and other Unix-like environments. This course is of the first of its kind, should be your second step from my previous Educative course “Learn to Analyze Text Data in Bash Shell and Linux”

Python 3: An interactive deep dive (Educative)

Are you ready to take the plunge into Python 3? You might be just getting started with Python or you might be someone who understands Python2 and now wants to upgrade to Python 3. This course is designed to help you achieve your goal faster.

The 4 (Practical) Flexbox Tricks you Need to Know (Ohans Emmanuel)

If you’ve been trying to get a grip on Flexbox - here’s an interactive practical tutorial for you. No crap, no fluffs, just the very important practical tricks you need to know.

JS Assessment: Assess your Javascript skills (Educative)

Test your Javascript skills by trying out exercises in your browser. These exercises were originally created by Rebecca Murphy and released under “js-assessment”. By doing these exercises, you will learn about Javascript Arrays, Strings, Functions, Objects, Inheritance, Regular Expressions etc.

React JS & ES6 for JavaScript beginners (Sergey Lapin)

Learn the basics of ES6 and React. I assume that you know nothing about React. My goal is to teach you React without requiring any setup or tools. All code samples can be executed in the Browser. The course begins by giving you an overview of ES6. We then begin creating basic components in React, then continue to enhance them. The final example is an interactive web page with multiple stateful components interacting with each other on user actions.

A Visual Introduction to Algorithms (Educative)

Learn introductory computer science algorithms, including searching, sorting, recursion, and graph theory through a combination of articles, visualizations, quizzes, and coding challenges. Implement Challenges in Java, Python, C++ or Javascript.

A Quick Primer on Garbage Collection Algorithms (Muhammad Umer Azad)

This series offers a brief overview of different garbage collection techniques and the tradeoffs involved. I’ve discussed Referenced Counting and Mark-Sweep. In coming weeks, I’ll update the series with Mark-Compact and Copying Collectors.

2-3-4 Trees: A Visual Introduction (Fahim ul Haq)

2-3-4 Tree is a self-balancing multiway search tree. In this tutorial, we’ll look at the insertions and deletions in the 2-3-4 tree. Though we don’t use 2-3-4 trees in practice, we study them to understand the theory behind Red-Black trees.

Learn Vue.js from Scratch: Building & Testing a Movie App (Thomas Lombart)

Have you always wanted to build an app from scratch? You heard about Vue.js and you want to learn it? You never cared about testing and you want to put an end to that? You already know some HTML/CSS/JS basics and want to level up your skills? Don't wait any longer and take this course! You will learn Vue.js basics, API, unit tests and test-driven development, styling, responsive design and how to deploy an app. Finally, you will have an app to put on your portfolio and you'll be ready to build your own Vue apps by the end of the course. Sounds great? Well, get on board and learn with me! View the course [here](https://www.educative.io/collection/5024793980043264/5629499534213120).

C++ Standard Library including C++ 14 & C++ 17 (Rainer Grimm)

C++ is one of the most prominent programming languages in the world. Along with optimized performance, the diverse functionality it offers has kept the language relevant for two decades. The C++ Standard Library, which is the collection of all the tools and utilities available in C++, received its latest update in 2017. Known as C++17, the update introduces many new features that further optimize our code. Join us in this course as we venture into the vast world of C++17. We’ll examine the fundamentals of the language, before moving on to more complex yet powerful tools. You can also experiment with the code provided and hence, gain a higher understanding of how things work. This course is perfect for anyone willing to fully grasp C++ and use it to its full potential. Welcome aboard! View the course [here](https://www.educative.io/collection/10370001/5712008708096000).

Functional Programming Patterns With RamdaJS! (Yazeed Bzadough)

We know the functional programming (FP) hype train’s been riding strong the past few years, especially in the JavaScript community. We extol FP in countless books, videos, and blog posts, with no sign of slowing down.

Complete JavaScript Course: Build a Real World App from Scratch (Baptiste Pesquet)

Javascript is one of the most prominent web programming languages that really made a difference. This course aims to be a useful companion for anyone wishing to (re)discover the many facets of JavaScript. Walk with us as we take you on a journey filled with all the wonders of Javascript including: - Basics of JavaScript with ES6 - How to traverse the DOM? - Modify Pages and handle events - Animate elements You will also learn how to build a Social News web application from scratch using the three web technologies HTML, CSS and JavaScript. Before moving on to advanced concepts, we will go through the fundamentals to get a strong grip over the basics. You can also experiment with the code provided and hence, gain a higher understanding of how things work. This course is perfect for anyone who wants to learn web development and get off to a good start in the JavaScript universe or catch up with its newest evolutions. Let's walk this (JavaScript) way! View the course [here](https://www.educative.io/collection/10370001/5710902082928640).

JavaScript In Practice: ES6 And Beyond (Educative)

JavaScript is a fundamental asset for any web developer. As an evolving language, new releases continue to refine it to make it more accessible for large-scale use. ECMA Script, or ES in short, is the standardized name for the programming language popularly known as JavaScript. The sixth release of the script is known as ES6 and features major enhancements which improve Javascript's usability. Writing and reading code is now easier with the introduction of features like Arrows, Symbols, etc. This course provides a practical view into all of the components present in ES6. We'll discuss the importance of each component, learning how and why it makes things simpler in Javascript. Interactive exercises and quizzes will help you adopt these modern coding practices for JavaScript. ES6 is rapidly growing in popularity, and this course is essential for anyone who wants to be fully immersed into JavaScript.

An Introduction to Programming in Go (Educative)

As Moore’s Law is reaching the end of its lifecycle, the need for concurrency is rising and consequently, the need for a programming language that enables effective implementation of concurrent programs is rising too. For this reason, Go has become one of the most popular languages in recent times. This course aims to provide a detailed introduction to Go for beginners. Furthermore, it also articulates how Go is different from traditional programming languages that programmers are accustomed to in order to acquaint programmers getting ready to delve into Go with the language too.

Big-O Notation For Coding Interviews and Beyond (C. H. Afzal)

This course is intended for professionals that lack formal education in computer science, and that are in search of a simple and practical guide to algorithmic complexity. The course explains the concepts in layman’s terms, and teaches how to reason about the complexity of algorithms without requiring one to have an extensive mathematical skillset. This course can also be handy for revising complexity concepts or Big-O analysis before interviews. Finally, the content also scratches the surface of some advanced analysis topics to provide a more encompassing image of the complexity theory.

Learn Ruby from Scratch (Educative)

Do you want to be an interpreted language geek? Are you tired of getting entangled in the dense syntaxes? Does it irritate you to compile your code to machine language first? Are you looking for an easy-to-use scripting language? Well, Ruby is the best pick for you then! Ruby is a smart, easy-to-use, functional, Object-Oriented programming language, which comes as a wondrous mix of Perl's scripting power, Pythonic capabilities and much more! As Matsumoto, creator of Ruby, implies: "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language." This introductory course will be providing you with hands-on practice with the support of a bunch of interactive illustrations, exercises and the integral topics of variables, built-in classes, objects, conditionals, blocks and much more! Cool, right? Ready to dive into one of the most influential and demanding third generation programming language? Let's tune in! View the course [here](https://www.educative.io/collection/10370001/5658174447157248).

Data Structures in JavaScript: An Interview Refresher (Coderust)

Data structures are amongst the very fundamentals of Computer Science and are often a core decision in developing efficient programs. Consequently, they are also largely categorized as a vital benchmark of computer science knowledge when it comes to industry interviews. This course contains a detailed review of all the common data structures and provides implementation level details in JavaScript to allow readers to become well equipped with all the different data structures they can leverage to write better code! View the course [here](https://www.educative.io/collection/5642554087309312/5663204961157120).

Learn C++ from Scratch (Educative)

This course introduces you to fundamental programming concepts in C++, one of the most popular languages in the world. The highly interactive course begins with a simple hello world program and proceeds on to cover common concepts such as conditional statements, loop statements, and functions in C++. It then reflects upon the idea of pointers and arrays, as well as the power they give to the programmer to write better code. Finally, it dives deeper in order to teach about advanced concepts such as classes, inheritance, and templates in C++ through interactive challenges and exercises. View the course [here](https://www.educative.io/collection/10370001/5701129488826368).

C++17 in Detail: A Deep Dive (Bartłomiej Filipek)

C++ has been subject to several evolutions since its launch in 1998. What started as a primitive language has now turned into a platform for solving complex problems such as parallel programming and file manipulation. The latest release, C++17, builds upon the functionality of previous versions by further diversifying the power of C++ and increasing the language’s readability.

Web Development: a Primer (Educative)

If you're interested in getting into web development, this course is the perfect place to start -- whether you're a high-schooler looking to learn a new skill, or an entrepreneur who wants to build their own website. The course encompasses everything from the basics of networks to the principles of front-end web development with HTML, CSS, and JavaScript. After taking this course, not only will you be comfortable learning any web technology, but you'll also have a better idea of what different technologies are out there and what you'll want to learn. You'll also become familiar with version control systems, which are a global industry standard. View the course [here](https://www.educative.io/collection/10370001/5668847440887808).

Data Structures in C++: An Interview Refresher (Coderust)

Data structures are amongst the very fundamentals of Computer Science and are often a core decision in developing efficient programs. Consequently, they are also largely categorized as a vital benchmark of computer science knowledge when it comes to industry interviews. This course contains a detailed review of all the common data structures and provides implementation level details in C++ to allow readers to become well equipped with all the different data structures they can leverage to write better code! View the course [here](https://www.educative.io/collection/5642554087309312/5646276079124480).

C# for Programmers: A Practical Guide (Educative)

This course introduces you to fundamental programming concepts in C#, one of the most popular languages in the world. The highly interactive course begins with a simple Hello world program and proceeds on to cover common concepts such as conditional statements, loop statements, and methods in C#. It also reflects upon the idea of arrays as well as the power they give to the programmer to write better code. Finally, it dives deeper in order to teach about advanced concepts such as classes, inheritance, interfaces, and delegates in C# through interactive challenges and exercises.

A Complete Guide to Launching Your Website: From Local to Live (Educative)

We can find a plethora of content on the internet related to web development in many different languages. However, what are we supposed to do once our web application has been created? The next step is to make it live on the world wide web. This course takes us deep into the world of web deployment, specifying all the necessary steps needed to make our website available to users.

Full Speed Python (João Ventura)

Python is one of the most popular coding languages today; it's categorized as a vital benchmark of computer science knowledge in industry interviews. This highly interactive course is an accelerated introduction to Python. It is intended for users who are already familiar with the fundamentals of programming and aims to teach the Python programming language using a practical approach. It not only covers the basic Python syntax but also teaches methods specific to Python3. With most companies already switching from Python2 to Python3, this version of Python is the future. Before moving on to more complex and powerful tools, we’ll examine the fundamentals of the language. You can also experiment with the code provided and, therefore, gain a higher understanding of how things work. This course is perfect for anyone who works as a Python developer and wants to recognize its full potential. Happy learning! View the course [here](https://www.educative.io/collection/10370001/5765097389555712).

Learn Java from Scratch (Educative)

This highly interactive course introduces you to fundamental programming concepts in Java, one of the most popular languages in the world. It begins with a simple hello world program and proceeds on to cover common concepts such as Conditional Statements, Loop Statements, Simple Maths, and Logic in Java. It then reflects upon the idea of Methods and Arrays, as well as the power they give to the programmer to write better code. Finally, it dives deeper in order to teach about advanced concepts such as Classes & Inheritance, Generics and ArrayLists in Java. By the time you're done, you'll be an intermediate level Java developer, ready to take on your own projects. View the course [here](https://www.educative.io/collection/10370001/5138612588904448).

Java Unit Testing with JUnit 5 (Dinesh Varyani)

Junit 5 is the most popular and widely used Java unit testing framework. In this course, you will learn step by step, how to configure and use JUnit 5 testing framework. This course will teach you how to write unit tests with JUnit 5, covering topics like why unit tests are important, the structure of good unit tests, assertions, assumptions and parameterized tests and more. View the course [here](https://www.educative.io/collection/4753235730497536/5693417237512192).

A Practical Guide to GraphQL: From the Client Perspective (Robin Wieruch)

This course was written to be as practical as possible. It offers an interactive learning experience, starting off with a general introduction to GraphQL and proceeding to allow you to play with GraphQL Queries and Mutations using GitHub’s GraphQL API. After getting you comfortable with the basics of GraphQL, the course moves on to how to use GraphQL with React and then on how to integrate it with Apollo Client. You'll implement an issue tracker application using GraphQL combined with both React and Apollo Client. Finally, with this course Educative introduces its newest feature: A live VM. You will now have access to a terminal with a native look and feel where you can modify code and see changes in real time - all inside your browser! View the course [here](https://www.educative.io/collection/10370001/5717730879602688).

React in Patterns (Educative)

Ready to take your React skills to the next level? This intermediate course will teach you to make use of design patterns and think more abstractly about how you create applications in React.

Learn PHP from Scratch (Educative)

This highly interactive course introduces you to fundamental programming concepts in PHP, one of the most popular languages in the world. It begins with a simple Hello world program and proceeds on to cover common concepts such as Conditional Statements, Loop Statements, and Logic in PHP. It then reflects upon the idea of Functions and Arrays, as well as the power they give to the programmer to write better code. Finally, it dives deeper in order to teach about advanced concepts such as Classes, Inheritance and Exception Handling in PHP. By the time you're done, you'll have a good grip on the basics of PHP, and will be ready to study advanced concepts. View the course [here](https://www.educative.io/collection/10370001/5669965877215232).

Machine Learning for Software Engineers (Adaptilab)

If you're a software engineer looking to add Machine Learning to your skillset, this is the place to start. This course will teach you to write useful code and create impactful Machine Learning applications immediately. From the start, you'll be given all the tools that you need to create industry-level machine learning projects. Rather than reading through dense theory, you’ll learn practical skills and gain actionable insights. Topics covered include data analysis/visualization, feature engineering, supervised learning, unsupervised learning, and deep learning. All topics are taught with industry standard frameworks: NumPy, pandas, scikit-learn, XGBoost, TensorFlow, and Keras. Basic knowledge about Python is a prerequisite to this course. This course was created by AdaptiLab, a company specializing in evaluating, sourcing, and upskilling enterprise machine learning talent. It is built in collaboration with industry machine learning experts from Google, Microsoft, Amazon, and Apple. View the course [here](https://www.educative.io/collection/6083138522447872/5629499534213120).

Learn Object-Oriented Programming in C++ (Educative)

Object-oriented programming (OOP) has been around for decades. If you have a basic understanding of C++ and are interested in leveling up your skills, this class will help you do just that. Starting with an overview of the basics, you’ll dive into understanding the time-honored technique for implementing complex applications using user-defined classes. Followed up by discussing classes and objects, and then building up to the high-level topics including inheritance and polymorphism. Throughout the course, you’ll be fully immersed in OOP for C++, with illustrations, exercises, quizzes, and hands-on challenges every step of the way. You’ll walk away with an understanding of classes and objects behavior and be able to easily create simple, efficient, reusable and secure code. View the course [here](https://www.educative.io/collection/10370001/5754868253851648).

From Python to Numpy (Nicolas P. Rougier)

If you’re looking to grow your career in machine learning or data science in this day and age, adding a powerful library to your skill set is an important place to start. In that vein, Python has become one of the most widely used tools in the industry for serious data analytics, and NumPy is probably the most widely used data analytics library. With NumPy, you can manipulate data involving multi-dimensional arrays and matrices (think linear algebra).

Recursion for Coding Interviews in C++ (Educative)

If you’ve ever struggled with solving coding problems using recursion, or if you’ve just got an interview coming up and want to brush up on your knowledge, you’ll definitely find this course helpful. You’ll start with the basics of what recursion is and why it’s important before diving into what it looks like in practice. You’ll see how recursion can help you solve a variety of different math, string, and data structure problems, using interactive code playgrounds you can execute directly in your browser. You’ll have access to detailed explanations and visualizations for each problem to help you along the way. By the time you’re done, you’ll be able to use what you’ve learned to solve complex real-world problems, and even advance more easily through your interviews at top tech companies. View the course [here](https://www.educative.io/collection/10370001/5324226422636544).

Learn Object-Oriented Programming in Java (Educative)

Object-oriented programming (OOP) has been around for decades. As the original object-oriented language, Java is a mainstay in the world of computer programming. Having a foundation in OOP Java concepts will allow you to write cleaner, more modular, and more reusable code, as well as make it easier for you to understand the codebases of different companies you might be interested in joining. Starting with the basics and reviewing complex topics like inheritance and polymorphism, this course is filled with illustrations, exercises, quizzes, and hands-on challenges. You’ll walk away with an understanding of classes and objects behavior and be able to easily create simple, efficient, reusable and secure code. View the course [here](https://www.educative.io/collection/10370001/5692479535841280).

Algorithms in C++: An Interview Refresher (Coderust)

With algorithms being arguably the most common theme in coding interviews, having a firm grip on them can be the difference between being hired and not. After this comprehensive course, you'll have an in-depth understanding of different algorithm types and be equipped with a simple process for approaching complexity analysis. As you progress, you’ll be exposed to the most important algorithms you're likely to encounter on an interview, work your way through over 50 interactive coding challenges, and review detailed solutions for each problem. You’ll walk away with the ability to build up to the optimal solution for addressing those tough coding interview questions head-on. This course is the latest addition to our popular Interview Refresher series, which has helped developers land jobs in top companies including Google, Microsoft, and Apple. View the course [here](https://www.educative.io/collection/5642554087309312/5745541363269632).

Integrating Firebase with React (Robin Wieruch)

If you've tried to create a web app before, you know it's not always simple. Before you even start coding, you have to decide: which tools and frameworks do you use for the frontend? What platform do you use for the backend? How do you make them work together the way you want? Pairing Firebase with React takes that stress away. Firebase is a cutting-edge backend platform that integrates beautifully with React apps, making your life considerably easier. This course will teach you how to make use of Firebase's functionality in a React app. From basic authentication to complex topics like session handling, you'll leave with the ability to create and deploy awesome web apps with ease. Along the way, you'll build your own React app, and then connect it to a Firebase backend. We're also excited to share that this course features Educative's newest feature: A live VM. You'll now have access to a terminal with a native look and feel where you can modify code and see changes in real time - all inside your browser! View the course [here](https://www.educative.io/collection/10370001/6453054490542080).

Grokking the Coding Interview: Patterns for Coding Questions (Design Gurus)

Coding interviews are getting harder every day. A few years back, brushing up on key data structures and going through 50-75 practice questions was more than enough prep for an interview. Today, everyone has access to massive sets of coding problems, and they've gotten more difficult to account for that. The process has gotten more competitive. When our team sat together to brainstorm on ideas to make the interview process easier for candidates, we realized quickly that one skill helped us the most when we were preparing for coding interviews: "the ability to map a new problem to an already known problem." To help candidates with that, we've come up with a list of 15 patterns for coding questions, based on similarities in the techniques needed to solve them. As a result, once you're familiar with a pattern, you'll be able to solve dozens of problems with it. The techniques taught in this course have helped developers land jobs in top companies including Google, Facebook, Amazon, and Microsoft. View the course [here](https://www.educative.io/collection/5668639101419520/5671464854355968).

Learn Object-Oriented Programming in JavaScript (Educative)

Learn to write cleaner, more modular, and more scalable code in JavaScript by gaining mastery of Object Oriented Programming (OOP). You'll start with the basics of object-oriented programming and build up to more advanced concepts such as prototypal inheritance, prototype chaining, method overriding and mixins. Along the way, you'll learn how each concept applies to JavaScript's sometimes unique way of handling things. You'll also see how various JavaScript features make it particularly convenient for OOP, with particular emphasis on changes introduced in ES6. This course is filled with hands-on coding challenges, playgrounds, snippets, and illustrations to keep things interactive. View the course [here](https://www.educative.io/collection/10370001/5862304337887232).

Learn Object-Oriented Programming in Python (Educative)

Learn to write cleaner, more modular, and more scaleable code in Python by gaining a master of Object Oriented Programming (OOP). You'll start with the basics of object oriented programming and build up to more advanced concepts such as inheritance, information hiding, and polymorphism. Along the way you'll learn how each concept applies to Python in particular, as well as how various Python features make it particularly convenient for OOP. This course is filled with hands-on coding challenges, playgrounds, snippets, and illustrations to keep things interactive. View the course [here](https://www.educative.io/collection/10370001/6201068373409792).

Functional Programming with ReasonML (Educative)

ReasonML has been skyrocketing in popularity lately, and for good... reason. Very recently developed by Facebook, it provides users a strong-typed, clean, and efficient syntax for JavaScript, which makes it great for web development. This course will get you up to speed programming in Reason. You'll start by learning how to create simple data objects and build up to more powerful tools such as functions and data structures. Along the way, interactive quizzes and exercises will help you gain a stronger grasp of the language. Anyone looking to put themselves on the cutting-edge of web development would be well served to have a look at this course. View the course [here](https://www.educative.io/collection/10370001/5810886801358848).

Testing Vue.js Components with Jest (Alex Jover Morales)

Front-end frameworks, in general, are exploding in popularity, and Vue.js, in particular, has become one of the most popular ones.

The Definitive Java Interview Handbook (C. H. Afzal)

It’s very common to have interviews testing your knowledge of a programming language you claim to be an expert in. If you've got an interview coming up on Java soon and need to get up to speed, this is the ideal course for you. You'll refresh your memory on everything from the basics to more advanced functionality you’re likely to be asked about. Even if you're using Java every day, you may not have been exposed to parts of it in some time, so it's always useful to make sure you're updated. If you're just looking to just brush up on your Java fundamentals, you'll also get a lot of value out of this comprehensive resource. Get started today. View the course [here](https://www.educative.io/collection/5307417243942912/5730192894984192).

Recursion for Coding Interviews in Java (Educative)

If you’ve got an interview coming up and want to brush up on your knowledge, or if you’ve ever struggled with solving coding problems using recursion, you'll find this course helpful. You’ll start with the basics of what recursion is and why it’s important before diving into what it looks like in practice. You’ll see how recursion can help you solve a variety of different math, string, and data structure problems by using interactive code playgrounds that you can execute directly in your browser. You’ll have access to detailed explanations and visualizations for each problem to help you along the way. By the time you’re done, you’ll be able to use what you’ve learned to solve complex real-world problems and even advance more easily through your interviews at top tech companies. View the course [here](https://www.educative.io/collection/10370001/5996180548878336).

Mastering Concurrency in Go (Educative)

Mastering concurrency can make you a much more in-demand developer on the job market. It's becoming an increasingly important concept in modern programming as multi-core devices become more and more prevalent. The good news is that Go has some outstanding support for concurrency out of the box that makes implementation a breeze. In fact, concurrency in Go is easier to implement and faster than in any other major language. In this course, you'll start off with a general introduction to concurrency and build up to more advanced concepts and implementation in Go. You'll also have a chance to go through some common patterns that will make your life easier and your code more efficient. By the time you're done, you'll be able to make use of Go to write efficient, practical applications that use concurrency. View the course [here](https://www.educative.io/collection/10370001/5895695963783168).

Learn Perl from Scratch (Educative)

Perl is one of the most popular text processing languages in the world. It allows you to create extremely efficient text parsers for all sorts of applications. This interactive course will help you get up to speed on Perl, starting off with basic concepts like loops, strings, and arrays. You'll build your way up to more complex topics like data structures and packages. No background knowledge is needed. Anyone willing to understand the principles and syntax of Perl to use it in the future will find this course useful. View the course [here](https://www.educative.io/collection/10370001/5311748804444160).

Learn R from Scratch (Educative)

The digital world we live in has given companies and people access to staggering amounts of data, and anyone that can make use of that to drive valuable insights stands to benefit. The ability to work with large amounts of data is becoming a standard requirement for countless jobs across multiple industries. Enter R, probably the most well-known language for data analysis. It's been used for years due to its robust statistical functionality, outstanding graphing ability, and extensibility through packages. This interactive course will get you up to speed and assumes no prior knowledge of R. You'll start with the very basics and work your way up to advanced concepts like exception handling. By the time you're done, you'll be able to write detailed, useful code in R yourself. View the course [here](https://www.educative.io/collection/10370001/5396243679281152).

The Complete Java Crash Course (Devin Balkcom)

Looking to jump into a new programming language? Java is an easy-to-use, highly portable and ubiquitous language that is used for a variety of development purposes such as Android applications, desktop applications, and website backend systems. Designed for programmers who are already familiar with coding in languages such as C++, Python, or other similar languages, this course articulates any Java-specific details that programmers need to know to get acquainted with the language and also highlights similarities and differences between Java and other languages through multiple coding examples. View the course [here](https://www.educative.io/collection/13890001/5690145009303552).

Recursion for Coding Interviews in Python (Educative)

If you’ve ever struggled with solving coding problems using recursion, or if you need to brush up your recursion skills for an interview, this course is for you! We will start with the basics of recursion before we practice solving actual coding problems. You’ll have access to detailed explanations and visualizations for each problem to help you along the way. By the time you have completed this course, you’ll be able to use all the concepts of recursion to solve complex, real-world problems. We hope that this course will help you ace all the recursion related questions during interviews at top tech companies! View the course [here](https://www.educative.io/collection/10370001/5102090441457664).

Learn Python from Scratch (Educative)

Python is the most popular programming language today, and its developers are constantly in high demand. As it continues to increase in popularity, it's become the closest thing to a must-know language for every programmer. The good news is that this course is the perfect place to start. Join us on an interactive journey through the syntax and functionality of Python. The course begins by exploring the basic building blocks before moving on to higher-level concepts such as functions and loops. Fun quizzes and coding challenges will accompany you along the way to help enforce all the concepts covered in the course. By the end of the course, you'll be familiar with the concept of data structures and functional programming in Python. View the course [here](https://www.educative.io/collection/10370001/5473789393502208).

Advanced React Patterns With Hooks (Ohans Emmanuel)

With the release of hooks, certain React patterns have gone out of style. Hooks are likely the way we’ll be writing React components for the next couple of years, so they are quite important. React patterns can still be used, but in most cases, developers will be better off using hooks. For example, they should choose hooks over render props or higher-order components. There may be specific cases where the aforementioned could still be used, but most of the time, hooks are better. That being said, this course will teach you some of the more advanced React patterns implemented with hooks. View the course [here](https://www.educative.io/collection/10370001/4597752283529216).

Learn Scala from Scratch (Educative)

Learn how to program in Scala, one of the most popular programming languages in the world right now -- not just amongst developers, but even amongst massive companies like Twitter and LinkedIn. Scala provides you the tools to build scalable programs easily and effectively. It's a statically typed, high-level language that combines functional programming and object-oriented programming into one flexible package. This course will help you stay ahead of the curve, make awesome, scalable apps, and learn a highly coveted new programming language. Start learning today. View the course [here](https://www.educative.io/collection/10370001/4974430444847104).

The Definitive Guide to MongoDB (Nikola Zivkovic)

MongoDB has quickly become the foremost NoSQL database on the market, having been adopted by companies of all sizes for the various benefits it offers toward building modern applications. In this interactive course, you'll get to see for yourself why there's so much hype around MongoDB, and learn all about how to use it. You'll start off with an introduction to Relational and NoSQL databases, get into some basic command operations, and build up from there toward more advanced concepts. You'll then get into using MongoDB in C# and .NET Core as well as its uses in MEAN Stack. Throughout the way, you'll have the chance to use MongoDB to build interesting projects as you learn. View the course [here](https://www.educative.io/collection/10370001/5227455105204224).

Master the Bash Shell (Ian Miell)

A course for anyone interested in understanding all aspects of the bash shell. Designed for use by beginners, it assumes as little knowledge as possible but teaches you all the intricacies of bash it took me decades to learn by trial and error. The interactive nature of the course instills the knowledge in a way you will not forget! View the course [here](https://www.educative.io/collection/5164406595911680/5419374779301888).

Applied Machine Learning: Industry Case Study with TensorFlow (Adaptilab)

In this course, you'll work on an industry-level machine learning project based on predicting weekly retail sales given different factors. You will learn the most efficient techniques used to train and evaluate scalable machine learning models. After completing this course, you will be able to take on industry-level machine learning projects, from data analysis to creating efficient models and providing results and insights. The code for this course is built around the TensorFlow framework, which is one of the premier frameworks for industry machine learning, and the Python pandas library for data analysis. Basic knowledge of Python and TensorFlow are prerequisites. To get some experience with TensorFlow, try our course: Machine Learning for Software Engineers. This course was created by AdaptiLab, a company specializing in evaluating, sourcing, and upskilling enterprise machine learning talent. It is built in collaboration with industry machine learning experts from Google, Microsoft, Amazon, and Apple. View the course [here](https://www.educative.io/collection/6083138522447872/5873588626259968).

Applied Machine Learning: Deep Learning for Industry (Adaptilab)

In this course, you'll level up your skills learned in the Industry Case Study and Machine Learning for Software Engineers. You'll take the modeling and data pipeline concepts and apply them to production-level classification and regression models for industry deployment, while continuing to practice the most efficient techniques for building scalable machine learning models. After this course, you will be able to complete industry-level machine learning projects, from data pipeline creation to model deployment and inference. The code for this course is built around the TensorFlow framework, one of the premier frameworks for industry machine learning, and the Python pandas library for data analysis. Knowledge of Python and TensorFlow are prerequisites. This course was created by AdaptiLab, a company specializing in evaluating, sourcing, and upskilling enterprise machine learning talent. It is built in collaboration with industry machine learning experts from Google, Microsoft, Amazon, and Apple. View the course [here](https://www.educative.io/collection/6083138522447872/6598392304107520).

Natural Language Processing with Machine Learning (Adaptilab)

In this course you'll learn techniques for processing text data, creating word embeddings, and using long short-term memory networks (LSTM) for tasks such as semantic analysis and machine translation. After completing this course, you will be able to solve the important day-to-day NLP problems faced in industry, which is incredibly useful given the prevalence of text data. The code for this course is built around the TensorFlow framework, one of the premier frameworks for industry machine learning, and the Python pandas library for data analysis. Knowledge of Python and TensorFlow are prerequisites. This course was created by AdaptiLab, a company specializing in evaluating, sourcing, and upskilling enterprise machine learning talent. It is built in collaboration with industry machine learning experts from Google, Microsoft, Amazon, and Apple. View the course [here](https://www.educative.io/collection/6083138522447872/5255772847996928).

Image Recognition with Machine Learning (Adaptilab)

If you want to dive into the technology behind computer vision and self driving cars, this is where to start. In this course you'll learn how to process data from image files and create convolutional neural networks (CNNs) to classify different types of images. After completing this course, you will have a solid understanding of why CNNs work and which CNN architectures to use for different tasks. The code for this course is built around the TensorFlow framework, one of the premier frameworks for industry machine learning, and the Python pandas library for data analysis. Knowledge of Python and TensorFlow are prerequisites. This course was created by AdaptiLab, a company specializing in evaluating, sourcing, and upskilling enterprise machine learning talent. It is built in collaboration with industry machine learning experts from Google, Microsoft, Amazon, and Apple. View the course [here](https://www.educative.io/collection/6083138522447872/5093907643760640).

Python Concurrency for Senior Engineering Interviews (C. H. Afzal)

Concurrency in Python is one of the most complex and advanced topics brought up during senior engineering interviews. Knowledge of concurrency and multithreading can put interviewees at a considerable advantage. This course lays the foundations of advanced concurrency and multithreading and explains concepts such as Monitors, Event Loops and Deferred Callbacks in depth. It also builds simple and complete solutions to popular concurrency problems that can be asked about in interviews like the Reader-Writer Problem and the Dining Philosopher Problem. While prior knowledge of concurrency is not required to follow through with this course, familiarity with the very basic Python would be helpful. View the course [here](https://www.educative.io/collection/5307417243942912/5668546535227392).

Fixing Random: Techniques in C# (Eric Lippert)

There are a lot of problems we face in programming that deal with uncertainty, statistics, and probabilities. Unfortunately, the majority of the general-purpose languages that we use on a daily basis don’t provide a great approach to solving them.

Docker for Developers (Educative)

By now, you’ve probably heard the buzz around Docker. It’s fundamentally changed the development process and been adopted by software teams of all sizes, and for good reason: Docker makes it considerably easier to create, deploy, and run applications with the use of containers.

Learn Rust from Scratch (Educative)

The word is out: Developers love Rust. It's quickly becoming one of the most popular languages among systems and embedded programmers, and the demand for Rust developers is growing considerably. It's a very powerful language in terms of its performance, reliability, and productivity, especially when compared to C++. If you're looking for a new language to learn that will improve your overall programming skills and practices, then Rust is the next language you should learn. This course aims to teach Rust using a practical approach. It begins with a simple "Hello world" program and proceeds to cover common concepts such as Arrays, Strings, Vectors, Enums, Structures, Traits, Generic, Functions, and Logic. Finally, it dives deeper into more advanced concepts like Lifetime and memory management. By the time you're done, you'll have a good grip on the basics of Rust; and will be ready to study more advanced concepts. Join us in this course as we venture into the vast world of Rust! View the course [here](https://www.educative.io/collection/10370001/5248976175497216).

C# Concurrency for Senior Engineering Interviews (C. H. Afzal)

Concurrency in C# is one of the most complex and advanced topics brought up during senior engineering interviews. Knowledge of concurrency and multithreading can put interviewees at a considerable advantage. This course lays the foundations of advanced concurrency and multithreading and explains concepts such as Monitors and Deferred Callbacks in depth. It also builds simple and complete solutions to popular concurrency problems like the Reader-Writer and Dining Philosopher Problems that could be asked about in interviews. While prior knowledge of concurrency is not required to finish this course, familiarity with the basics of C# would be helpful. View the course [here](https://www.educative.io/collection/5307417243942912/6345276711239680).

Recursion for Coding Interviews in JavaScript (Educative)

If you’ve ever struggled with solving problems using recursion, or if you have to brush up your skills for an interview, this course is for you. We'll start with the basics of what recursion is and why it’s important before diving into practicing solving actual questions. You’ll have access to detailed explanations and visualizations for each problem to help you along the way. By the time you have completed this course, you’ll be able to use all the concepts to solve complex real-world problems. We hope that through practicing recursion, you will be able to ace all recursion related questions in interviews at top tech companies. View the course [here](https://www.educative.io/collection/10370001/6352342267985920).

Learn Object-Oriented Programming in C# (Educative)

Object-oriented programming (OOP) has been around for decades. As the original object-oriented language, C# is a mainstay in the world of computer programming. All the concepts of object-oriented programming that C# developers love to have in their arsenal are explained in detail along with relevant coding examples and exercises in this course. This course is unique in its nature as it follows a project-based learning approach. Throughout the course, a real-world example of vending machine is followed to help the learners develop a firm understanding of the stated OOP concepts. The learners will not only be able to play around with the project, they’ll also be able to see all the concepts in action in this project. View the course [here](https://www.educative.io/collection/10370001/5333051905146880).

Generic Programming Templates in C++ (Rainer Grimm)

Templates are one of the many powerful features of Modern C++ programming. And with each new C++ standard, they become more important.

Embedded Programming with Modern C++ (Rainer Grimm)

Embedded Programming with Modern C++ is highly valuable for each professional programmer.