Aspire Journeys

Developer to Software Architect

  • 40 Courses | 58h 4m 8s
  • 4 Labs | 24h
Likes 49 Likes 49
Explore developer programming languages, frameworks, and database developer tools, such as Java, Spring Web MVC, JDBC, and Redis as you prepare to become a Software Architect.

Track 1: Developer

In this Skillsoft Aspire track of the Developer to Software Architect Journey, the focus will be on advanced data structures and multithreading and concurrency in Java.

  • 14 Courses | 21h 22m 48s
  • 1 Lab

Track 2: Database Developer

In this Skillsoft Aspire track of the Developer to Software Architect Journey, the focus will be on Java database connectivity using JDBC and Java persistence API with hibernate.

  • 11 Courses | 17h 48m 20s
  • 1 Lab | 8h

Track 3: Full Stack Developer

In this Skillsoft Aspire track of the Developer to Software Architect Journey, the focus will be on building web applications with Spring MVC and building microservices with Spring Boot.

  • 9 Courses | 12h 51m 39s
  • 1 Lab | 8h

Track 4: Software Architect

In this Skillsoft Aspire track of the Developer to Software Architect Journey, the focus will be on working with the Redis In-memory data store.

  • 6 Courses | 6h 1m 21s
  • 1 Lab | 8h

COURSES INCLUDED

Advanced Data Structures & Algorithms in Java: Working With Binary Trees
A solid understanding of data structures and algorithms is fundamental to writing clean, performant, fast, and robust programs without relying on scarce resources. To capitalize on this, Software Engineers need to recognize the core concepts of basic data structures, their characteristics, and the algorithms behind them. In this course, you'll identify the basic structure and representation of a binary tree and tree traversal algorithms. You'll learn how binary trees are essentially nodes that have references to their left and right children. You'll explore how nodes of a binary tree can be traversed using depth-first traversal and breadth-first traversal. Finally, you'll recognize the three flavors that exist for depth-first traversal: pre-order, post-order, and in-order traversal.
17 videos | 1h
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Solving Binary Tree Problems
Binary trees are commonly used data structures in programming interviews. It's essential you know how to solve binary tree problems such as counting the number of nodes in a tree, finding the maximum depth of a tree, and mirroring a binary tree using robust, recursive solutions. In this course, you'll solve some common interview-style problems using binary trees, such as how to use a recursive algorithm to count the number of nodes in a binary tree, calculate the maximum depth of a tree, sum up the values of nodes along a path, and mirror a binary tree. Finally, you'll explore different kinds of binary trees, namely the full binary tree, the complete binary tree, the perfect binary tree, and the balanced binary tree.
18 videos | 1h
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Working with Binary Search Trees
A binary search tree is a unique data structure that allows for highly performant insert and lookup operations because, for every value stored in the tree, there is precisely one position where that value can exist. Knowing how to work with this data structure is an essential tool for your software engineering toolkit. In this course, you'll explore the various operations that you can perform on a binary search tree. You'll recognize how the binary search tree works for efficient insert and lookup operations and how to implement the code for these operations. You'll move on to identify the constraints on the nodes of a binary search tree data structure. Finally, you will learn how to write code for various problems that involve binary search trees.
10 videos | 56m
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Sorting & Searching Algorithms
Data structures and algorithms are vital tools in writing robust and performant code. Being trained in the proper use of these tools is the responsibility of all Software Engineers. Using these tools correctly involves recognizing which algorithms to use for which scenarios. In this course, you'll identify and implement several algorithms to sort data stored in a list. You'll explore the various trade-offs made with sorting algorithms in terms of time and space complexity. You'll recognize the nitty-gritty details of sorting algorithms such as selection sort, bubble sort, insertion sort, and divide and conquer algorithms like merge sort and quick sort. Finally, you'll learn to use searching algorithms that allow you to quickly look elements up in a sorted list such as binary search, jump search, and interpolation search.
22 videos | 2h
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Working with the Binary Heap
The binary heap, the data structure used to implement a priority queue, is an interesting data structure. Recognizing how best to work with the binary heap is part of creating sturdy and fast software programs. In this course, you'll explore the binary heap data structure used to implement a priority queue in a performant and efficient manner. You'll recognize how the binary heap is essentially a binary tree that satisfies two additional constraints: the heap property and the shape property. You'll examine how the binary heap can be represented using an array and how it allows us to implement add, remove, and access operations on a priority queue in an extremely high-performing manner. Finally, you'll learn how the binary heap helps us implement an efficient sort algorithm: the heap sort.
16 videos | 2h
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Getting Started with Graphs
Graph data structures have numerous real-world applications. Recognizing what these applications are and how best to work with graphs in your day-to-day is a must-have skill for any Software Engineer. In this course, you'll identify what is meant by a graph. You'll examine the typical, real-life applications of graphs and explore how they can be represented in programming languages. You'll move on to define different types of graphs, such as directed and undirected graphs, connected graphs, trees, and weighted and unweighted graphs. Next, you'll explore how to write code and perform operations on graphs. Finally, you'll implement graph representations in code using the adjacency matrix representation, the adjacency list, and adjacency set representation.
19 videos | 1h
has Assessment available Badge
Advanced Data Structures & Algorithms in Java: Working with Graph Algorithms
To effectively work with graphs in your daily software engineering operations, you need to expand your knowledge beyond a basic familiarity. To do this, you need to identify which algorithms are used for which tasks and how to implement these algorithms using the Java programming language. In this course, you'll identify how graph nodes can be sorted using the topological sort algorithm, which has many real-life applications, such as course scheduling, as well as modeling tasks and dependencies. Next, you'll explore shortest path algorithms, which are used in mapping applications. You'll move on to identify and implement the shortest path in an unweighted graph. Finally, you'll implement Dijkstra's algorithm to find the shortest path in a weighted graph.
13 videos | 1h
has Assessment available Badge
Multithreading and Concurrency in Java: Introduction to Concurrent Programming
Concurrent programming in Java allows you to run multiple sequences of operations at the same time using a variety of objects and mechanisms. In this course, you'll learn about concurrent programming concepts such as threads and processes, including working with multiple tasks, multithreading, and multiprocessing. You'll explore race conditions and concurrency challenges and how to achieve concurrent thread synchronization using locks. Next, you'll look at how semaphores can be used and conditions that may cause deadlocks. You'll examine Java objects that aid in working with multithreaded application, using atomic operations, and the benefits of using thread pools to manage multiple concurrently executing threads. Finally, you'll learn use cases of the Futures object and the Fork/Join framework in terms of executing multiple threads.
13 videos | 1h
has Assessment available Badge
Multithreading and Concurrency in Java: Spawning & Launching Threads
This is a hands-on course which introduces you to the implementation of concurrency in a Java application. You will become familiar with setting up, configuring and launching multiple concurrent threads. You will implement the join() method to synchronize threads and will explore a variety of thread features including their states, transitions and how they can be interrupted.
13 videos | 1h
has Assessment