Tentang Dunia Web Development
Apa yang seorang web developer lakukan?
Singkatnya sih, ya, membuat dan memelihara website. Lebih jelasnya disini.
Ditengah pesatnya kebergantungan bisnis pada teknologi, ditambah ada makin banyak startup atau tech company yang bermunculan, gue rasa permintaan akan web developer semakin tinggi dan menjanjikan.
Klien web developer ini macem-macem, dan nggak semua pekerjaan sebagai software developer itu untuk klien eksternal. “Klien” disini bisa aja perusahaan teknologi tempat kamu kerja, organisasi, pemerintah, dan lain-lain yang butuh dibuatkan sebuah website atau aplikasi web.
Mungkin satu dilema umum orang yang berkecipung di dunia web development adalah banyak banget tools yang tersedia. Ada banyak banget pilihan framework dari berbagai bahasa pemrograman, yang menawarkan berbagai pilihan. Bagi yang udah dewa sih ini bisa membawa keuntungan besar. Mereka jadi bisa bikin berbagai fitur variatif dan berekperimen lebih banyak. Tapi buat pemula, ini bisa jadi bikin mereka pusing.
Gue harus belajar apa dulu? Mending pake PHP atau Ruby on Rails? Eh kenapa nggak pake Node JS? Framework PHP yang populer aja ada banyak: Symfony, Codeigneter, YII, Laravel -- gue harus pake yang mana nih? Dan lain-lain. Kalau kamu mau belajar web development dan merasakan kebingunan ini, tenang, kamu nggak sendirian.
Gue kadang menganggap kalau web development itu kayak super power. Kenapa? Soalnya kamu bisa bikin berbagai macam aplikasi web dimanapun, dan dengan beberapa klik, lalu upload, dan.. BAM! Semua orang diseluruh dunia, dimanapun, dan kapanpun bisa mengakses karya yang kamu buat.
Ditulisan ini, gue cuman mau berbagai beberapa hal tentang web development, yang siapa tau berguna buat pemula yang tertarik mendalami bidang ini.
Dua Peran Penting
Proses pengembangan website atau aplikasi web meliputi dua aspek, yaitu Front End dan Back End.Front End Developer
Sederhananya, Front End adalah apapun yang kamu liat di browser. Developer disinilah yang membuat tampilan web menarik. Merekalah secara khusus berfokus pada bagian HTML, CSS, dan Javascript berhubung ketiga teknologi tersebut tinggalnya di browser.
Front End Developer sebenernya nggak harus bikin website terlihat indah dan bagus (itu tugas designer), tapi dialah yang membuat gimana caranya menyajikan informasi dan bisa memberi interaksi pasa user sebaik mungkin.
Back End Developer
Dialah agen dibalik layar. Back end developer lah yang membuat aplikasi web bisa hidup di server. Dialah yang bikin algoritme dan mendesain sistem yang bisa bekerja dengan efisien.
Fokus dari Back End adalah gimana caranya agar data yang mengalir bisa masuk dan keluar di tempat yang tepat. Kalau proses pembuatan aplikasi web itu diibaratkan sebagai gunung es, Back End Development adalah yang jadi bagian es dibawah permukaan lautnya, walaupun nggak keliatan dari luar, tapi dia berperan sangat penting untuk bisa membuat website berjalan semestinya.
Full Stack Developer
Di banyak perusahaan teknologi bagian Front End dan Back End Development itu dibuat terpisah. Tapi walaupun begitu, saat ini banyak dicari orang-orang yang bisa keduanya. Jadi bukan cuman orang yang ngerti gimana bikin animasi javascript unyu pas orang lagi ngebuka website, tapi juga ngerti bagian database dan browsernya.
Apa bedanya Web site dengan Web Applications (Aplikasi Web)
Ada banyak pendapat tentang perbedaan kedua benda ini, tapi ini yang gue setuju:
Web site itu statis, artinya kommponen-komponen dan konten yang ada didalamnya memang sengaja didesain seperti itu dan nggak berubah. Sementara aplikasi web membutuhkan kodingan dan algoritma pintar yang berjalan di servermdan bisa memberikan konten dinamis.
Apa saja yang dibutuhkan untuk memulai?
Pertama, jelas, kamu butuh komputer (ya iya lah, nenek-nenek bertato yang hobinya silat juga tau).
Kedua, Text Editor. Ada banyak pilihan, seperti Notepad++, Sublime text, Vim, Emacs, dan lain-lain. Kamu juga mungkin butuh IDE (kalau mau, selera orang sih) seperti Eclipse, Netbeans, Phpstorm, dan lain-lain.
Ketiga, CLI atau Command Line Interface. Kalau di windows biasanya disebut terminal, atau command line. Beberapa peran penting dari terminal adalah saat kamu menggunakan version control, saat nge-deploy ke web, dan bereksperimen dengan query atau ngobrak-ngabrik database.
Keempat, jelas, jadikan Google sebagai teman setia. Tapi biasanya kalau googling juga yang dikasih alamat Stackoverflow, maka jadikan dia juga sebagai teman setia.
Learning Resources
Menurut gue ada dua cara belajar software development: book oriented dan project oriented.Cara pertama adalah dengan cari buku yang bagus, terus baca dan ikuti buku tersebut sampai selesai. Cara kedua adalah dengan memikirkan aplikasi apa yang ingin kamu buat, lalu pelajari teknologi apa aja yang dibutuhkan untuk bisa membuat aplikasi yang tadi, belajarnya dari belakang berarti. Gue sih lebih suka cara kedua.
Sebenernya, banyak banget sumber-sumber belajar yang udah bejibun di internet. Dari mulai blog tutorial, MOOC, dan youtube channel. Berikut beberapa yang gratis sekaligus yang gue suka dan rekomendasikan:
- Learn PHP interactively
- CS50 edX
- An Advance Guide to HTML & CSS
- Kumpulan Dokumentasi Workshop Oreilly
- [buku] Head First HTML5
Bagaimana dengan Freelancer?
Seperti gue bilang diawal tadi, ternyata ada banyak juga yang memilih jadi freelancer. Dan gue rasa mungkin nggak sedikit juga pelajar atau mahasiswa yang mencoba nyambi dengan nyari projekan sendiri. Tapi gimana sih umumnya web dev freelancer itu dibayar?Gue sendiri sebenernya belum punya pengalaman banyak. Projek berkontrak yang pernah gue kerjain pun baru dua butir. Tapi gue bisa kasih gambaran gini (hasil kompilasi dari saran-saran Web Dev senior): Estimasikan berapa lama waktu yang dibutuhkan untuk mengerjakan proyek ini, lalu kali dua.
Mari kita ambil contoh yang sederhana aja, misal ada pengusaha yang minta bikinin website perusahaan meggunakan WordPress.
Setelah didata, berikut kira-kira yang harus kamu kerjakan dengan estimasi waktunya:
- 1 jam dibutuhkan untuk analisis kebutuhan dan apa yang sebenarnya si klien inginkan.
- 1 jam untuk mencari asset gambar-gambar.
- 2 jam untuk nyari layanan pembuatan logo, atau nyewa designer untuk minta bikinin logo perusahaan/produk
- 1 jam dibutuhkan untuk meng-install script analytics, wordpress, dan set up ke hosting
- 1 jam untuk nyari tema di ThemeForest, beli, dan meng-installnya.
- 1 jam untuk ngerevisi ulang asset gambar-gambar yang ada dan konfirmasi ke klien.
- 2 ngerevisi ulang desain logo dan konfirmasi ke klien.
- 3 untuk mengatur dan membuat halaman-halaman yang dibutuhkan, termasuk coding fitur-fitur tertentu sesuai permintaan klien.
- 2 jam untuk revisi situs ke klien.
- 3 jam dibutuhkan untuk ngajarin klien dasar-dasar menggunakan Wordpress dan apa maksud dari data-data analytics yang ada.
Lalu kamu akan duduk tenang dan bilang, “Ok, jadi proyek ini butuh 17 jam kerja untuk bisa selesai. Gue bisa selesaikan ini dalam beberapa hari, gue sih bakal minta seminggu, dan masang tarif ke klien Rp 2.550.000,- (17 x Rp 150rb/jam). Ok lah, sip.” Betul?
Salah.
Kalikan jangankuan semua proyek tadi dengan angka dua. Serius, beberapa malah bilang dua kali lipat itu masih kurang. Kenapa? Karena seringkali pada proses development kita butuh banyak eksperimen dan waktu untuk berpikir. Untuk bikin satu fitur misalnya, biasanya kita bakal bereksperimen dengan berbagai macam library, mencari yang paling cocok, baru di koding. Kalau nggak memuaskan, ya eksperimen lagi.
Paling rasional sih kalau ngerjainnya terstrukrur. Jangan kayak sangkuriang yang bikin kerjaan programmer keliatan seperti orang tanpa kehidupan. Misal, bisa nggak kamu menyisihkan 2-3 jam sehari untuk proyek tadi? Anggap kamu bakal ngerjainnya antara hari senin sampai jumat, itu sekitar 13 jam per minggu. Lalu, yang selanjutkan kamu lakukan adalah bilang ke klien kalau proyek ini bakal selesai dalam 2 minggu, dengan total tarif Rp 5.100.000,-
Klien kamu mungkin bakal gigit jari ngedenger angka tadi. Dan kamu mungkin nggak tega juga ngasih angka sebesar itu ke doi. Tapi itulah yang dibutuhkan untuk membuat bisnis bisa berjalan. Tapi kadang juga terjadi ketika kamu ngasih harga tersebut ke klien, dan nggak pake mikir dia langsung sepakat. Ketika momen itu terjadi otak kamu nggak bisa nggak langsung berteriak, “Anjrit! Keren parah!!”
Oh ya, menurut para senior developer, kalau klien itu adalah perusahaan, firma besar, atau pemerintah, cukup normal untuk menaikkan tarif menjadi dua atau empat kali lipat dari harga akhir tadi.
Kesimpulan
Intinya dunia web development itu seru dan layak untuk dicoba. Itu aja sih, hehe.