Saya mendapat surat dari pembaca buku saya. Dia meminta nasihat kepada saya seperti ini:
“Aku sedang belajar PHP dan framework CI (CodeIgniter). Aku merasa startup atau perusahaan sekarang sudah jarang yang menggunakan PHP dan CI. Aku melihat karir programmer PHP/CI lambat untuk naik. Aku mendapat kesimpulan itu karena melihat artikel, lowongan pekerjaan dan mendengar cerita dari kakak kelas aku. Maka dari itu aku mau mengutarakan pertanyaan, untuk menjadi backend engineer yang handal apakah langkahnya masih tetap mendalami PHP atau mending aku banting setir ke bahasa pemrograman lain yang lebih cerah nasibnya? Jika memang aku harus banting setir, sebaiknya aku pilih bahasa apa, Pak?” (kata-kata sudah diganti susunannya untuk melindungi identitas pembaca buku saya)
Saya memang tahu pemrogram PHP sering dirundung oleh masyarakat. Pemrogram Ruby yang congkak sering membuat pemrogram PHP sebagai bahan candaan. Pemrogram Go yang jumawa bahkan tidak mau mengakui keberadaan pemrogram PHP. Pemrogram Python yang tinggi hati merasa pemrogram PHP tidak selevel dengan mereka. Mungkin hanya pemrogram Java yang masih mau berteman dengan pemrogram PHP. 🤣
Pada tahun 2000 sampai tahun 2010, PHP berjaya karena pilihan teknologi pengembangan web masih terbatas. Pilihan lainnya cuma apa? Perl? PHP membuat pengembangan aplikasi web menjadi lebih demokratis. Orang bikin berkas PHP, unggah berkas itu lewat FTP, dan aplikasi web langsung bisa jalan. Semua perusahaan penerimaan aplikasi web (hosting) mempunyai jasa penerimaan berbagi (shared hosting) yang mendukung PHP. Kemudian muncullah aplikasi legendaris seperti WordPress, Joomla, Drupal.
Tapi dengan seiring banyaknya orang yang terjun ke pemrograman web, dan tidak semua orang itu memiliki kemampuan lebih dan disiplin dalam mengembangkan aplikasi web, maka muncullah kesalahan-kesalahan dan keteledoran-keteledoran yang mencemari nama baik PHP. Hal ini diperburuk dengan desain antarmuka pemrograman aplikasi (API) yang membuat orang bingung seperti array_search di mana orang sering lupa parameter pertama itu jerami (data) atau jarum (hal yang dicari).
$a = array(1, 2, 3);
array_search(2, $a);
Bandingkan dengan Python yang memiliki API yang lebih bersahabat, yaitu index yang dikaitkan dengan objek yang merupakan data tersebut, misalnya:
a = [1, 2, 3]
a.index(2)
Orang menjadi kesal dan memutuskan untuk beralih ke bahasa lain. Lahirlah Ruby on Rails yang popularitasnya terbang tinggi ke angkasa. Python pun melahirkan kerangka pengembangan Django. Lalu Go lahir dan merebut hati-hati orang.
Oh ya, mengenail sural pembaca buku saya…. Begini surel yang saya kirim sebagai balasan:
1. PHP masih hidup kok
Iya benar, di Indonesia, perusahaan-perusahaan terkenal, misalnya unicorn-unicorn Indonesia, gak pakai PHP di peladen mereka.
Tokopedia pakai Go.
Gojek pakai Ruby, Clojure, Java.
BukaLapak pakai Ruby, Go.
Traveloka pakai Java.
Tapi menurut penelitian, masih banyak situs yang memakai PHP. Sampai lebih dari 75%!
https://kinsta.com/blog/is-php-dead/
Jadi PHP bakal memberi keamanan pekerjaan (job security) bagi Anda.
Betul, hanya karena banyak pekerjaan, belum tentu PHP adalah teknologi ideal. Mungkin pekerjaan-pekerjaan PHP hanya memberi gaji kecil.
Apa gunanya ribuan lowongan pekerjaan PHP tapi gaji yang ditawarkan kalah jauh dengan lowongan pekerjaan teknologi lain yang lebih sedikit tapi gajinya lebih tinggi?
Tapi…. di luar perusahaan-perusahaan terkenal (yang harusnya bisa menggaji lebih tinggi dari rata-rata) masih pakai PHP kok.
iPrice (Malaysia) membutuhkan pemrogram PHP.
https://stackoverflow.com/jobs?id=385408
Urban Sports (Jerman) membutuhkan pemrogram PHP.
https://stackoverflow.com/jobs?id=335938
Sam Media (Malaysia) membutuhkan pemrogram PHP.
https://stackoverflow.com/jobs?id=392483
Adam Wathan (Tailwind CSS) membutuhkan pemrogram PHP jarak jauh (remote).
https://twitter.com/adamwathan/status/1260629589803634689
https://jobs.tailwindui.com/full-stack-developer
Taylor Otwell (Laravel) membutuhkan pemrogram PHP jarak jauh.
https://twitter.com/taylorotwell/status/1254434614111809536
Automattic (WordPress, Jetpack, WooCommerce) membutuhkan pemrogram PHP jarak jauh.
https://automattic.com/work-with-us/software-engineer/
Slack juga pakai PHP.
https://slack.engineering/taking-php-seriously-cf7a60065329
2. Jangan taruh semua telur dalam 1 keranjang
Jangan cuma belajar PHP. Tapi belajar juga bahasa lain. Minimal 2 bahasalah untuk peladen (backend). Satu bahasa sudah dipilih: PHP.
Nah pilih bahasa lain. Pilih antara bahasa Go, Ruby, Java, atau Python. Mereka adalah bahasa populer untuk peladen. Misalnya Anda pilih bahasa Ruby. Belajar bahasa Ruby juga selain PHP. Terus belajar juga
kerangka pengembangan webnya, yaitu Ruby on Rails.
3. Jangan cuma belajar kerangka pengembangan web CI (CodeIgniter)
Tapi belajar juga kerangka pengembangan web Laravel. Laravel sekarang adalah kerangka pengembangan web PHP yang paling
populer entah dilihat dari Github atau Google Trends. Symfony kalah ngetren daripada Laravel tapi memiliki kontributor yang lebih banyak daripada Laravel. Sementara itu CI kalah dari sisi manapun.
Jadi sepertinya Laravel memegang puncak klasemen sampai saat ini.
https://github.com/laravel/laravel
https://github.com/codeigniter4/CodeIgniter4
https://github.com/symfony/symfony
https://trends.google.com/trends/explore?geo=US&q=Laravel,CodeIgniter,Symfony
https://trends.google.com/trends/explore?geo=ID&q=Laravel,CodeIgniter,Symfony
4. Belajar keahlian universal
Terlepas dari bahasa pemrograman / kerangka pengembangan web yang Anda pilih, ada beberapa kemampuan universal yang harus dimiliki oleh pemrogram, misalnya tes, CI/CD, kode bersih, algoritma, basis data (database), git, jaringan/internet, kriptografi, aplikasi peladen (Nginx/Apache Httpd), dan lain-lain. Jadi belajar juga hal-hal ini.
Contoh kasus: Tahukah Anda bagaimana HTTPS bekerja? Dapatkah Anda menjelaskan HandShake? Dapatkah Anda mengkonfigurasi penyeimbang tekanan (load balancer) dengan Nginx? Dapatkah Anda memasang aplikasi PHP di AWS/GCP/Azure dan memasang Redis yang tersambung ke aplikasi PHP Anda?
Jadi jika Anda adalah pemrogram PHP dan paham semua hal-hal universal ini tapi Anda melamar pekerjaan sebagai
pemrogram dengan bahasa lain, ada kemungkinannya perusahaan bakal tetap menerima Anda. Anda tentu saja diharapkan untuk mempelajari bahasa baru di perusahaan itu.
5. Perdalam kemampuan PHP
Semakin dalam kemampuan PHP semakin tinggi kemungkinan Anda untuk mendapatkan pekerjaan dengan gaji tinggi. Jangan cuma belajar cara baca berkas, pengulangan (loop) dan merasa cukup. Tapi belajar juga hal-hal lain seperti pola desain (design pattern), koleksi sampah
(garbage collection), keamanan (security), DTrace dynamic tracing, dan lain-lain.
https://www.php.net/manual/en/
6. Bangun Portfolio PHP
Jika Anda ingin jadi pemrogram PHP gaji tinggi, bangun portfolio yang bagus. Misalnya kontribusi ke kerangka pengembangan
web CI, atau Laravel, atau Symfony, atau WordPress.
7. Menyelam Lebih Dalam Lagi
Belajar ngoprek aplikasi terkenal dari PHP, seperti WordPress, Magento, atau WooCommerce. Jangan cuma pasang (install) WordPress dan bangga. Tapi coba bikin pengaya (plugin) WordPress. Coba baca dan pahami kode Magento.
Sekian surel saya.
Nah, betul kadang kita harus melihat tren untuk memilih teknologi. Teknologi apakah yang dipakai oleh perusahaan-perusahaan yang berduit? Tidak ada orang yang peduli jika Anda adalah pemrogram Haskell dan menganggap Haskell adalah bahasa terbaik di seluruh dunia tapi perusahaan-perusahaan berduit memakai Node.js. Yah, Anda harus belajar Node.js kalau mau dapat gaji tinggi. Tidak ada yang peduli apakah Anda memiliki opini bahwa Haskell itu 100x lebih baik daripada Node.js.
Tapi PHP masih hidup dan sehat walafiat. Betul, popularitasnya menurun. Tapi PHP masih dominan. Betul, PHP bahasanya kurang afdol. Tapi dengan PHP 7.4, banyak kelemahan-kelemahan yang diperbaiki, misalnya typed properties, arrow functions, dan lain-lain. PHP juga punya kerangka pengembangan Laravel yang memiliki baterei lengkap untuk mengembangkan aplikasi web dengan cepat. Bahkan Laravel memiliki Spark yang bisa membantu Anda mengembangkan aplikasi web dengan lebih cepat lagi.
Jika aplikasi yang Anda ingin buat adalah blog, Anda tinggal menggunakan WordPress dan dengan kemampuan PHP, Anda bisa membuat sesuatu yang hebat di atas WordPress. Betul, banyak aplikasi blog sekarang yang mulai merebut hati orang seperti Gatsby, Ghost, Jekyll, dan lain-lain tapi WordPress masih merupakan aplikasi blog yang paling banyak dipakai. Bahkan Anda bisa menggabungkan Gatsby dengan WordPress. Gatsby menyediakan blog bagi orang luas. WordPress menyediakan penulisan blog bagi orang dalam.
Untuk aplikasi el-niaga (e-commerce), Anda tinggal mengembangkan aplikasi web el-niaga dengan WooCommerce atau Magento. Dengan menggunakan bahasa PHP, Anda bisa menjual solusi el-niaga kepada klien yang membutuhkan situs el-niaga yang dibuat sesuai pesanan.
Jadi jangan khawatir akan masa depan sebagai pemrogram PHP. Yang penting Anda mesti giat meningkatkan ilmu pemrogram PHP Anda. Jangan cuma bangga bisa bikin aplikasi PHP yang menerima data dari formulir dan memasukkan data ke basis data MySQL. Tapi bisakah Anda menangani jutaan permintaan (request) ke aplikasi web Anda? Nah kalau Anda bisa, Anda layak dapat b̶i̶n̶t̶a̶n̶g gaji tinggi.