Career / Frontend / Learning
Memulai Karir Frontend dengan Otodidak (Tanpa Bootcamp)
Note: Saya mencoba membuat halaman Trakteer untuk donasi support terhadap blog/tulisan saya, (support hampir semua dompet digital) https://trakteer.id/hanipcode . Yuk Support ji...
Note: Saya mencoba membuat halaman Trakteer untuk donasi support terhadap blog/tulisan saya, (support hampir semua dompet digital) https://trakteer.id/hanipcode . Yuk Support jika kamu menikmati tulisan ini
Di tulisan kali ini saya akan mencoba menuliskan tentang bagaimana memulai karir di frontend secara otodidak dan bahkan hampir tanpa biaya. apakah cara ini paling benar ? tentu saja tidak. ada sebagian orang yang dapat nilai plus dari bootcamp karena unsur sosial nya, dimana bisa belajar bersama. tapi ada juga yang justru lebih efektif ketika belajar sendiri. nah guide ini untuk orang orang dengan tipe kedua tersebut.
pada dasarnya timeline perjalanan untuk memula karir frontend menurut saya baiknya begini.
Sikap Seorang Software Engineer
sebelum kearah materi saya akan bicara dulu soal sikap yang sebaiknya dimiliki seorang engineer.
Rasa Ingin Belajar
Bukan rahasia umum, kamu tidak akan survive di dunia IT kalau kamu berhenti belajar. seorang software engineer harus lah seorang yang mau dan sanggup terus belajar. apalagi perkembangan di frontend juga sangat cepat. kalau berhenti belajar sudah dipastikan karirmu akan mandek disitu saja.
Rasa Penasaran
Seorang software engineer juga harus memiliki rasa penasaran. karena ini yang akan membuatmu untuk sanggup berlama lama melakukan prosees penyelesaian bug atau bug fixing. Rasa penasaran yang pendek akan membuat mu cepet menyerah dan meenuju ke solusi solusi instan.
Mau Membaca (RTFM: Read The F*cking Manual)
Seorang software engineer harus mau membaca. setidak nya adalah membaca source code dan membaca dokumentasi. seringkali, menanyakan hal yang jelas jelas sudah ada di dokumentasi akan membuat mu di bully di komunitas software engineering. Tapi itu wajar, asal kamu tau, semua engineer juga ga ada yang sebahagia itu buat nulis dokumentasi, masa udah merela-relakan nulis dokumentasi, kamu ga mau baca. hadeh.
Rasa Mau Berbagi Ilmu
Kalau kita lihat, justru engineer engineer yang sukses adalah engineer yang mau berbagi. hampirr semua dev ternama punya blog ataupun aktif di komuunitas, sebut saja Dan Abramov (inventor redux), Kent C Dodds (Engineer Paypal, pencipta downshift), mereka seemua menulis ataupun aktif di komunitas. bahkan justru karena meenulis dan aktif di komunitas juga karir mereka maju, misalnya saja Dan Abramov dan pencipta babel yang akhirnya di recruit Facebook.
Menguasai Materi Dasar
Apa saja kah materi dasar di frontend ? di frontend ada HTML/CSS/Javascript(JS).
HTML
HTML adalah sebuah bahasa markup penyusun dokumen website. jadi wajib belajar html. lebih bagus lagi ketika kamu menerapkan best practice html seperti semantic markup dan mulai mempelajari SEO.
beginner:
- Menyusun dokumen website dengan html
intermediate:
- Semantic HTML5 (utilize tag tambahan seperti main, nav, section etc)
advanced:
- mulai pelajari tentang SEO (meta tag, viewport tag, etc)
CSS
CSS adalah sebuah bahasa styling (pemolesan) di dalam website yang digunakan untuk mempercantik tampilan website. CSS ini sangat luas, karena banyak terkait dengan UX juga. berikut tahap belajarnya
beginner:
- memahami property property pada CSS
- mampu melakukan styling tata letak sederhana
- mengetahui tentang selector (Id, class, select attribute, etc)
- mengetahui tentang specificity (ID vs class vs tag vs important)
interemediate:
- mmebuat animasi sederhana dengan css
- mengetahui tentang pseudo classes (:before, :after, :nth-child)
- mampu styling dengan framework css
- mengenal basic css preprocessor seperti sass/less
advanced:
- mengenal lebih dalam css preprocessor (function/mixin/etc di sass)
- Mengenal konsep strukturisasi CSS (BEM, OOCSS, etc)
JS (Javascrpit)
Javascript adalah sebuah bahasa pemrograman yang dalam konteks frontend digunakan untuk membuat website menjad interaktif. scope JS sendiri sangat luas sebenarnya, jadi disini akan saya simplifikasi
beginner:
- memahami bahasa pemrograman javascript (varriable, type, control flow, looping, etc)
- mampu menggunakan vanilla javascript untuk interaksi interaksi simple (jQuery jg masih oke, tapi kebanyakan yang bisa dilakuin jquery udah bisa dilakuin vanilla javascript sih)
- meemahami DOM
intermediate:
- mempelajari konsep Functional Programming dasar seperti closure, higher order function, etc (most of frontend framework mmeilih jalur FP)
- mampu menggunakan Frontend Framework (just pick one React/Vue/Angular)
- Mengenal static typing untuk JS seperti Typescript / Flow
advanced:
- Mengenal engine browser seperti V8
- Mengenal event loop dan microtask
- mengenal lebih dalam frontend framework (misal advanced pattern seeperti Render Props, HoC, di React)
- Mengenal design pattern
- mengenal lebih jauh konsep konsep FP (currying, monad, etc).
Additional Skill/Concept
Berikut additional skill/concept yang perlu kamu kuasai sebagai penunjang karir mu sebagai frontend
beginner:
- git basic
intermediate:
- clean code
- scrum (Jira/ trello board at leeast)
- structuring git project (branching/git flow/tagging, etc)
advanced:
- Design Pattern
- Design System
- Technical Leadership
Alur Belajar
Lalu bagimana nih memulai belajarnya ? saran pertama saya adalah bersabar. karena pada saat belajar hal yang basic pasti akan membosankan
Belajar Basic
Pertama tama, belajarlah bagian basic pada HTML/CSS/JS diatas. expected outputnya adalah kamu bisa membuat website yang sangat sederhana dan juga memahami basic basic javascript. Tahap ini fokuslah untuk belajar konsep konsep basicnya darripada melakukan banyak tutorial. kalaupun mengikuti tutorial, pastikan sembari mencoba memahami secara konsepnya. Setelah memahami konsepnya, kalau kamu mau ke step optional yaitu intership, cobalah mulai mmebuat portfolio dan akun github. sekalian juga kamu mempelajari tentang konsep konsep git,ada baiknya setiap portfolio yang kamu buat kamu kelola saja dengan git dan di push ke github.
(Optional) Start Internship
kalau kamu sudah beelajar basic dan benar benar memahami konsep nya, kamu sudah bisa untuk mencoba menjajal internship di startup software house. berikut yang perlu kamu persiapkan untuk memilih jalur ini
- portfolio
- akun Linkedin
- akun github (berisi portfolio)
- blog (nilai plus)
Belajar Intermediate
Kalau kamu memilih jalur intternship, dan kebetulan kantor tempatmuu internship memakai framework JS, kamu cukup beruntung karena bisa sambil menyelam minum air. kalau belum, di fase ini lah mungkin fase seru seru nya belajar. karena pengetahuan mu mulai bertambah tapi belum dihadapkan kenyataan kalau yang kamu ketaui masih sedikit haha. Belajarlah frontend framework, saran saya awal nya coba kenali saja dulu semuanya secara konsepnya, lalu pilihlah yang paling kamu suka. Setelah Belajar, banyak banyaklah membuat portfolio unttuk persiapan masuk ke fase berikutnya
Start Junior Fulltime Job Dev
Sama hal nya dengan opsi internship, berikut hal hal yang perlu kamu persiapkan. tentunya harus lebih matang dari saat kamu ingin mendaftar internship. dan juga fase ini adalah fase ideal dimana kamu memulai blog atau berbagi dengan komunitas, karena sudah ada cukup pengetahuan yang dapat kamu share, selain itu juga akan menjadi personal branding kamu dan meningkatkan chance untuk mendapat job.
- portfolio
- akun Linkedin
- akun github (berisi portfolio)
- blog (nilai plus)
Teruslah Belajar dan Berkarir
Setelah kamu mendapatkan pekerjaan, teruslah belajar dan berkarir. mulailah masuk ke hal hal yang advanced. kamu tidak akank kehabisan sesuatu untutk dipelajari sih, yang saya list itu juga masih sedikit sebenernya dan juga teruslah berkarir menapaki karir seorang frontend developer.
Tipical Career Path
berikut tipikal career path seorang frontend developer, tidak di semua perusahaan namun kurang lebih begini:
- Intern FE Engineer
- Junior FE Engineer
- FE Engineer
- Senior FE Engineer
- FE Team Leader
- FE Tech Lead
- FE Architect (Principal Engineeer) / Engineering Manager (Frontend)
Free Learning Resources
Berikut beberapa resource yang mungkin membantu
W3School
https://www.w3schools.com/ adalah website interaktif dimana kamu bisa belajar
Eloquent Javascript
Buku Javascript Gratis https://eloquentjavascript.net/ sangat recommended untuk diibaca untuk belajar JS
YDKJS (You Dont Know Javascript)
Buku Javascript yang gratis kalau mau baca di github nya disini
Group Facebook Javascript Indonesia
Note: Untuk memaintain blog ini, saya menghabiskan waktu, jika kamu merasa tulisan ini bermanfaat dan ingin melakukan donasi agar saya tetapbisa terus menulis, kamu bisa mengunjungi page Trakteer saya dan berdonasi (support hampir semua dompet digital) https://trakteer.id/hanipcode . Yuk Support jika kamu menikmati tulisan ini