About this course
Welcome to an engaging and flexible introduction to the world of java! This course is designed to give programmers the foundation they need to quickly become productive in a java context. This course will give a quick introduction to object orientation and java as a language and some mention of new language features in java 7 and java 8. The main focus of this course however, is to introduce the programmer to the concepts and technologies that make up a typical java technology stack. When you enter a project in java or start a fresh project yourself, you will most often encounter certain common concepts and technology. Understanding this surrounding technology is often more demanding and more important than understanding all the nuances of the programming language.
This course is intended for programmers that are either:
- Fresh from school
- Come from another language background
- Want an update
We aim to give you a useful introduction
The course holder will try to adapt the content of the course to the audience as much as possible. We appreciate any information about what is your experience and what technology stack you will be working on. The course holder will also try to adapt during the course.
Day 1: Java
Day 2: Building tool (Maven), SCM (git), CI (Jenkins)
Day 3: IOC & DI, TDD
Day 4: ORM (Hibernate, JPA)
Day 5: Modern software architecture + recap and discussions
At course completion
Students should be able to step into an existing project and quickly get up to speed on the business issues, instead of spending valuable time understanding surrounding technology.
- Java as a language
- New language features
- SCM - Source Control Management (git as an example)
- Build tool (maven as an example)
- CI - Continuous Integration (Jenkins as an example)
- TDD - Test Driven Design
- ORM - Object Relational Mapping (Hibernate)
- IOC - Inversion Of Control vs DI - Dependency Injection
- Modern software architecture (SOA, CQRS, ESB, DE)
There will not be any emphasis on front-end programming as there are too many different concepts and technologies to cover comprehensively. There will however be discussions around patterns and anti-patterns, code-style and pragmatism.