Training Professional Training Programs
Languages Deep Dive
Functional Programming Java
From the programming point of view, functional changes to Java has had the most impact on how applications are crafted. Lambdas and Streams fundamentally change how we create applications. While we continue to make use of both the imperative style of programming and the object-oriented paradigm, we need to carefully leverage the functional style of programming that's now possible in Java.
Java 9 and beyond
With a faster and more frequent release cadence, Java is moving at a much rapid pace. This course will bring your team up to speed with the state of the art changes with the recent versions of Java.
Programming Kotlin
Kotlin is a language that is gaining immense popularity for a few good reasons. It is a language that has been built from the strengths and powerful features of many different languages.
Programming in Scala
Scala being a concise, functional, object-oriented language on the Java Virtual Machine has some remarkable features. It's expressive, fully OO, integrates well with Java and Java libraries, has good support for functional style.
Programming in Groovy
The power of Groovy is in metaprogramming. Sure, it's a language that's fluent, concise, integrates well with Java, and provides the functional style of programming.
Programming in Modern JavaScript
JavaScript is one of the most ubiquitous and powerful languages, yet it's one of the languages that's largely misunderstood and underutilized.
Programming with Modern C++
C++ is one of the few languages that continues to evolve in pleasantly surprising ways.
Focus on Technologies and Tools
Reactive Programming
Reactive programming is gaining a lot of attention. A combination of fundamental approaches—functional programming, event based programming, loose coupling, and error resilience.
Concurrency without Pain
Programming Concurrency is one of the most difficult task for programmers. The traditional concurrency libraries are mired with accidental complexities.
Methods & Practices
Architecture & Design
Big Up-front Design is a bad idea, as an industry we've learned the consequence of this over the past few decades.
Test Driven Design
Agile development is not really about being fast, but about sustainable speed.
Test Driven JavaScript Application Development
JavaScript is one of the most powerful dynamically typed languages. A good disciplined development approach is necessary to avoid that power turning into a maintenance nightmare.
Applying Design Patterns
Design Patterns are popular among developers. However, figuring out which pattern to use, and when, often turns out to be a challenge.
Agile Software Development Practices
Agile development is all about succeeding in our efforts with the help of short, meaningful feedback loops. If we're not succeeding, then we ought to change our practices.
Web Development
Using Angular
Angular is a total rewrite of the popular AngularJS framework, focused on improving both developer productivity and runtime performance.
Using React
React is a powerful client side tool to create highly interactive web front-end.
Web Development with Grails
Grails is a great example of what we can do with the powerful metaprogramming capability of a language like Groovy. Grails has been developed on top of some of the most solid and popular technologies on the JVM.
Web Development with Ruby and Rails
Rails changed the world's view of web development. By making phenomenal use of the metaprogramming capabilities and fluency of Ruby, it lead the way to rapid application development.