Professional Documents
Culture Documents
Nesto Drugo
Nesto Drugo
Nesto Drugo
Programming
Language(s)
- encapsulation and its benefits inner classes
- classes, objects, interfaces
- packages, access modifiers
OOP Concepts - constructors, initializers
- inheritance, aggregation, composition,
polymorphism, overriding, static vs instance
members, enums
- keywords, data types, operators
- flow control (conditional and loop
Language constructs)
Fundamentals - comments, javadoc
- what Java is (the language, the standard, the
virtual machine)
- List, Map, Set and implementations - implementations and how/when/why to
use: HashSet vs TreeSet, HashMap vs
Collections LinkedHashMap, ArrayList vs
LinkedList, hashCode & equals
- what annotations are, predefined Java - scopes (compile/runtime)
Annotations annotation types
- what exceptions are, creating, throwing,
catching
- Throwable and its subhierarchy
Exceptions - Error vs Exception
- checked vs unchecked
- advantages of exceptions
- aware of Generics: advantages, generic
vs raw types, bounded type parameters,
declaring generic classes, declaring
Generics generic methods, declaring generic
variables, generics and inheritance, type
inference, type erasure, wildcards, get-
and-put principle
Threads - what a thread is and how to create one
- Java 8 features: streams, lambda expressions, - Java features up to 17: knowledge about new
Java versions default methods features (ex: records vs Lombok)
Implementation
- Spring Context: context (role), - Spring Context: circular dependencies, events ,
Server-Side
dependency injection, inversion of bean lifecycle (PreDestroy, PostConstruct)
control, annotation, bean creation and - Spring MVC: DispatcherServlet (front controller
scopes, bean naming, wiring and auto- pattern), Controllers, Request Mapping, request
Development wiring (including differences between parameters, request body, response body, exceptions
field, constructor, and setter injection), mapping, session
qualifiers - Spring AOP: aware of Aspects, Advices, Joinpoints
Testing
- aware of unit testing - test phases: Arrange, Act, and Assert - test doubles: spy, stub, mock
Unit Testing (setup, tear down) - best practices like single responsibility, self-
descriptive, etc.
- aware of unit vs integration testing - aware of concepts related to multi-layer integration
Integration - mocking for integration tests testing, database integration testing , Spring support
Testing for integration testing
Non-Functional
Testing
Versioning,
Build, Deploy
Maven or Gradle: Maven or Gradle:
- compile and run project - dependency vs dependency management
Build - add a new dependency - versioning - how it's done
- read a POM file - plugins
- aware of repositories, build lifecycle
- aware of build, ship and run platforms, such as
Deploy Docker (pulling a image, starting/stopping the
container)
Git: Git:
- clone, add, commit, push, pull - apply merge and rebase
Version Control - branching - cherry pick, revert, force push
- aware of merge and rebase - conflict resolution
Continuous - aware of Continuous I/D/D: why?
Integration /
Delivery /
Deployment
Other skills
- understands a full working process - almost independent in developing applications
- debugging techniques: how it works
(jvm port)
- aware of arch techniques
- needs assistance for writing code