Skill Set yang harus dikuasai Fullstack Developer zaman now

Skill Set jika ingin menjadi fullstack developer zaman now – Hello guys, Sebagai developer tentunya kita sering kali mendengar kata-kata fullstack developer, bukan? Perusahaan IT maupun bukan IT tidak jarang melukan rekruitmen untuk software developer, berposisikan sebagai fullstack developer. Sebenarnya apa sih fullstack developer itu? Apakah kalian termasuk fullstack developer?

Simak gambar berikut guys, dikutip dari https://www.cybercoders.com/. Sudah siap kan, kalian jadi fullstack developer? Ckkk. Btw tidak usah berkecil hati jika kalian belum menguasai sebagian skill set di atas, atau mungkin seluruhnya, wkkkk. Jika kalian belum mengusai sebagian skill set yang ada diatas, artinya masih banyak tantangan di hari esok yang kalian hadapi.

Oke guys, tidak perlu berpanjang lebar, kita breakdown, point-point dari gambar diatas agar kalian akan lebih mudah untuk memahaminya.

Front End

Sebenarnya front end ini bisa macem-macem guys. Mobile app bisa dibilang juga front end, begitupun desktop apps, jika aplikasi berbasi client-server, dengan backend berupa web service yang berjalan untuk mengambil data dari frontend.

– Front End Development

Namun frontend yang dimaksud pada gambar lebih spesifik ke frontend (web) development. Sedangkan front end mobile kita bahas secara terpisah. Sedangkan desktop app, tidak ada digambar karena di zaman now, desktop app telah banyak berevolusi ke web app.

– HTML, CSS dan Javascript

Untuk pelajaran basic yang kita harus kuasai adalah belajar html, css, javascript, karena ini berkaitan dengan User Interface atau tampilan buka sebuah web ketika diakses. Setelah kalian memahami basic, kalian bisa melanjutkan ke framework css yang biasa orang gunakan seperti Bootstrap, Materialize dsb. Dengan framework kalian tidak perlu lagi membuat css sendiri dari awal, kalian tinggal memakainya saja.

Begitupulan dengan javascript, kalian bisa menggunakan framework atau library yang sudah ada, sehingga tinggal memkainya saja, agar coding kalian lebih teratur dan mudah untuk dimaintenance. Ada 3 framework populer yang biasa orang pakai, terlebih jika aplikasi web yang dikembangkan ini model SPA (Single Page Application), yakni React, Vue & Angular.

Back End

Perbedaan antara backend dan frontend adalah bagaimana bahasa pemrograman tersebut berjalan, jika frontend berjalan di sisi client, maka backend berjalan di sisi server. Banyak sekali bahasa pemrograman atau framework yang di kembangkan dari bahas tertentu digunakan sebagai backend.

Back End Language

Sebagai contoh bahasa pemrograman yang biasa digunakan untuk backend adalah PHP, Java, Phyton, Golang, Nodejs, dsb. Kalian bisa menggunakan bahasa pemrograman yang kalian kuasai untuk mengembangkan aplikasi di sisi server. Setiap bahasa memiliki kelebihan dan kekurangan masing-masing.

Back End Framework

Setiap bahasa biasanya juga memiliki framework yang telah umum digunakan banyak orang, seperti di Java ada spring, di PHP ada laravel, yii, CI, symfoni, di Nodejs ada express, dsb.

Database

Database Relasional

Pada umumnya Aplikasi yang dikembangkan memiliki tempat penyimpanan yang disebut database, karena jika aplikasi digunakan data yang telah diinput oleh pengguna seharusnya dapat disimpan dan suatu saat jika kita menginginkan untuk membukanya kembali harus dapat digunakan kembali. Database ada bermacam-macam, ada jenis database relasional seperti mysql, postgres, sql server, dsb.

Database NoSql

Ada pula jenis database yang NoSql seperti mongodb, couchdb, Cassandra, dsb. Kalian bisa menggunkan database sesuai yang kalian kuasai, juga sesuai dengan kondisi aplikasi yang dikembangkan. Database NoSql biasanya digunakan untuk data yang sifatnya memudahkan untuk indexing, sehingga ketika pengguna melakukan pencarian tidaklah membutuhkan waktu yang lama.

Message Broker

Selain kedua jenis database tersebut, kalaian juga perlu memahami apa yang disebut message queue atau message broker. Perbedaan antara message broker / queue dan database adalah tipikal cara mendapatkan datanya. Jika database kita akan mendapatkan data, ketika melakukan query, jika message broker atau message queue sifatnya lebih pada publish and subscribe. Jadi aplikasi akan melakukan subscribe, jika ada pesan, maka data tersebut baru akan didapatkan. sedangkan publisher adalah sebagai trigger untuk mengirim pesan ke message broker.

DevOps

Aplikasi yang kalian kembangkan tentu saja tidak hanya dijalankan di lokal saja, namun harus kita upload ke server agar pengguna juga bisa menjalankanya. Jika itu aplikasi mobile brarti juga harus diupload ke store app. Nah salah satu kemampuan yang kalian butuhkan untuk memastikan bahwa aplikasi kalian dapat di deliverykan ke client dengan cepat, tepat dan efektif juga aplikasi kalian dapat dipastikan berjalan baik-baik saja dimanapun dia berada, baik di lokal, di server testing maupun production maka kalian perlu menguasi skill yang dinamakan DevOps ini. DevOps dari kata Development & Operation. Development berarti pengembangan dan Operation berarti Pengopersian.

Infrastruktur Devops

Mulai dari infrastruktur yang akan dipakai, kalian harus memahami arsitektur aplikasi yang kalian kembangkan. Anda bisa memilih provider yang sesuai dengan kebutuhan aplikasi yang kalian gunakan. jika aplikasi kalian berjalan hanya butuh shared hosting dengan space yang terbatas, maka cukup web hosting sebagai layanan yang harus kalian bayar.

Jika aplikasi membutuhkan dedicated resource, maka kalian bisa menyewa VPS (Virtual Private Server) atau Dedicated server. Dan jika kalian menyewa VPS, kalian harus bisa mensetup VPS tersebut. Jaman sekarang mensetup Infrastruktur tidaklah sesulit jaman dulu, banyak provider yang telah mengemas setup ke dalam User Interface di dalam Admin Panel.

Kalian juga bisa menggunakan teknologi automation yang dinamakan Infrastructure As A Code. Kalian bisa mensetup Infra hanya dengan Code-code, Infra As A Code ini contohnya Ansible, Chef, Pupet.

Monolitik ke Microservice

Jika aplikasi kalian telah berkembang dan kemudian besar, sehingga kalian harus mengubah arsitektur dari monolitik ke microservices. Aplikasi akan dipecah-pecah menjadi service kecil-kecil yang berjalan dan terintegrasi satu sama lain. Untuk menjalankan microserivces biasanya single server saja tidak cukup, jika kita hanya mengandalkan single server yang storage dan resourcenya terbatas, akan menjadi sulit jika suatu saat akan melakukan scaling terhadap aplikasi kita.

Vertical & Horizontal Scalling

Untuk menscaling suatu aplikasi kita bisa menggunakan cara vertical scaling atau horizontal scaling, vertikal artinya menambah resource pada server misal CPU yang kita gunakan awalnya 4 Giga, kita scaling menjadi 8 Giga. Sedangkan Horizontal Scaling menggandakan aplikasi menjadi beberapa, sehingga ketika diakses server akan membagi permintaan tersebut agar diproses oleh aplikasi kecil-kecil tersebut.

Docker

Nah jaman sekarang biasanya orang mengemas aplikasi dalam sebuah container. Tools yang terkenal disebut docker. Docker merupakan sebuah teknologi virtualisasi yang terkenal dan digunakan banyak orang, karena lebih ringan, sehingga lebih cocok digunakan untuk mengembangkan aplikasi yang memiliki arsitektur microservices.

Tools Tambahan

Selain memilih provider, kalian juga harus menguasai tools-tools automation untuk deployment aplikasi kalian ke berbagai environment. Kalian harus memastikan proses deployment yang dilakukan dilakukan secara efektif. Untuk itu kalian membutuhkan tools-tools semacam Jenkins, Circle Ci, Gitlab Ci, dsb. Tools2 tersebut biasanya digunakan bersama source repository tempat dimana source code tersimpan dengan teknologi version control.

Mobile App

Selayaknya front end web, front end mobile juga memiliki bahasa khusus untuk membuat User Interface. Di Android biasa menggunakan Java/Kotlin. Di Ios bisa menggunakan Swift atau Objective-C. Bahas Pemrograman tersebut memang dikhusukan untuk platform Mobile. Namun seiring berkembangnya teknologi, sekarang banyak seklai orang membuat applikasi mobile dengan Hybrid. Tentu saja memiliki permorma yang berbeda dengan aplikasi native. Aplikasi ini dikembangkan dengan bahasa pemrogrman lain yang kemudian yang ditransformasikan menjadi kode native pada Android/Ios. Aplikasi Hybrid yang popular seperti React Native, Ionic, Flutter.

Progressive Web Apps (PWA)

Disamping Native & Hybrid dalam pengembangan ada juga teknologi yang dinamai PWA (Progressive Web Apps). PWA ini sebenarnya adalah aplikasi web, namun serasa seperti aplikasi native. Mengapa sperti native? AKrena applikasi PWA harus memenuhi syarat responsif & menggunkana teknologi SPA (Single Page Application). Dengan teknologi SPA, memungkinkan semua assets dapat diunduh sekali akses, kemudian assets2 tersebut akan diolah dalam sebuah sebuah service worker, sehingga ketika kita dalam keadaan offline masih dapat membuka applikasi tersebut.

Kesimpulan

Nah gimana guys, masih berminat untuk menjadi fullstack developer? saya yakin kalian adalah orang yang pantang menyerah, So tidak ada salahnya mencoba satu-satu skillset tersebut. Good Luck.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *