Langsung ke konten utama

Kursus Enterprise Node.js HexSchool

· 5 menit membaca
Pitt Wu
Software / Product Engineer

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

Tautan Terkait

關於我成為了 2023 Node.js 軟體工程師企業專題班教練這件事