Java Courses

DevOps Fundamentals For Developers This DevOps Fundamentals course is designed to give web developers an understanding of how to deploy their applications in the real-world. It will give participants an understanding of how to provision an VPS (Virtual Private Server) from a cloud provider. It will cover logging into the VPS and give a thorough coverage of working on the linux command line. Participants will install software, configure a web application, open the appropriate ports, and configure the application to run as a service. A domain will be registered and SSL certificates will be issued from LetsEncrypt. Nginx will be utilised to serve HTML content and to act as a reverse proxy to run multiple sites on a single machine.

The course will cover different ways of deploying a finished application, how to externalise configuration items, monitoring log files and continuous integration through the use of GitHub Actions.

The course is hands-on with each participant enabled to configure their own server from scratch and set up continuous integration from a GitHib repository.

Intermediate/Advanced Java This is a modern, fast-paced course suitable for developers with some previous experience in working with Java and Object-Oriented (OO) programming. The course can also be delivered to developers experienced in other OO languages (Python, C++, C#) but with limited Java exposure, as well as used as an advanced Java course for more experienced developers. There are numerous optional parts allowing you to tailor the coverage to your group. Unit testing is stressed throughout the course, with most labs implemented as JUnit tests. The course is very hands-on, including numerous code examples and programming labs that reinforce the concepts presented, so that attendees can immediately employ what they’ve learned in their current projects. It is designed to be flexible, and can be customized to fit your needs.
Java Programming Intensive and hands-on, the course emphasizes becoming productive quickly as a Java™ application developer. This course quickly covers the Java language syntax and then moves into the object-oriented features of the language. Students will then use several of the provided API packages, such as I/O streams, collections, and accessing a database with JDBC. This course can be delivered using any required version of Java and IDE - Eclipse, IntelliJ etc.
Introduction to Java Programming Intensive and hands-on, the course emphasizes becoming productive quickly as a Java™ application developer. This course quickly covers the Java language syntax and then moves into the object-oriented features of the language. Students will then learn the I/O streams and collections API packages. This course is can be delivered using any required version of Java and IDE - Eclipse, IntelliJ etc.
Spring 5 Framework Development "The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments."

This course is for Java Programmers who want to understand the Spring Framework and the use of the Java Persistence API (JPA) in an enterprise software development environment. It is suitable for people who have no experience with Spring or programmers who have been working with Spring but might have joined a project that is already configured and not had to create one from scratch.

At the end of the course the participants will have a good understanding of Enterprise Software Development, Design Patterns and the core philosophies of the Spring Framework and will have practical experience in creating Spring based web applications for the Enterprise environment.

Introduction to Spring 5 and Spring MVC/REST Spring 5 provides an evolutionary advance of Spring's powerful capabilities. This course introduces these capabilities, as well as providing guidelines on when and how to use them. It includes coverage of the three main configuration styles: Java-based (@Configuration), annotation-based (@Component), and the traditional XML-based configuration that may still play an important role in existing and new projects.
Java Enterprise Edition - JEE6 This intense four-day course teaches Java programmers how to develop enterprise applications using the ease of development features introduced in Java EE 5 and 6. Students will learn how to create dynamic web applications with JSP, Java Servlets, JSTL, and JSF. Next, they will learn how to send and receive asynchronous messages with the Java Message Service. Students then learn about session and message-driven EJBs, as well as the Java Persistence API and Java Transaction API. The course ends with XML topics including data binding with JAXB and developing SOAP based web services with JAX-WS.
Fast Track to Java EE 5 with Servlets,JSP & JDBC on Tomcat/Eclipse Java Enterprise Edition (Java EE 5) is a powerful platform for building web applications. The Java EE platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This course tells you what you need to know to design and build your own web applications. You`ll learn the details of the key Java EE technologies and how to leverage the strengths of each, with special focus on Servlets and JSP. At the same time, you`ll be learning about the big picture of Java EE and how to design web applications that are robust, efficient, and maintainable. If you want to deliver an application on the web, you`ll find this course essential. All labs are done with the Eclipse IDE, and the lab instructions include detailed directions for setting up and using it. The standard application server used is Tomcat, but it is available for all major app servers, including GlassFish, JBoss AS, IBM WebSphere AS, and Weblogic AS.
Complete Hibernate and Java Persistence API This course teaches students the Java specification for persisting objects to the database. It does so through Hibernate - the most popular JPA implementation and object-relational mapping framework for Java environments. Object relational mapping in large enterprise applications is difficult. The task is so difficult that the problem of storing and retrieving objects to a relational database has its own name - impedance mismatch.
In this class, students learn object-relational mapping concepts and the various issues and options available in Java to address object persistence. With these fundamentals, the course then explores the basics of JPA/Hibernate object persistence and configuration. It also digs into the details of mapping, queries, transactions, and concurrency.
Not just a class that focuses on theory, this course is loaded with practical labs and deals with maintenance and performance issues. After taking this class, developers will be able to build faster, more flexible and easier to maintain application persistence layers and overcome impedance mismatch with JPA implementations like the Hibernate framework.
Mastering JavaScript Object-Oriented Programming This course is designed to help new programmers learn popular Object-Oriented programming (OOP) principles and design patterns to build robust apps and implement Object-Oriented concepts in a wide range of front-end architectures using JavaScript. It covers the new features introduced in ES6 and shows participants the first steps in how to build large-scale web apps and build apps that promote scalability, maintainability, and reusability.
JavaScript Data Visualisation using Maps This course gives Javascript developers the tools to bridge the gap between static displays of data and interactive, animated data visualisations by building useful and informative web maps.
Modern Mobile Web Development This course is aimed at web developers who would like to write applications targeting mobile devices without having to go the route of developing native applications for those devices. Any web developer has the background knowledge to create a mobile application using one of two techniques.

The first technique is creating a Progressive Web Application(PWA). PWAs are web applications that load like regular web pages or websites but can offer the user functionality such as full screen mode, install on desktop, working offline, push notifications and device hardware access traditionally available only to native applications.

The second technique is to use a library like React Native or Native Script. Both of these libraries are capable of taking an application developed using component techniques from React and Angular and compiling those applications to native applications. The beauty of using these technologies is that with some limitations you can have a single code base to create both Android and iPhone apps.

This course will take experienced web developers and give them experience developing for mobile devices using both of these techniques.

Modern Web Development The web landscape changes weekly. If you are a web developer then it is an almost impossible task to keep up to date with changes in the language syntax, tools, frameworks and related tools. Frameworks come and go at an alarming rate and it can be risky to adopt new technologies before they are mature.

This is a hands on course that will create real web applications / sites and deploy them using a free hosting service. It will also create - as an exercise - a progressive web application and an introductory mobile application using React Native.

Progressive Web Application Development This is a hands-on course that will cover all of the key characteristics of a PWA and create a number of Progressive Web Applications that demonstrate these key features.

Some organisations would like to give an enhanced user experience to the mobile users of their website but may not have the resources to develop a native app for both android and iphone. For these cases a progressive web application which combines the flexibility of the web with the experience of a native application can be the perfect solution.

Progressive web applications (PWAs) are web applications that load like regular web pages or websites but can offer the user functionality such as working offline, push notifications and device hardware access traditionally available only to native applications.

Web Programming with JavaScript, HTML & CSS - Introduction This course give participants a good grounding in all aspects of front-end web development. It will be largely independent of server side technologies and will simply use RESTful web service calls using AJAX to manipulate server side data. This is a hands-on course and will get participants to a high intermediate and perhaps advanced level in their understanding of how to create web applications using HTML5, CSS3 and Javascript. It will also get them comfortable with making server calls using AJAX and the utilisation of Javascript libraries, frameworks and controls.
Web Programming with JavaScript, HTML & CSS - Advanced This course is an opportunity for developers to get a taste for the newer features in HTML5, CSS3 and javascript es6 including Object Oriented Programming, Advanced CSS features, Using SVG, Understanding semantic HTML5 tags and why you should use them and CSS Layouts.

Participants will gain the skills to quickly and effectively create new web applications with the latest techniques.

Angular Developer Training - Introduction This course is a comprehensive introduction to the Angular framework up to the latest version. It covers both the ES6 JavaScript syntax and Typescript needed to work with Angular. It gives practical examples of the main Angular concepts including Components, Directives, Dependency Injection, Pipes and Single Page Applications (SPA). Angular is a large framework and it can be intimidating to get started with because it uses both a new language, Typescript, and has a large range of concepts that need to be understood before you can get started. This course is the perfect introduction for people who have worked with web applications who are embarking on a project that requires Angular.
Angular Developer Training - Advanced This course follows on from the introductory course on Angular and covers the more advanced but widely used features that Angular has to offer. It covers many advanced component techniques, creating custom attribute and structural directives, asynchronous programming using the rxjs library. It also covers creating a Progressive Web Application using Angular, using authentication and authorization routing features and automated testing. It covers creating a complex project using nx and deploying your app using a SSL certificate. This course will bring the skills of experienced Angular developers to the next level.
AngularJS Programming This course introduces the AngularJS framework, which has become a popular JavaScript framework for the development of "single page" Rich Internet Applications. The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop and test because there is a separation of responsibilities within the code. Although there are many benefits to using the AngularJS framework it is fairly different than the way "typical" web applications involving JavaScript have been designed. This AngularJS training course will provide an introduction to the benefits of AngularJS, so course participants can start to develop responsive applications quickly using the framework.
Android Programming This course is intended for Java programmers wishing to learn about Android app development. No prior knowledge of Android is expected but some knowledge of Java is expected. The course uses Android Studio 3.4.2 or later with Android Oreo / Pie (API 26 / 28) or later. The course is intended to give developers a thorough introduction to Android application development. Elements of Android Jetpack are covered throughout the course. Course content, in particular Day 4, may be customised. The course can be extended to 5 days to cover other topics such as sensors and Bluetooth in more detail.
Introduction to Programming This course is designed to teach the fundamentals of programming. Depending on the client requirements, it uses the relevant environment - such as Visual Basic, Java, C#, C++, Python etc - to show various principles, examples, and structures. It can be used as an introduction to any development language as it outlines the concepts rather than the specific features of a particular language, which would be the next stage in the development of new programmers.
Fullstack JavaScript Web Development With Node.js This course covers full stack development with an emphasis on node.js and the node.js ecosystem. It will cover server side JavaScript development as the basis for the MEAN stack (MongoDB, Express.js, Angular and Node.js)
Introduction to Server Side Javascript with Node.js Node.js is a server side javascript framework that has gained a lot of popularity over the last number of years. If you are a web developer who is familiar with PHP, .NET, Java or any of the Java server side technologies and would like to understand how Node.js works then this would be an excellent introduction to what is possible.

Node.js is very developer friendly and there can be a lot of productivity gains obtained by using javascript for server side development.

This course focuses on node.js and the express framework to create a web server or web application. It will use mongodb as the database and will conclude with a brief introduction to the Angular framework. At the end participants will have a good understanding of the MEAN stack (Mongo, Express, Angular and Node.js) but even if you are not planning on using Angular understanding Node.js and Express could transform your approach to web applications.

Pattern-Based Software Development in Java The essence and basic structure of a software design solution may be repeated many times, even though the realisation is different in each case. Patterns offer a technique for capturing such recurrence, allowing design experience to be understood, distilled and shared. <br> The Pattern-Based Software Development in Java course introduces patterns from the ground up, presenting principles as well as concrete examples. It develops understanding through lectures, discussion and hands-on labs, which reinforce the concepts by putting them into practice.
Introduction to Rabbit MQ for Programmers This course is designed to introduce you to the basics of using RabbitMQ with the Java Messaging Service (JMS) to facilitate seamless messaging between components. In the world of distributed systems and scalable architectures, effective communication between applications is paramount. RabbitMQ, a powerful message broker, provides a reliable and flexible solution for building robust, decoupled systems.
Practical React Following on from the React Developer course this takes a deeper dive into the core features of React, React Router and React Query by exploring more practical real-world examples.

This course will give developers who are familiar with React the knowledge they need to deliver real-world React applications.

React Developer React is a JavaScript library for building user interfaces. It was originated by Facebook and is maintained by a a community of individual developers and companies. React can be used as a base in the development of component based web sites and single-page applications.

React depends on plugins and libraries for certain features that are a core part of other frameworks. This course will cover plugins for routing (React Router), ajax calls (React Query) and state management (Redux) as well as the core React functionality.

This course will highlight the current features in React and highlight the things that have changed. React has evolved quite considerably over the years and some tutorials that you can find on the internet are out of date even if they are only a few years old.

Java Test-Driven Development All developers want to build good quality software but not all developers test their software as they go along. Why not? A common explanation is I don`t have time to write tests! The more pressure they feel, the fewer tests they write. This leads to less accurate and stable code, less productivity, less confidence and, ultimately, more pressure. It`s a vicious cycle. This course is designed to help you break out of the cycle by embracing unit-testing and, in particular, test-driven development. We will introduce the techniques and the tools necessary to prove your code as you go along.
Using Selenium and Practical Workshop Three day course on Selenium 3.0. The first two days are instructor led and the third day provides an opportunity for hands-on learning, putting into practice the learning from the course.

Selenium allows both developers and testers to automate tests against applications and execute them against multiple browsers. This course aims at providing a solid foundation to the attendee in understanding automated testing using Selenium.

The objectives of this course are not only to teach what the tool is capable of doing, but to focus on the practical steps required to make automation using Selenium work. The course provides a hands-on walkthrough to allow attendees to understand the steps in making Selenium function in the real world.

The consumer is putting increasing demands on organisations to deliver applications across many devices, browsers and platforms. With Increasing pressure being put on test tool budgets, IT professionals are looking to the open source market for test automation tools.

Test-Driven Development in Java The Test-Driven Development in Java course presents a number of modern practices for developing code based on an iterative and incremental development lifecycle. Agility and predictability are two qualities often missing from software development. A test-driven approach, in which design is grown and code delivered incrementally according to functionality or risk, forms the basis of the construction phase of an iterative abd incremental development. The use of unit testing provides confidence in existing code and supports the ability to refactor code as development unfolds.
Vue.js Developer Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. This course will take developers who are familiar with the basics of web development (HTML, CSS & JavaScript) and get them productive in working with Vue.js.