Recently, we wrote about coding courses offered by CodeSignal Learn, an interactive AI-native learning platform that emphasizes hands-on learning to master new skills by practicing. You get instant feedback on your answers, as well as hints, summaries, and answers to your own questions. And coding isn’t the only field on offer at CodeSignal Learn: other subjects include Data Science, Communication and Leadership, AI, and Machine Learning. More good news is that CodeSignal Learn also offers many certificate courses and learning paths in personal development, business, and management fields. And if you’re preparing for a job interview, CodeSignal has you covered with nearly 50 learning paths in topics from Fundamental Coding in Python to Advanced topics for Senior Engineers in C++ or C#.
What is a learning path? Simply put, it’s a collection of several courses on a specific topic, leading to in-depth knowledge. You don’t have to complete the whole learning path to get a certificate. Individual courses each have their own certificate.
CodeSignal has been involved in the technical assessment business for several years, providing skills assessments to companies and individuals. In 2024, CodeSignal launched CodeSignal Learn to address skills gaps, and appeared in Time’s Top EdTech Companies of 2024 list. Starting with technical topics, skills now include leadership, public speaking, and negotiation.
The platform runs on a freemium model. You don’t need to pay to use most features, but interactions are limited in the free version. If you find yourself wanting more AI help (or want to submit the exercises more frequently), I recommend the premium subscription. You can upgrade for a month at a time, or take out an annual subscription for 50% less than paying monthly.
I’ve started several learning paths, and the gamification aspect makes it fun. Cosmo is a cute AI mentor who offers feedback on your answers and is always willing to create a video, summarize the lesson, or answer questions. There’s a Duolingo-style daily streak counter, and you can earn streak freezes for occasional days off. So far, I’ve earned a couple of free certificates and am looking forward to more!
Reference on the shortcuts for courses with free certificates or badges:
Learning Paths:
AI & Machine Learning: 13 learning pathsData Science and Engineering: 18 learning paths
Interview Prep: 47 learning paths
Soft Skills: 15 learning paths
Learn to Code: 32 learning paths
Web Development: 31 learning paths
Courses:
AI & Machine Learning: 48 coursesData Science & Engineering: 113 courses
Interview Prep: 92 courses
Soft Skills: 59 courses
Learn to Code: 275 courses
Web Development: 139 courses
AI & Machine Learning Paths (13)
- Journey into Machine Learning with Sklearn and TensorflowPrompt Engineering for Everyone
- AI Theory and Coding
- Text Classification with Natural Language Processing
- Mastering Clustering in Machine Learning
- Comprehensive Introduction to Tensorflow
- Comprehensive Introduction to PyTorch
- Introduction to Natural Language Processing
- Intro to Machine Learning in Trading with $TSLA
- Introduction to Machine Learning with SciKit Learn
- Mathematical Foundations for Deep Learning
- Implementing AI Algorithms from Scratch
- Token Classification in NLP using spaCy
Data Science and Engineering Paths (18)
- Journey into Data Science with Python
- Intro to Data Analysis with Python
- Journey into SQL with Taylor Swift
- Data Analysis 101 with R
- Mastering Dimensionality Reduction with Python
- Mastering Cloud Engineering with AWS and Python
- Deep Dive into Numpy and Pandas
- Predictive Modeling with Python
- Introduction to MongoDB for Data Analysts
- Learning SQL Scripting with Leo Messi
- Introduction to Programming with R
- Practice Essential Data Science Skills With Diamonds Dataset
- Learning and Mastering Redis with Python
- Basic Introduction to Data Science with R
- Deep Dive into Visualization in Python
- Visualizing Christmas Song Data with Plotly and Dash
- Introduction to SQL with an Online Shop
- Linear Algebra Programming with NumPy
Interview Prep Paths (47)
- Mastering Algorithms and Data Structures in Python
- Mastering Algorithms and Data Structures in Java
- Mastering Algorithms and Data Structures in JavaScript
- Fundamental Coding Interview Preparation with Python
- Advanced Coding Interview Preparation with Python
- Advanced Interview Prep for Senior Engineers in Python
- Fundamental Coding Interview Preparation with C++
- Coding Interview Prep for Senior Engineers in Python
- Advanced Coding Interview Preparation with C++
- Four-Week Coding Interview Prep in Python
- Behavioral Interview Practice for Computer Science Students
- Fundamental Coding Interview Preparation with Java
- AI Interviews – Software Design, Architecture, and More
- Advanced Coding Interview Preparation with Java
- Fundamental Coding Interview Preparation with JavaScript
- Advanced Coding Interview Preparation with JavaScript
- Coding Interview Prep for Senior Engineers in C++
- Advanced Interview Prep for Senior Engineers in Java
- Coding Interview Prep for Senior Engineers in C#
- Four-Week Coding Interview Prep in JavaScript
- Fundamental Coding Interview Preparation with C#
- Four-Week Coding Interview Prep in C++
- Four-Week Coding Interview Prep in Java
- Advanced Interview Prep for Senior Engineers in JavaScript
- Coding Interview Prep for Senior Engineers in JavaScript
- Mastering Algorithms and Data Structures in C#
- Advanced Coding Interview Preparation with C#
- Advanced Interview Prep for Senior Engineers in C#
- Advanced Interview Prep for Senior Engineers in C++
- Four-Week Coding Interview Prep in PHP
- Four-Week Coding Interview Prep in C#
- Advanced Interview Prep for Senior Engineers in TypeScript
- Mastering Algorithms and Data Structures in C++
- Fundamental Coding Interview Preparation with Go
- Four-Week Coding Interview Prep in TypeScript
- Four-Week Coding Interview Prep in Ruby
- Fundamental Coding Interview Preparation with Ruby
- Coding Interview Prep for Senior Engineers in TypeScript
- Coding Interview Prep for Senior Engineers in Java
- Advanced Coding Interview Preparation with PHP
- Fundamental Coding Interview Preparation with PHP
- Coding Interview Prep for Senior Engineers in PHP
- Coding Interview Prep for Senior Engineers in Go
- Four-Week Coding Interview Prep in Go
- Advanced Coding Interview Preparation with Go
- Advanced Coding Interview Preparation with TypeScript
- Fundamental Coding Interview Preparation with TypeScript
Soft Skills Paths (15)
- Drive and Motivation Theory in Practice
- Running Effective 1-1 Meetings for Engineering Managers
- Leading High-Impact Engineering Teams
- How to Win Friends & Influence People in Practice
- Overcoming The Five Team Dysfunctions Through Practice
- Adapting Your Leadership Style to Different Personalities
- Google New Manager Training Part 1 – Laying the Foundation
- Google New Manager Training Part 2 – Applying Key Skills
- Dare to Lead – Unlock Courageous Leadership
- Supercommunicators – Have Conversations that Matter
- Mastering Public Speaking Through Practice
- Practice and Master the Coaching Habit
- Never Split the Difference – Negotiations in Sales
- Cross-Functional Collaboration for Engineers
- Cross-Functional Collaboration for Engineers
Learn to Code Paths (32)
- Python Programming for Beginners
- JavaScript Programming for Beginners
- Java Programming for Beginners
- Kotlin Programming for Beginners
- Introduction to Programming with Python
- Introduction to Dart for Beginners
- Go Programming for Beginners
- Introduction to COBOL and Mainframe Programming
- Introduction to Programming with Ruby
- Rust Programming for Beginners
- Scala Programming for Beginners
- Getting into Functional Programming with Clojure
- Learning to Code in Swift for Beginners
- Programming in C# for Beginners
- C++ Programming for Beginners
- Journey Into Functional Programming in C++
- Mastering Design Patterns with C++
- Mastering Design Patterns with Python
- Mastering Design Patterns with C#
- Mastering Design Patterns with Java
- Functional Programming in Java
- Mastering Design Patterns with Go
- Functional Programming in Python
- Introduction to Elixir
- Functional Programming in C++
- Mastering Shell Scripting with Bash
- Introduction to Concurrency with Java
- Clean Code in Java Through Hands-on Practice
- Test Driven Development in C#, xUnit, and Moq
- Introduction to Concurrency with C++
- Applying Advanced Java Concurrency to Real-Life
- Clean Code when Developing in Ruby
Web Development Paths (31)
- Comprehensive Introduction to Front-End Engineering
- Front-End Engineering with React
- Full-Stack Engineering with JavaScript
- Introduction to TypeScript for Beginners
- PHP Programming for Beginners
- Mastering Web Scraping with Python and Beautiful Soup
- Comprehensive Introduction to HTML for Beginners
- Introduction to Django for Back-End Development
- Introduction to ASP.NET Core and API Development
- Comprehensive Intro to GraphQL in TypeScript
- FastAPI Essentials for Python Developers
- Building Beautiful Websites with Bootstrap
- APIs Made Easy with Python and Flask
- Building an Application End-to-End in JavaScript
- Learning and Mastering Redis with Node.js
- Dive Into Back-End Engineering with Express.js
- Implementing ToDo App with Ruby on Rails
- Get Started with Razor Pages in ASP.NET Core
- Implementing MVC ToDo App with PHP Symfony
- Implementing ToDo App with NestJS
- Implementing MVC ToDo App with Flask
- Spring Boot REST API with Kotlin & Gradle
- Spring Boot REST API with Java & Gradle
- Implementing MVC ToDo App with NestJS
- Test Driven Development in TypeScript & Jest
- Implementing API for TODO App with Django
- Mastering Docker: Containers, Networking, and Orchestration
- Git Version Control for Beginners
- Implementing MVC ToDo App with Ruby on Rails
- Implementing MVC ToDo App with PHP Laravel
- Implementing ToDo App with Go and Gin
AI & Machine Learning Courses (48)
- Intro to Unsupervised Machine Learning
- Introduction to Supervised Machine Learning
- Foundational Machine Learning Models with Sklearn
- Feature Engineering for Machine Learning
- Intro to Model Optimization in Machine Learning
- Introduction to Neural Networks with TensorFlow
- Understanding LLMs and Basic Prompting Techniques
- Engineering Output Size with LLMs
- Journey Into Format Control in Prompt Engineering
- Prompt Engineering for Precise Text Modification
- Advanced Techniques in Prompt Engineering
- Classification Algorithms and Metrics
- Gradient Descent: Building Optimization Algorithms from Scratch
- Ensemble Methods from Scratch
- Unsupervised Learning and Clustering
- Neural Networks Basics from Scratch
- Introduction to Modeling Techniques for Text Classification
- Advanced Modeling for Text Classification
- K-means Clustering Decoded
- Enigmatic Autoencoders for Dimensionality Reduction
- Advanced Machine Learning Models for Prediction
- Model Evaluation and Optimization
- Introduction to TensorFlow Basics
- Building a Neural Network in TensorFlow
- Modeling the Iris Dataset with TensorFlow
- TensorFlow Techniques for Model Optimization
- Introduction to PyTorch Tensors
- Building a Neural Network in PyTorch
- Modeling the Wine Dataset with PyTorch
- PyTorch Techniques for Model Optimization
- Text Data Preprocessing in Python
- Building and Evaluating Text Classifiers in Python
- Introduction to Machine Learning with Gradient Boosting Models
- Training Your First Machine Learning Model from Scratch
- Cracking Classification
- Deep Dive into Regression and Classification Metrics
- Ensembles in Machine Learning
- Hypertuning and Cross-Validation
- Introduction to Machine Learning with caret
- Practical Machine Learning with the mtcars Dataset in R
- Introduction to Linear Algebra for Machine Learning
- Introduction to Calculus for Machine Learning
- Advanced Calculus for Machine Learning
- Foundations of Optimization Algorithms
- Introduction to Probability and Statistics for Machine Learning
- Building an NLP Pipeline with spaCy for Token Classification
- Linguistics for Token Classification in spaCy
- Practical Applications of spaCy for Real-Life Tasks
Data Science & Engineering Courses (113)
- Basics of Numpy and Pandas with Titanic Dataset
- Intro to Data Visualization with Titanic
- Intro to Time Series Analysis with Airline Data
- Intro to Data Cleaning and Preprocessing with Titanic
- Deep Dive into Numpy and Pandas with Housing Data
- Python Libraries for Data Analysis
- Descriptive and Inferential Statistics with Python
- Data Cleaning and Preprocessing Techniques
- Advanced Preprocessing and Collecting Techniques
- Hypothesis Testing with Python
- Reporting and Visualization for Data Analysts
- Data Cleaning and Preprocessing in Machine Learning
- Regression and Gradient Descent
- Intro to SQL with Taylor Swift
- Learning SQL Joins with Taylor Swift
- Mastering SQL Functions and Clauses with Taylor Swift
- Advanced Query Techniques and Conditional Logic in SQL
- Collecting and Preparing Textual Data for Classification
- Feature Engineering for Text Classification
- Hierarchical Clustering Deep Dive
- Density-Based Clustering Simplified
- Cluster Performance Unveiled
- Advanced Built-In Data Structures and their Usage
- Data Manipulation in R
- Statistical Analysis with R
- Data Cleaning and Preprocessing with R
- Advanced Data Transformation Techniques
- Hypothesis Testing in R
- Data Visualization with ggplot2
- Navigating Data Simplification with PCA
- Linear Landscapes of Dimensionality Reduction
- Non-linear Dimensionality Reduction Techniques
- Dimensionality Reduction with Feature Selection
- Introduction to AWS SDK for Python
- Mastering Amazon S3 with AWS SDK for Python
- Mastering Messaging with AWS SDK for Python
- AWS Secrets Management with AWS SDK for Python
- Projection, Filtering, and Aggregation of Data Streams
- Practicing Intermediate Implementation and Data Streams
- NumPy Basics
- Pandas Basics and DataFrame Manipulation
- Introduction to Data Cleaning and Transformation
- Advanced Data Analysis with Pandas
- Data Transformation Techniques in Pandas
- Comprehensive Data Wrangling and Analysis with Pandas and Numpy
- Introduction to Predictive Modeling
- Data Preprocessing for Predictive Modeling
- Regression Models for Prediction
- Introduction to Text Data Exploration in Python
- Introduction to TF-IDF Vectorization in Python
- Learning Simple Data Structures in Scala
- Basic $TSLA Financial Data Handling in Pandas
- Technical Indicators in Financial Analysis with Pandas
- Preparing Financial Data for Machine Learning
- Introduction to BeautifulSoup for Web Scraping
- Advanced Web Scraping Techniques
- Data Preprocessing For Machine Learning
- Diving Deep into Regression
- A Closer Look at Read Operations in MongoDB
- A Closer Look at Update Operations in MongoDB
- Getting Started with SQL with Leo Messi
- Learning SQL Joins with Leo Messi
- Mastering SQL Functions and Clauses with Leo Messi
- Advanced Query Techniques and Conditional Logic in SQL
- Data Frames in R
- Intermediate Data Manipulation with dplyr
- Mastering Data Wrangling with tidyr
- Comprehensive Data Visualization with ggplot2
- Basic Exploratory Data Analysis with Diamonds
- Intro to Data Cleaning and Preprocessing with Diamonds
- Go Deeper into Exploratory Data Analysis (EDA)
- Feature Engineering and Correlation Analysis in Pandas
- Regression Analysis to Model Diamond Prices
- Introduction to Redis with Python: The Basics
- Mastering Redis Data Structures with Python: Beyond Basics
- Mastering Redis Transactions and Efficiency with Python
- Mastering Redis for High-Performance Applications with Python
- Introduction to Data Science with R
- Data Manipulation in R with dplyr
- Data Visualization with ggplot2
- Redis Data Structures with Node.js: Beyond Basics
- Projection, Filtering, and Aggregation of Data Streams
- Advanced Built-In Data Structures and their Usage
- Projection, Filtering, and Aggregation of Data Streams
- Practicing Intermediate Implementation and Data Streams
- Projection, Filtering, and Aggregation of Data Streams in JS
- Practicing Intermediate Implementation and Data Streams
- Introduction to Basic Plots with Matplotlib
- Customizing and Styling Plots
- In-Depth Visualization with Seaborn
- Mastering Time Series Data Visualization
- Lock-Free Concurrent Data Structures
- Deck the Data: Exploring Christmas Charts with Pandas
- Making Spirits Bright with Plotly
- Dashing Through Dash
- Joy to the World – Building the Complete Dashboard
- Managing Data & Working with Volumes
- Getting Started with SQL
- Learning SQL Joins
- Mastering SQL Functions and Clauses
- Advanced Query Techniques and Conditional Logic in SQL
- Fundamentals of Vectors and Matrices with NumPy
- Vector and Matrix Operations with NumPy
- Eigenvalues, Eigenvectors, and Diagonalization with NumPy
- Applying Advanced Data Structures in Practice
- Projection, Filtering, and Aggregation of Data Streams in TS
- Practicing Intermediate Implementation and Data Streams
- Projection, Filtering, and Aggregation of Data Streams
- Practicing Intermediate Implementation and Data Streams
- Projection, Filtering, and Aggregation of Data Streams
- Practicing Intermediate Implementation and Data Streams
- Projection, Filtering, and Aggregation of Data Streams in Go
- Practicing Intermediate Implementation and Data Streams in Go
Interview Prep Courses (92)
- Hashing, Dictionaries, and Sets in Python
- Sorting and Searching Algorithms in Python
- Linked Lists, Stacks, and Queues in Python
- Understanding and Using Trees in Python
- Mastering Graphs in Python
- Hashing, Dictionaries, and Sets in Java
- Sorting and Searching Algorithms in Java
- Advanced Data Structures – Stacks and Queues in Java
- Fundamental Data Structures – Linked Lists in Java
- Sorting and Searching Algorithms in JS
- Fundamental Data Structures – Linked Lists in JavaScript
- Fundamental Data Structures – Stacks and Queues in JS
- Python Coding Practice for Technical Interviews
- Master Dictionaries, Two Pointers, and More Algorithms in Python
- Maximized Efficiency in Problem Solving Techniques in Python
- Interview Practice – Advanced Problem Solving
- C++ Coding Practice for Technical Interviews
- Mastering Algorithms: HashMaps, Two Pointers, and Beyond in C++
- Maximizing Efficiency in Problem-Solving Techniques in C++
- Easy Interview Coding Practice in Python
- Interview Practice with Classic Coding Questions in Python
- Getting Deep into Complex Algorithms for Interviews with Python
- Interview Prep – The Last Mile in Python
- Recruiter Screens in Practice
- Interview Panels and Behavioral Questions
- Effective Storytelling in Interviews
- Java Coding Practice for Technical Interviews
- AI Interviews: Software Development and Methodologies
- AI Interviews: System Architecture and Design
- AI Interviews: Network and Data Management
- AI Interviews: System Performance and Security
- Mastering Algorithms: HashMaps, Two Pointers, and Beyond in Java
- Maximizing Efficiency in Problem-Solving Techniques in Java
- JavaScript Coding Practice for Technical Interviews
- Mastering Algorithms: Map, Set, and Two Pointers in JavaScript
- Maximizing Efficiency in Problem-Solving Techniques in JavaScript
- Interview Practice – Advanced Problem Solving
- Easy Interview Coding Practice in JavaScript
- Interview Practice with Classic Coding Questions in JavaScript
- Getting Deep into Complex Algorithms for Interviews with JS
- Interview Prep – The Last Mile in JavaScript
- C# Coding Practice for Technical Interviews
- Easy Interview Coding Practice in C++
- Interview Practice with Classic Coding Questions in C++
- Getting Deep into Complex Algorithms for Interviews with C++
- Interview Prep – The Last Mile in C++
- Easy Interview Coding Practice in Java
- Interview Practice with Classic Coding Questions in Java
- Getting Deep into Complex Algorithms for Interviews with Java
- Interview Prep – The Last Mile in Java
- Interview Practice – Advanced Problem Solving
- Fundamental Data Structures – Stacks and Queues in C#
- Fundamental Data Structures – Linked Lists in C#
- Master Dictionaries, Two Pointers, and More Algorithms in C#
- Maximized Efficiency in Problem Solving Techniques in C#
- Interview Practice – Advanced Problem Solving
- Interview Practice – Advanced Problem Solving in C++
- Interview Prep – The Last Mile in C#
- Easy Interview Coding Practice in C#
- Interview Practice with Classic Coding Questions in C#
- Easy Interview Coding Practice in PHP
- Interview Practice with Classic Coding Questions in PHP
- Getting Deep into Complex Algorithms for Interviews with C#
- Getting Deep into Complex Algorithms for Interviews with PHP
- Interview Prep – The Last Mile in PHP
- Interview Practice – Advanced Problem Solving in TypeScript
- Sorting and Searching Algorithms in C++
- Fundamental Data Structures – Stacks and Queues in C++
- Fundamental Data Structures – Linked Lists in C++
- Go Coding Practice for Technical Interviews
- PHP Coding Practice for Technical Interviews
- Ruby Coding Practice for Technical Interviews
- Easy Interview Coding Practice in TypeScript
- Easy Interview Coding Practice in Ruby
- Interview Practice with Classic Coding Questions in TypeScript
- Interview Practice with Classic Coding Questions in Ruby
- Getting Deep into Complex Algorithms for Interviews with TS
- Getting Deep into Complex Algorithms for Interviews with Ruby
- Interview Prep – The Last Mile in TypeScript
- Interview Prep – The Last Mile in Ruby
- Mastering Algorithms in PHP: Two Pointers and Beyond
- Maximizing Efficiency in Problem-Solving Techniques in PHP
- Getting Deep into Complex Algorithms for Interviews with Go
- Easy Interview Coding Practice in Go
- Interview Practice with Classic Coding Questions in Go
- Mastering Algorithms: Maps, Two Pointers, and Beyond in Go
- Interview Prep – The Last Mile in Go
- Maximizing Efficiency in Problem-Solving Techniques in Go
- Mastering Algorithms: Map, Set, and Two Pointers in TypeScript
- Maximizing Efficiency in Problem-Solving Techniques in TypeScript
- TypeScript Coding Practice for Technical Interviews
- Kotlin Coding Practice for Technical Interviews
Soft Skills Courses (59)
- Understanding Motivation and Engagement at Work
- Enhancing Workplace Performance and Culture
- Addressing Fairness and Recognition
- Building Personal Connections With Your Team
- Getting Work Done Through Others
- Encouraging Feedback and Growth
- Celebrating and Recognizing Wins
- Making the Work Meaningful
- Mastering Team Goal Setting and Execution
- Delegating with Confidence
- Adding New Talent to the Team
- Practice Building Genuine Relationships
- Effective Communication & Active Listening in Practice
- Practice Influencing and Persuading Tactfully
- Practice Navigating Conflict with Diplomacy
- Establishing Trust as the Team Foundation
- Leveraging Healthy Conflict in the Team
- Driving Commitment to Team Decisions
- Fostering a Team Culture of Accountability
- Prioritizing Collective Team Results
- Harnessing the Ideas of Creative Teammates
- Managing Teammates that Drive Structure
- Bringing Out the Best in Extraverted Team Members
- Leading Cooperative Members of the Team
- Stabilizing the Team with Steady Teammates
- Why Manage? Understanding the Impact of Managers
- Key Behaviors of Successful Managers: Project Oxygen Insights
- Cultivating a Growth Mindset and Value-Driven Leadership
- Becoming an Emotionally Intelligent Leader
- Cultivating Empathy, Compassion, and Resilience in Leadership
- Leading with Confidence: From Colleague to Manager
- Coaching for Managers: Developing Effective Techniques
- Building a Culture of Constructive Communication
- Decision Making for Managers: Skills for Clarity and Confidence
- The Next Step: Turning Manager Training into Real-World Impact
- Embracing Vulnerability in Leadership
- Engaging in Courageous Conversations
- Leading with Integrity and Values
- Developing Resilience and Rising Strong
- Introduction to Conversations That Matter
- The “What’s This Really About” Conversation
- The “How Do We Feel” Conversation
- The “Who Are We” Conversation
- Introduction to Public Speaking for Engineering Managers
- Persuasion and Influence in Public Speaking
- Navigating Live Q&As: Techniques for Engineering Managers
- Thinking on Your Feet: Improvisation Skills for Public Speakers
- Coaching in the Flow of Work
- Asking Powerful Questions
- Focusing on the Real Challenge
- Encouraging Self-Reliance and Accountability
- The Art of Listening and Understanding in Negotiation
- Achieving Tactical Empathy
- Creating and Mastering Control in Negotiations
- Beyond Basic Negotiation Tactics
- Best Practices for Cross-Functional Communication
- Collaborating with Product Managers
- Collaborating with UX Designers
- Collaborating with QA Engineers
Learn to Code Courses (275)
- Python Foundations for Beginners
- Learning Simple Data Structures in Python
- Iterations and Loops in Python
- Debugging Code Using Python
- String Manipulation for Python Coders
- Learning Functions using Python
- Object-Oriented Programming in Python
- Learning Simple Data Structures in JavaScript
- String Manipulation for JS Beginners
- Intro to Functions in JavaScript
- Getting Started with Java
- Learning Simple Data Structures in Java
- Iterations and Loops in Java
- Mastering Debugging with Java
- Java String Manipulation for Beginners
- Writing Functions using Java
- Hashing, Dictionaries, and Sets in JS
- Getting Into JavaScript Fundamentals
- Object-Oriented Programming in Java
- Object-Oriented Programming in JavaScript
- Getting Started with Kotlin
- Learning Simple Data Structures in Kotlin
- Iterations and Loops in Kotlin
- Writing Functions using Kotlin
- Introduction to Object-Oriented Programming in Kotlin
- Revisiting Python Essentials
- Applying Simple Looping in Practice with Python
- Practicing String Operations and Type Conversions in Python
- Mastering Implementation of Advanced Loops in Python
- Multidimensional Arrays and Their Traversal in Python
- Revision of Python HashMaps and Their Use in Practice
- Master Splitting Advanced Tasks into Smaller Pieces with Python
- Programming Foundations with Python
- Introduction to Simple Data Structures in Python
- Mastering Control Structures in Python
- Exploring Iterations and Loops in Python
- Defining and Utilizing Functions in Python
- Learning Simple Data Structures in TypeScript
- Iterations and Loops in TypeScript
- Learning Functions using TypeScript
- Object-Oriented Programming in TypeScript
- Dart Foundations for Beginners
- Understanding Simple Data Structures in Dart
- Iterations and Loops in Dart
- Learning Functions using Dart
- Object-Oriented Programming in Dart
- Getting Started with Go Programming Language
- Exploring Simple Data Structures in Go
- Iterations and Loops in Go
- Mastering Debugging with Go
- Go String Manipulation for Beginners
- Creating Functions in Go
- Understanding Structs and Interfaces in Go
- Revisiting Software Design Patterns in Python
- Refactoring Code for Readability and Maintainability
- Backward Compatibility in Software Development
- Revisiting C++ Basics
- Applying Simple Looping in Practice with C++
- Practicing String Operations and Type Conversions in C++
- Mastering Implementation of Advanced Loops in C++
- Python Classes Basics Revision
- Mastering Complex Data Structures in Python
- Applying Advanced Data Structures on Practice
- Introduction to COBOL Programming
- COBOL Data Types Deep Dive
- Enhanced COBOL Data Management
- COBOL Control Structures
- COBOL File Handling
- Multidimensional Arrays and Their Traversal in C++
- C++ HashMaps in Practice: Revision and Application
- Mastering Task Decomposition in C++
- Programming Foundations with Ruby
- Introduction to Simple Data Structures in Ruby
- Mastering Control Structures in Ruby
- Exploring Iterations and Loops in Ruby
- Defining and Utilizing Functions in Ruby
- Rust Programming for Beginners
- Functions, Scope, and Ownership in Rust
- Exploring Data Structures in Rust
- String Manipulation in Rust
- Mastering Loops and Iterators in Rust
- Object Oriented Features of Rust
- Navigating Decisions with PHP Conditionals
- Iterating with Loops in PHP
- Efficient Programming with PHP Functions
- Object-Oriented Programming with PHP
- Getting Started with Scala
- Iterations and Loops in Scala
- Writing Functions using Scala
- Introduction to Object-Oriented Programming in Scala
- Introducing Clojure
- Clojure Collections
- Functions In Clojure
- Clojure Program Flow
- Implementing Scalable Web Scraping with Python
- Swift Programming Basics
- Data Structures in Swift
- Control Structures in Swift
- Loop Structures in Swift
- Functions in Swift
- Introduction to C# Basics
- Arrays and Collections Mastery in C#
- Control Flow with C# Conditionals
- Looping Structures in C#
- Mastering Functions with C#
- Object-Oriented Programming in C#
- Foundations of R
- Cracking C++ Basics
- C++ Loops and Conditional Statements
- Journey Through C++ Data Structures
- Debugging in C++
- Mastering Functions in C++
- Diving Into C++ Classes
- Mastering OOP in C++
- Revisiting JavaScript Basics
- Revisiting Java Basics
- Applying Simple Looping in Practice with Java
- Practicing String Operations and Type Conversions in Java
- Mastering Implementation of Advanced Loops in Java
- Mastering Functions in C++
- Designing Higher-Order Functions in C++
- Standard Higher-Order Functions in C++
- Boost.Range Library
- Functional Programming Techniques
- Advanced Functional Programming Techniques
- Multidimensional Arrays and Their Traversal in Java
- Java HashMaps in Practice: Revision and Application
- Mastering Task Decomposition in Java
- Revisiting OOP Concepts in C++
- Creational Patterns with C++
- Structural Patterns with C++
- Behavioral Patterns with C++
- Applying Design Patterns for Real World Problems using C++
- Revisiting OOP Concepts in Python
- Creational Patterns in Python
- Structural Patterns in Python
- Behavioral Patterns in Python
- Applying Design Patterns for a Smart Home System in Python
- Revisiting OOP Concepts in C#
- Implementing Creational Patterns in C#
- Exploring Structural Patterns in C#
- Mastering Behavioral Patterns in C#
- Applying Design Patterns for Smart Home System
- Applying Simple Looping in Practice with JavaScript
- Mastering Implementation of Advanced Loops in JavaScript
- Revisiting OOP Concepts
- Creational Design Patterns
- Structural Design Patterns
- Behavioral Design Patterns
- Applying Design Patterns in a Smart Home System
- Foundations of Functions
- Mastering Functional Interfaces
- Java Streams Mastery
- Advanced Functional Programming Techniques
- Exploring Additional Topics in Functional Programming
- Revisiting Go for Design Patterns
- Creational Patterns in Go
- Structural Patterns in Go
- Behavioral Patterns in Go
- Applying Design Patterns for Real World Problems using Go
- Multidimensional Arrays and Their Traversal in JavaScript
- Mastering Task Decomposition in JavaScript
- C++ Classes Basics Revision
- Mastering Complex Data Structures in C++
- Applying Advanced Data Structures on Practice in C++
- Practicing Intermediate Implementation and Data Streams in C++
- Revisiting Software Design Patterns in Java
- Refactoring Code for Readability and Maintainability
- Backward Compatibility in Software Development
- C# Classes Basics Revision
- Mastering Complex Data Structures in C#
- Applying Advanced Data Structures on Practice
- Mastering Functions in Python
- Designing Higher-Order Functions in Python
- Standard Higher-Order Functions in Python
- Generators and Iterators in Python
- Functional Programming Techniques
- Advanced Functional Programming Techniques
- Functional Programming Techniques in C++
- Advanced Built-In Data Structures and their Usage in Javascript
- Revisiting C# Essentials
- Applying Simple Looping in Practice with C#
- Practicing String Operations and Type Conversions in C#
- Mastering Implementation of Advanced Loops in C#
- Refactoring Code for Readability and Maintainability
- Backward Compatibility in Software Development
- Mastering Complex Data Structures in JavaScript
- Applying Advanced Data Structures in Practice with Javascript
- Getting Started with Elixir
- Working with Data Structures in Elixir
- Structs, Functions, and Modules in Elixir
- Functional Programming Concepts in Elixir
- Building Simple TodoList Application using Elixir
- Hashing, Dictionaries, and Collections in C#
- Sorting and Searching Algorithms in C#
- Multidimensional Arrays and Their Traversal in C#
- Revision of C# Dictionaries and Their Use in Practice
- Mastering Task Decomposition in C#
- Introduction to Shell Scripting Basics
- Intermediate Shell Scripting with Bash
- System Automation with Shell Scripts
- Bash Script Error Handling
- Text Processing with Bash
- Introduction to Java Concurrency
- Java Concurrency Foundations
- Java Concurrency In Practice
- Synchronized and Concurrent Collections in Java
- Concurrent Collections in Action
- Advanced Built-In Data Structures and their Usage
- Revisiting Software Design Patterns in C#
- Refactoring Code for Readability and Maintainability
- Backward Compatibility in Software Development
- Advanced Built-In Data Structures and their Usage in C++
- Revisiting Software Design Patterns in C++
- Refactoring Code for Readability and Maintainability in C++
- Backward Compatibility in Software Development with C++
- Clean Code Basics
- Clean Coding with Classes
- Clean Code with Multiple Classes
- Applying Clean Code Principles
- Foundations of TDD in C# & xUnit: The Principles
- Red-Green-Refactor: Practicing TDD with C# and xUnit
- Isolating Dependencies with Test Doubles with C#, xUnit, & Moq
- Advanced Built-In Data Structures and Their Usage in TypeScript
- Introduction to C++ Concurrency
- Concurrency Essentials in C++
- Practice Tasks for Concurrency Essentials
- Lock-Based Concurrent Data Structures
- Revisiting Go Basics
- Hashing, Maps, and Collections in C++
- Applying Simple Looping in Practice with Go
- Practicing String Operations and Type Conversions in Go
- Mastering Implementation of Advanced Loops in Go
- Advanced Asynchronous Programming in Java
- Advanced Concurrency Utilities
- Mastering Java Concurrency with Practice
- Advanced Real-Life Concurrency Challenges
- Git Basics
- Working with Branches
- Undoing Changes and Time Traveling
- Working with Remote Repositories
- Advanced Git Features
- Clean Code Basics with Ruby
- Clean Coding with Classes in Ruby
- Clean Code with Multiple Classes in Ruby
- Applying Clean Code Principles in Ruby
- Revisiting Ruby Essentials
- Java Classes Basics Revision
- Applying Simple Looping in Practice with Ruby
- Mastering Complex Data Structures in TypeScript
- Practicing String Operations and Type Conversions in Ruby
- Mastering Complex Data Structures in Java
- Mastering Implementation of Advanced Loops in Ruby
- Applying Advanced Data Structures in Practice with TypeScript
- Multidimensional Arrays and Their Traversal in PHP
- PHP Associative Arrays in Practice: Revision and Application
- Revisiting PHP Basics
- Mastering Task Decomposition in PHP
- Applying Simple Looping in Practice with PHP
- Practicing String Operations and Type Conversions in PHP
- Mastering Implementation of Advanced Loops in PHP
- Mastering Complex Data Structures in PHP
- Applying Advanced Data Structures in Practice
- Go Structs Basics Revision
- Mastering Complex Data Structures in Go
- Applying Advanced Data Structures in Practice with Go
- Multidimensional Arrays and Their Traversal in Go
- Go Maps in Practice: Revision and Application
- Mastering Task Decomposition in Go
- Multidimensional Arrays and Their Traversal in TypeScript
- Revisiting TypeScript Basics
- Mastering Task Decomposition in TypeScript
- Applying Simple Looping in Practice with TypeScript
- Practicing String Operations and Type Conversions in TypeScript
- Mastering Implementation of Advanced Loops in TypeScript
Web Development Courses (139)
- Introduction to HTML
- Getting Started with JavaScript
- Iterating Over Data in JavaScript
- Understanding Debugging with JavaScript
- Basics of CSS
- Introduction to JavaScript for Front-End Engineers
- Mastering the DOM API
- Communicating with APIs for Front-End Engineers
- Introduction to Responsive Web Development
- Intro to JavaScript for React Developers
- Introduction to Web Development in React
- Getting Deeper into React
- Understanding and Using APIs in React
- Routing in React Applications
- Web Development with HTML, CSS, and JavaScript
- Client-side Web Development with React.js
- Server-side Web Development with Node.js and Express.js
- Introduction to Authentication and Authorization
- Introduction to MongoDB
- TypeScript Foundations for Beginners
- Introduction to DynamoDB with AWS SDK for Python
- Introduction to PHP Basics
- Basic Python and Web Requests
- Getting Started with HTML
- Using Images and Links in HTML
- Navigable Webpages and Tables in HTML
- Building a Comprehensive About Me HTML Webpage from Scratch
- First Steps Into Back-End Engineering with Django
- Managing Data with SQLite and Django ORM
- Retrieving and Manipulating Data with Django ORM
- Building a Full-Featured To-Do List Application
- Introduction to MongoDB
- Schemas and Relations in MongoDB
- Introduction to ASP.NET Core
- Creating a REST API with Minimal APIs
- Routing in ASP.NET Core
- Model Binding in Minimal APIs
- Introduction to GraphQL and Apollo Server
- GraphQL Mutations and Advanced Apollo Server
- Advanced GraphQL Data Patterns and Fetching
- Securing and Optimizing GraphQL APIs
- Introduction to FastAPI Basics
- HTTP Methods and Request Handling with FastAPI
- Working with Data Models in FastAPI
- Status Codes and Error Handling with FastAPI
- Mastering FastAPI Authentication with JWT
- Implementing a Redis-based Backend System with Python
- First Steps Into Back-End Engineering with Express.js
- Introduction to Bootstrap
- Bootstrap UI Essentials
- Bootstrap Navbar Mastery
- Bootstrap Media Components
- Building a Complete Webpage with Bootstrap
- Introduction to Flask Basics
- Mastering Flask HTTP Methods
- Flask Data Modeling with Marshmallow
- Securing Flask Apps with JWT Authentication
- Building a Static Todo List with HTML & CSS
- Making a Dynamic Todo List with JavaScript
- Building a Backend for Todo List with Node.js and Express
- Building a Full-Stack Todo List Application
- Binding and Validating Data with ASP.NET
- Practicing String Operations and Type Conversions in JavaScript
- Introduction to Redis with Node.js: The Basics
- Mastering Redis Transactions and Efficiency with Node.js
- Mastering Redis for High-Performance Applications with Node.js
- Implementing a Redis-based Backend System with Node.js
- Practical Request Processing with Mock Data
- Managing Data with MongoDB and Mongoose
- Retrieving and Manipulating Data with Mongoose
- Building a Full-Featured To-Do List Application
- JavaScript Map in Practice: Revision and Application
- Ruby on Rails Basics
- Using REST API to Build ToDo App with Ruby on Rails
- Adding Enterprise Features to Your Ruby on Rails App
- Securing and Testing Your Ruby on Rails App
- Introduction to Razor Pages
- ASP.NET Page Handlers and Lifecycle
- Building Forms with Razor Pages
- Revisiting Software Design Patterns in JavaScript
- JavaScript Classes and Objects Basics
- PHP Symfony Basics
- Building a MVC ToDo App with Symfony
- Adding Enterprise Features to your Symfony MVC App
- Securing your Symfony MVC App
- NestJS Basics
- Building a To-Do REST API with NestJS
- Adding Enterprise Features to your NestJS App
- Securing Your NestJS App
- Getting Started with Flask and Web Development
- Building a ToDo App with Flask
- Integrating a SQL Database to Flask
- Enhancing Flask with Additional Features
- Securing Flask ToDo App with Session Authentication
- Introduction to Spring Boot and Spring Core with Kotlin
- Building RESTful APIs with Spring Boot
- Advanced RESTful Techniques
- Persisting Data with Spring Data JPA
- Introduction to Spring Boot and Spring Core
- Building RESTful APIs with Spring Boot
- Advanced RESTful Techniques in Spring Boot
- Persisting Data with Spring Data JPA
- NestJS Basics
- Building an MVC ToDo App with NestJS
- Adding Enterprise Features to your MVC NestJS App
- Securing and Testing your MVC NestJS App
- Foundations of TDD in TypeScript and Jest: The Principles
- Red-Green-Refactor: Practicing TDD with JavaScript & Jest
- Isolating Dependencies with Test Doubles with TypeScript & Jest
- Refactoring by Leveraging Your Tests with TypeScript & Jest
- Refactoring by Leveraging Your Tests with C# & xUnit
- Introduction to Django and Django REST Framework
- CRUD Operations with Django REST Framework
- Enhancing Your To-Do API with Filtering, Sorting and Pagination
- Testing in Django REST Framework
- Advanced Database Schema Design in Django
- User Authentication and Permissions in DRF
- Revisiting Software Design Patterns in TypeScript
- Refactoring TypeScript for Enhanced Readability & Maintenance
- Backward Compatibility in Software Development with TypeScript
- Docker Images & Containers
- Diving Deeper into Images & Containers
- Networking and Cross-Container Communication
- Multi-Container Orchestration with Docker Compose
- Ruby on Rails Basics
- PHP Laravel Basics
- Using MVC to Build ToDo App with Ruby on Rails
- Adding Enterprise Features to Your Ruby on Rails MVC App
- Building an MVC ToDo App with Laravel
- Securing and Testing Your Ruby on Rails MVC App
- Adding Enterprise Features to your MVC Laravel App
- Securing and Testing Your Laravel App
- Typescript Classes and Objects Basics
- PHP Classes Basics Revision
- Go with Gin Basics
- Enhancing our ToDo App
- Adding Enterprise Features to the Gin ToDo App
- Securing And Testing the Gin ToDo App
- TypeScript Map in Practice: Revision and Application
This post is sponsored by CodeSignal. All opinions are my own.


