Perkembangan teknologi aplikasi web saat ini sudah sangat jauh berbeda ketimbang pertama kali saya mempelajarinya di tahun 2003. Cukup dengan bermodalkan PHP, MySQL, HTML dan CSS saja, saya sudah bisa membangun sebuah aplikasi yang termasuk Wahhh kala itu. Akan tetapi, seiring dengan semakin dinamisnya kompetisi di dunia industri, kebutuhan terhadap perkembangan teknologi informasi sebagai modal untuk bersaing juga semakin tinggi. Alhasil, cara interaksi antara pengguna dan aplikasi dengan sendirinya turut mengalami perubahan.

Dalam perjalanan karir saya sebagai seorang web developer selama 10 tahun lebih, saya sudah sangat-sangat akrab dengan berbagai kalimat seperti : “mas, kan itu cuma ganti lokasi menu / klik-klik dikit doang beres”, “halah mas, itu kan cuman diginiin atau digituin aja apa susahnya sih”, “mas, padahal cuma sesederhana itu koq lama banget sih ngerubahnya ?” dan lain-lain … kalau sudah begini, respon saya paling hanya senyum, sambil sesekali ngelus dada. Apa yang tidak diketahui oleh mayoritas pengguna awam adalah : semakin lengkap fitur aplikasi, semakin mudah dan nyaman aplikasi digunakan, maka bisa dipastikan bahwa tingkat kesulitan yang dihadapi si developer untuk membangun aplikasi juga semakin tinggi.

Dalam kurun waktu kurang lebih 5 tahun terakhir, teknologi web telah berkembang sedemikian pesatnya dan makin kesini, terasa kian rumit (pendapat pribadi). Saking melebarnya teknologi yang ada di balik proses pembuatan aplikasi web, kondisi ini menjadikan profesi web developer cenderung terspesialisasi. Ada spesialis yang khusus mengurusi tampilan (frontend developer), ada pula spesialis yang bertanggung jawab terhadap pemrosesan data di balik layar (backend developer), masing-masing memiliki kualifikasi keahlian / syarat penguasaan teknologi yang berbeda. Sedangkan full stack developer adalah yang menguasai keduanya.

Frontend Developer

Sesuai namanya front yang berarti di depan. Frontend adalah bagian dari web yang dapat dilihat oleh pengguna. Di antarmuka inilah pengguna melakukan interaksi dengan aplikasi web yang dibangun oleh developer. Secara garis besar, teknologi yang dilibatkan untuk frontend meliputi HTML, CSS dan Javascript. Di antara ketiganya, hanya Javascript yang dapat dikategorikan sebagai bahasa pemrograman.

HTML (HyperText Markup Languange) digunakan untuk mengatur tata letak dan konten web, misal : tampilan akan dipisah menjadi berapa bagian / kolom, lalu masing-masing bagian di dalamnya akan diisi dengan konten teks / gambar / video apa saja. Sedangkan CSS (Cascading Style Sheets) berfungsi untuk membuat tampilan web agar terlihat lebih rapih dan menarik, seperti : menentukan ukuran / warna huruf, menentukan warna / gambar latar, mengatur jarak antar paragraf, menyesuaikan lebar dan tinggi setiap komponen pada halaman web dan lain-lain.

Sebagai pelengkap dari HTML dan CSS adalah Javascript, sekaligus yang paling rumit di antara ketiganya. Berkat Javascript, aplikasi web dapat dibuat menjadi lebih interaktif dan menarik. Contoh paling sederhana : jika ingin menambahkan data baru ke aplikasi, normalnya halaman web akan membutuhkan refresh / memuat ulang halaman. Tapi dengan bantuan Javascript, browser dapat diatur sedemikian rupa agar tidak lagi memuat keseluruhan halaman, cukup data yang diperlukan saja. Selain itu, Javascript juga kerap digunakan untuk efek animasi pada halaman web yang pastinya mustahil dilakukan jika hanya mengandalkan HTML dan CSS.

Backend Developer

Berkebalikan dari tugas frontend developer, pekerjaan utama orang backend adalah terkait pemrosesan data. Teknologi atau bahasa pemrograman untuk backend development ada banyak, namun beberapa yang populer di antaranya : PHP, Ruby, Python. Masing-masing bahasa pemrograman tersebut hadir dengan keunggulan (plus kekurangan nya) masing-masing.

Selain menguasai bahasa pemrograman di atas, backend developer masih dituntut untuk memahami cara kerja database / basis data, mampu menterjemahkan konsep penyimpanan data ke dalam bahasa SQL (database relasional) atau No SQL (database non relasional). Contoh database SQL antara lain : MariaDB / MySQL, Postgre. Sedangkan untuk kategori No SQL ada : MongoDB, Redis, Casandra. Ini masih belum termasuk sintaks data dengan format XML / JSON yang umum digunakan untuk keperluan pertukaran data antar aplikasi.

Membahas teknologi backend, tidak lengkap rasanya tanpa menyebutkan istilah web server. Sebab, tanpa kehadiran web server, aplikasi web yang dibangun dengan bahasa pemrograman tertentu (seperti PHP) tidak dapat dijalankan. Contoh web server paling populer saat ini : Apache dan Nginx, keduanya telah menjadi standar layanan di berbagai perusahaan hosting terkemuka.

Full Stack Developer

Full stack developer adalah mereka yang telah memiliki keahlian memadai untuk pekerjaan backend, namun tertarik mempelajari cara kerja teknologi frontend (berlaku sebaliknya). Hal ini membuat seorang full stack developer cenderung memiliki kemampuan analisis masalah yang lebih baik karena sedikit banyak telah memahami apa yang menjadi karakteristik maupun kebutuhan di bagian programming lainnya.

Menapaki jalur full stack developer bukanlah perkara mudah, namun jika berhasil dicapai, pastinya akan menjadi nilai tambah yang signifikan di mata perusahaan (bagi mereka yang ingin melamar kerja kantoran). Sedangkan untuk pekerja lepas / freelancer dengan tipikal one man show seperti saya, pengetahuan full stack memungkinkan siapapun membangun aplikasi web utuh tanpa melibatkan orang lain (honor pekerjaan pun dapat 100% dinikmati sendiri).