Tantangan untuk masuk ke industri pengembangan web sebagai web developer masih kecil, tapi semakin hari semakin kompleks. Kondisi yang dinamis di seluruh industri membuat kebutuhan bergeser ke tools & bahasa pemrograman yang sedang naik daun dan banyak digunakan.
Dulu cukup hanya dengan satu bahasa pemrograman/proses spesifik saja yang diperlukan programmer/developer untuk membuat aplikasi. Sekarang, programmer dituntut untuk tahu berbaga teknologi dari berbagai platform supaya bisa bekerja dengan baik.
Apa yang dimaksud dengan full-stack developer?
Istilah full-stack developer berarti developer yang nyaman bekerja dengan teknologi back-end & front-end. Lebih spesifik lagi, developer bisa bekerja dengan database, PHP, HTML, CSS, javascript dan juga bisa mengkonversi desain Photosop ke kode front-end.
Seorang full-stack developer tidak harus menguasai semua hal & teknologi yang dia perlukan untuk bekerja, karena itu suatu hal yang mustahil. Dia hanya perlu merasa nyaman bekerja dengan teknologi-teknologi tersebut dan itu cukup banyak untuk dipelajari.
Apa artinya full-stack di tahun 2000 dan apa artinya sekarang?
Tahun 2000 sudah belasan tahun yang lalu, dimana PHP 4.0 dirilis. Pada tahun tersebut, seorang developer web tahu sedikit tentang HTML, CSS, dan PHP prosedural karena OOP yang sesuai belum ada hingga PHP versi 5.0
The LAMP (Linux – Apache – MySQL – Perl/PHP) stack banyak digunakan di tahun 2000, dengan sedikit atau tidak ada alternatif. Di tahun 2000an, jika seseorang menggunakan version control, mereka dianggap melakukan hal tidak lazim. Sekarang, jika tidak pernah mendengar version control ataupun menggunakannya, makan kita akan ditertawakan.
Jadi, mari kita bahas satu per satu teknologi utama apa saja yang diperlukan full-stack developer sekarang untuk bekerja :
System administration:
- Linux dan basic shell scripting
- Cloud computing: Amazon, Rackspace, etc.
- Background processing: Gearman, Redis
- Search: Elasticsearch, Sphinx, Solr
- Caching: Varnish, Memcached, APC / OpCache
- Monitoring: Nagios
Linux digunakan di sebagian besar Internet, secara umum menjadi sistem operasi di pengembangan web (tidak bermaksud menyingkirkan .NET). Sebagai tambahan, seorang full-stack developer sebaiknya tahu cara kerja cloud hosting seperti Amazon, Rackspace, atau penyedia lainnya, beserta API-nya.
Pencarian menjadi bagian yang tidak terpisahkan di sebagian website. Seorang developer sebaiknya harus tahu cara menyiapkan dan menggunakan server pencarian seperti sphinx atau elasticsearch.
Caching juga penting, seperti Varnish, reverse proxy, Memcached, dan opcode caching. Developer harus tahu hal-hal tersebut dan bagaimana cara menggunakannya.
Web development tools:
- Version control: Git, Mercurial, SVN
- Virtualisasi: VirtualBox, Vagrant, Docker
Sekarang, sudah menjadi hal yang wajib untuk menggunakan version control, meskipun kamu ada seorang solo web developer. Dengan alat virtualisasi, mempunyai banyak lingkungan pengembangan per proyek sangat bagus untuk dimiliki dan sangat mudah untuk mengaturnya dengan VirtualBox dan Vagrant. Jika ingin bekerja dengan Vagrant, developer juga harus tahu sintaks dasar dari Ruby dan skrip shell.
Back-end tech:
- Web servers: Apache, Nginx
- Programming language: PHP, NodeJS, Ruby
- Database: MySQL, MongoDB, Cassandra, Redis, SQL / JSON secara umum.
Apache & Nginx adalah web server yang banyak digunakan oleh web developer. Seorang full-stack developer harus tahu cara mengatur aplikasi-aplikasi ini untuk melayani konten websitenya.
PHP hal yang harus dikuasai di tingkat tinggi, sementara NodeJS, Ruby baik juga untuk diketahui.
Sebagai tambahan, manajemen basisdata juga menjadi syarat untuk seorang web developer. Perbedaan database relasional (seperti MySQL, PostgreSQL) vs non-relasional database (MongoDB, Redis, Casandra) adalah hal yang perlu diketahui, selain sintaks XML/JSON.
Bersambung ke Full Stack Developer Bagian II
Sumber terjemahan : http://www.sitepoint.com/full-stack-developer/
Thanks for sharing mas bro,,,, apa mas bro termasuk fullstack developer juga ?
Sama-sama Mas. Kalau dibilang full stack developer sih iya. Setup server bisa,walaupun sederhana. Pakai teknologi backend & frontend juga bisa,walaupun ga semunya dikuasai. Mungkin cuma desain yg ga bisa.
Kren mas bro,,,klo desain bisa juga kasian yg lain mas,,,hehe…kbetulan lgi car freelance fullstack untuk edit website , tapi yg bisa Ruby … ane follow di twitter ya mas