Kotlin Professional Certificate study materials
Kotlin Professional Certificate study resources

Kotlin Professional Certificate study plan

Kotlin Professional Certificate · Give each week a clear focus.

8 weeks · About 6 hours per week

Week 1

Kotlin language fundamentals and coding tasks

  • Write 20 small Kotlin programs that exercise val/var, type inference, string templates, ranges, and when expressions without IDE auto-completion.

  • Implement null-safety patterns using safe calls, elvis, and smart casts across 10 functions, then refactor two of them to avoid unnecessary !! operators.

  • Demonstrate the difference between expression-bodied and block-bodied functions by writing paired implementations and documenting return-type inference outcomes.

  • Build a CLI mini-calculator that parses integer input, handles invalid input with try/catch, and uses when for operator dispatch.

Your checkpoint

A Git repository containing 20+ compilable Kotlin snippets, a README table mapping each snippet to the language feature it demonstrates, and the working CLI calculator with at least 5 manually verified test cases.

Week 2

Kotlin language fundamentals and coding tasks & Object-oriented and functional Kotlin programming

  • Define 8 classes covering primary/secondary constructors, init blocks, and property initializers, then explain initialization order in code comments.

  • Implement inheritance hierarchies with open classes, abstract members, and interface default implementations, verifying override behavior in a main function.

  • Convert three data classes into equivalent regular classes and document which generated methods (equals, hashCode, copy, componentN) are lost.

  • Write extension functions and properties for String and List that do not shadow existing members, and verify resolution order with a test.

Your checkpoint

A single Kotlin file set with 8 classes, an inheritance demo, and 5 extension functions, plus a short written analysis (300+ words) comparing data class versus regular class behavior in equality and copying.

Week 3

Object-oriented and functional Kotlin programming

  • Implement higher-order functions including a custom map, filter, and fold over a linked-list structure to prove understanding of function types.

  • Refactor a 100-line imperative block into idiomatic functional Kotlin using lambda expressions, method references, and trailing lambda syntax.

  • Apply scope functions (let, run, with, apply, also) in 10 distinct realistic scenarios and justify each choice in one sentence.

  • Design a sealed class hierarchy for a payment result type and handle every branch exhaustively in a when expression without an else clause.

Your checkpoint

A refactoring pull request showing before/after code, a table of 10 scope-function decisions with rationale, and a sealed-class demo that fails compilation when a new subtype is added without updating the when.

Week 4

Object-oriented and functional Kotlin programming & Kotlin standard library, collections, and coroutines

  • Implement generic functions and classes with variance annotations (in, out, where) and demonstrate why List is covariant while MutableList is invariant.

  • Solve 15 collection-processing tasks using map, flatMap, groupBy, associateBy, partition, and zip, comparing eager versus lazy sequences for at least 3 of them.

  • Build a custom sequence pipeline that processes 1,000,000 generated integers and measure the performance difference against the equivalent list-based pipeline.

  • Write 10 unit tests using kotlin.test assertions that verify collection operation outputs, including edge cases with empty and single-element collections.

Your checkpoint

A benchmark report comparing list versus sequence execution times for 3 pipelines, plus a test suite of 10 passing kotlin.test tests covering generics and collection operations.

Week 5

Kotlin standard library, collections, and coroutines

  • Implement coroutine-based concurrency using launch, async/await, and runBlocking, measuring total elapsed time for 10 simulated 100ms tasks run sequentially versus concurrently.

  • Apply structured concurrency with coroutineScope and supervisorScope, then intentionally trigger a child failure to observe and document cancellation propagation.

  • Handle exceptions in coroutines using CoroutineExceptionHandler, try/catch around await, and supervisorScope, documenting which approach catches which failure mode.

  • Use Flow to emit a stream of values, apply map and filter operators, and collect results with a timeout, verifying cancellation behavior.

Your checkpoint

A runnable coroutine lab project with timing logs proving concurrency gains, a failure-propagation matrix table, and a Flow pipeline that cancels cleanly after a specified timeout.

Week 6

Kotlin standard library, collections, and coroutines & Tooling, testing, and IDE-based verification

  • Configure a Gradle Kotlin JVM project from scratch with the Kotlin plugin, JUnit 5, and a runnable application plugin entry point.

  • Write 20 unit tests covering previously built domain classes, achieving at least 80% line coverage measured by a coverage tool integrated into the build.

  • Set up a parameterized test and a test fixture using @BeforeTest and @AfterTest, verifying isolation between test cases.

  • Run the full build pipeline in CI mode locally (clean, compile, test, report) and fix every warning surfaced by the compiler.

Your checkpoint

A Gradle project that builds and tests successfully with zero compiler warnings, a coverage report showing at least 80% line coverage, and a README documenting the exact commands used for build and test.

Week 7

Tooling, testing, and IDE-based verification & Kotlin language fundamentals and coding tasks

  • Use IDE debugging features: set conditional breakpoints, evaluate expressions during a paused session, and step through a recursive function while recording observations.

  • Profile a slow collection-processing function using the IDE profiler and reduce its execution time by at least 30% through an identified optimization.

  • Resolve 10 deliberately introduced compiler errors spanning type mismatch, nullability, and unresolved references, documenting the diagnostic message and the fix for each.

  • Configure code style and static analysis rules in the build so that a deliberately non-idiomatic file fails the check.

Your checkpoint

A debugging journal with screenshots-free written records of 10 resolved compiler errors, a profiler before/after timing comparison showing at least 30% improvement, and a build configuration that enforces the static analysis rules.

Week 8

Kotlin language fundamentals and coding tasks & Object-oriented and functional Kotlin programming & Kotlin standard library, collections, and coroutines & Tooling, testing, and IDE-based verification

  • Complete three timed practice sets of 30 mixed questions spanning all four domains and score at least 80% on each.

  • Rebuild a small end-to-end application (data layer, coroutine service layer, tested API) from an empty directory in under 90 minutes without consulting previous code.

  • Review every incorrect practice answer, write the correct reasoning for each, and re-test those specific concepts until no repeat errors occur.

  • Audit the week-by-week repository for missing deliverables and close any remaining gaps before a final full build and test run.

Your checkpoint

A timed practice score log showing three sets at 80% or above, a corrected-answer review document, and a final green build with the full test suite passing on the consolidated repository.

Milestones

Week 2: All week 1 and week 2 snippets compile with zero warnings, and the written data-class analysis demonstrates correct understanding of generated methods.

Week 4: Functional refactoring is complete, sealed-class exhaustiveness is proven by a deliberate compilation failure, and the 10 collection tests pass.

Week 6: The Gradle project builds cleanly, all 20 unit tests pass, and coverage is measured at 80% or higher with a reproducible CI command.

Week 8: Three timed mixed-domain practice sets each score at least 80%, the from-scratch rebuild is completed within 90 minutes, and the consolidated repository passes a final full build and test run.