Kursus Enterprise Node.js HexSchool
Beberapa pemikiran dan refleksi kasar setelah menyelesaikan Kursus Enterprise Node.js HexSchool.
Mengapa saya mengambil kursus ini? Masalah apa yang ingin saya selesaikan?
Ini adalah kursus yang mahal. Mengingat sifat HexSchool (mereka tidak bisa menolak siswa yang membayar karena alasan bisnis), konten kursus harus dirancang pada sisi yang lebih mudah.
Dengan kondisi tersebut, mendaftar mungkin terlihat seperti keputusan yang merugikan. Tapi dalam praktiknya, ada beberapa sudut pandang yang layak dipertimbangkan:
Kerja Tim
Kursus ini mensyaratkan kolaborasi kelompok sejak awal. Karena sebagian besar peserta berasal dari latar belakang frontend dan memiliki sedikit atau tidak ada pengalaman backend, ini adalah kesempatan untuk melatih komunikasi dan koordinasi dalam pengembangan backend.
Dari sudut pandang lain, orang-orang yang bekerja sama dengan Anda bisa menjadi koneksi masa depan yang saling membantu -- ini adalah cara untuk membangun jaringan profesional Anda.
Sunk Cost
Seperti yang saya sebutkan, ini adalah kursus yang mahal. Bahkan jika Anda semalas saya, jika Anda tidak ingin uang itu terbuang sia-sia, Anda harus berusaha setelah jam kerja untuk mengikuti proyek dan memenuhi deadline. Dengan cara tertentu, ini memaksa Anda untuk disiplin.
Perspektif Baru
Seluruh proyek berjalan dari ideasi desain hingga pengembangan, dari ujung ke ujung. Secara objektif, kontennya cukup dangkal, tapi tetap memungkinkan setiap anggota untuk melewati alur kerja PM, UI/UX, frontend, dan backend setidaknya sekali. Itu memberi Anda beberapa perspektif baru untuk pekerjaan di masa depan.
Konten Kursus
Selain dasar-dasar perintah MongoDB dan implementasi API Node.js, bagian yang paling berharga menurut saya adalah integrasi dengan layanan pihak ketiga -- hal-hal seperti login pihak ketiga dan pemrosesan pembayaran. Hal-hal ini memang membosankan dan membutuhkan waktu untuk menggali dokumentasi penyedia layanan, jadi memiliki pengajaran terstruktur menghemat usaha Anda.
Selain itu, beberapa bagian kursus masih menggunakan MVC sebagai contoh arsitektur, jadi tim harus mencari tahu pemisahan frontend-backend sendiri selama proyek. Itu juga area lain yang membutuhkan waktu dan pemikiran.
Beberapa sesi pada dasarnya dialihdayakan ke instruktur tamu untuk pengajaran langsung, yang bisa menimbulkan celah. Misalnya, sesi unit testing hanya menyediakan contoh untuk frontend, jadi jika Anda ingin berlatih unit testing backend, Anda harus belajar sendiri.
Pekerjaan Proyek (Pandangan Sangat Subjektif)
Pekerjaan proyek adalah yang saya anggap sebagai bagian paling berharga dari kursus ini, dan kuncinya adalah kolaborasi dan perencanaan internal tim.
Jujurlah sebelum membentuk tim
Sebelum tim dibentuk, ada penilaian mandiri terhadap kemampuan Anda. Jika Anda tidak familiar dengan suatu domain, jujurlah tentang itu. Jika kesenjangan keterampilan dalam tim terlalu besar, hal itu mudah menimbulkan perselisihan serius, dan proyek berantakan.
Sediakan waktu cadangan untuk pengembangan
Karena kebanyakan orang adalah pengembang frontend yang baru terjun ke pekerjaan backend, ada banyak jebakan yang memperlambat -- hal-hal yang tidak pernah harus dikhawatirkan pengembang frontend sebelumnya. Misalnya, setelah mengintegrasikan pemrosesan pembayaran, Anda pasti harus menangani pesanan, dan pesanan melibatkan timestamp transaksi dan kompleksitas lainnya.
Bagi pengembang frontend, masalah-masalah ini tidak pernah ada di radar sebelumnya. Selalu hanya memanggil API dan merender daftar. Tapi di sisi backend, ini adalah hal-hal yang mutlak harus Anda pikirkan.
Targetkan proyek yang selesai
Tolong pertimbangkan poin-poin ini dengan serius:
- Anggota tim semua memiliki pekerjaan tetap dan hanya bisa menginvestasikan waktu terbatas (Anda tidak bisa memprediksi apakah seseorang akan memiliki tuntutan kerja mendesak atau lembur)
- Deadline sangat ketat, dengan waktu pengembangan aktual yang terbatas
- Kebanyakan anggota tidak akan memiliki pengalaman backend, jadi pasti ada waktu yang terbuang untuk membenturkan diri ke tembok
Jadi tujuan fase pertama seharusnya membangun sesuatu yang berfungsi, bukan sesuatu yang sempurna. Jangan terlalu memikirkan arsitektur, optimisasi, atau testing pada tahap ini -- itu datang nanti.
Jika Anda mengejar kesempurnaan, Anda tidak hanya akan terjebak pada waktu pengembangan, tapi lebih buruk lagi, Anda mungkin menyebabkan tim terpecah (konflik tersembunyi di mana-mana, terutama saat Anda tidak bisa tahu apakah rekan tim sedang menghadapi tekanan kerja di siang hari). Begitu tim terpecah, proyek 94,87% mati. Mengirimkan fitur yang jelek tapi berfungsi sangat membantu meningkatkan kepercayaan diri semua orang.
Khususnya, hindari memperluas tech stack tim tanpa henti. Di sisi frontend, Anda seharusnya tidak pernah berakhir menggunakan React dan Vue secara bersamaan. Bahkan jika seseorang di tim sangat mahir dengan satu framework, bukan berarti orang lain bisa mempelajarinya cukup cepat untuk berkontribusi.
Ekspansi dan Optimisasi
Setelah proyek menyelesaikan fitur berbasis peran pertamanya, Anda bisa menganggap fase pertama selesai. Selain beristirahat sejenak, Anda bisa mulai memikirkan fitur tambahan, termasuk hal-hal yang ingin Anda coba secara teknis atau perbaikan UX.
Untuk proyek kami, kami secara bertahap menambahkan pesan websocket, dukungan PWA, animasi, sistem check-in, dan lainnya, memperkaya situs secara keseluruhan.
Kata Penutup
Berikut URL yang sudah di-deploy dan repo untuk proyek kami. Silakan cek.
Client
Admin
<!-- akun dan password untuk pengujian -->
account : admin
password : 12345678
