IOS
Hardware
Kebutuhan penting nomer wahid adalah hardware yang meliputi komputer dan peranti iPhone.
Berikut spesifikasi dari hardware yang diperlukan untuk berkarier sebagai iOS Developer:
Software
Selanjutnya dari sisi kebutuhan software kita akan membutuhkan Xcode. Ia merupakan IDE resmi
dari Apple untuk membuat aplikasi iOS, iPad OS, dan mac OS. Dengan menggunakan Xcode,
para developer iOS dapat membuat aplikasi dari nol hingga dapat terpublish ke dalam app store.
Xcode juga mempunyai berbagai fitur yang sangat membantu para developer untuk memaksimalkan
proses pembuatan aplikasi.
Skill/Pengetahuan
Ketika sudah mengetahui kebutuhan dari sisi hardware dan software, lalu skill apa yang perlu Anda
pelajari? Anda dapat mulai belajar dari bahasa pemrogramannya dahulu, yaitu Swift. Sejak
diperkenalkan di Apple Worldwide Developer Conference (WWDC) tahun 2014, Swift telah
menjadi bahasa resmi yang didukung oleh Apple Inc. untuk pengembangan aplikasi iOS, iPadOS,
macOS, watchOS, tvOS, Linux, dan OS X. Swift merupakan bahasa pemrograman yang modern,
cepat, dan type-safe.
Pada tahun 2018, Swift telah mengalahkan Objective-C sebagai bahasa pemrograman yang
digunakan untuk iOS dan platform Apple lainnya. Menurut survei yang dilakukan Stack Overflow,
Swift menjadi bahasa pemrograman yang paling disukai pada tahun 2019 [24]. Dibandingkan tahun
2018, pecinta Swift naik dari 65% menjadi 69% [25].
Seorang iOS Developer harus mampu mengintegrasikan teknologi mutakhir dari iOS untuk
menciptakan pengalaman luar biasa pada aplikasinya. Berikut poin-poin yang bisa Anda pelajari:
Berikut tahapan yang Anda lalui ketika belajar di Learning Path iOS yang ada di Dicoding:
Langkah ke-1 Memulai Pemrograman Dengan Swift
Belajar bahasa Swift buat Anda yang ingin mempelajari konsep Pemrograman Berorientasi Objek
(PBO) dalam mengembangkan iOS dan OS X.
Langkah ke-2 Belajar Prinsip Pemrograman SOLID
Pelajari kelima prinsip desain yang merupakan pedoman untuk rancangan kode yang baik pada
pemrograman berorientasi objek (OOP).
Langkah ke-3 Belajar Membuat Aplikasi iOS untuk Pemula
Pelajari cara membuat aplikasi pertama dengan Xcode. Kelas ini mengajarkan dasar iOS mulai dari
Controller sampai TableViews.
Langkah ke-4 Belajar Fundamental Aplikasi iOS
Pelajari komponen fundamental iOS berdasarkan teknik yang digunakan industri mulai dari App
Design, SwiftUI, Networking, sampai Database.
Langkah ke-5 Menjadi iOS Developer Expert
Saatnya jadi iOS Expert dengan belajar Clean Architecture, Reactive, Dependency Injection,
Modularization, dan Test Driven Development.
Multiplatform developer
Hardware
Kebutuhan penting nomer wahid yaitu hardware yang meliputi komputer dan peranti. Berikut
spesifikasi dari hardware yang diperlukan untuk berkarier sebagai Multi-Platform App Developer:
Spesifikasi yang dibutuhkan cukup tinggi untuk membuat sebuah aplikasi Android dan iOS
menggunakan Flutter. Tentu semakin tinggi spesifikasi, akan membantu Anda lebih cepat dalam
membangun aplikasi tersebut. Peranti mobile dibutuhkan untuk menguji secara langsung proses
berjalannya aplikasi dan kendala yang mungkin terjadi.
Software
Anda dapat membuat aplikasi Flutter menggunakan teks editor yang dikombinasikan
dengan command-line tools. Namun, sebaiknya gunakan salah satu plugin editor yang
direkomendasikan untuk pengalaman yang lebih baik. Plugin ini memiliki fitur seperti penyelesaian
kode, penyorotan sintaks, bantuan pengeditan, dukungan untuk menjalankan & debug, dan masih
banyak lagi.
Instalasi Android Studio sangat dibutuhkan untuk membuat aplikasi Android dengan Flutter,
sedangkan aplikasi iOS sangat membutuhkan instalasi Xcode.
Skill/Pengetahuan
Lalu apa saja yang perlu Anda pelajari? Anda dapat mulai belajar dari bahasa pemrogramannya
terlebih dahulu, yaitu Dart. Dart adalah sebuah bahasa pemrograman yang dikembangkan oleh
Google pada tahun 2011 dengan tujuan awal menggantikan JavaScript. Bahasa ini kembali populer
ketika dikenalkan untuk mengembangkan Flutter. Dart telah digunakan oleh engineer Google untuk
mengembangkan berbagai aplikasi yang terkait dengan bisnis, salah satunya adalah Google Ads.
Seorang Front-End Web Developer adalah Software Developer yang bertanggung jawab untuk
merancang dan membangun berbagai aplikasi web secara responsif, interaktif, dan juga user
friendly. Website adalah sebuah halaman yang menampilkan informasi melalui teks atau gambar.
Website dapat diakses melalui internet menggunakan browser. Website ini unik karena tiap halaman
dapat saling terhubung.
Website di era sekarang sudah menjadi kebutuhan utama yang tidak bisa diabaikan. Seluruh sektor
bisnis atau edukasi dapat memanfaatkan website sebagai alat untuk promosi, tukar informasi, dan
lainnya. Per Desember 2020 terdapat 1.228.111.563 website yang aktif, berdasarkan survei dari
Netcraft Web Server Survey [29]. Berdasarkan data dari World Wide Web Technology Surveys, dari
seluruh website yang aktif per Desember 2020, 91.5% menggunakan HTML, 96.1% menggunakan
CSS, dan 97.1% menggunakan JavaScript [30].
Front End Developer
Seorang Front-End Web Developer adalah sosok yang mampu mewujudkan website dengan
minim bug, tinggi level keamanannya, dan dapat beradaptasi ke smartphone. Itu merupakan faktor
yang harus ia pertimbangkan demi kenyamanan pengguna.
Sementara itu dari sisi kode, seorang Front-End Web Developer harus memastikan bahwa
websitenya dapat scalable alias tetap bekerja dengan baik saat produk berubah mengikuti kebutuhan
bisnis. Website tersebut juga harus robust alias dibangun dengan pondasi kode yang kuat. Jika tidak,
perusahaan akan terbebani biaya pengembangan yang tinggi karena sulitnya perbaikan akibat code
smell, yakni kode yang berantakan atau berstruktur buruk.
Hardware
Kebutuhan penting nomer wahid yaitu hardware yang meliputi komputer. Berikut spesifikasi dari
hardware yang diperlukan untuk berkarier sebagai Front-End Web Developer:
Software
berikut tiga text editor lainnya yang bisa kita gunakan untuk membuat sebuah website.
Atom Editor
Atom merupakan text editor gratis dan juga open source untuk Windows, Linux, dan MacOS. Sama
seperti Visual Studio Editor, kedua text editor ini merupakan editor yang populer digunakan oleh
web developer.
Emacs
Editor ini mungkin tidak secanggih opsi-opsi sebelumnya dalam menuliskan kode HTML, CSS, dan
JavaScript. Namun, jika kalian tertarik belajar melalui proses tanpa fitur yang mempermudah kita
dalam menuliskan sebuah kode, maka text editor ini cocok untuk dicoba. Emacs memiliki fitur yang
tidak disangka-sangka untuk sebuah text editor, seperti news reader, kalkulator, dan fitur untuk
enkripsi/dekripsi file. Emacs tersedia untuk Windows, Macs, maupun Linux secara gratis.
Skill/Pengetahuan
Anda perlu pelajari adalah bahasanya, yakni HTML, CSS, dan JavaScript.
HTML: Hypertext Markup Language atau HTML, berperan sebagai struktur untuk membangun
sebuah halaman website; Cascading Style Sheet atau biasa disingkat CSS, merupakan W3C standar
yang digunakan untuk mengatur visualisasi berkas yang ditulis pada HTML; dan JavaScript,
merupakan bahasa pemrograman client-side sehingga seluruh prosesnya berjalan pada sisi pengguna
bukan server.
Machine learning adalah sub-bidang AI yang berfokus pada analisis data untuk menemukan
hubungan antara input dan output yang diinginkan. Seorang pengembang pemelajaran mesin harus
mampu menghasilkan solusi yang dibuat khusus untuk setiap masalah dan mencapai hasil optimal
dengan hati-hati memproses data dan memilih algoritma terbaik untuk konteks yang diberikan.
Hardware
Kebutuhan penting nomer wahid yaitu hardware yang meliputi komputer. Berikut spesifikasi dari
hardware yang diperlukan untuk berkarier sebagai Machine Learning Developer:
Software
Yang Anda butuhkan pertama kali adalah IDE. Integrated Development Environment (IDE) lebih
dari sekedar text editor untuk membuat kode, di dalamnya tergabung juga berbagai fasilitas
development misalnya Code Versioning, Interpreter, Visualization, dan lain sebagainya.
Colab digunakan secara luas dalam komunitas machine learning dengan aplikasi termasuk:
Skill/Pengetahuan
Anda perlu pelajari pertama adalah bahasanya, yakni Python
Python adalah bahasa pemrograman interpretatif yang dapat digunakan di berbagai platform dengan
filosofi perancangan yang berfokus pada tingkat keterbacaan kode.
Selain itu, ada beberapa poin yang perlu Anda pelajari juga, yakni:
Problem Framing
Dapat merumuskan solusi machine learning untuk suatu masalah.
Exploratory Data Analysis
Dapat menganalisa data tersebut untuk menentukan fitur baru dalam suatu produk.
Visualisasi Data
Dapat mengkomunikasikan sebuah informasi atau data dalam bentuk visual dengan baik,
seperti diagram, grafik, atau representasi visual lainnya.
Dasar Matematika dan Statistika
Dapat melakukan perhitungan dasar matematika dan statistika mulai dari rata-rata statistik
hingga standar deviasi.
Dasar Machine Learning
Dapat membuat model, mencari parameter model terbaik, mengembangkan dengan format
data yang berbeda dan dasar-dasar lain.
Feedback dan Testing
Dapat menguji kualitas dan akurasi dari sebuah model machine learning.
Library Machine Learning
Dapat memahami dan menggunakan library machine learning, contohnya adalah Tensorflow.
Tensorflow merupakan library yang powerful, dipakai untuk mengembangkan project
machine learning.
Deployment
Dapat men-deploy sebuah model pada website dan smartphone.
RANGKUMAN
Lantas apa saja jalur karier developer yang bisa kita tekuni? Berikut merupakan pembagiannya:
1. Android Developer
Seorang Android Developer adalah Software Developer yang berspesialisasi dalam
merancang dan membangun aplikasi untuk pasar operating system Android. Android adalah
sistem operasi yang dikeluarkan oleh Google.
2. iOS Developer
Seorang iOS Developer adalah Software Developer yang berspesialisasi dalam merancang
dan membangun aplikasi untuk pasar sistem operasi iOS. iOS atau iPhone OS merupakan
sistem operasi yang dikeluarkan oleh Apple.inc, iOS yang dibuat khusus untuk iPhone dan
iPad.
3. Multi-Platform App Developer
Seorang Multi-Platform Developer adalah Software Developer yang berspesialisasi dalam
merancang dan membangun aplikasi yang dapat digunakan berbagai sistem operasi populer
seperti Android dan iOS.
4. Front-End Web Developer
Seorang Front-End Web Developer adalah Software Developer yang bertanggung jawab
untuk merancang dan membangun berbagai aplikasi web secara responsif, interaktif, dan
juga user friendly.
5. Machine Learning Developer
Seorang Machine Learning Developer adalah pakar dalam menggunakan data untuk model
pelatihan. Model-model tersebut kemudian digunakan untuk mengotomatisasi proses seperti
klasifikasi gambar, pengenalan suara, dan perkiraan pasar. Sering kali ada penggabungan
dengan peran data scientist atau artificial intelligence (AI) engineer.
6. Azure Cloud Developer
Seorang Cloud Developer dapat sepenuhnya memanfaatkan layanan yang disediakan
oleh Cloud Solution Provider tersebut. Individu ini memiliki pengalaman dengan basis data
terkini (next-gen database), lingkungan di mana aplikasi berjalan (runtime environment),
dan alat pengembang (developer tools). Mereka juga memiliki kemampuan dengan
setidaknya satu bahasa pemrograman umum dan terampil menghasilkan metrik dan log yang
bermakna untuk debug dan melacak kode.
7. Dan masih banyak lagi.
Kebanyakan dari jalur developer membutuhkan sebuah Laptop/Komputer, kecuali untuk iOS
Developer membutuhkan MacBook. Seorang iOS Developer harus mempunyai setidaknya macbook,
sebab software yang dibutuhkan hanya tersedia dalam os tersebut.
Banyak cara untuk menjadi expert di masing-masing jalur tersebut. Tentu dengan persiapannya
masing-masing, baik software, hardware, atau skill yang dibutuhkan. Anda dapat memperkuat skill
dengan mengikuti kelas dari Dicoding. Sebab Dicoding mempunyai berbagai Learning Path. Anda
dapat belajar secara terstruktur sehingga target belajar lebih mudah tercapai di Dicoding Academy.
Berikut Learning Path yang tersedia dalam situs dicoding.com/learningpaths:
1. Android Developer
Kurikulum didesain oleh Dicoding sebagai satu-satunya Google Developers Authorized
Training Partner di Indonesia. Siswa dipersiapkan untuk menjadi Android Developer
berstandar global Google. Learning Path ini terdiri dari 6 Kelas Akademi:
a. Memulai Pemrograman Dengan Kotlin
Kelas pengantar untuk mempelajari Functional Programming serta Object-Oriented
Programming (OOP) menggunakan Kotlin.
b. Belajar Prinsip Pemrograman SOLID
Pelajari kelima prinsip desain yang merupakan pedoman untuk rancangan kode yang
baik pada pemrograman berorientasi objek (OOP).
1. Belajar terlebih dahulu. Katakanlah kita ingin membuat website, maka kita perlu tahu tools-
nya, framework-nya, dan segala persiapannya.
2. Asah skill tersebut dengan mempraktikkannya. Buatlah aplikasi sederhana, kemudian
mencoba dan mengujinya.
3. Ikuti forum-forum diskusi terkait di internet. Selain dapat membantu Anda menyelesaikan
masalah yang dihadapi, juga bisa tahu bagaimana best-practice-nya.
4. Tidak perlu belajar banyak bahasa di awal, namun fokus satu bahasa terlebih dahulu dan
perkuat tentang algoritma. Beliau mengatakan, “Ternyata how to code itu sama semua.
Algoritma dasarnya sama. Jadi kalau kita mempelajari bahasa a, bahasa b, atau bahasa c, at
the end-nya sama. Prinsip-prinsip bahasa pemrogramannya itu sama.”
Pandangan Developer Expert dapat menjadi pertimbangan Anda untuk menentukan karier mana
yang akan dipilih. Berikut beberapa developer yang telah diwawancarai mengenai pandangan mereka
mengenai software Developer.
Rendra Toro
Technology Advisor di PT. Perintis Teknologi Nusantara
Beliau sudah melalang buana di dunia IT, mulai dari Web Developer, Mobile Developer, hingga jadi
CTO sebagai karier tertinggi di Software Developer. Saat ini beliau fokus menjadi Technology
Advisor di PT. Perintis Teknologi Nusantara.
Fandy Gotama
Co-Founder / CTO at Adrena Teknologi Indonesia
Fandy Gotama adalah Mobile App Tech Lead (Pemimpin Teknologi di tim Mobile App Developer)
dan telah bekerja di Android dan iOS masing-masing sejak Cupcake dan iOS 2.x. Sebelum mulai
menulis aplikasi seluler, dia adalah pengembang Full Stack Web Developer dengan pengalaman
hebat dalam berbagai bahasa pemrograman seperti PHP, Perl, dan Python.
Sumber : Linkedin Fandy Gotama
o Kesehatan
Sebagai developer harus tetap olahraga, makan makanan yang sehat, dan banyak
minum air putih.
o Bosan
Sebagai software developer, jangan biarkan kita berada dalam comfort zone. Untuk
mengatasinya, cobalah untuk mencari task/pekerjaan yang lebih menantang. Jika
tidak dilakukan maka skill Anda tidak akan meningkat dan akan menjadi bosan.
o Level Karier
Jika Anda sudah mempunyai bekal, cobalah untuk tentukan apakah naik level ke
expert atau level manajemen. Namun jika belum mempunyai bekal, cobalah untuk
bekerja di software house atau start-up. Sebab, dari sana akan membuat skill
developer Anda makin terasah.
Indikator sukses dalam mencapai karier tersebut
Menurut mas Fandy indikator sukses dalam mencapai karier adalah:
Danviero Yuzwan
Android Developer at LOKÉT | GO-JEK Group
Danviero Yuzwan adalah seorang Software Developer yang memiliki spesialisasi di bidang Android.
Pada tahun 2021 ini, sudah 4 tahun lebih beliau telah meniti karier sebagai Android Developer. Saat
ini beliau bekerja di LOKET.
o Menurut mas Yuzwan, hambatan itu pasti ada. Berikut beberapa masalah yang
sering dihadapi dalam programming:
1. Kode yang error atau fitur yang tidak jalan
Anda dapat memanfaatkan Google dan Stackoverflow untuk menyelesaikan
masalah tersebut.
2. Malu bertanya
Jika Anda merasa sudah stuck, ada baiknya bertanya kepada orang lain agar
waktu Anda tidak terbuang sia-sia. Namun tetap bertanya dengan sopan ya.
3. Tidak mendokumentasikan suatu masalah.
Pastikan Anda menyimpan solusi dari permasalahan yang sudah
terselesaikan, agar tidak kesusahan jika menemuinya lagi.
4. Tidak tahu keyword dari permasalahan.
o Selain itu ada juga masalah yang akan dihadapi di luar programming. Berikut
detailnya:
1. Komunikasi
Komunikasi dalam sebuah tim itu penting.
2. Terkendala bahasa
Untuk meningkatkan level komunikasi, maka Anda perlu pelajari lain seperti
bahasa Inggris atau Mandarin.
3. Tidak bisa menjelaskan
Anda perlu belajar technical writing agar dapat menyampaikan sesuatu
dengan mudah.
Jadi seperti itulah interview yang telah kami lakukan dengan para Developer Expert. Semoga bisa
menjadi bekal dalam menentukan karier sebagai Software Developer.
Setelah Anda memahami berbagai jalur Software Developer yang ada, kini saatnya Anda memilih
dan merencanakan untuk mencapainya.
Hardware
Hardware merupakan hal pertama yang dapat mempengaruhi keputusan Anda dalam memilih jalur
yang sesuai. Berikut skenarionya:
1. Laptop/komputer spesifikasi rendah dengan sistem operasi Windows atau Linux. Beberapa
jalur software developer yang bisa Anda pilih antara lain:
o Web Developer
o Machine Learning Developer
o Azure Cloud Developer
2. Laptop/komputer spesifikasi tinggi dengan sistem operasi Windows atau Linux. Beberapa
jalur software developer yang bisa Anda pilih antara lain:
o Android Developer
o Multi-Platform App Developer (khusus Android dan Web saja)
o Web Developer
o Machine Learning Developer
o Azure Cloud Developer
3. MacBook dengan sistem operasi macOS. Beberapa jalur software developer yang bisa Anda
pilih antara lain:
o iOS Developer
o Multi-Platform App Developer (Android, iOS, dan Web)
o Android Developer
o Web Developer
o Machine Learning Developer
o Azure Cloud Developer
Selain itu ada juga kebutuhan peranti mobile, seperti Android dan iOS. Peranti ini tidak wajib karena
sudah ada emulator Android dan simulator iOS yang bisa Anda manfaatkan. Namun, simulator
hanya dikhususkan untuk perangkat MacBook.
Bahasa Pemrograman
Setelah menyesuaikan dengan hardware yang Anda miliki, mari kita lebih fokus terhadap skill yang
dibutuhkan. Silakan kulik roadmap dari Software Developer secara lebih dalam. Langkah awal yang
bisa Anda pelajari adalah bahasa pemrograman. Apa sajakah bahasa pemrograman yang digunakan
pada setiap jalur karier? Simak uraiannya di bawah ini:
Setelah itu, Anda perlu mengetahui hal apa saja yang perlu dikuasai dari bahasa pemrograman
tersebut. Contohnya ketika Anda mempelajari Swift, maka point-point pentingnya seperti ini:
Dasar Swift : Memahami dasar-dasar Swift seperti penggunaan constant dan variable,
comment, semicolon dll. Anda juga akan mempelajari bagaimana mencetak sebuah teks ke
dalam console.
Operator : Memahami operator-operator yang bisa diimplementasikan di dalam bahasa
Swift, seperti arithmetic operator, logical operator, comparison operator dll.
String dan Character : Memahami penggunaan serta implementasi string dan character di
dalam Swift, bagaimana mengoperasikan sebuah teks dan memanipulasinya.
Collection Type : Memahami collection type seperti array, sets, dan dictionary untuk
menyimpan koleksi dari sebuah nilai di dalam Swift.
Control Flow : Memahami pernyataan control flow di dalam Swift seperti perulangan dan
pernyataan kondisional.
Function : Memahami bagaimana penggunaan serta implementasi function di dalam Swift
sehingga kode akan menjadi lebih rapi.
Closure : Menjelaskan bagaimana penggunaan serta implementasi closure di dalam Swift.
Enumeration : Memahami penggunaan serta implementasi enumeration di dalam Swift.
OOP : Memahami Object Oriented Programming (OOP) di dalam Swift seperti class dan
struct, method, property, subscript, dan protocol.
Anda bisa mempelajari poin-poin tersebut di dicoding.com. Setelah Anda mempunyai poin-poin itu,
silakan tentukan target berapa lama Anda mampu menyelesaikannya. Cobalah dengan latihan agar
ilmu itu melekat. Ingat ya, jangan terburu-buru. Sebab kecepatan seseorang belajar itu berbeda-beda.
Nikmati prosesnya karena ini adalah fundamental sebelum Anda terjun lebih dalam.
Roadmap
Katakanlah Anda sudah mempelajari bahasanya. Apa yang perlu Anda lakukan? Cari tahu roadmap-
nya dengan jelas. Roadmap merupakan sebuah peta yang dapat digunakan untuk menentukan arah.
Jadi dengan roadmap ini, proses belajar yang Anda lakukan akan lebih mulus, terstruktur, dan
mudah.
Anda bisa mencarinya melalui Google, bertanya ke teman-teman, masuk ke forum diskusi terkait,
mengikuti webinar, ikut ke komunitas, melihat langsung di dokumentasinya, dan masih banyak cara
lainnya. Tentu inti dari pencarian roadmap ini agar Anda bisa mengerti tahapan proses yang harus
dilalui.
Manfaatkanlah internet supaya Anda bisa mendapatkan informasi dengan lebih mudah. Banyak pula
developer yang telah mem-posting roadmap mereka ketika belajar. Mari kita ambil contoh dari
Roadmap Android developer.
Sumber : https://s.id/android-roadmap
Lihat roadmap di atas. Alurnya sangat jelas, bukan?. Anda bisa tahu komponen apa saja yang perlu
didalami. Langsung to the point.
Dicoding Academy
Nah masalahnya tak semua orang bisa membuat roadmap sedemikian rupa agar menjadi profesional
di masing-masing bidang. Oleh karena itulah, bangun karier Anda sebagai Developer Profesional di
Dicoding.com.
Kenapa Dicoding Academy berbeda? Tak hanya materi yang terjamin, Dicoding Academy juga
memiliki reviewer profesional yang akan mengulas kode Anda. Berikut keunggulan dari Dicoding
Academy.
Learning path di Dicoding akan membantu Anda dalam belajar di Academy dengan kurikulum yang
dibangun bersama pelaku industri ternama. Belajar secara terstruktur akan membuat target belajar
lebih mudah tercapai. Sudah banyak lulusan Dicoding yang mendapatkan manfaatnya. Anda bisa
baca langsung Testimoni Siswa di dicoding.com/story.
Mengasah Skill
Terakhir, sebaik apa pun roadmap yang Anda dapatkan; materi yang sudah Anda kumpulkan; dan
berbagai resource yang Anda temui, tak akan berguna tanpa keseriusan Anda untuk belajar, berlatih,
dan mencoba. Jadi poinnya adalah berlatih dengan cara mempraktikkan langsung.
Asah skill codingmu lebih dalam. Bisa dimulai dari tools yang digunakan, kumpulan library yang
bisa dimanfaatkan, implementasinya, hingga membuat aplikasinya. Jangan lupa untuk membagikan
karya Anda ke orang lain untuk mendapatkan feedback. Dari feedback, Anda akan tahu apa yang
kurang dan perlu ditingkatkan. Sehingga, proses belajar akan menjadi lebih efektif.
Jika Anda sudah merasa mempunyai skill yang cukup, cobalah untuk bekerja atau sekedar kerja
lapangan/magang. Ini akan memperkuat skill yang Anda miliki dengan lebih cepat. Untuk awalan
yang baik, jangan terlalu banyak mengejar materi. Namun fokus pada skill yang ingin Anda
kembangkan. Sebab, ketika skill sudah dalam, Anda akan memiliki peluang yang lebih besar untuk
bekerja di perusahaan impian.
Intinya, ketika Anda menentukan salah satu jalur dari Software Developer, tak perlu takut untuk
memulainya. Sebab ini akan jadi langkah awal untuk merubah diri Anda menjadi lebih baik. Tak
perlu ragu untuk bertanya di forum diskusi ya.
Lembaga survei lain, Slash Data, mengatakan “Ada 18,9 juta software developer di dunia pada tahun
2019 dan angka ini akan terus berkembang mencapai 45 juta pada tahun 2030 [8].”
Secara lowongan pekerjaan, Software Developer di Indonesia cukup tinggi. Berikut survei kebutuhan
software developer di Indonesia menurut berbagai job platform:
Namun, banyak yang menganggap mencari pekerjaan di Indonesia cukup sulit, seperti yang
disampaikan berbagai portal berita. Padahal, sebenarnya Indonesia sendiri mengalami “Darurat
Tenaga IT”.
Riset World Bank mengatakan, “Untuk mendukung transformasi digital dan pertumbuhan ekonomi,
Indonesia membutuhkan kurang lebih 600.000 talenta digital setiap tahunnya [9].”
Jalur Karier Software Developer
Seperti yang kita tahu, penggunaan teknologi digital telah merambah ke segala lini kehidupan kita.
Dalam kehidupan sehari-hari semua telah menggunakan teknologi digital. Artinya, tenaga IT saat ini
sangat dibutuhkan, begitu juga kebutuhan karier Software Developer.
Lantas apa saja jalur karier developer yang bisa kita tekuni? Berikut merupakan pembagiannya:
1. Android Developer
Seorang Android Developer adalah Software Developer yang berspesialisasi dalam
merancang dan membangun aplikasi untuk pasar operating system Android. Android adalah
sistem operasi yang dikeluarkan oleh Google.
2. iOS Developer
Seorang iOS Developer adalah Software Developer yang berspesialisasi dalam merancang
dan membangun aplikasi untuk pasar sistem operasi iOS. iOS atau iPhone OS merupakan
sistem operasi yang dikeluarkan oleh Apple.inc, iOS yang dibuat khusus untuk iPhone dan
iPad.
3. Multi-Platform App Developer
Seorang Multi-Platform Developer adalah Software Developer yang berspesialisasi dalam
merancang dan membangun aplikasi yang dapat digunakan berbagai sistem operasi populer
seperti Android dan iOS.
4. Front-End Web Developer
Seorang Front-End Web Developer adalah Software Developer yang bertanggung jawab
untuk merancang dan membangun berbagai aplikasi web secara responsif, interaktif, dan
juga user friendly.
5. Machine Learning Developer
Seorang Machine Learning Developer adalah pakar dalam menggunakan data untuk model
pelatihan. Model-model tersebut kemudian digunakan untuk mengotomatisasi proses seperti
klasifikasi gambar, pengenalan suara, dan perkiraan pasar. Sering kali ada penggabungan
dengan peran data scientist atau artificial intelligence (AI) engineer.
6. Azure Cloud Developer
Seorang Cloud Developer dapat sepenuhnya memanfaatkan layanan yang disediakan
oleh Cloud Solution Provider tersebut. Individu ini memiliki pengalaman dengan basis data
terkini (next-gen database), lingkungan di mana aplikasi berjalan (runtime environment),
dan alat pengembang (developer tools). Mereka juga memiliki kemampuan dengan
setidaknya satu bahasa pemrograman umum dan terampil menghasilkan metrik dan log yang
bermakna untuk debug dan melacak kode.
7. Dan masih banyak lagi.
Kebanyakan dari jalur developer membutuhkan sebuah Laptop/Komputer, kecuali untuk iOS
Developer membutuhkan MacBook. Seorang iOS Developer harus mempunyai setidaknya macbook,
sebab software yang dibutuhkan hanya tersedia dalam OS tersebut.
Banyak cara untuk menjadi expert di masing-masing jalur tersebut. Tentu dengan persiapannya
masing-masing, baik software, hardware, atau skill yang dibutuhkan. Anda dapat memperkuat skill
dengan mengikuti kelas dari Dicoding. Sebab Dicoding mempunyai berbagai Learning Path. Anda
dapat belajar secara terstruktur sehingga target belajar lebih mudah tercapai di Dicoding Academy.
Berikut Learning Path yang tersedia dalam situs dicoding.com/learningpaths:
1. Android Developer
Kurikulum didesain oleh Dicoding sebagai satu-satunya Google Developers Authorized
Training Partner di Indonesia. Siswa dipersiapkan untuk menjadi Android Developer
berstandar global Google. Learning Path ini terdiri dari 6 Kelas Akademi:
a. Memulai Pemrograman Dengan Kotlin
Kelas pengantar untuk mempelajari Functional Programming serta Object-Oriented
Programming (OOP) menggunakan Kotlin.
b. Belajar Prinsip Pemrograman SOLID
Pelajari kelima prinsip desain yang merupakan pedoman untuk rancangan kode yang
baik pada pemrograman berorientasi objek (OOP).
4. iOS Developer
Kurikulum disusun oleh Dicoding dan pelaku industri di bidang iOS Development. Siswa
dipersiapkan untuk menjadi iOS Developer sesuai standar kebutuhan industri. Learning Path
ini terdiri dari 5 Kelas Akademi:
a. Memulai Pemrograman Dengan Swift
Belajar bahasa Swift buat kamu yang ingin mempelajari konsep Pemrograman
Berorientasi Objek (PBO) dalam mengembangkan iOS dan OS X.
b. Belajar Prinsip Pemrograman SOLID
Pelajari kelima prinsip desain yang merupakan pedoman untuk rancangan kode yang
baik pada pemrograman berorientasi objek (OOP).
c. Belajar Membuat Aplikasi iOS untuk Pemula
Pelajari cara membuat aplikasi pertamamu dengan Xcode. Kelas ini mengajarkan
dasar iOS mulai dari Controller sampai TableViews.
d. Belajar Fundamental Aplikasi iOS
Pelajari komponen fundamental iOS berdasarkan teknik yang digunakan industri
mulai dari App Design, SwiftUI, Networking, sampai Database.
e. Menjadi iOS Developer Expert
Saatnya jadi iOS Expert dengan belajar Clean Architecture, Reactive, Dependency
Injection, Modularization, dan Test Driven Development.
Selain belajar di Dicoding, Anda dapat mempelajari skill pada masing-masing jalur karier developer
di dokumentasinya atau forum diskusi terkait. Silakan mulai tentukan jalur karier mana yang
membuat Anda tertarik ya.
Pandangan Developer Expert
Pandangan Developer Expert dapat menjadi pertimbangan Anda untuk menentukan karier mana
yang akan dipilih. Berikut beberapa developer yang telah diwawancarai mengenai pandangan mereka
mengenai software Developer.
Rendra Toro
Technology Advisor di PT. Perintis Teknologi Nusantara
Beliau sudah melalang buana di dunia IT, mulai dari Web Developer, Mobile Developer, hingga
CTO sebagai karier tertinggi di Software Developer. Saat ini beliau fokus menjadi Technology
Advisor di PT. Perintis Teknologi Nusantara.
Fandy Gotama
Co-Founder / CTO at Adrena Teknologi Indonesia
Fandy Gotama adalah Mobile App Tech Lead (Pemimpin Teknologi di tim Mobile App Developer)
dan telah bekerja di Android dan iOS masing-masing sejak Cupcake dan iOS 2.x. Sebelum mulai
menulis aplikasi seluler, beliau adalah pengembang Full Stack Web Developer dengan pengalaman
hebat dalam berbagai bahasa pemrograman seperti PHP, Perl, dan Python.
Sumber : Linkedin Fandy Gotama
Danviero Yuzwan
Android Developer at LOKÉT | GO-JEK Group
Danviero Yuzwan adalah seorang Software Developer yang memiliki spesialisasi di bidang Android.
Pada tahun 2021 ini, sudah 4 tahun lebih beliau telah meniti karier sebagai Android Developer. Saat
ini beliau bekerja di LOKET.
o Menurut mas Yuzwan, hambatan itu pasti ada. Berikut beberapa masalah yang sering
dihadapi dalam programming:
1. Kode yang error atau fitur yang tidak jalan
Anda dapat memanfaatkan Google dan Stackoverflow untuk menyelesaikan
masalah tersebut.
2. Malu bertanya
Jika Anda merasa sudah stuck, ada baiknya bertanya kepada orang lain agar
waktu Anda tidak terbuang sia-sia. Namun, tetap bertanya dengan sopan ya.
3. Tidak mendokumentasikan suatu masalah.
Pastikan Anda menyimpan solusi dari permasalahan yang sudah
terselesaikan, agar tidak kesusahan jika menemuinya lagi.
4. Tidak tahu keyword dari permasalahan yang dihadapi.
Anda dapat mencari nama keyword dengan mengandalkan fungsi dari
komponen tersebut. Anda juga dapat melatih pengetahuan sebuah keyword
dengan membaca dokumentasi dan artikel terkait.
o Selain itu ada juga masalah yang akan dihadapi di luar programming. Berikut
detailnya:
1. Komunikasi
Komunikasi dalam sebuah tim itu penting.
2. Terkendala bahasa
Untuk meningkatkan level komunikasi, maka Anda perlu mempelajari hal
lain, seperti bahasa Inggris atau Mandarin.
3. Tidak bisa menjelaskan
Anda perlu belajar technical writing agar dapat menyampaikan sesuatu
dengan mudah.
Jadi seperti itulah interview yang telah kami lakukan dengan para Developer Expert. Semoga bisa
menjadi bekal dalam menentukan karier sebagai Software Developer.
Penutup
Yang perlu Anda lakukan adalah memilih salah satu dari berbagai macam jalur software developer.
Banyak faktor yang dapat mempengaruhi keputusan Anda. Hardware merupakan hal pertama yang
dapat mempengaruhi keputusan Anda dalam memilih jalur yang sesuai.
Anda dapat membuat rencana untuk menentukan jalur karier developer hingga menjadi expert.
Berikut tahapannya:
Melihat kondisi hardware yang Anda miliki. Kemudian memilih dari peluang karier yang
ada.
Setelah memilih jalur karier developer, kuasailah fundamentalnya seperti algoritma dan
bahasa pemrograman yang digunakan.
Kemudian mencari roadmap dari jalur karier tersebut. Anda bisa memanfaatkan Google,
tanya ke taman Anda, masuk ke forum diskusi terkait, mengikuti webinar, ikut ke komunitas,
melihat langsung di dokumentasinya, dan masih banyak cara lainnya.
Setelah menemukan Roadmap yang sesuai, Anda harus gigih, temukan topik yang menarik,
kemudian bermain-main dan mengotak-atik ilmu yang Anda dapatkan.
Bangun karier Anda sebagai Developer Profesional di Dicoding.com. Belajar secara terstruktur
sehingga target belajar lebih mudah tercapai.