Developer naar Software Architect - Deel 1 Developer
Software Development
31 uur
Engels (US)

Developer naar Software Architect - Deel 1 Developer

Snel navigeren naar:

  • Informatie
  • Inhoud
  • Kenmerken
  • Meer informatie
  • Reviews
  • FAQ

Productinformatie

In het ontwikkelpad van Developer naar Software Architect verken je de rollen van developer, database developer, full stack developer en software architect. Je verkent programmeertalen, frameworks en tools zoals Java, Spring Web MVC, JDBC en Redis.

Dit is het eerste deel van het leerpad Developer naar Software Architect. Dit deel focust zich op de rol van Developer.

De nadruk ligt vooral op geavanceerde datastructuren en algortimen, multithreading en concurrency in Java.

In dit deel van het leerpad vind je verschillende trainingen die jou voorbereiden om aan de slag te gaan als Developer.

Inhoud van de training

Developer naar Software Architect - Deel 1 Developer

31 uur

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.

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.

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.

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.

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.

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.

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.

Multithreading & 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.

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.

Multithreading and Concurrency in Java: Thread Synchronization & Locks

  • In this demo-only course you will cover the basics of

  • synchronization of threads in Java in order to prevent the
  • unpredictability of the race condition. You will get experience
  • with the implementation of synchronized functions and blocks, and
  • also the use of Java lock objects such as the ReentrantLock and
  • StampedLock.

Java Concurrency: Multithreading and Concurrency in Java: Concurrency & the Producer-Consumer Problem

  • The Producer-Consumer problem is a common issue to address when

  • we have concurrent producer and consumer threads working with a
  • bounded buffer. Solving this problem covers a variety of
  • synchronization mechanisms in Java, and this course covers the
  • implementation of synchronization blocks, locks, Condition objects,
  • and Java's built-in data structures.

Multithreading and Concurrency in Java: Objects for Concurrent Programming

  • Java includes a variety of objects and mechanisms to manage

  • concurrently executing threads working on shared resources. In this
  • course, you will get hands-on with a variety of Java objects and
  • mechanisms to manage concurrently executing threads working on
  • shared resources. You will get to implement semaphores, volatile,
  • and atomic variables and concurrent collections, while recognizing
  • their inidividual features and use cases.

Multithreading and Concurrency in Java: Scaling a Multithreaded Application

  • Creating and managing multiple concurrent threads manually can

  • be painstaking, but Java includes objects that make this much
  • simpler. This course will help you gain experience using objects
  • such as Java's ExecutorService and the Fork/Join framework that
  • make it easy to write scalable multithreaded applications. You will
  • get hands on with these objects and will recognize their use cases,
  • features and their limitations.

Final Exam: Developer

Final Exam: Developer will test your knowledge and application of the topics presented throughout the Developer track of the Skillsoft Aspire Developer to App Architect Journey.

Kenmerken

Docent inbegrepen
Bereidt voor op officieel examen
Engels (US)
31 uur
Software Development
365 dagen online toegang
HBO

Meer informatie

Doelgroep Softwareontwikkelaar, Webontwikkelaar
Voorkennis

Je hebt ervaring met programmeren met Java.

Resultaat

Wanneer je het eerste deel van het leerpad hebt afgerond, heb jij voldoende handvatten om aan de slag te gaan als Developer. Je hebt kennis van geavanceerde datastructuren en algoritmen in Java. Daarnaast kan je multithreading en concurrency in Java implementeren. Tot slot ben je klaar om te starten met deel 2 van dit leerpad.

Positieve reacties van cursisten

Training: Leidinggeven aan de AI transformatie

Nuttige training. Het bestelproces verliep vlot, ik kon direct beginnen.

- Mike van Manen

Onbeperkt Leren Abonnement

Onbeperkt Leren aangeschaft omdat je veel waar voor je geld krijgt. Ik gebruik het nog maar kort, maar eerste indruk is goed.

- Floor van Dijk

Training: Leidinggeven aan de AI transformatie

Al jaren is icttrainingen.nl onze trouwe partner op het gebied van kennisontwikkeling voor onze IT-ers. Wij zijn blij dat wij door het platform van icttrainingen.nl maatwerk en een groot aanbod aan opleidingen kunnen bieden aan ons personeel.

- Loranne, Teamlead bij Inwork

Hoe gaat het te werk?

1

Training bestellen

Nadat je de training hebt besteld krijg je bevestiging per e-mail.

2

Toegang leerplatform

In de e-mail staat een link waarmee je toegang krijgt tot ons leerplatform.

3

Direct beginnen

Je kunt direct van start. Studeer vanaf nu waar en wanneer jij wilt.

4

Training afronden

Rond de training succesvol af en ontvang van ons een certificaat!

Veelgestelde vragen

Veelgestelde vragen

Op welke manieren kan ik betalen?

Je kunt bij ons betalen met iDEAL, PayPal, Creditcard, Bancontact en op factuur. Betaal je op factuur, dan kun je met de training starten zodra de betaling binnen is.

Hoe lang heb ik toegang tot de training?

Dit verschilt per training, maar meestal 180 dagen. Je kunt dit vinden onder het kopje ‘Kenmerken’.

Waar kan ik terecht als ik vragen heb?

Je kunt onze Learning & Development collega’s tijdens kantoortijden altijd bereiken via support@icttrainingen.nl of telefonisch via 026-8402941.

Background Frame
Background Frame

Onbeperkt leren

Met ons Unlimited concept kun je onbeperkt gebruikmaken van de trainingen op de website voor een vast bedrag per maand.

Bekijk de voordelen

Heb je nog twijfels?

Of gewoon een vraag over de training? Blijf er vooral niet mee zitten. We helpen je graag verder. Daar zijn we voor!

Contactopties