.Net Developer
Roadmap skill tree untuk membawa peserta tanpa pengalaman pemrograman menjadi senior backend developer .NET. Materi mencakup fondasi pemrograman, C# dan .NET modern, ASP.NET Core Web API, database dan Entity Framework Core, testing, Docker, Redis, arsitektur dan microservices, Kubernetes, serta kesiapan produksi (CI/CD, observability, keamanan, performa). Beberapa cabang dapat dipelajari paralel setelah fondasi dikuasai.
Daftar materi
Versi teks dari diagram di atas.
-
Section
Fondasi Pemrograman & Tools
Bekal dasar sebelum menulis kode C#: logika pemrograman, command line, Git, dan cara kerja web.
-
Section
C# & Platform .NET
Bahasa C# dari dasar hingga fitur modern, beserta ekosistem .NET SDK dan CLI.
-
Section
ASP.NET Core Web API
Membangun backend HTTP API yang terstruktur, aman, dan terdokumentasi dengan ASP.NET Core.
-
Section
Database & Persistence
SQL, desain basis data relasional, dan akses data menggunakan Entity Framework Core.
-
Section
Testing & Kualitas Kode
Unit test, mocking, dan integration test untuk memastikan kode backend dapat diandalkan.
-
Section
Docker & Containerization
Mengemas aplikasi .NET beserta dependensinya ke dalam container yang konsisten di semua lingkungan.
-
Section
Redis & Caching
Memanfaatkan Redis untuk caching, rate limiting, pub/sub, dan koordinasi terdistribusi.
-
Section
Arsitektur & Sistem Terdistribusi
Prinsip desain, Clean Architecture, DDD, messaging, dan microservices untuk sistem berskala besar.
-
Section
Kubernetes
Orkestrasi container: deployment, konfigurasi, networking, scaling, dan packaging dengan Helm.
-
Section
Kesiapan Produksi
CI/CD, observability, keamanan aplikasi, dan optimasi performa untuk sistem yang berjalan di produksi.
-
Section
Jalur Senior
System design, kepemimpinan teknis, dan proyek capstone sebagai bukti kompetensi level senior.
-
Prerequisite
Literasi Komputer & Sistem Operasi
Memahami file system, proses, variabel lingkungan, dan instalasi perangkat lunak sebagai dasar kerja developer.
-
Topic
Logika Pemrograman & Algoritma Dasar
Cara berpikir komputasional: memecah masalah, menyusun langkah, dan menuliskannya sebagai algoritma sebelum mengenal sintaks bahasa.
-
Topic
Command Line & Shell
Bekerja efektif di terminal (Bash/PowerShell), keterampilan wajib untuk .NET CLI, Docker, dan Kubernetes.
-
Topic
Git & Version Control
Mengelola riwayat kode, branching, dan kolaborasi tim menggunakan Git dan platform seperti GitHub.
-
Topic
Dasar Web & Protokol HTTP
Cara kerja client-server, request/response HTTP, status code, header, serta DNS dan HTTPS.
-
Subtopic
Konsep REST & Format JSON
Prinsip desain API berbasis resource dan format pertukaran data JSON.
-
Optional · opsional
Struktur Data & Kompleksitas Algoritma
Array, linked list, hash table, tree, serta notasi Big-O. Berguna untuk wawancara kerja dan menulis kode efisien.
-
Topic
Ekosistem .NET & Setup Lingkungan
Mengenal .NET (runtime, SDK, BCL), versi LTS/STS, serta menyiapkan IDE dan .NET CLI.
-
Topic
Sintaks Dasar C#
Struktur program C#, namespace, input/output konsol, dan aturan penulisan kode.
-
Subtopic
Tipe Data, Variabel & Operator
Value type vs reference type, tipe primitif, string, konversi tipe, dan operator.
-
Subtopic
Percabangan, Perulangan & Method
if/switch, for/foreach/while, serta mendefinisikan method dengan parameter dan nilai kembali.
-
Topic
Pemrograman Berorientasi Objek di C#
Class, object, constructor, property, enkapsulasi, dan access modifier sebagai fondasi desain aplikasi .NET.
-
Subtopic
Pewarisan, Polimorfisme, Interface & Abstract Class
Membangun abstraksi dan kontrak antar komponen, dasar dari dependency injection dan arsitektur bersih.
-
Topic
Collections, Generics & LINQ
List, Dictionary, HashSet, tipe generik, serta query data secara deklaratif menggunakan LINQ.
-
Topic
Penanganan Error & Exception
try/catch/finally, custom exception, serta pengelolaan resource dengan using dan IDisposable.
-
Topic
Asynchronous Programming (async/await)
Task, async/await, cancellation, dan concurrency dasar, kunci performa aplikasi backend yang I/O-bound.
-
Topic
Fitur C# Modern
Record, pattern matching, nullable reference types, init-only property, dan primary constructor.
-
Topic
Delegate, Event & Lambda Expression
Func, Action, lambda, dan event sebagai dasar LINQ, middleware, dan konfigurasi di ASP.NET Core.
-
Subtopic
NuGet, Solution & Struktur Proyek
Mengelola dependensi dengan NuGet, file .csproj, serta solution multi-proyek.
-
Project
Proyek: Aplikasi Konsol Manajemen Tugas
Aplikasi to-do berbasis konsol dengan penyimpanan file JSON, menerapkan OOP, LINQ, exception handling, dan async I/O. Dikelola di Git.
-
Assessment
Evaluasi: C# & .NET Dasar
Kuis konsep dan tantangan coding untuk menguji OOP, LINQ, async, dan fitur C# modern.
-
Optional · opsional
Reflection & Attribute
Membaca metadata tipe saat runtime dan membuat attribute kustom; berguna untuk memahami cara kerja framework.
-
Topic
Fundamental ASP.NET Core
Hosting model, Program.cs, Kestrel, dan middleware pipeline yang memproses setiap request.
-
Subtopic
Dependency Injection & Service Lifetime
Container DI bawaan, lifetime Singleton/Scoped/Transient, dan jebakan captive dependency.
-
Subtopic
Configuration, Options Pattern & Environment
appsettings.json, environment variable, user secrets, dan binding konfigurasi ke class bertipe kuat.
-
Subtopic
Logging dengan ILogger
Abstraksi logging bawaan, log level, kategori, dan structured logging dasar.
-
Topic
Membangun Web API: Controller & Minimal API
Membuat endpoint CRUD menggunakan controller dan Minimal API, termasuk DTO dan pemetaan respons HTTP.
-
Subtopic
Routing & Model Binding
Attribute routing, route constraint, serta binding dari route, query, header, dan body.
-
Subtopic
Validasi Input
Validasi dengan DataAnnotations dan FluentValidation agar data yang masuk selalu konsisten.
-
Subtopic
Error Handling Global & ProblemDetails
Menangani exception secara terpusat dan menyajikan error dengan format standar ProblemDetails (RFC 9457).
-
Topic
Dokumentasi API (OpenAPI) & Versioning
Menghasilkan dokumen OpenAPI dan menerapkan strategi versioning API agar perubahan tidak merusak klien.
-
Topic
Autentikasi & Otorisasi
JWT Bearer, ASP.NET Core Identity, role dan policy-based authorization, serta konsep OAuth 2.0/OpenID Connect.
-
Optional · opsional
gRPC di .NET
Komunikasi antar-service berkinerja tinggi berbasis Protocol Buffers dan HTTP/2.
-
Optional · opsional
SignalR untuk Komunikasi Real-time
Push notifikasi dan pembaruan data real-time ke klien melalui WebSocket.
-
Project
Proyek: REST API Toko Online
API toko online dengan produk, kategori, keranjang, dan pesanan. Menggunakan EF Core dan PostgreSQL/SQL Server, autentikasi JWT, validasi, dokumentasi OpenAPI, serta unit dan integration test.
-
Assessment
Evaluasi: ASP.NET Core Web API
Code review proyek toko online dan kuis tentang middleware, DI, dan keamanan API.
-
Topic
Database Relasional & SQL
Tabel, primary/foreign key, query SELECT, JOIN, agregasi, subquery, dan DML menggunakan PostgreSQL atau SQL Server.
-
Subtopic
Desain Skema & Normalisasi
ERD, bentuk normal, dan kapan melakukan denormalisasi demi performa.
-
Topic
Entity Framework Core
ORM resmi .NET: DbContext, pemetaan entity, Fluent API, dan query LINQ ke database.
-
Subtopic
Migrations & Seeding
Mengelola evolusi skema database dengan migration dan menyiapkan data awal.
-
Subtopic
Relasi, Loading Strategy & Performa Query
Relasi one-to-many dan many-to-many, eager/lazy/explicit loading, masalah N+1, AsNoTracking, dan projection.
-
Topic
Transaksi & Concurrency Control
Properti ACID, isolation level, optimistic concurrency dengan row version, dan pessimistic locking.
-
Optional · opsional
Dapper & Micro-ORM
Akses data ringan dengan SQL mentah untuk query yang sangat kritis performanya.
-
Optional · opsional
Database NoSQL (MongoDB)
Model data dokumen dan kapan NoSQL lebih cocok daripada database relasional.
-
Subtopic
Indexing & Execution Plan
Jenis index, cara membaca execution plan, dan trade-off index terhadap performa tulis.
-
Topic
Unit Testing dengan xUnit
Menulis unit test yang cepat dan terisolasi dengan pola Arrange-Act-Assert.
-
Subtopic
Mocking & Test Double
Mengisolasi unit yang diuji menggunakan mock, stub, dan fake dengan library seperti NSubstitute atau Moq.
-
Topic
Integration Testing
Menguji API end-to-end dengan WebApplicationFactory dan database nyata melalui Testcontainers.
-
Optional · opsional
Test-Driven Development (TDD)
Siklus red-green-refactor untuk mendorong desain kode yang lebih baik.
-
Assessment
Evaluasi: Database & Testing
Uji pemahaman SQL, EF Core, transaksi, dan strategi testing melalui soal praktik.
-
Milestone
Milestone: Junior Backend Developer .NET
Mampu membangun, menguji, dan menjelaskan Web API berbasis database secara mandiri.
-
Topic
Konsep Container & Dasar Docker
Perbedaan container dan VM, arsitektur Docker, serta perintah dasar Docker CLI.
-
Subtopic
Image, Volume & Network
Layer image, persistensi data dengan volume, dan komunikasi antar container melalui network.
-
Topic
Dockerfile untuk Aplikasi .NET
Menulis Dockerfile multi-stage untuk build dan runtime aplikasi ASP.NET Core.
-
Topic
Docker Compose
Mendefinisikan lingkungan multi-container (API, database, cache) dalam satu file deklaratif.
-
Subtopic
Keamanan & Optimasi Image
Menjalankan container sebagai non-root, memilih base image minimal, dan memindai kerentanan image.
-
Project
Proyek: Kontainerisasi API Toko Online
Kemas API toko online beserta database menggunakan Dockerfile multi-stage dan Docker Compose, lengkap dengan healthcheck dan migration otomatis.
-
Assessment
Evaluasi: Docker
Kuis dan tantangan troubleshooting container yang gagal berjalan.
-
Topic
Fundamental Redis & Struktur Data
Redis sebagai in-memory data store: string, hash, list, set, sorted set, TTL, dan redis-cli.
-
Topic
Caching di ASP.NET Core
In-memory cache, IDistributedCache dengan Redis, HybridCache, output caching, dan pola cache-aside.
-
Subtopic
Strategi Invalidasi & Expiration
Absolute dan sliding expiration, invalidasi berbasis event, serta mencegah cache stampede.
-
Topic
Pola Lanjutan Redis
Pub/Sub, Redis Streams, distributed lock, rate limiting, dan penyimpanan session terdistribusi.
-
Topic
Persistence, Replikasi & High Availability Redis
RDB dan AOF, replikasi, Sentinel, Redis Cluster, serta pemantauan memori.
-
Project
Proyek: Caching & Rate Limiting API
Tambahkan caching katalog, rate limiting, dan distributed lock checkout ke API toko online, dijalankan melalui Docker Compose.
-
Assessment
Evaluasi: Redis
Studi kasus pemilihan strategi caching dan analisis risiko konsistensi data.
-
Topic
Prinsip SOLID & Design Pattern
SOLID, DRY, KISS, serta pola GoF yang sering dipakai di backend: Strategy, Factory, Decorator, Repository, dan Unit of Work.
-
Topic
Clean Architecture & Domain-Driven Design
Pemisahan layer domain, application, infrastructure, dan presentation; entity, value object, aggregate, dan bounded context.
-
Subtopic
CQRS & Mediator Pattern
Memisahkan command dan query, pipeline behavior untuk validasi dan logging.
-
Topic
Messaging & Event-Driven Architecture
Message broker (RabbitMQ), MassTransit, outbox pattern, idempotency, dan eventual consistency.
-
Topic
Microservices: Desain & Komunikasi
Kapan memilih microservices vs modular monolith, dekomposisi service, database per service, serta komunikasi sinkron dan asinkron.
-
Subtopic
Resiliency: Retry, Timeout & Circuit Breaker
Membuat panggilan antar-service tahan gangguan dengan Polly dan Microsoft.Extensions.Resilience.
-
Subtopic
API Gateway dengan YARP
Reverse proxy dan gateway sebagai pintu masuk tunggal: routing, autentikasi terpusat, dan rate limiting.
-
Optional · opsional
.NET Aspire
Orkestrasi pengembangan lokal aplikasi terdistribusi dengan service discovery, dashboard, dan telemetry bawaan.
-
Project
Proyek: Sistem Microservices Pemesanan
Pecah toko online menjadi service katalog, pesanan, pembayaran, dan notifikasi dengan Clean Architecture, RabbitMQ, Redis, API gateway, dan resiliency; semua berjalan di Docker Compose.
-
Assessment
Evaluasi: Arsitektur & Microservices
Review desain proyek microservices dan diskusi trade-off arsitektur.
-
Milestone
Milestone: Mid-level Backend Developer .NET
Mampu merancang dan membangun sistem backend terdistribusi berbasis container secara mandiri.
-
Topic
Konsep & Arsitektur Kubernetes
Control plane, node, kubelet, model deklaratif, kubectl, serta cluster lokal (kind/minikube).
-
Subtopic
Pod, Deployment & Service
Unit dasar workload, rolling update dan rollback, serta tipe Service ClusterIP, NodePort, dan LoadBalancer.
-
Topic
ConfigMap, Secret & Namespace
Memisahkan konfigurasi dari image, mengelola data sensitif, dan mengisolasi lingkungan dengan namespace.
-
Topic
Networking: Ingress & Service Discovery
DNS internal cluster, Ingress controller, TLS, dan NetworkPolicy.
-
Topic
Health Probe, Resource & Autoscaling
Liveness, readiness, dan startup probe yang terhubung ke health check ASP.NET Core; request/limit; HorizontalPodAutoscaler.
-
Topic
Storage & StatefulSet
PersistentVolume, PersistentVolumeClaim, StatefulSet, serta pertimbangan menjalankan database dan Redis di dalam cluster.
-
Topic
Helm
Package manager Kubernetes: chart, values, templating, dan release management.
-
Optional · opsional
GitOps dengan Argo CD
Sinkronisasi state cluster secara otomatis dari repository Git.
-
Project
Proyek: Deploy Microservices ke Kubernetes
Deploy sistem microservices pemesanan ke cluster Kubernetes menggunakan Helm, Ingress, probe, HPA, dan pipeline CI/CD.
-
Assessment
Evaluasi: Kubernetes
Tantangan troubleshooting pod yang gagal (CrashLoopBackOff, ImagePullBackOff, probe gagal) dan kuis konsep.
-
Topic
CI/CD dengan GitHub Actions
Pipeline otomatis untuk build, test, analisis kode, build image, dan deployment.
-
Topic
Observability: Log, Metrik & Tracing
Structured logging dengan Serilog, OpenTelemetry untuk metrik dan distributed tracing, serta dashboard dan alerting.
-
Topic
Keamanan Aplikasi Backend
OWASP Top 10, secret management, HTTPS, CORS, data protection, dan pemindaian dependensi.
-
Topic
Performa & Profiling .NET
Garbage collector, alokasi memori, Span<T>, pooling, benchmarking dengan BenchmarkDotNet, dan diagnosis dengan dotnet-counters/dotnet-trace.
-
Subtopic
Load Testing
Menguji kapasitas sistem dengan k6 dan menemukan bottleneck sebelum produksi.
-
Optional · opsional
Platform Cloud (Azure atau AWS)
Layanan terkelola untuk aplikasi .NET: managed Kubernetes (AKS/EKS), managed database, managed Redis, dan secret vault.
-
Topic
System Design untuk Backend
Skalabilitas, teorema CAP, sharding, replikasi, load balancing, desain API berskala besar, dan estimasi kapasitas.
-
Topic
Kepemimpinan Teknis
Code review yang efektif, mentoring, Architecture Decision Record, dokumentasi teknis, dan estimasi pekerjaan.
-
Project
Capstone: Platform Backend Production-Ready
Bangun platform backend lengkap (misalnya sistem reservasi atau marketplace) dengan Clean Architecture, microservices, Redis, messaging, CI/CD, Kubernetes, observability penuh, keamanan, dan hasil load test terdokumentasi.
-
Assessment
Evaluasi Akhir: Review Capstone & Mock Interview
Presentasi capstone, sesi system design interview, dan wawancara teknis setara posisi senior.
-
Milestone
Milestone: Senior Backend Developer .NET
Mampu merancang, membangun, mengoperasikan, dan memimpin pengembangan sistem backend .NET skala produksi.