Cara Menjadi Web Developer Di Tahun 2024

 

Teknologi bagi web developer selalu berganti dengan cepat, hari ini lagi belajar apa besoknya tiba tiba ada framework atau teknologi baru. Semua berganti terlalu cepat, dan mau ga mau kita sebagai programmer juga harus beradaptasi. Jangan mau ketinggalan trend namun di sisi lain juga harus fokus. Kesempatan kali ini kita


Maka dari itu saya menulis postingan ini, pengennya setelah membaca kalian bisa langsung waspada, terinspirasi atau bahkan evaluasi progress kalian selama belajar. Dan pastinya kalian ga ketinggalan trend dunia software engineeering yang berkembangnya terlalu pesat ini

 

Pengertian Web Developer

Web Developer singkatnya adalah orang yang bekerja untuk mengembangkan web. Kenapa mengembangkan, web developer ketika bekerja masih mengandalkan beberapa framework, package, library, yang didapat dari third party. Dengan kata lain, web developer gak begitu invent/menemukan metode baru saat ia mengerjakan project atau aplikasi

 

Sehingga bisa dibilang role sebagai web developer ini masih sangat mudah dipelajari dibandingkan dengan role pekerjaan lain.

 

Baca Juga: Dari Software Engineer Menjadi Product Engineer

Perbedaan Web Developer, Web Engineer, Web Programmer

Pernah ga kalian waktu menemukan akun akun techbros di Twitter, Facebook, Instagram mereka menuliskan nama pekerjaan mereka di bio. Ada yang menuliskannya web developer, web engineer, web programmer. Kira kira apa sih perbedaannya?

 

Sebenarnya letak perbedaannya ada pada apa yang mereka kerjakan. Tadi sudah dibahas bahwa web developer tugasnya hanya membuat web berdasarkan third party library orang lain. Maka web engineer dan web programmer punya beberapa perbedaan yang mencolok

 

Web Developer:

  • Mengembangkan aplikasi web dengan mengandalkan package, library, framework, CMS pihak ketiga. Bisa berbayar, bisa juga open-source

 

Web Engineer:

  • Membuat rancangan ulang dari aplikasi web beradasarkan fundamental cara kerja website untuk menemukan fitur terbaru, menguji performace, atau memberikan keefektifan tampilan web  yang berbeda

 Kalau kalian pernah mendengar istilah reverse engineering, maka web engineer juga melakukan hal ini namun untuk field web saja

 

Web Programmer:

  • Orang yang menuliskan kode program untuk website

 

Yup, sesederhana itu. Karena memang fokus seorang web programmer hanya menuliskan kode saja untuk membuat aplikasi web, atau beberapa task pekerjaan. Maka dari itu Pak Sandhika Galih menamakan channel Youtubenya Web Programming UNPAS, karena memang beliau memfokuskan materi videonya untuk menuliskan kode mulai dari hello world! sampai yang ribet ribet seperti OOP dan Asynchronous

 

Ya meskipun Pak Sandhika menambahkan muatan materi lain seperti framework, namun yang menjadikan dirinya unik adalah betapa beliau bisa mengajarkan segalanya dari yang benar benar basic hingga advanced

 

Baca Juga:  Retropeksi Hakiki 3 Tahun Terakhir Terjun Belajar Ilmu Komputer

 

Jenis Jenis Web Development

Ada beberapa jenis web development yang harus difahami, ini sangat penting untuk menentukan karir kalian kedepan bakalan seperti apa

 

Front End Development

Front End Developer bertugas untuk merancang tampilan antar muka sebuah website. Mulai dari mendesignnya di Figma hingga mengkoding hasilnya ke dalam web. Kadang kedua role ini pun dipisah ada UI/UX Designer ada juga Front End Developer. Namun, masih ada dijumpai berbagai perusahaan masih menggabungkan role ini karena -mungkin dirasa hanya sedikit task UX Designer yang dibutuhkan

 

Ada beberapa hal yang harus dipelajari jika kamu ingin masuk ke role ini

 

UI Library

UI Library adalah tools yang berisikan berbagai macam komponen UI yang bisa digunakan untuk tampilan web. Jadi alih alih kalian menuliskan kode dari awal, kalian bisa mengcopy paste kan UI library dari dokumentasi dan menyesuaikannya ke dalam aplikasi kalian

 

UI Library terkenal: Shadcn/UI, MaterialUI, RadixUI, HeadlessUI

CSS Framework

CSS Framework adalah kerangka berbasis CSS yang memudahkan positioning, layout sebuah website. Perbedaan CSS Framework dengan UI Library adalah CSS Framework tidak begitu mendalam menangani events di dalam komponenya. Jadi kadang ketika menggunakan UI Library kita pun masih membutuhkan CSS Framework sebagai bantuan. Misal, TailwindCSS dengan Shadcn/UI, ChakraUI dengan TailwindCSS, dan lain sebagainya

 

CSS Framework terkenal: Bootstrap, TailwindCSS

 

Oh iya, Tailwind selain menyediakan CSS Framework bernama TailwindCSS ia juga menyediakan UI Library bernama TailwindUI yang berbayar

 

Back End Developer

Back End Developer adalah programmer yang bertugas untuk membuat sistem di balik web, mulai dari bagaimana data diproses, diambil, diakses, hingga autentikasi ketika user masuk ke dalam website. Intinya segala hal yang berususan masalah 'dapur' rancangan bagaimana website bekerja.

Ada beberapa hal yang harus kalian pelajari

 

RESTFul API

RESTFul API adalah sebuah sistem di dalam aplikasi dimana sebuah aplikasi bisa tekoneksi secara data dan real time dengan aplikasi lain. 

 

Menurut Binar Academy Blog, API singkatan dari Application Programming Interface adalah kumpulan aturan / code yang membuat 2 program atau lebih dapat berkomunikasi. API menjadi jembatan antar sistem yang menghubungkan client (program yang membutuhkan data) dengan server (database)

 

Kalian juga harus belajar apa saja prinsip prinsip RestAPI mulai apa itu GET, POST, PUT, DELETE, dan lainnya

 

Database Design

Database Design adalah skill untuk merancang relationship database, hal ini penting karena berkaitan dengan fitur fitur krusial dalam sebuah aplikasi web. Jadi ketika kalian ingin membuat aplikasi, kalian harus terbayang dulu bagaimana databasenya di-design dengan efisien dan efektif

 

Kalian harus mengerti apa itu konsep one to many, one to one, many to many, many to one.

 

SQL Query

SQL Query adalah kode yang berisi instruksi untuk mengambil (meretrieve) data dari database. Semua backend engineer maupun develope wajib menguasai hal ini. Karena menggunakan SQL Query dianggap lebih efektif dan berperan besar terhadap performa website

 

"SELECT * FROM users"


ORM (Object Relational Mapping)

ORM adalah tool/library/package yang berfungsi untuk mengambil data dari database namun berbasis function sehingga jauh lebih mudah digunakan

 

User::all() 

Menggunakan Larvel Eloquent

 

Fullstack Developer

Kalo tadi kita sudah belajar dua role yaitu Front End Developer dan Back End Developer, maka Fullstack Developer bertugas untuk menangangi dua duanya. Intinya kita sebagai fullstack developer ditugaskan untuk membuat aplikasi seutuh utuhnya. 

 

Mungkin beberapa hal yang harus dipelajari dari role role diatas sudah sangat overwhelming. Namun sekarang banyak sekali teknologi, framework, library, yang men-support kita jika ingin beralih menjadi fullstack developer

 

Fullstack Framework

Dua Framework ini merupakan framework yang saya rekomendasikan jika kamu mau jadi fullstack developer karena framework ini menangani sistem backend dari suatu aplikasi juga kita sebagai programmer juga bisa melakukan design dan coding terhadap tampilan web secara leluasa

 

NextJS

NextJS adalah framework frontend bahkan fullstack yang mendukung server side rendereing, sehingga kamu bisa melakukan fetching data dari server dan merender tampilan antar muka langsung dari server

 

 

Laravel Livewire

Laravel Livewire merupakan framework dari Laravel yang memberikan fitur jauh lebih mutahir, sehingga kita sebagai programmer bisa mengubah tampilan web dari server

 

 

Server Client Fundamental

Server Client adalah konsep dalam aplikasi web dimana server dan client saling berkomunikasi untuk bisa menjalankan web. Sebenarnya ini kosenp basic how the website works aja si, dimana browser (client) memberikan request kepada server lalu server memberikan response. Bisa berupa tampilan web html, json, dan lain sebagainya

 

Dulu seorang programmer harus ngbuild server dan client ini secara terpisah. Bikin server dulu pake nodejs, golang, atau pyhton, lalu client/clientnnya dibuat lagi dari reactjs, vuejs, atau angular. Lama kelamaan konsep ini sangat ribet kalo dikerjain sendirian. Maka dari itulah banyak sekali Fullstack Framework (yang sudah disebutkan diatas) mulai bermunculan

 

Skill Yang Dibutuhkan

Setidaknya untuk bisa menguasai semua pekerjaan diatas, kalian harus menguasai bahasa pemograman dan teknologi yang menunjang. Apa saja? 

HTML, CSS, Javascript (WAJIB SEMUA)

  • HTML (hyper text markup  language) adalah sebuah basis atau struktur program dari browser yang dirancang untuk memetakan apa saja yang harus ditampilkan dari sebuah website. Perlu digaris bawahi bahwa, HTML bukan bahasa pemograman. HTML adalah struktur kode yang mempunyai aturan tertentu dan kita tidak bisa melakukan operasi logika, aritmatika, dan kondisi di dalamnya
  • CSS adalah sebuah program yang ditujukan untuk mengubah tampilan warna, karakter, layout, posisi pada sebuah struktur HTML. CSS juga bukan bahasa pemograman karena tidak melakukan operasi logik, dan hitung hitungan
  • Javascript adalah bahasa pemograman script yang bisa melakukan segala operasi dan menjalankan fungsi dalam web

PHP, Golang (Pilih salah satu)

Untuk kebutuhan backend saya menyarankan salah satu atau dua duanya lebih baik dari bahasa pemograman PHP atau Golang, karena bahasa pemograman ini demandnya sedang naik dan dari segi performa juga sangat sering diandalkan

  • PHP adalah bahasa pemograman berbasis web yang sangat mutahir untuk melakukan request response dalam web, mengambil data dari database, dan lain sebagainya. Meskipun banyak haters, kepopuleran PHP tidak pernah lekang oleh jaman!
  • Golang adalah bahasa pemograman yang dikembangkan oleh Google. Sebenarnya fungsinya persis sama seperti Javascript, namun perbedaannya Golang jauh lebih object oriented, setiap kalian menuliskan kode meskipun hanya hello world, kalian harus membuat class/object terlebih dahulu


Laravel, ReactJS (Pilih salah satu)

Ini merupakan framework yang setidaknya kalian harus pelajar kalo mau menjadi web developer. Karena framework ini mudah digunakan dan sangat sering digunakan di industri

  • Laravel adalah framework web berbasis PHP. Laravel memiliki keunikan dari segi nama nam syntaxnya yang sangat mudah diingat. Laravel memiliki komunitas yang besar sehingga tidak heran Laravel punya banyak sekali fitur fitur untuk para programmer mengembangkan aplikasinya dengan mudah seperti Laravel Livewire, Laravel Eloquent, Laravel Tinker, Laravel Valet, Laravel Socialite, Laravel Jetstream, dan masih banyak lagi!
  • ReactJS adalah framework berbasis javascript yang memudahkan programmer membuat user interface dengan komponen. Pastikan kalian sudah memahami javascript dengan mendalam sebelum belajar framework ini ya

MySQL, PostgreSQL

Selain framework, kalian juga harus belajar tentang apa saja database yang biasa digunakan
  • MySQL adalah database berbasis SQL, MySQL berisi data data mulai dari column, rows, dan fields. Kalian bisa memanipulasinya secara dinamis dan tidak real time
  • PostgreSQL adalah database seperti MySQL namun dengan fitur yang lebih scalable dan mampu menangani workload yang jauh lebih banyak (duh jadi mau belajar PostgreSQL)

Docker, Kubernetes

Selain bahasa pemograman dan library di atas kalian juga harus mempelajari teknologi devops seperti Docker dan Kubernetes. Ini sangat berguna jika kalian mau melakukan deployment dan tidak mau mengalami error dalam segi library atau package yang digunakan punya versi yang berbeda beda
  • Docker adalah sebuah konsep virtualisasi dalam OS dimana beberapa aplikasi bisa dijadikan satu induk, namun alih alih aplikasi ini berjalan pada OS Guest seperti konsep virtualisasi pada umumnya. Docker mempunya konsep tersendiri bernama containerization, dimana aplikasi aplikasi yang dibawahi terisolasi dari OS Host
  • Kubernetes adalah sebuah teknologi open source yang menghandle containerzation yang banyak. 

Basic Linux

Pada akhirnya semua yang berada di ranah IT akan belajar linux. Mau programmer, IT, system admin, network engineer, software engineer, hacker, mempelajari Linux adalah sebuah hal yang ga boleh dilewatkan. Bagi programmer sendiri mempelajari Linux sangat berguna jika kita ingin mendeploy aplikasi lewat VPS (Virtual Private Server)
 
 

Comments

Popular posts from this blog

Cara Mengatasi Hang/Freeze Pada Laptop Asus TUF Gaming

Cara Menjalankan PHP 8 & Laravel 9 Pada Laragon

Tutorial NextJS 13 & Typescript: Membuat Navbar Dengan Shadcn/UI