educative.io

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).

Microservice Architecture: Practical Implementation (Eberhard Wolff)

Microservices are one of the most important software architecture trends, but it’s one thing to define an architecture and quite another to implement it. This course focuses on the nitty-gritty details of real-world implementation. You’ll learn recipes for tech stacks that can be used to implement microservices, as well as the pros and cons of each. You’ll start by exploring some fundamental concepts for implementing microservices. Within each concept, you’ll learn about the different technologies used to implement it. The technologies include: Frontend Integration with Edge Side Includes (ESI), asynchronous microservices with Kafka and REST feeds, synchronous microservices with the Netflix stack and Consul, Docker, Kubernetes, Cloud Foundry. Each technology you learn about is described and then demonstrated with real code. By the end of this course, you’ll be a microservice pro. Whether you’re a software engineer or an engineering manager, this course will prove useful throughout your career. View the course [here](https://www.educative.io/courses/microservice-architecture-practical-implementation).

Learn HTML, CSS, and JavaScript from Scratch (Medhir Bhargava)

Learn to code and create your own web pages using HTML, CSS, and JavaScript in this interactive web development course for beginners.

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/courses/grokking-the-system-design-interview).

Data Structures for Coding Interviews in JavaScript (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/courses/data-structures-coding-interviews-javascript).

Data Structures for Coding Interviews in Java (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/courses/data-structures-coding-interviews-java).

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/courses/grokking-dynamic-programming-patterns-for-coding-interviews).

Learn C++ from Scratch (Educative)

Learn C++ for free with this interactive course, and get a handle on one of the most popular programming languages in the world. You'll start with a simple hello world program and proceed to cover core concepts such as conditional statements, loops, and functions in C++, before moving on to more advanced topics like inheritance, classes, and templates, along with much more. By the time you're done, you'll be an intermediate level C++ developer, ready to take on your own projects. View the course [here](https://www.educative.io/courses/learn-cpp-from-scratch).

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/courses/learn-object-oriented-programming-in-python).

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/courses/practical-guide-to-kubernetes).

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: > Part one covers intermediate modules > Part two covers topics such as unicode, generators and iterators > Part three covers web related tasks with Python > Part four covers testing code View the course [here](https://www.educative.io/courses/python-201-interactively-learn-advanced-concepts-in-python-3).

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/courses/grokking-the-object-oriented-design-interview).

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 React: The one with Class Components (Robin Wieruch)

If you’re working with a legacy React codebase, then this course will prove useful. React has seen a great deal of change over the years, but there might be situations where you have to work with an older version. In this course, you will learn the fundamentals of V15 React. You will learn how to work with an API, how to organize and test your code as well as how to give your React app state. Throughout this course, you will have hands-on experience building a fully functional Hacker News App. By the end of this course, you will be prepared to build your own applications and have something to showcase in your portfolio. If you’re looking for the updated version of this course featuring V16, please visit The Road to React: The one with Hooks. View the course [here](https://www.educative.io/courses/road-to-react-with-class-components).

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.

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. 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. View the course [here](https://www.educative.io/courses/javascript-in-practice-es6-and-beyond).

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.

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/courses/software-design-patterns-best-practices).

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/courses/intermediate-javascript).

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/courses/java-multithreading-for-senior-engineering-interviews).

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. View the course [here](https://www.educative.io/courses/bash-for-programmers).

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. This course will be split into five parts: Part-I covers Python's basics. Part-II is a small subset of Python's Standard Library. Part-III is intermediate material. Part-IV is a series of small tutorials. Part-V covers Python packaging and distribution. View the course [here](https://www.educative.io/courses/python-101-interactively-learn-how-to-program-with-python-3).

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/courses/the-complete-advanced-guide-to-css).

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)

2500+ 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. View the course [here](https://www.educative.io/courses/learn-data-science-with-bash-shell).

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)

Regex with Python? 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:

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/courses/coderust-hacking-the-coding-interview).

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" You'll learn: - Intro to HPC Systems and Supercomputers - HPC system's basic components - HPC software stack - HPC job schedulers and batch systems (PBS and Slurm with demos) - Introduction to parallel programming (Open MP, MPI and GPU coding) Video demos are included, I think it is a must have course for students, researchers, big data analysts, and developers. It will help you to utilize High Performance Computing systems at your institution. Non-interactive course. More details at: www.scientificprogramming.io/learn-hpc View the course [here](https://www.educative.io/courses/learn-to-use-hpc-systems-and-supercomputers).

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. View the course [here](https://www.educative.io/collection/10370001/2650002).

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. View the course [here](https://www.educative.io/courses/visual-introduction-to-algorithms).

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 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/courses/learn-c-from-scratch).

Learn Vue.js from Scratch (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!

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/courses/cpp-standard-library-including-cpp-14-and-cpp-17).

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/courses/the-complete-javascript-course-build-a-real-world-app-from-scratch).

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. View the course [here](https://www.educative.io/collection/10370001/6199152924950528).

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. View the course [here](https://www.educative.io/courses/big-o-notation-for-interviews-and-beyond).

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/courses/learn-ruby-from-scratch).

Data Structures for Coding Interviews in Python (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/courses/data-structures-coding-interviews-python).

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

C++ started in 1979 as an experiment, before being officially launched in 1983. In 1998, its first ISO standard was released. What started as an experimental language has quickly turned into a platform for solving complex problems that drive many industries: gaming, finance, data centres, vehicles, and even software for space missions, among many others. 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. This course describes all the significant changes in C++17 and will give you the essential knowledge to stay at the edge of the latest features. What’s more, each section contains lots of practical examples and uses a bottom-up approach to give you a more comfortable start. If you have a moderate understanding of C++, this course is highly recommended as the next step in mastering the modern form of this language. View the course [here](https://www.educative.io/courses/cpp-17-in-detail-a-deep-dive).

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/courses/web-development-a-primer).

Data Structures for Coding Interviews in C++ (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/courses/data-structures-coding-interviews-cpp).

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. View the course [here](https://www.educative.io/courses/c-sharp-for-programmers-a-practical-guide).

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. Learn about the different tools, security measures and deployment platforms available to us in the modern era. This comprehensive guide also teaches us about important web concepts such as Search Engine Optimization and server maintenance. Furthermore, for your ease, we'll be deploying a sample website using the Google Cloud Platform! So get your web applications ready because they are about to go live. View the course [here](https://www.educative.io/courses/a-complete-guide-to-launching-your-website-from-local-to-live).

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/courses/full-speed-python).

Learn Java from Scratch (Educative)

Learn Java for free with this interactive course, and get a handle on one of the most popular programming languages in the world. You'll start with a simple hello world program and proceed to cover common concepts such as Conditional Statements, Loop Statements, Math, and Logic in Java, before moving on to more advanced concepts like Inheritance, Generics, and ArrayLists, along with much more. 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/courses/learn-java-from-scratch).

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/courses/java-unit-testing-with-junit-5).

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/courses/practical-guide-to-graphql-from-the-client-perspective).

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. This course takes a bottom-up approach: for instance, instead of jumping straight into Flux or Redux, it first goes through data flow to lay a foundation. Similarly, instead of starting off with higher-order components, it first goes through composition. It will also take you through a wide variety of important concepts, such as styling and third-party library management integration. By the time you’re done, you'll have a comprehensive understanding of advanced React concepts and be able to create highly complex applications with confidence. View the course [here](https://www.educative.io/courses/react-in-patterns).

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/courses/learn-php-from-scratch).

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/courses/machine-learning-for-software-engineers).

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/courses/learn-object-oriented-programming-in-cpp).

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/courses/learn-object-oriented-programming-in-java).

Algorithms for Coding Interviews in C++ (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/courses/algorithms-coding-interviews-cpp).

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?

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 coding interview 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 16 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/courses/grokking-the-coding-interview).

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/courses/learn-object-oriented-programming-in-javascript).

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/courses/functional-programming-with-reasonml).

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 Java Interview Handbook: 300+ Interview Questions (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. This course features more than 300 of the most commonly asked core Java interview questions that you're likely to face as an experienced software engineer. You'll get to explore questions by topic, as well as see detailed answers for each one, and plenty of live code examples where relevant. Get started today. View the course [here](https://www.educative.io/courses/java-interview-handbook).

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/courses/mastering-concurrency-in-go).

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/courses/learn-perl-from-scratch).

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/courses/learn-r-from-scratch).

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 3 from Scratch (Educative)

Learn Python 3 for free with this interactive course, and get a handle on the most popular programming language in the world. 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 time you're done, you'll have the skills you need to create your own basic applications in Python 3. View the course [here](https://www.educative.io/courses/learn-python-3-from-scratch).

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.

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/courses/learn-scala-from-scratch).

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).

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/courses/python-concurrency-for-senior-engineering-interviews).

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 (Arnaud Weil)

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. Docker is here to stay, and is becoming one of the most in-demand technologies on the market. Mastering it now will help you produce better software, level up your career, and stand out from the crowd. Get started today. View the course [here](https://www.educative.io/courses/docker-for-developers).

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 performance, reliability, and productivity, especially when compared to C++. If you're a system developer looking for a new language to learn, then Rust is a great place to look next. In this course, you'll be able to learn Rust while getting your hands dirty along the way. 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 move on to more advanced concepts. View the course [here](https://www.educative.io/courses/learn-rust-from-scratch).

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.

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. Templates provide an efficient way to make your code more flexible and reusable, this way you can avoid repeating code that would otherwise be identical except for different types. Templates also give you the ability to provide abstraction without a performance penalty. However, templates can be difficult to apply, can be counterintuitive, and have tricky error messages. This course gives you the necessary information to overcome these hurdles and dive into the advanced topics. You’ll visit the basics such as function and class templates, and then explore the details to templates such as instantiation and fold expressions. Our journey also includes techniques based on templates, the design, and future directions of templates such as concepts. Based on this exhaustive tour of templates, a basic understanding of C++ is sufficient to master this course. Let’s get started! View the course [here](https://www.educative.io/courses/generic-templates-in-cpp).

Embedded Programming with Modern C++ (Rainer Grimm)

Embedded Programming with Modern C++ is highly valuable for each professional programmer. In the past, embedded and system programming have had their pitfalls, but modern C++ has been designed to be a better language for this type of development, addressing the previous pitfalls/requirements explicitly. What are these requirements? Embedded systems deal with safety-critical systems, meaning they must guarantee high performance combined with limited resources, while also working in parallel. The scope of this course goes beyond just embedded programming. Developers who write servers, games, or trading systems may especially benefit from this course because they also have to deal with safety-critical systems, high performance, reduced resources, and parallel execution in their jobs. To get the most out of the course, you only need a basic understanding of C++. Building off this understanding, this course goes over all the essentials of embedded programming with Modern C++. Let's get started! View the course [here](https://www.educative.io/courses/embedded-programming-with-cpp).

Grokking Data Science (Samia Khalid)

Master the skills that can get you a $100K+ salary even if you bunked your statistics classes. This course is your comprehensive guide to getting your start as a data scientist. No need to waste hours and hours on browsing from one article to the next and piecing together the info you need to grasp important topics. No need to get overwhelmed by the information overload. Find easy to follow, hands-on, and fun explanations of all the essential topics in one place so you can quickly and efficiently learn what you need to thrive as a data scientist. "Is this course right for me?" Continue to "Details" to decide for yourself! View the course [here](https://www.educative.io/courses/grokking-data-science).

Data Structures and Algorithms in Python (Vincent Russo)

Data structures and algorithms are among the most fundamental concepts of Computer Science. Whether it’s real-world problems you’re trying to solve or the typical coding question asked in an interview, almost every problem requires you to demonstrate a deep understanding of data structures and algorithms. This course is a detailed review of some of the most common data structures and algorithms that you’ll see in interviews and your everyday work. With implementation details, thorough explanations, and hands-on coding exercises, you’ll quickly gain the confidence you need to solve any problem, no matter the situation. View the course [here](https://www.educative.io/courses/ds-and-algorithms-in-python).

Reintroducing React: V16 and Beyond (Ohans Emmanuel)

What’s new with React? New lifecycle methods, context API, hooks, and lots more. While the fundamental principles of React have stayed the same, the way we write React apps has changed with each new release. If you learned React a while back, it’s possible that you haven’t been up to date with every new feature/release. It’s also possible to get lost in all the new features. Where exactly do you start? How important are they for your day to day use? This course is your one-stop reference to most important React updates since V16 was released. We’ll walk through all the major features of modern React so you can stay in sync with the most recent changes while learning to write better software. View the course [here](https://www.educative.io/collection/10370001/5837821073948672).

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

Concurrency in Ruby 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 basics of Ruby would be helpful. View the course [here](https://www.educative.io/courses/ruby-concurrency-for-senior-engineering-interviews).

Grokking Computer Networking for Software Engineers (Educative)

The way applications are developed today requires software engineers to have a firm understanding of client-server architecture and networking. If you’re planning to write web applications, or apps that communicate with a remote server, then networking is an essential skill. With this in mind, it’s clear that what you do as a software engineer will be deeply rooted in networking. This course will teach you the fundamentals of networks, socket programming in Python, command-line tools and the main protocols of each layer. Additionally, you will get hands-on experience with not only socket programming, but with implementing network protocols that require distributed processing. Join us in a deep dive on everything network-related. View the course [here](https://www.educative.io/courses/grokking-computer-networking).

Learn Dart: First Step to Flutter (Educative)

Learn Dart for free with this interactive course. Dart is a clean, simple, class-based object-oriented language that has more structure than JavaScript, the programming language it's heavily based on. However, you can’t have a conversation about Dart without mentioning Flutter. Flutter is Google’s mobile UI framework used for crafting high-quality native interfaces on iOS and Android. Flutter applications are written using the Dart programming language, which has helped make Dart a beloved language by the developer community. Before you can start fluttering out applications using Flutter, you need to learn Dart. This course will help you learn the fundamentals of Dart, and get you started on your journey to learning Flutter. Start learning today. View the course [here](https://www.educative.io/courses/learn-dart-first-step-to-flutter).

Web Application & Software Architecture 101 (Shivang Sarawagi)

This course is a 101 on web application & software architecture. It walks you step by step through different components & concepts involved when designing the architecture of a web application. We'll learn about various architectural styles such as the client-server, peer to peer decentralized architecture, microservices, the fundamentals of data flow in a web application, different layers involved, concepts like scalability, high availability and much more. In this course, we'll also go through the techniques of picking the right architecture and the technology stack to implement our use case. I'll walk you through different use cases which will help you gain an insight into what technology & architecture fits best for a certain use case when writing a web application. You’ll come to understand the technology trade-offs involved. View the course [here](https://www.educative.io/courses/web-application-software-architecture-101).

Database Design Fundamentals for Software Engineers (Educative)

Databases are universal - they underlie the technology you use every day. They're a crucial component of everything from telecommunications systems, banking systems, and video games to just about any other software system that maintains some amount of persistent data. In this course, you'll learn about the fundamental concepts of databases, why and when they're used, what relational databases are, and entity-relationship diagrams. You will also be exposed to techniques like normalization that help to increase the efficiency of databases. You'll wrap up with a look at the basics of Structured Query Language (SQL). After completing this course, you will be able to move onto more advanced courses involving database systems and SQL. View the course [here](https://www.educative.io/courses/database-design-fundamentals).

Flask: Develop Web Applications in Python (Educative)

This project-based course is a detailed guide to web application development using the increasingly popular Flask framework. Flask is known for being simple, lightweight and having a small learning curve. If you've got some experience in Python, picking up Flask will be a breeze. It's got a booming job market and will put you on track to becoming an in-demand full-stack developer. What's not to love? View the course [here](https://www.educative.io/courses/flask-develop-web-applications-in-python).

Data Science for Non-Programmers (Educative)

Ready to move past Excel for complex business analysis? Then you’ll find this course very helpful. This hands-on introductory Data Science course is aimed at professionals and students who don't have any experience with programming. It will help you advance your career by preparing you to conduct meaningful data analysis in Python on any dataset — large or small. You’ll begin with the fundamentals of Python, with focus on CSV files in Python, covering concepts like data preprocessing and Exploratory Data Analysis (EDA). In the second half, you'll focus on predictive and inferential analysis using statistical and machine learning techniques, and learn how these techniques can help solve business problems. View the course [here](https://www.educative.io/courses/data-science-for-non-programmers).

Python for Scientists and Engineers (Educative)

If you're a scientist or an engineer interested in learning scientific computing, this is the place to start. In this course, you'll learn to write your own useful code to perform impactful scientific computations. Along the way, your understanding will be tested with periodic quizzes and exercises. Topics covered in this course include arrays, plotting, linear equations, symbolic computation, scientific algorithms, and random variables. You’ll also be exposed to popular Python packages like NumPy, Matplotlib, SciPy, and others. In the last part of the course, the application section will test your ability to recall and apply the tools you have studied into newly learned scientific concepts. At the end of this course, you'll be equipped with the tools necessary for everyday scientific computation. View the course [here](https://www.educative.io/courses/python-for-scientists-and-engineers).

Become a Blockchain Developer (Huma Qureshi)

In this course, we will build blockchain concepts from the ground up. We will start with basic cryptography constructs, like hash functions and PKI encryption, to first build a solid base for understanding blockchain and appreciate its value. Then, we will explore the Hyperledger Fabric technology by IBM using hands-on development environment within your browser. This course is a great starting point for engineers looking to develop expertise in blockchain technology with Hyperledger Fabric specialty. In this course, you will deploy your own blockchain network, deploy chaincode on it and create an application that invokes your chaincode running in fabric network. You will also learn to manage fabric user identities in your application using wallets.

Full-Stack Web Applications with Firebase (Eric Wallen)

In this course, you will learn how to create and launch applications extremely quickly using Firebase. Firebase is a suite of cloud-based services designed to satisfy common developer needs. Known as a BaaS (Back-end as a Service) you get all the benefits of a back-end without the complications of setting one up from scratch. Once you learn how to leverage its services, you are going to exponentially decrease development time. During the course, you will build four applications using Firebase. Each app is designed to teach you a different Firebase service including Firebase Authentication, Cloud Firestore, Firebase Storage and Firebase Hosting. Each service can be used by itself or in combination with other Firebase services. Well, what are you waiting for? Join me in the course to start learning Firebase today! View the course [here](https://www.educative.io/courses/fullstack-web-apps-with-firebase).

The Complete Guide to Modern JavaScript (Alberto Montalesi)

Whether you are a complete beginner or you have some knowledge of JavaScript, this course will guide you from the basics of the language to all the new features introduced up until 2020. You’ll test your knowledge with quizzes and some coding challenges at the end of each chapter. After following this course, the functions and variables let, const, generators, promises and async won't be a problem anymore. If you want to experience something new, this course also includes an introduction to the basics of TypeScript, which is a must-know for any JavaScript developer. View the course [here](https://www.educative.io/courses/complete-guide-to-modern-javascript).

Kotlin Crash Course for Programmers (Peter Sommerhoff)

Kotlin is quickly joining the ranks of the most popular programming languages. Now that Google supports Kotlin for Android app development as the primary choice over Java, we’ll only see more developers making the switch. So if you’re looking to get started with Android app development, then you’ve come to the right place. This course will be your guide on getting started with Kotlin. We’ll go over all the language basics including variable declarations, data types and the type system to conditions, loops, and functions. After this course, you’ll be able to write simple Kotlin scripts and applications. With this solid understanding of the language basics, you’ll be able to more easily follow more advanced material covering functional and object-oriented programming. View the course [here](https://www.educative.io/courses/kotlin-crash-course-for-programmers).

Learn TypeScript: The Complete Course for Beginners (Patrick Desjardins)

If you’re looking to move beyond vanilla JavaScript and take your skills to the next level, then you’ve come to the right place. TypeScript is an in-demand language that sits on top of JavaScript. This means you can do everything you can in JavaScript with TypeScript, but also enjoy countless other perks including support for JS libraries, NPM, static typing, and much more.

Sass for CSS: Advanced Frontend Development (Timothy Robards)

SASS (Syntactically Awesome Style Sheets) is a scripting language known as a CSS preprocessor. CSS preprocessors are compiled into CSS and by doing so, extend the default capabilities of CSS. Sass makes authoring stylesheets faster, easier, and more flexible. It’s a welcome helper in the world of web design, because anyone that’s created a website knows that CSS is hard. In this course, you will learn how to use nesting, variables, mixins, partials, functions and more to write dynamic and reusable styles of code. You’ll also learn the various methods to structure your projects and bring organization to your stylesheets. By the end of this course, you’ll have advanced knowledge of SASS. You’ll be able to migrate an existing CSS codebase, as well as set up an entire project (and build process) from scratch. View the course [here](https://www.educative.io/courses/sass-for-css).

Python Data Analysis and Visualization (Tyler Folkman)

This course assumes no prior experience and can teach anyone how to use Python to analyze and visualize data. Stop using Excel and start harnessing the power of Python. Data analysis is one of the hottest careers of the 21st century. As an analyst, your goal is to peel back layers of data in order to answer questions of interest; that is the power of analytics. It allows you to take raw data and create meaningful, actionable insights. In this course, you’ll learn how to use Python, NumPy, SciPy, Pandas, and Seaborn to perform data analysis and visualization. You’ll explore the four crucial steps for any data analysis project: reading, describing, cleaning, and visualizing data. In each step, you will work with the most common and popular tools that data analysts use every day. By the end of the course, you will be able to confidently extract knowledge and answers from data. View the course [here](https://www.educative.io/courses/python-data-analysis-and-visualization).

C++ Fundamentals for Professionals (Rainer Grimm)

C++ is a common first choice for software developers when optimal performance and high safety are necessary. Learning the rich core language and the many libraries, however, can be a neverending story. This course has one goal: ending that story. This course is a combination of new material and material pulled from my other C++ courses, giving you all the most crucial information in one place. You will learn the necessary information you need to be a professional C++ programmer, including the current C++17 standard. You’ll explore memory management, inheritance, templates, vectors, threads, tasks, and much more. Once you're done, you’ll have all the necessary skills to take advantage of the potential of C++ in your day-to-day work. View the course [here](https://www.educative.io/courses/cpp-fundamentals-for-professionals).

Modern Android App Development with Java (Dmytro Danylyk)

So, you want to learn to build your own Android apps? You’ve come to the right place. In this course, you’ll take a hands-on, project-based approach to developing Android applications. You’ll work with the most common tools that Android developers use every day including Java, Groovy, and XML. As you learn, you’ll build a fully functional Travel Blog Application that will be a great addition to your portfolio. By the end of this course, you’ll have built a fully functional Android application and be ready to build even more complex projects. View the course [here](https://www.educative.io/courses/modern-android-app-development).

Running Serverless Applications with AWS Lambda (Gojko Adzic)

In the world of modern development, serverless computing has become table stakes. Serverless computing has seen a major uptake with AWS Lambda having an increased adoption of 667% in 2018. Companies are making the switch to serverless for shorter time to market and decreased operational costs, but for you the advantage lies in the ability to offload the burden of managing infrastructure to serverless platforms, so you can focus on building even better apps. In this course, you will learn how to run serverless applications using AWS Lambda. You’ll start with the basics such as creating a web service where you’ll learn the steps to deploy an AWS Serverless Application Model (SAM). You’ll then move on to more advanced topics such as handling HTTP Requests, using external storage, and managing sessions and user workflows. By the end of this course, you will be ready to work with AWS Lambda in a professional setting, and you’ll have a great, transferable skill that employers will love to see. View the course [here](https://www.educative.io/courses/running-serverless-applications-aws-lambda).

CSS Theming for Professionals (Mohammad Rahhal)

CSS isn’t what it used to be. Today, you’ll be hard-pressed to find a strong, straightforward, and expressive UI language that can beat modern CSS. As the tech world moves more and more towards web-based frameworks for UI, we start to see a bigger emphasis on highly customized looks for apps. In this course, you'll learn how to properly develop apps that are theme aware. This course is split into two sections: in the first section, you will learn the practical methods and patterns around theming and discover common problems and their solutions. In the second section, you will get hands-on experience with css-theming -a package you'll use- and through it you'll learn how to customize every facet of your app. By the end of this course you’ll be able to create stunning apps that are highly customizable. A central piece of that is going to be dark mode support. Who doesn’t love that? View the course [here](https://www.educative.io/courses/css-theming-for-professionals).

An Introduction to Microservice Principles and Concepts (Eberhard Wolff)

Microservices are one of the most important and popular software architecture trends. This architecture forms the base for a lot of companies including: Amazon, Netflix, Spotify, and Uber. In this course you’ll learn microservices in depth and understand reasons for and against microservices. Beyond that, you’ll learn about Micro and Macro architecture, strategies for migrating old systems, the role of Docker in this architecture, and technologies for implementing microservices. After taking this course, you’ll be better equipped to implement microservices for your own use. View the course [here](https://www.educative.io/courses/introduction-microservice-principles-concepts).

Grokking the Behavioral Interview (Educative)

Many times, it’s not your technical competency that holds you back from landing your dream job, it’s how you perform on the behavioral interview. Whether you’re a software engineer, product manager, or engineering manager, this course will give you the tools to thoroughly prepare for behavioral and cultural questions. But beyond even technical roles, this would be useful for anyone, in any profession. As you progress, you'll be able to use Educative's new video recording widget to record yourself answering questions and assess your performance. By the time you’ve completed the course, you'll be able to answer any behavioral question that comes your way - with confidence. View the course [here](https://www.educative.io/courses/grokking-the-behavioral-interview).

Advanced Kubernetes Techniques: Monitoring, Logging, Auto-Scaling (Viktor Farcic)

The world of DevOps has exploded with the help of technologies like Kubernetes and Docker. In this course, you will learn about more advanced Kubernetes features such as monitoring, alerting, logging, and scaling - crucial concepts for any DevOps professional. You will learn how to monitor clusters, how to send alerts when potential issues arise, and how to query the whole system’s metrics and logs. By the end of this course, you will have the required knowledge to make your clusters and applications truly dynamic and resilient, so that they require minimal manual involvement and are self-adaptive. View the course [here](https://www.educative.io/courses/advanced-kubernetes-techniques).

The JavaScript Interview Handbook: 100+ Interview Questions (Educative)

Preparing for coding interviews can be a long, arduous process. Many developers will tell you they spend countless hours grinding through hundreds of coding questions in order to feel confident. This course will help simplify the grind by showing you what topics to spend your time on and what questions you can expect within those topic areas. In this course you will focus on the fundamental concepts of JavaScript that interviewers expect you to know. You’ll practice interview questions related to: JS language basics, type coercion, event handling, asynchronous callbacks, and more. Throughout the course, you will gain hands-on experience through quizzes and challenges that will thoroughly test your understanding of the subject. Each question is accompanied by a detailed explanation of the solution that will further solidify your learnings. By the end of this course, you will have the confidence to go into an interview and answer any question that comes your way. View the course [here](https://www.educative.io/courses/javascript-interview-handbook).

Design a Test Automation Framework with Selenium and Java (Ezify Automation labs)

Testing the user interface for any application is generally time-consuming when done for each new release. UI test automation is the most common and effective way to simulate the actual user journey and business use-cases for any application. In this course, you will learn how to design a test automation framework from scratch for automating any web-based application using Java, Selenium, and TestNG. You’ll start by learning the basics of Selenium and TestNG and then move on to learn about build management, logging, and reporting, which are key learnings for any QA engineer or developer. By the end of this course, you will have successfully created a UI test automation framework. View the course [here](https://www.educative.io/courses/test-automation-framework-selenium-java).

An Introductory Guide to SQL (DataJek)

The ability to work SQL is becoming an increasingly in-demand skill, both for software developers and people in less technical roles. If you’re interested in learning SQL and have no prior experience with it, then this course will be your light in a dark tunnel. You’ll start by covering the basics of SQL such as how to create a database, how to insert, query, and update data. You’ll also learn fundamental concepts that developers and data scientists use everyday such as multi-table operations, nested queries, and how to set up views. Throughout, you’ll get to execute SQL queries in your browser and see results in real-time - you won’t need to worry about set-up. At the end of this course, you’ll also get some hands-on practice with common SQL interview questions, so when the time comes, you’ll be ready and confident to answer any question that comes your way. Let’s get started! View the course [here](https://www.educative.io/courses/introductory-guide-to-sql).

React Tracked: Creating Web Apps with Global State (Daishi Kato)

React Tracked is a small library for global state with React Hooks and React Context. It allows you to develop a small web app with global state without a bigger library like Redux. In this course, you will create a to-do app. But before diving into creating an application, you’ll first learn how React Tracked can solve common performance issues around render optimization. Once you learn how to work with this library, you’ll then build a to-do app through two different methods. By the end of this course, you will be ready to build more advanced applications without having to do unnecessary re-rendering. You’ll also have a nice piece to showcase in your portfolio. View the course [here](https://www.educative.io/courses/react-tracked-web-apps-global-state).

Using TypeScript with React (Carl Rippon)

If you are a React developer and want to build your React apps faster and more robustly, this course is for you. Learn to integrate TypeScript with React, boost your productivity, and create apps that are easier to maintain. In this course, you will learn how to utilize TypeScript’s sophisticated type system to make React development faster and your code more readable. You will learn how to create component props, state, and events that are strongly-typed, allowing you to quickly understand what you can pass and helping you avoid mistakes. Lastly, you will set up React projects with TypeScript. First, you will learn how to do this with the Create React App tool, then how to create a React and TypeScript project with Webpack and Babel. View the course [here](https://www.educative.io/courses/using-typescript-with-react).

The Road to React: The one with Hooks (Robin Wieruch)

This is a relaunch of my existing course, The Road to Learn React. A lot has changed in React since I first created this course, and so here I am to give you all the information you need to work with modern React. (If you’re looking for content on legacy React, the old course is still available as well.) In this course you will take a deep dive into React fundamentals, covering all new React concepts including Hooks. I do address some legacy features in case you’re working with an older codebase, but the majority of this course will focus on working with modern React. You will learn how to style your app, techniques for maintaining your app, and some more advanced concepts like performance optimization. Throughout the course, you will gain hands-on experience by building a Hacker News app, and by the end of this course, you will be prepared to build your own applications and have something to showcase in your portfolio. View the course [here](https://www.educative.io/courses/road-to-react-with-hooks).

Programming in D: The Ultimate Guide for Software Engineers (Ali Çehreli)

While D has been around for a while, it’s just now starting to see a surge in popularity. D is a multi-paradigm system programming language that combines a wide range of powerful programming concepts. Because D is a re-engineering of C++, many C++ developers have switched to learning D. In this course, you will start by building a simple HELLO WORLD program. You will then proceed to cover the concepts related to variables, loops, conditional statements, and arrays in order to build up your fundamentals. After addressing the basic concepts, you will then explore more advanced topics like functions, unit testing, and contract programming. By the end of this course, you will have the foundations in place to start building your own applications in D. View the course [here](https://www.educative.io/courses/programming-in-d-ultimate-guide).

The Way to Go (Ivo Balbaert)

Go (sometimes called Golang) is one of the most popular languages today, and is a key part of many enterprise tech stacks. Many developers prefer Go to other languages like C++ and Scala because of its memory management model which allows for easier concurrency. In this course, you will learn the core constructs and techniques of the language. After going through the basics, you will then learn more advanced Go concepts like error-handling, networking, and templating. You'll learn how to program efficiently in Go by gaining knowledge of common pitfalls and patterns, as well as by building your own applications. View the course [here](https://www.educative.io/courses/the-way-to-go).

Advanced TypeScript Masterclass (Milosz Piechocki)

Are you using TypeScript, but feel like you’re not making the most out of it? Do you find some advanced TypeScript concepts confusing? Do you get lost looking at complex type errors? If you answered “yes” to any of these questions, then this course is for you! It introduces you to the world of advanced TypeScript concepts including: compiler flags for catching more errors, generic types, and how to compose types with discriminated unions. After finishing this course, you’ll feel more confident in your TypeScript skills. You will be able to write types that detect whole classes of possible runtime errors at compile time. Typing even the most untypeable JavaScript code will be a no brainer for you, and you’ll be fluent in TypeScript error messages. View the course [here](https://www.educative.io/courses/advanced-typescript-masterclass).

Web Development: Unraveling HTML, CSS, and JavaScript (Istvan Novak)

HTML, CSS, and JavaScript: The trinity of web development technologies. If you’re looking to get ramped up on front-end development, this course is for you. You'll find it particularly useful if you're coming from some other area of software development, although prior experience is not required. In this course, you will start with a short tour of HTML, CSS, and JS. You’ll get to experiment with them through examples that explain their role and behavior. From there, you will then dive deep into each technology, exploring concepts like forms and controls in HTML, OOP in JavaScript, and the most important CSS patterns to make your web pages look good. By the end of this course, you will be able to make your own web applications that are responsive, stylized, and performant. View the course [here](https://www.educative.io/courses/web-development-unraveling-html-css-js).

The Good Parts of AWS: Cutting Through the Clutter (Daniel Vassallo)

This is not your typical AWS reference course. You won’t find most of the knowledge that's shared here in the AWS docs. The goal here is to help you realize which AWS features you’d be foolish not to use — features that have passed the test of time by being at the backbone of most things on the Internet. In this course, you'll learn a technique used to help make reliable technical choices without getting paralyzed in the face of so many options. You’ll start by going through the most fundamental services AWS offers such as DynamoDB, S3, EC2. Each section breaks down how it’s used, the pros and cons, why you should (or shouldn't) be using it, and more. This course was written by a former Amazon engineer with 15 years of experience working on AWS. View the course [here](https://www.educative.io/courses/good-parts-of-aws).

Learn C++: The Complete Course for Beginners (Educative)

If you're a beginner and want to learn C++ to start your coding journey, you're in the right place. This comprehensive course starts from the absolute basics and gradually builds up to exciting real-life coding projects. The emphasis throughout is on practical lessons and analogies you can relate to. As you learn, you'll work your way through dozens of coding exercises that you can run from right inside your browser. By the time you're done, you'll have a strong grasp of C++, one of the most in-demand programming languages in the world. You'll have gotten plenty of hands-on practice, and will be able to confidently write your own applications. View the course [here](https://www.educative.io/courses/learn-cpp-complete-course).

Learn REST and SOAP API Test Automation in Java (Ezify Automation labs)

In software development, microservices and APIs are used for writing business logic. API testing has become an important component in the testing cycle, as it can be used to test the functionality, integration flows, load and performance. In this course, you will learn how to perform REST and SOAP API test automation. This course covers all the required details for you to start writing API and integration tests from scratch. It will also prepare you for test automation interviews. As part of the course, you will be able to download a sample API automation framework. You can use this for writing automation tests of modules or applications, or just extend and customize it for your own use View the course [here](https://www.educative.io/courses/learn-rest-soap-api-test-automation-java).

Java 8 for Experienced Developers: Lambdas, Stream API & Beyond (Saurav Aggarwal)

Java 8 has introduced a ton of features and enhancements to boost developer productivity, while making your code faster, more concise, and more readable. In this course, you will learn about lambdas, Java Stream API, Functional Interfaces, as well as lots of other new improvements related to Collections, Memory Management, Date & Time API. After completing this course, you’ll be well versed in all the functionality of Java 8 and be ready to utilize these new features in your own code. View the course [here](https://www.educative.io/courses/java-8-lambdas-stream-api-beyond).

Beginning Flutter: Android Mobile App Development (Priyanka Tyagi)

Flutter is Google’s mobile UI framework used for crafting high-quality native interfaces on iOS and Android. This course focuses on building applications for the Android platform. You’ll start by exploring the intricacies of Flutter and work your way up to implementing a contact profile page for an Android address book. In the latter half of the course, you’ll learn to work with Flutter themes to spruce up the contact profile app you created. To round out your Flutter experience, you’ll also practice fetching data from a remote Application Programming Interface (API). You’ll put into practice what you learn using live coding environments embedded within the course. By the time you’re done, you’ll be ready to create your own Android app and publish it to the Google Play Store. View the course [here](https://www.educative.io/courses/beginning-flutter-android-mobile-app-development).

Practical Security: Simple Practices for Defending Your Systems (The Pragmatic Programmers, LLC)

It seems like hardly a week goes by without a high-profile computer breach. Why do these happen? How can you prevent them? This course doesn’t have all the answers, but it does outline practices that make life harder for attackers and that will help tide you over until you get a full-time security team in place. In this course, you will learn 5 simple, yet effective, techniques for preventing attackers from getting into your system. These techniques are related to: patching, software vulnerabilities, cryptography, windows security, and phishing. Within each chapter you will learn the best practices for preventing vulnerabilities and how to make them more detectable. This course is based on the Pragmatic Programmers’ book, Practical Security, and is aimed at developers, admins, team leads, architects, technology generalists, and all others who stand guard against the things that disrupt the network. View the course [here](https://www.educative.io/courses/practical-security-defending-your-systems).

The DevOps Toolkit: Working with Jenkins X (Viktor Farcic)

Jenkins X is a powerful tool for providing software developers continuous integration, automated testing, and continuous delivery, known as CI/CD, in Kubernetes. It’s no secret that Kubernetes is extremely complex, and Jenkins X helps you by simplifying processes into concepts that can be adopted quickly and without spending months trying to figure out “the right way to do stuff.” In this course, you’ll start by exploring the inner workings of Jenkins X and how to create a cluster using it. You’ll then learn how to combine Jenkins X with tools you’re already using. Throughout, you’ll see how this exciting new tool changes how you work with Kubernetes. By the time you’re done, you will be confident managing CI/CD using Jenkins X in a Kubernetes cluster. View the course [here](https://www.educative.io/courses/devops-toolkit-working-with-jenkins-x).

Simplifying JavaScript: A Handy Guide for Software Engineers (The Pragmatic Programmers, LLC)

In this course, you’ll learn to write modern JavaScript from the ground up. But instead of going over every possible edge case, you’ll focus on the syntax that has a significant impact in your day-to-day work. As you review each construct, you’ll learn not just how to use it, but, more importantly, when to. Your time is valuable, and this course, based on the Pragmatic Programmers’ book, Simplifying JavaScript, covers all the most important language features. And with 51 tips in total, you'll be able to jump into and out of this course easily. Before you know it, you'll be a productive and modern JavaScript developer. View the course [here](https://www.educative.io/courses/simplifying-javascript-handy-guide).

The Ultimate Guide to Kotlin Programming (The Pragmatic Programmers, LLC)

Kotlin has been growing in popularity among developers for some time. It was given even more recognition when Google announced in 2019 that Kotlin was now their preferred language for Android development. In this comprehensive course, you’ll start by learning the fundamentals, such as: how Java and Kotlin differ, how to work with functions, and how to utilize collections, something you’ll work with extensively in Kotlin. In the latter half of the course, you’ll be introduced to more advanced concepts like lambdas, fluency in Kotlin, and asynchronous programming. In the last section of the course, you’ll take what you’ve learned and build out an Android application that talks to a backend service. By the time you’re done with this course, you’ll have a thorough mastery of this modern JVM language. This course is based on the PragProg book, Programming Kotlin, written by the extraordinary, experienced programming-language enthusiast: Venkat Subramaniam. View the course [here](https://www.educative.io/courses/ultimate-guide-programming-in-kotlin).

Competitive Programming in C++: The Keys to Success (Yash Kumar)

Competitive programming can be a great way to build out your programming skills, get on any major company’s radar, and earn a little extra cash along the way. In this course, you will learn to prepare for competitive programming contests like ACM ICPC, Google CodeJam, Facebook HackerCup, and many more. Each topic is broken down with a healthy mix of theory, code samples, step-by-step solved sample problems, illustrations, useful practice problems, and tips and tricks for faster implementation. You will need some solid C++ foundations coming into this course, but by the end it, you will be confident enough in your C++ skills to take home the win. View the course [here](https://www.educative.io/courses/competitive-programming-in-cpp-keys-to-success).

Algorithms for Coding Interviews in Python (Coderust)

With algorithms being one of the most common themes in coding interviews, having a firm grip on them can be the difference between being hired and not. After completing this comprehensive course, you'll have an in-depth understanding of different algorithm types in Python and be equipped with a simple process for approaching complexity analysis. As you progress, you’ll be exposed to the most important algorithms you'll likely encounter in an interview. You'll 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. View the course [here](https://www.educative.io/courses/algorithms-coding-interviews-python).

Algorithms for Coding Interviews in Java (Coderust)

Algorithms are one of the most common themes in coding interviews, so having a firm grip on them can be the difference between being hired or not. After this comprehensive course in Java, one of the most popular coding languages, you'll have an in-depth understanding of different algorithm types and be equipped with a simple process for approaching complex analysis. As you progress through the course, you’ll be exposed to the most important algorithms that you're likely to encounter in an interview. You'll work your way through over 50 interactive coding challenges and review detailed solutions for each problem. And guess what? Even if you’re not yet fully comfortable with Java, you’ll walk away with the ability to craft optimal solutions for addressing tough coding interview questions in it. View the course [here](https://www.educative.io/courses/algorithms-coding-interviews-java).

Predictive Data Analysis with Python (Educative)

In this course, you will learn how to perform predictive data analysis using Python. The ideal audience is those who want to start their careers as data analysts. The main goal of this course is to show you how to use statistics to draw useful insights from data which can help in predicting future behavior or patterns. Beyond that, you’ll learn all the tools of the trade that data scientists use everyday including: NumPy, Pandas, Matplotlib, and Seaborn. You’ll learn not only how to extract meaningful insights from data, but you’ll also learn how to create stunning visualizations that you can use for reports. Various datasets of real-world scenarios are used in each lesson to get you accustomed to handling any type of data. At the end of the course, you will work on two real-world projects that demonstrate how data analysis techniques are being used in the financial and advertisement sector to generate revenue. View the course [here](https://www.educative.io/courses/predictive-data-analysis-with-python).

Dynamic Programming in Python: Optimizing Programs for Efficiency (Educative)

Dynamic programming is something every developer should have in their toolkit. It allows you to optimize your algorithm with respect to time and space — a very important concept in real-world applications. In this course, you’ll start by learning the basics of recursion and work your way to more advanced DP concepts like Bottom-Up optimization. Throughout this course, you will learn various types of DP techniques for solving even the most complex problems. Each section is complete with coding challenges of varying difficulty so you can practice a wide range of problems. By the time you’ve completed this course, you will be able to utilize dynamic programming in your own projects. View the course [here](https://www.educative.io/courses/dynamic-programming-in-python).

Working with Containers: Docker & Docker Compose (Venky A.)

Whether you are a DevOps beginner or just a developer who wants to start working with containers, you’re in the right place. Docker is an in-demand technology that you will be exposed to frequently while on the job. Docker is used for setting up, deploying, and running applications, at scale, by containerizing them. More on that later. Docker also provides developers with a consistent environment for product development, and along with Kubernetes, makes managing the development lifecycle a breeze. In this course, you will learn the fundamentals of Docker such as containers, images, and commands. You’ll then progress to more advanced concepts like connecting to a database container and how to simplify workflows with Docker Compose. At the end, you’ll learn how to monitor clusters and scale Docker services with Swarm. View the course [here](https://www.educative.io/courses/working-with-containers-docker-docker-compose).

Web Application Security for the Everyday Software Engineer (Alex Nadalin)

There are more vulnerabilities than ever when creating applications for the web, so it is extremely important that software developers enforce security best practices such as, how to add protection through HTTP headers. In this course, you will start off by learning how to prevent fraudulent SSL certificates from being served to clients, before moving on to how to defend against XSS attacks and clickjacking. In the latter half of the course, you’ll learn security practices related to HTTP cookies, and tips around security tradeoffs that you’ll make in your day-to-day work. Towards the end, you’ll learn how to ward off DDoS attacks, which is crucial when your application scales. This course will demystify web security, and help you stay on top of important security-related concerns in your web apps. View the course [here](https://www.educative.io/courses/web-application-security-everyday-software-engineer).