fbpx

Forums

The tech forums are internally organised structured courses that we put together to cover a particular topic in-depth. They typically consist of 10-14 2-hour sessions which are spread over a couple of weeks.

THE FOLLOWING FORUMS AND RESPECTIVE TOPICS ARE CURRENTLY AVAILABLE:

.NET FORUMS
  • .NET BASIC FUNDAMENTALS - A refresher on OOP, basic C# concepts and intro to .NET
  • .NET ADVANCED FUNDAMENTALS - .NET Advanced Fundamentals Discussion of more complicated .NET concepts
  • MEMORY MANAGEMENT AND PERFORMANCE TOOLS - How .NET manages memory, understanding and identifying typical memory issues and ways to combat/prevent them
  • DATA ACCESS - Setup of the Data-access layer and management of object states and transactions
  • LINQ - Deep dive into LINQ and concepts such as LINQ to Entities
  • ASP.NET MVC/WEBAPI WEB APPLICATION - BASIC TOPICS - Basic discussion of the features of an ASP.NET Web Application
  • ASP.NET MVC/WEBAPI WEB APPLICATION - ADVANCED TOPICS - Further discussion of the features of an ASP.NET Web Application, building on the concepts discussed in web application basics
  • ASP.NET MVC/WEBAPI WEB APPLICATION SECURITY - Mainly focusing on Security and Filters for authorisation, logging, etc.
  • WINDOWS SERVICES/ BACKGROUND WORKERS - Running tasks off main thread, and running tasks in a Windows Service
  • DEBUGGING AND TRACING - Proper error logging from servers, avoiding “Yellow screen of Death” in production as well as con guring and using Visual Studio debugging tools
  • INTEGRATION - Integration with Web API, WCF services, etc.
  • LOCALISATION AND GLOBALISATION - Tools, techniques and considerations when implementing globalisation to gain a better understanding of the building blocks of a globalised application, timezone considerations and translations
  • CONCURRENCY AND TRANSACTION MANAGEMENT - Concurrency and transaction management, to provide an in depth understanding of writing more robust and multi-threaded applications
UX FORUM
WHAT IS INTERACTION DESIGN?
  • Explain the difference between good and poor interaction design
  • Describe what interaction design is and how it relates to HCI and other elds
  • Explain what usability is
  • Describe what is involved in the process of interaction design
  • Outline the different forms of guidance used in interaction design
  • Enable you to evaluate an interactive product
  • Explain what is meant by the problem space
  • Explain how to conceptualise interaction
  • Describe what a conceptual model is and explain the different kinds
  • Discuss the pros and cons of using interface metaphors as conceptual models
  • Debate the pros and cons of using realism versus abstraction at the interface
  • Outline the relationship between conceptual design and physical design
UNDERSTANDING USERS
UNDERSTANDING REQUIREMENT & NEEDS
  • Describe different kinds of requirements
  • Enable you to identify examples of different kinds of requirements from a simple description
  • Explain how different data-gathering techniques may be used, and enable you to choose among them for a simple description (next session)
WHAT ARE AFFECTIVE ASPECTS AND HOW DO THEY INFLUENCE INTERACTION DESIGN?
INTERFACES & INTERACTIONS
  • Present information on a screen
  • Determining menus
  • Determining navigation
  • Designing icons for recognition
  • Designing forms and dialog boxes
PROCESS OF INTERACTION DESIGN
  • Interaction design process x Feedback
  • Prototyping
  • Interaction design lifecycle
JAVA FORUM
CORE JAVA
  • JVM Components
  • Class loading
  • Common class loading problems
  • Runtime Data Areas
  • Garbage Collection Basics
  • JVM Tuning
  • Re ection Basics
  • Closures
  • Processing Streams
  • Date API
  • Collection usage guidelines
  • Polymorphism and generics in the Java implementation x Generic methods
  • Generic declarations
  • Generic pitfalls
INTRO TO SPRING
  • Dependency Injection and Inversion of Control (The Hollywood Principle)
  • Constructor-based dependency injection
  • Setter-based dependency injection
  • Creating beans with XML Con g/Java Con g
  • Collections, Inner beans, Bean Inheritance, Propertiesfrom properties les, Bean Pro les, Bean Scopes and FactoryBean elements
  • Application Context
  • Sprint Annotations (Component Scanning)
  • Best Practices
  • Spring Bean Lifecycle (With extension points) x Spring Data Access
  • Practical examples
  • Spring Boot
ADVANCED SPRING
  • Aspect, Point Cuts, Join points and Advice
  • Practical uses (e.g logging, transactions and caching) x AOP Proxies
  • Practical Example
  • Spring/Hibernate Setup and Con guration
  • Overview
  • Isolation levels
  • Transaction Propagation
  • Rollback rules
  • Testing
  • Overview
  • Authorization vs Authentication
  • Con guration
  • Method security
  • Security Filter Chain
  • Practical examples
  • Spring Cloud
MAVEN
  • Overview
  • Environment Setup
  • Build Life Cycle
  • Creating Maven projects
  • Release management
  • Dependency management
  • Repository management
  • Multi module builds
  • Build pro les
  • Plug-in management
  • Gradle/Ant
  • Build automation
  • Features of CI Servers
  • Compare and contrast different CI Servers
THREADING
  • Why write thread safe code
  • Stateless Objects, Immutable Objects and using synchronisation
  • Check-then-act, read-modify-write x Atomic Operations
  • ThreadLocal
  • The Synchronised keyword
  • The Volatile keyword
  • Reentrant Lock
  • Synchronised Collections
  • Concurrent Collections
  • Latches
  • Semaphore
  • Barrier
  • Starting a thread
  • Executor (Thread Pools)
  • Future Task
  • Thread Interuption/Cancellation
  • Deadlock
  • Performance Considerations
TESTING
  • Why produce quality code x Principles of clean code
  • Common code smells
  • Sonar
  • Mocking framework
  • Checkstyle
  • FindBugs
  • What is Integration Testing
  • Integration Testing vs Unit Testing x Frameworks for Integration Testing x What makes good unit tests
  • Frameworks for unit testing x Testing with Spring
  • Gerrit Stash, Upsource
  • Crucible
JPA
  • Entities
  • Entity Relationships
  • JPA Annotations
  • Cascade Operations
  • Fetch Types
  • Entity Manager
  • Entity Inheritance
  • Locking
  • Persistence Units
  • Query Language
  • Named Queries
  • Second Level Cache
  • Practical examples with repository pattern
INTRO IN JEE
  • JEE Overview
  • JEE Tiers & their roles
  • JEE APIs
  • Java EE Containers
  • Java EE Container Services
  • Java EE Container Types
  • Packaging EARs and WARs
  • Naming and Directory Concepts and Operations
  • Accessing Objects in the directory x JNDI Service Providers
FRAMEWORKS & UTLITIES
  • Log levels, what and when to log
  • Loggers: Java util logging/Log4J/Logback/tinylog
  • Logging abstractions : SLF4J/Commons Logging
  • Utilities
  • Collections
  • Graphs
  • Other
  • StringUtils/Builder
  • HashCodeBuilder/CompareToBuilder/ToStringBuilder
  • Builder
  • Useful collections
  • IOUtils
  • Joda Time
  • Con guration and usage x Velocity/Thymeleaf
  • ehCache/hazelcast/guava cache
EJBs
  • Role of EJBs
  • Advantages & Disadvantages Dependency Injection
  • EJB - Environment setup
  • Stateless, Stateful, Singleton, MDB, Entity Beans
  • Life Cycles of EJBs
  • Remote vs Local Access
  • Accessing EJBs
  • Annotations
  • Xml con g
  • Timer Service
  • Callbacks
  • Asynchronous EJB Method Invocations
INTEGRATION
  • Types of Web Services
  • Building Web Services with JAX-WS x Building Web Services with JAX-RS x Securing Web services
  • Spring con guration and use
  • Topics vs Queues
  • Consuming & Producing Messages x Message Types
  • Message Reliability Mechanisms
  • Spring con guration and use
WEB
  • Servlet Lifecycle
  • Servlet Mapping
  • Using scope objects
  • Filtering Requests & Responses x Forwarding & redirecting
  • Annotations
  • Expression Language
  • Lifecycle of JSPs
  • Jstl
  • Creating custom tags
  • Directives
  • JSF - Description
  • The Dispatcher Servlet
  • Controllers
  • Handler Mapping
  • Resolving Views
  • AJAX
SQL FORUM
T-SQL FOUNDATIONS - BASIC SELECTS
  • Introduction to T-SQL as a language
  • Normalisation
  • Data types, CASE statements and related functions, and date and time functions
  • Filtering and sorting. TOP and OFFSET_FETCH
COMBINING SETS - GROUPING AND WINDOWING
  • Understanding different types of joins
  • Sub-queries, table expressions and APPLY
  • Set operators (UNION, INTERSECT, EXCEPT) x Writing grouped queries
  • PIVOT and UNPIVOT
  • Window functions
QUERYING FULL-TEXT DATA AND WORKING WITH XML
  • Full-text catalogues and indexes x Using CONTAINS and FREETEXT x Full-text and semantic search
  • Query results as XML
  • Querying XML data with XQuery x The XML data type
CREATE TABLES, VIEWS AND INLINE FUNCTIONS - ENFORCING DATA INTEGRITY
  • Creating a table
  • Primary and foreign key constraints
  • Unique, check, and default constraints
  • Creating and using views, inline functions, and synonyms
INSERTING, UPDATING AND DELETING
  • INSERT, UPDATE, and DELETE statements
  • The difference between DELETE and TRUNCATE x Identity columns
  • MERGE statement
  • The OUTPUT option
TRANSACTIONS, ERROR HANDLING, AND DYNAMIC SQL. T-SQL ROUTINES
  • Understanding transactions and locking x Error handling
  • Dynamic SQL and SQL injection
  • Stored procedures
  • Triggers
  • User-de ned functions (scalar and table-valued)
ANALYSING QUERY PERFORMANCE
  • Introduction to query optimisation
  • Execution plans and pro ler
  • Dynamic management objects
  • Indexes, search arguments, and statistics
CURSORS, SETS AND TEMP TABLES. FURTHER OPTIMISATION
  • Iterative/cursor vs set-based operations
  • Temporary tables and table variables
  • Advanced optimisation aspects