Lewati ke konten utama
F3

F3 · Alat Kerja Developer

Terminal, Unix, skrip shell, dan Git dari dalam: alat yang dipakai setiap developer setiap hari, dipahami sampai mekanismenya, lalu dipakai bersama Codespaces, GitHub Actions, kontainer, dan asisten AI koding secara bertanggung jawab.

Bagian dari jalur:
Mulai Modul 01

Daftar modul

  1. 01Terminal dan shell8 latihan
  2. 02Sistem berkas8 latihan
  3. 03Teks, pipa, dan pengalihan8 latihan
  4. 04Pencarian dan ekspresi reguler8 latihan
  5. 05Proses dan izin9 latihan
  6. 06Skrip shell9 latihan
  7. 07Lingkungan dan paket9 latihan
  8. 08Git: merekam jejak8 latihan
  9. 09Git dari dalam8 latihan
  10. 10Git: cabang dan penggabungan8 latihan
  11. 11Kolaborasi di GitHub8 latihan
  12. 12Editor, debugging, dan membaca galat8 latihan
  13. 13Otomasi9 latihan
  14. 14CI dengan GitHub Actions8 latihan
  15. 15Jarak jauh dan kontainer8 latihan
  16. 16Proyek akhir: Perkakas Makmur8 latihan

Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data F3 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.

Tentang course ini

Terminal, Unix, skrip shell, dan Git dari dalam: alat yang dipakai setiap developer setiap hari, dipahami sampai mekanismenya, lalu dipakai bersama Codespaces, GitHub Actions, kontainer, dan asisten AI koding secara bertanggung jawab.

Course fondasi jalur Full Stack Developer, gratis penuh seperti F1, F2, F4, dan F5. Satu proyek berjalan dari Modul 01 sampai 16: repo perkakas untuk Warung Makmur (fiktif).


Posisi course

Di jalur Full Stack Developer

UrutanCoursePeran
1F1 · Pythonbahasa pertama; prasyarat F3
2F2 · SQLdata dan basis data
3F3 · Alat Kerja Developerterminal, skrip shell, Git, CI, kontainer
4F4 · TypeScript dan Webbahasa web; memakai terminal, Git, dan npm dari F3
5F5 · RilisDocker, CI, dan tayang; memakai Git, Actions, dan kontainer dari F3
6K1 · Struktur Data dan Algoritmadianjurkan
7C14 · Full Stack Developmentcourse inti; memakai terminal, Git (cabang, PR), dan GitHub Actions dari F3
8C11 · Desain Sistemsistem berskala besar

Kenapa course ini ada

Hampir semua pekerjaan developer melewati terminal dan Git: menjalankan tes, membaca log, memindahkan berkas, mengotomasi tugas, menyimpan riwayat kode, bekerja dalam tim, dan kini memberi perintah ke agen AI yang menjalankan perintah shell atas nama kamu. Banyak pemula bisa menyalin perintah dari internet atau dari jawaban AI tanpa tahu apa yang dilakukannya: rm -rf di folder yang salah, skrip yang diam-diam lanjut setelah galat, berkas rahasia yang ikut ter-commit, atau konflik merge yang "diselesaikan" dengan menghapus pekerjaan teman.

Cara klasik di course ini: model Unix (berkas, proses, pipa, izin), filosofi alat kecil yang bisa digabung, ekspresi reguler, skrip shell yang kokoh, Git sebagai basis data objek beralamat isi (blob, tree, commit, ref) yang kamu tiru sendiri dengan Python sampai hash-nya sama dengan Git asli, merge tiga arah dan merge base, make sebagai graf ketergantungan, dan kunci publik SSH. Cara modern: GitHub Codespaces sebagai lingkungan siap pakai, GitHub (PR, review, proteksi cabang), GitHub Actions untuk CI yang hemat kuota, Docker dan devcontainer, uv untuk Python, dan asisten AI koding di terminal yang setiap perintahnya kamu baca dulu sebelum dijalankan.

Untuk siapa

  • Lulusan F1 Python (wajib; latihan Python F3 memakai F1 Modul 01–10). Tidak perlu pengalaman terminal.
  • Yang kamu butuhkan: peramban dan akun GitHub gratis. Terminal Linux sungguhan tersedia di GitHub Codespaces; laptop dengan Linux atau macOS juga cukup.

Cara belajar

  • Mode langkah. Setiap modul berupa rangkaian layar: satu layar satu ide, dibuka dengan Intinya, dan setiap layar berakhir dengan interaksi (tebak keluaran, animasi dengan jeda, playground, atau latihan). Tombol Baca penuh menampilkan semua layar dalam satu halaman.
  • Contoh dan latihan Python berjalan di peramban. Peniru mekanisme (jalur, glob, izin oktal, regex, pengurai log, Git mini, make mini, cron, lapisan image) diperiksa otomatis dengan Python 3.11–3.13.
  • Latihan skrip shell dikerjakan di laptop atau Codespaces. Tes Python menjalankan skripmu dengan bash di folder sementara; contoh Git memakai repo baru dengan nama, email, dan waktu yang dipatok sehingga hash commit sama di setiap komputer.
  • Lab di komputermu (GitHub, SSH, Docker, devcontainer, CI sungguhan) ditutup dengan daftar "Selesai bila:" yang bisa kamu periksa sendiri.
  • Fakta yang cepat berubah (kuota GitHub Actions dan Codespaces, versi action dan image) diberi tanggal pengecekan dan tanda perlu dicek ulang; bila halaman resmi berkata lain, halaman resmi yang benar.
BagianDi manaDiperiksa
Latihan Python pustaka standarPeramban dan pemeriksa Python 3.11–3.13Otomatis
Latihan dan contoh skrip shell (bash), termasuk Git di repo sementaraLaptop atau GitHub CodespacesOtomatis (tes menjalankan skripmu)
GitHub (PR, review, Actions), SSH, Docker, devcontainerAkun GitHub gratis + CodespacesLab "Selesai bila:"

Waktu: ±3,5–4 jam per modul, total ±60 jam. Gratis seluruhnya.

Silabus (16 modul)

#ModulKlasikModernProyek Perkakas Makmur
01Terminal dan shellTerminal, shell, kernel; perintah dan argumen; PATH; manualCodespaces sebagai lingkungan siap pakaiRepo perkakas pertama di Codespaces
02Sistem berkasHierarki, jalur, glob, berkas tersembunyi, tautan, inodeEditor dan pencarian berkasStruktur folder proyek
03Teks, pipa, dan pengalihanstdin/stdout/stderr, pengalihan, pipa, alat teks, kode keluarMembaca keluaran panjangrekap.sh untuk kas/
04Pencarian dan ekspresi regulergrep, find, regex, sed, awkrg, regex di editoranalisis_log.sh dan urai_log
05Proses dan izinProses, sinyal, job, izin rwx dan oktal, umaskMelihat proses di CodespacesSkrip yang bisa dieksekusi
06Skrip shellVariabel, kutipan, kondisi, perulangan, fungsi, set -euo pipefail, trapShellCheck, kapan beralih ke Pythoncadangan.sh
07Lingkungan dan paketVariabel lingkungan, dotfiles, venv, versi dan lockfileuv, npm, .env dan rahasiaperiksa_lingkungan.sh
08Git: merekam jejakinit add commit status diff log, staging, .gitignoreGit di editorRiwayat perkakas
09Git dari dalamObjek blob/tree/commit, SHA-1, ref, HEAD, indeksMembaca .git/ sendiriminigit.py dengan hash sama dengan Git
10Git: cabang dan penggabunganCabang, fast-forward, merge tiga arah, konflik, merge base, rebase, reflogAlat konflik di editormerge_base, cabang fitur dan konflik
11Kolaborasi di GitHubRemote, fetch pull push, PR, review, proteksi cabang, SemVerGitHub CLI, review dengan AIPR pertama ke perkakas
12Editor, debugging, dan membaca galatTraceback, debugger, logging, git bisectLSP dan debugger di editorbisect
13Otomasimake (graf, cap waktu), cron, hook GitTask runner, framework pre-commitMakefile, minimake.py, hook pre-commit
14CI dengan GitHub ActionsIntegrasi berkelanjutan, workflow sebagai kodeYAML, matrix, cache, rahasia, menghemat kuota.github/workflows/ci.yml
15Jarak jauh dan kontainerSSH dan kunci publik, scp/rsync, proses lawan kontainerDocker, devcontainer, Codespaces.devcontainer/devcontainer.json
16Proyek akhir: Perkakas MakmurMenyatukan skrip, Git, otomasi, CIAI koding di terminal yang bertanggung jawabRepo perkakas utuh + panduan

Proyek: Perkakas Makmur

Warung Makmur punya situs pesan sederhana dan catatan kas harian. Kamu membuat repo perkakas: skrip shell untuk merekap kas dan menganalisis log akses, cadangan otomatis, pemeriksa lingkungan, minigit.py (Git mini dengan Python yang hash-nya sama dengan Git asli), minimake.py, Makefile, hook pre-commit, CI GitHub Actions, dan devcontainer. Data di data/ (dibuat deterministik oleh data/buat_data.py): log akses situs pesan (termasuk pemindai otomatis dan endpoint yang lambat), catatan kas harian dengan satu hari hilang dan satu baris rusak, serta berkas pemasok dari Windows (BOM dan CRLF). Kontrak data, angka rujukan, dan alat: proyek-perkakas.md.

Kerangka setiap modul

# Modul NN · Judul

> **Hasil belajar:** … / **Prasyarat:** modul sebelumnya (bertaut) / **Waktu:** … / **Proyek:** langkah Perkakas Makmur

## Intinya                     3–5 butir
## 1. Konsep pertama           layar jelaskan, tebak/cek, animasi, playground → latihan bagian ini
## …
## N. Proyek                   aturan alat (cek) → latihan proyek → lab di komputermu
## N+1. Belajar bersama AI     periksa jawaban AI; tugas tanpa AI, dengan AI, dan bandingkan (opsional)
## N+2. Pendalaman (opsional)  di balik layar, sejarah, dunia kerja
## Rangkuman
## Sumber
  • Contoh terperiksa: contoh shell dijalankan dan keluarannya dibandingkan dengan yang tertulis; perintah yang tidak bisa dijalankan pemeriksa (jaringan, sudo, Docker, SSH ke server) ditulis sebagai bacaan dengan label "contoh keluaran".
  • Latihan bertingkat: minimal 8 per modul (dasar, menengah, tantangan), campuran skrip bash dan Python yang meniru mekanismenya; setiap latihan punya petunjuk bertingkat dan solusi dengan penjelasan mengapa.
  • Kesalahan umum (pesan galat shell dan Git sungguhan, juga kesalahan yang tidak memunculkan pesan) menjadi layar "tebak galat" di dekat konsepnya.
  • Belajar bersama AI: termasuk keselamatan asisten AI di terminal (baca setiap perintah sebelum dijalankan, jangan menempelkan rahasia, waspadai perintah yang menghapus atau menimpa).
  • Sumber klasik bergantian: Kernighan dan Pike, The UNIX Programming Environment (1984); Ritchie dan Thompson (1974) "The UNIX Time-Sharing System"; Raymond, The Art of Unix Programming (2003); Shotts, The Linux Command Line (ed. 2, 2019); Chacon dan Straub, Pro Git (ed. 2, 2014); Friedl, Mastering Regular Expressions (ed. 3, 2006); Feldman (1979) "Make"; Thompson (1968) tentang regex; Fowler, "Continuous Integration"; POSIX (The Open Group Base Specifications); manual GNU Bash.

Hubungan dengan course lain

CourseHubungan
F1 · PythonPrasyarat; Python untuk latihan peniru mekanisme dan alat yang lebih besar dari skrip shell
F4 · TypeScript dan WebMemakai terminal, Git, dan npm dari F3
F5 · RilisMemakai Git, GitHub Actions, dan Docker dari F3 untuk menayangkan aplikasi
C14 · Full Stack DevelopmentMemakai terminal, Git (cabang, PR), dan GitHub Actions dari F3 di proyek full stack
C5 · Modern Software DevelopmentMemperdalam CI/CD dan kerja bersama agen AI di proyek nyata
Semua courseCodespaces, Git, dan terminal dipakai di setiap lab

Sisi sistem di bawah shell (system call, penjadwalan proses, sistem berkas di kernel) dan jaringan (TCP, HTTP, cara kerja SSH di tingkat protokol) cukup dibahas di F3 sejauh dipakai alatnya; pembahasan mendalamnya ada di course klasik tentang sistem komputer dan jaringan.