9 Proyek Pemrograman yang Akan Membuat Anda Menjadi Developer yang Lebih Baik

TThe Coding Koala
Computing/SoftwareAdult EducationInternet Technology

Transcript

00:00:00Tahukah kamu apa yang lebih membuat frustrasi daripada membangun sebuah proyek? Tidak tahu harus membangun apa.
00:00:04Pada titik tertentu dalam perjalananmu sebagai pengembang, kamu akan mencapai fase yang aneh ini.
00:00:08Membangun aplikasi CRUD lainnya dengan framework JavaScript terasa membosankan,
00:00:11tapi membangun sistem operasi dari nol rasanya mustahil. Kamu terjebak di tengah-tengah.
00:00:16Kamu tidak ingin yang terlalu mudah. Kamu tidak ingin yang mustahil. Kamu hanya ingin sesuatu yang bermakna.
00:00:21Sesuatu yang cukup menantang untuk meningkatkan keahlianmu, tapi tidak begitu sulit sampai kamu berhenti di tengah jalan.
00:00:26Percayalah, saya pernah merasakannya. Jadi dalam video ini, saya akan memberikan beberapa ide proyek yang sangat bagus.
00:00:32Saya membagi ini ke dalam tiga level. Level satu, membangun fondasi. Level dua, penyimpanan,
00:00:38database, dan sistem data. Dan level tiga, sistem tingkat lanjut dan internal.
00:00:44Jika kamu membangun proyek-proyek ini, kamu tidak hanya akan menjadi lebih baik dalam coding. Kamu akan mulai berpikir layaknya seorang
00:00:49engineer. Mari kita mulai dengan level satu. Proyek pertama adalah membangun server HTTP milikmu sendiri dari
00:00:55nol. Jika kamu menonton ini, kamu mungkin tahu apa itu server HTTP. Setiap kali kamu membuka
00:01:01sebuah situs web atau memanggil API, ada permintaan dan respons yang terjadi di balik layar.
00:01:06Tapi selama ini, kamu hanya berinteraksi dengannya melalui framework seperti Express. Membangun server
00:01:12HTTP mini sendiri memaksamu untuk memahami apa yang sebenarnya terjadi di bawahnya. Kamu akan belajar bagaimana soket TCP
00:01:19mengirim dan menerima data, bagaimana permintaan HTTP di-parse, bagaimana respons diformat, dan bagaimana banyak
00:01:25permintaan ditangani secara bersamaan. Jika kamu sudah merasa kewalahan tentang bagaimana kamu
00:01:30seharusnya mengerjakan proyek-proyek ini, saya punya sedikit solusi untukmu di akhir video ini. Pastikan
00:01:35jangan sampai terlewatkan. Sekarang mari kita lanjut ke proyek kedua. Membangun shell milikmu sendiri. Kamu pernah menggunakan
00:01:40perintah seperti cd, ls, pwd ratusan kali. Tapi pernahkah kamu berpikir tentang apa yang sebenarnya memproses
00:01:46perintah-perintah itu? Saat kamu membangun shell sendiri, kamu menciptakan sistem itu sendiri. Kamu akan mempelajari hal-hal
00:01:52seperti membaca dan memproses input pengguna, menjalankan proses dan menangani system call, serta
00:01:58memahami konsep tingkat OS seperti proses dan perintah. Dengan membangun shell sendiri dari nol,
00:02:04kamu akan memahami komputer dari level yang mendalam. Sekarang hal-hal mulai menjadi menarik. Kita akan melihat apa saja
00:02:09proyek yang ada di level dua. Proyek pertama di sini adalah membangun Redis milikmu sendiri. Redis adalah
00:02:15penyimpanan data in-memory yang digunakan sebagai cache, database, broker pesan, dan banyak lagi. Ini sangat cepat. Tapi
00:02:21sampai kamu membangunnya sendiri, kamu tidak akan benar-benar mengerti alasannya. Saat kamu mengimplementasikan tiruan
00:02:26Redis milikmu sendiri, kamu akan belajar cara kerja struktur data in-memory. Kamu akan mengimplementasikan perintah dasar Redis. Kamu
00:02:32akan memahami protokol Redis. Kamu akan mengelola banyak koneksi klien secara efisien menggunakan event
00:02:38loop. Ini hanyalah beberapa poin utamanya. Masih banyak hal yang akan kamu pelajari setelah kamu mulai
00:02:43mengerjakan ini. Kamu akan menyadari bahwa rekayasa perangkat lunak lebih dari sekadar membangun aplikasi CRUD.
00:02:48Proyek berikutnya adalah membangun GIT milikmu sendiri. Kamu menggunakan GIT setiap hari. Tapi tahukah kamu cara kerjanya?
00:02:54Saat kamu membangun sistem kontrol versi yang disederhanakan sendiri, semuanya akan menjadi jelas. Kamu akan memahami
00:03:00bagaimana commit disimpan secara internal. Kamu akan mengimplementasikan hashing dan penyimpanan beralamat konten.
00:03:05Kamu akan menyusun snapshot file ke dalam pohon commit. Dan ada banyak lagi yang akan kamu pelajari dan implementasikan.
00:03:11Dan hal hebat tentang membangun dari nol adalah kamu bisa memodifikasinya agar bekerja sesuai keinginanmu.
00:03:16Terakhir, proyek ketiga kita adalah membangun database SQLite milikmu sendiri. SQLite adalah sebuah engine
00:03:22database serverless yang menyimpan semuanya dalam satu file. Tidak seperti MySQL atau Postgres, tidak ada proses
00:03:29server terpisah. Ia ringan namun sangat kuat. Saat kamu membangun versimu sendiri,
00:03:34kamu akan mengerti bagaimana data diatur menggunakan struktur seperti B-tree. Kamu akan mem-parse dan menjalankan
00:03:39query sederhana. Kamu akan mengimplementasikan pengindeksan untuk pengambilan data yang lebih cepat. Sebagai pengembang, kamu tidak bisa lepas dari
00:03:45database. Tapi begitu kamu memahami cara kerjanya secara internal, kamu akan menjadi bagian dari segelintir pengembang ahli.
00:03:52Sekarang di level tiga, kita masuk lebih dalam. Proyek pertama di sini adalah membangun bahasa pemrograman mini milikmu sendiri.
00:03:58Ya, bahasamu sendiri. Kamu akan membuat sesuatu yang membaca kode, memahaminya, dan menjalankan
00:04:04instruksi. Dan meskipun terdengar menakutkan, ini adalah salah satu proyek paling memuaskan yang bisa kamu bangun.
00:04:10Kamu akan belajar dan mengimplementasikan hal-hal seperti Lexer, Parser, dan Abstract Syntax Tree. Yang terpenting, kamu akan
00:04:17memahami bagaimana interpreter dan compiler sebenarnya bekerja. Ini adalah proyek yang luar biasa karena akhirnya kamu akan
00:04:22mengerti bagaimana kita sebenarnya berkomunikasi dengan komputer. Dan kamu juga bisa pamer bahwa kamu menciptakan
00:04:27sebuah bahasa pemrograman dan menamainya sesuka hatimu. Lalu proyek kedua adalah membangun
00:04:32klien BitTorrent-mu sendiri. Di sinilah sistem terdistribusi mulai berperan. BitTorrent adalah sistem
00:04:38berbagi file peer-to-peer di mana pengguna mengunduh potongan file dari banyak rekan, bukan dari satu server.
00:04:44Saat kamu membangun ini, kamu akan mengimplementasikan penemuan peer, mengelola koneksi antar node, membagi file menjadi
00:04:50potongan-potongan, memastikan integritas file, dan menangani komunikasi terdistribusi. Ini bukan proyek yang mudah.
00:04:57Saya yakin kamu bahkan tidak mengerti setengah dari apa yang baru saja saya katakan. Tapi ini mengajarkanmu bagaimana sistem terdistribusi
00:05:02skala besar sebenarnya berfungsi. Dan akhirnya, proyek terakhir kita adalah membangun asisten coding
00:05:08milikmu sendiri. Sesuatu yang mirip dengan Claude code. Alat AI modern terasa hebat. Namun di balik layar, mereka adalah
00:05:14sistem yang mengintegrasikan model bahasa besar (LLM) dengan arsitektur perangkat lunak tradisional. Saat kamu membangunnya
00:05:20sendiri, kamu akan mengintegrasikan API LLM ke dalam sebuah aplikasi. Kamu akan mem-parse dan mengindeks file proyek
00:05:27untuk memberikan konteks. Kamu akan mengelola prompt dan mengontrol respons. Kamu akan merancang sistem yang
00:05:32memadukan AI dengan prinsip-prinsip rekayasa yang nyata. Dan setelah kamu mulai mengerjakan ini, kamu akan mengerti
00:05:38bagaimana alat coding AI populer ini sebenarnya bekerja di balik layar. Dan tidak hanya itu, karena AI sangat
00:05:44populer saat ini, ini adalah proyek yang sangat bagus dan menantang yang dapat membuatmu menonjol. Mari kita jujur.
00:05:50Beberapa dari proyek ini sulit. Membangun Redis, Git, atau klien BitTorrent milikmu sendiri bukanlah
00:05:55sesuatu yang bisa kamu selesaikan santai dalam satu akhir pekan. Kamu akan buntu. Kamu akan meragukan dirimu sendiri. Terkadang
00:06:01kamu bahkan tidak tahu apakah kamu mengimplementasikannya dengan benar. Dan di situlah biasanya kebanyakan orang
00:06:05berhenti. Jadi untuk mengatasi hal ini, ada sebuah platform bernama CodeCrafters. Ini adalah platform belajar
00:06:11berbasis proyek di mana kamu membangun kembali alat-alat seperti Redis, SQLite, server DNS, server HTTP, langkah demi langkah. Mereka tidak
00:06:19memberimu solusinya. Mereka memberimu pengujian dan pencapaian terstruktur. Dan kamu mengimplementasikan semuanya
00:06:23sendiri. Saya pribadi menggunakannya saat mengerjakan proyek-proyek ini. Dan sejujurnya, memiliki arahan yang
00:06:29terstruktur membuat perbedaan antara berhenti di tengah jalan dan menyelesaikannya. Jadi jika kamu menyukai ide proyek ini tetapi
00:06:34ingin bimbingan sambil tetap melakukan pekerjaan yang sebenarnya, saya akan menyertakan link di deskripsi. Tapi entah kamu menggunakan
00:06:39sebuah platform atau belajar sepenuhnya sendiri, hal yang penting adalah kamu benar-benar membangunnya sendiri. Jika kamu juga
00:06:45telah menjelajahi seluruh internet, mencari proyek berikutnya untuk dibangun, saya harap ini memberimu kejelasan.
00:06:51Mungkin terasa menakutkan pada awalnya, tetapi air dingin tidak akan terasa hangat sampai kamu melompat ke dalamnya. Jika kamu menyukai
00:06:57video semacam ini, pastikan untuk like, subscribe, dan beri tahu saya proyek mana yang akan kamu mulai.
00:07:02Sampai jumpa di video berikutnya.

Key Takeaway

Membangun ulang teknologi fundamental dari nol adalah cara terbaik untuk bertransformasi dari sekadar penulis kode menjadi seorang engineer perangkat lunak yang kompeten.

Highlights

Transisi dari sekadar membangun aplikasi CRUD membosankan ke proyek sistem yang bermakna.

Tiga level proyek pemrograman: Fondasi, Sistem Data, dan Sistem Tingkat Lanjut.

Pentingnya membangun dari nol untuk memahami protokol seperti HTTP, TCP, dan sistem operasi.

Memahami internal alat harian seperti Git dan SQLite untuk menjadi pengembang tingkat ahli.

Eksplorasi teknologi modern melalui pembuatan bahasa pemrograman sendiri dan asisten coding AI.

Rekomendasi platform CodeCrafters untuk bimbingan terstruktur dalam membangun proyek sulit.

Timeline

Pendahuluan: Keluar dari Fase Menengah

Banyak pengembang terjebak dalam fase merasa bosan dengan aplikasi CRUD sederhana namun merasa sistem operasi terlalu sulit. Pembicara menekankan bahwa ada titik tengah yang bermakna untuk meningkatkan keahlian teknis secara signifikan. Video ini menjanjikan sembilan ide proyek yang dibagi menjadi tiga tingkat kesulitan untuk melatih cara berpikir seorang engineer. Fokus utamanya adalah memberikan tantangan yang cukup sulit untuk berkembang tetapi tetap bisa diselesaikan. Pendekatan ini bertujuan agar pengembang tidak berhenti di tengah jalan karena frustrasi.

Level 1: Membangun Fondasi (Server HTTP & Shell)

Level pertama dimulai dengan proyek membangun server HTTP dan shell sendiri dari awal tanpa menggunakan framework. Membangun server HTTP memaksa pengembang memahami soket TCP, parsing permintaan, serta penanganan banyak koneksi secara bersamaan. Sementara itu, membuat shell sendiri memberikan wawasan mendalam tentang bagaimana sistem operasi memproses perintah seperti cd dan ls. Melalui proyek ini, seseorang akan belajar tentang system call dan manajemen proses di tingkat sistem operasi yang mendasar. Ini adalah langkah awal yang krusial untuk memahami apa yang sebenarnya terjadi di balik layar aplikasi web.

Level 2: Sistem Data (Redis, Git, & SQLite)

Pada level kedua, fokus beralih ke penyimpanan dan manajemen data melalui replikasi alat populer seperti Redis, Git, dan SQLite. Membangun Redis membantu pengembang memahami struktur data in-memory dan event loop untuk performa yang sangat cepat. Proyek Git akan mengungkap rahasia hashing, penyimpanan beralamat konten, dan bagaimana pohon commit disusun secara internal. Terakhir, membuat tiruan SQLite mengajarkan tentang pengaturan data menggunakan B-tree dan eksekusi query dalam engine database serverless. Pemahaman internal ini akan menempatkan pengembang di antara segelintir ahli yang benar-benar menguasai ekosistem database.

Level 3: Sistem Lanjut (Bahasa Pemrograman, BitTorrent, & AI)

Level ketiga mencakup proyek yang sangat kompleks seperti membuat bahasa pemrograman mini, klien BitTorrent, dan asisten coding AI. Membuat bahasa pemrograman melibatkan implementasi Lexer, Parser, dan Abstract Syntax Tree untuk memahami cara kerja interpreter atau compiler. Proyek BitTorrent memperkenalkan konsep sistem terdistribusi, komunikasi peer-to-peer, dan integritas data dalam skala besar. Terakhir, membangun asisten coding AI serupa Claude Code akan mengajarkan integrasi API LLM dengan arsitektur perangkat lunak tradisional. Proyek-proyek ini tidak hanya menantang tetapi juga sangat berharga untuk membuat portofolio yang menonjol di industri teknologi.

Solusi untuk Hambatan dan Kesimpulan

Pembicara mengakui bahwa proyek-proyek tingkat lanjut ini sangat sulit dan seringkali membuat orang menyerah di tengah jalan. Untuk mengatasi hal tersebut, diperkenalkan platform CodeCrafters yang menawarkan jalur pembelajaran terstruktur dengan pengujian otomatis tanpa memberikan solusi langsung. Penggunaan platform ini sangat membantu dalam memberikan arah dan pencapaian yang jelas bagi pengembang yang merasa buntu. Pesan penutupnya adalah pentingnya membangun sendiri meskipun terasa menakutkan karena pengalaman langsung tidak tergantikan oleh teori. Video diakhiri dengan ajakan untuk mulai melompat ke tantangan baru demi kemajuan karier pemrograman.

Community Posts

View all posts