GlobalMentor Comprehensive Software Development Course

The goal of this course is to bring the student, as quickly as possible, to such a level of competence as to be able to work on real-life projects on a team in a real world setting.

Building on decades of experience, the course goes deep into day-to-day programming topics: from the most basic and established ideas, to more advanced and contemporary trends. It forgoes needless theoretical minutiae, yet explains theoretical concepts that are essential for all software developers. It is hands on, guiding the student throughout the lessons to iteratively build a real-life application. The course is conversational yet not verbose. Most subjects are sufficiently comprehensive with sources extensively cited that they can be used as a handy reference.

Fundamentals

  1. Introduction

    1. Indirection
  2. Procedural Programming

    1. Hello World
    2. Values
    3. Variables
    4. Primitive Types
    5. Expressions
    6. Object References
    7. Maven
    8. Control Flow
    9. Git
    10. Procedures
  3. Object-Oriented Programming

    1. Classes
    2. Git Remote Repositories
    3. Methods
    4. Exceptions
    5. Contract Programming
    6. Unit Tests
    7. Git Branching
    8. Inheritance
    9. Interfaces
    10. Class Diagrams
  4. Computer Science

    1. Algorithms
    2. Git Undo
    3. Graphs
    4. Eclipse
    5. Trees
    6. Hash Tables
    7. Generics
    8. Sorting
    9. Class Classes
    10. Matching (upcoming)

Software Engineering

  1. Patterns

    1. Iterators
    2. Strategy Pattern
    3. Collections
    4. Maps
    5. Value Objects
    6. Enums
    7. Time
    8. Guava Collection Utilities
    9. Command-Line Interface
    10. Repository Pattern
    11. Listeners (upcoming)
    12. Model-View-Controller (upcoming)
  2. Functional Programming

    1. Lambda Expressions
    2. Method References
    3. Optionals
    4. Streams
  3. I/O

    1. Binary
    2. I/O
    3. Unit Test Life Cycle
    4. Serialization
    5. Charsets
    6. Text I/O
    7. XML
    8. Configuration
    9. Internationalization
    10. Unicode
  4. Modularization

    1. Business Logic
    2. Logging
    3. Dependency Injection
    4. Test Doubles
    5. Threads
    6. Synchronization
    7. Concurrency
    8. Futures (upcoming)
    9. Maven Modules
    10. Java Modules (upcoming)

Distributed Systems

  1. Internet

    1. Internet Protocols
    2. JSON
    3. Servlets
    4. Linux Server
    5. Security (upcoming)
    6. REST
    7. JAX-RS
    8. SURF
    9. JAX-RS Client
    10. Integration Tests
  2. Relational Databases

    1. Relational Databases
    2. SQL
    3. Relational Algebra
    4. JDBC
    5. SQL DML
    6. SQL Subqueries
    7. Flyway
    8. Transactions (upcoming)
    9. jOOQ (upcoming)
    10. Hibernate (upcoming)
  3. World Wide Web

    1. HTML
    2. CSS
    3. CSS Layout
    4. JSP
    5. HTML Forms
    6. Dynamic HTML (upcoming)
    7. CSS Frameworks (upcoming)
    8. Authentication (upcoming)
    9. Vue.js (upcoming)
    10. Guise Framework (upcoming)