Bagaimana Para Ahli Mempelajari JavaScript — Bagian I

JavaScript telah berkembang pesat dari perannya di tahun 90an sebagai bahasa untuk mem-flash gambar, tongkat ajaib penunjuk tetikus, dan menggulir pesan di bilah status browser Anda. Rilisan ECMA yang substansial dari akhir tahun 90an dan seterusnya mempersenjatai JavaScript dengan fitur dan peningkatan kinerja yang diperlukan untuk memimpin revolusi Web 2.0.

Sekarang menjadi bahasa pemrograman paling populer di dunia. Dan saat ini kita melihat JavaScript muncul di tempat-tempat yang tidak pernah kita duga pada tahun 90an — seperti di server dengan Node, dan dalam pengembangan aplikasi asli menggunakan Cordova. Hanya penjelajah waktu yang bisa memperkirakan hal itu.

Dengan begitu banyak variasi tempat untuk menjalankan kode, kerangka kerja, dan pustaka yang dapat dipilih, bagi pelajar dan pengembang berpengalaman yang ingin menambah keterampilan baru, mungkin sulit mengetahui harus mulai dari mana.

Untuk mendapatkan panduan, saya mencari ahlinya. Saya berbicara dengan sebanyak mungkin pakar JavaScript untuk mengetahui lebih lanjut tentang cara mereka mempelajari JavaScript dan cara mereka mengikuti perkembangan ekosistem teknologi yang terus berkembang.

Di bagian 1 serial ini, saya berbicara dengan Alex Blom, Matteo Collina dan Catherine Meade.

Alex Blom

Alex adalah Managing Partner di Isle of Code dan pengelola utama Corber.

Bagaimana Anda mempelajari JavaScript?

Saya telah mengerjakan proyek Rails dan Objective-C sebelum mempelajari JavaScript. Untuk satu proyek, saya perlu menulis ekstensi Chrome yang memaksa saya untuk menggunakan JavaScript — awal dari lubang kelinci. Saya akui, saya bukanlah penggemar beratnya pada saat itu, namun saya melihat banyak keuntungan saat membuat halaman dinamis yang mengesampingkan sebagian besar pekerjaan boilerplate yang saya pertahankan dalam tampilan Rails. Ini terjadi sebelum banyak kerangka JavaScript saat ini dirilis.

Beberapa aplikasi JavaScript pertama adalah jQuery murni dan saya akhirnya mengembangkan kerangka kecil saya sendiri untuk membuat komponen dan mempertahankan status. Saya tidak akan merekomendasikan melakukan hal itu hari ini, tetapi ini adalah latihan yang bagus dalam mempelajari seluk beluk bahasa tersebut dan mencoba memikirkan tentang bagaimana komponen front-end harus disusun. Saya juga menghabiskan beberapa waktu mencoba menjalankan aplikasi jQuery ini secara hybrid tetapi mengalami masalah kinerja yang sulit dipecahkan — sebagian besar disebabkan oleh struktur saya yang tidak konsisten.

Beberapa waktu kemudian, seorang teman mengarahkan saya ke rilis awal Ember dan saya jatuh cinta - strukturnya lebih baik daripada yang saya bayangkan, dan banyak kekhawatiran, misalnya. perutean ditangani untuk saya. Saya benar-benar melihat 'Rails' untuk pengembangan front-end. Bagian yang paling menarik adalah aplikasi untuk seluler — dengan struktur yang memadai saya melihat cara untuk menggantikan sebagian besar pekerjaan seluler asli yang saya lakukan, mengirimkan pekerjaan yang sama ke iOS dan Android, dan dengan struktur yang konsisten serta kinerja komunitas akan lebih mudah untuk diselesaikan - atau bahkan lebih baik diselesaikan untuk saya.

Saya masih menghabiskan hari-hari saya di JavaScript — sebagian besar dengan Ember dan Vue — dengan minat khusus untuk membuat aplikasi ini berjalan dengan baik di web seluler & seluler asli.

Bagaimana Anda mengikuti perubahan dalam JavaScript?

Saya tidak akan mengatakan bahwa disiplin adalah kekuatan saya — jika saya tidak tertarik, saya dapat mewujudkannya tetapi tidak ada kenangan yang akan melekat. Saya biasanya mencoba mencari proyek atom yang lebih kecil di mana saya dapat menerapkan alat atau fitur baru untuk melihat cara kerjanya dan menggunakannya sendiri sedikit.

Luas permukaan pemrograman akan selalu meningkat dan mustahil untuk mengikutinya — pilih apa yang menurut Anda menarik dan praktis, lalu mulai/perluas dari sana. Cobalah untuk bekerja dengan orang-orang yang tertarik pada bagian-bagian yang sebenarnya tidak Anda sukai daripada memaksakan diri untuk melakukannya.

Matteo Collina

Matteo adalah pembajak kode dan ilmuwan gila. Dia menghabiskan sebagian besar waktunya memprogram di node.js, tetapi sebelumnya, dia bekerja dengan Ruby, Java, dan Objective-C.

Bagaimana Anda mempelajari JavaScript?

Ayah saya menempatkan saya di depan Commodore64 ketika saya baru berusia empat tahun, dan dia sedang mengetik videogame dari majalah (dulu!) dengan saya di pangkuannya. Saya tidak ingat pernah belajar memprogram. Saya terlambat belajar JavaScript, setelah C, PHP, Java, C#, Python dan Ruby. Alasan utama saya mempelajari JavaScript adalah karena saya menyukai bahasa Ruby dan produktivitas yang saya miliki dengannya.

Salah satu terobosan terbesar yang saya alami adalah pada modul leveldown (), karena saya perlu menyelesaikan masalah memori/GC (> lebih detail di sini>). Dalam hal ini, saya belajar banyak tentang C++, V8 (JS vm yang dijalankan Node.js), dan pengumpul sampah. Ini merupakan salah satu batu loncatan dalam perjalanan yang membawa saya menjadi anggota Komite Pengarah Teknis Node.js.

Bagaimana Anda mengikuti perubahan di JS?

Saya tidak. Perubahan dalam JavaScript temukan saya terlebih dahulu! Saya mengerjakan runtime Node.js, dan salah satu tanggung jawab kami adalah memeriksa dan memverifikasi bahwa Node.js berfungsi dengan baik dengan fitur bahasa baru. Dengan kata lain, segera setelah V8 mendaratkannya, saya dapat mengambilnya di Node.js. Hal ini biasanya berada di depan kurva adopsi. Sebagai contoh, saya menambahkan dukungan untuk AsyncIterators ke aliran Node.js, segera setelah aliran tersebut mencapai Tahap 3 di TC39. Saya juga melewatkan beberapa pergerakan besar, seperti modul ECMAScript, karena terbukti sulit untuk diterapkan di Node.js

Catherine Meade

Catherine membangun situs web responsif dengan Sparkbox, dengan fokus baru-baru ini pada sistem desain tingkat perusahaan tunggal.

Bagaimana Anda mempelajari JavaScript?

Pada tahun 2016 saya mulai magang di Sparkbox, di mana saya sekarang menjadi pengembang penuh waktu. Program magang Sparkbox berfokus pada pengajaran keterampilan pengembangan full-stack. Peserta magang saat ini mempelajari hampir seluruhnya JavaScript (ditambah HTML, CSS, SCSS, git, dan banyak lagi — baca tentang hal ini di github.com/sparkbox/apprenticeships), tetapi di tahun saya, kami mempelajari Ruby/Rails, dan semua bagian lainnya itu sesuai dengan itu. Pengalaman pertama saya dengan JavaScript adalah ketika saya perlu melakukan sedikit JavaScript frontend di sini atau di sana agar animasi dapat berfungsi.

Banyak dari perjanjian yang saya kerjakan dijalankan di Node.js. Agak aneh mempelajari Rails lalu beralih ke Node, tetapi setelah beberapa saat, Anda mulai melihat kesamaan dalam berbagai bahasa. Saya belajar sebagian besar dengan membangun sesuatu. Lingkungan di Sparkbox adalah lingkungan yang penuh bimbingan dan saya selalu mengajukan pertanyaan dan berpasangan dengan rekan kerja saya yang sangat berbakat. Saya juga menghabiskan beberapa waktu dengan kurikulum web, misalnya, 'ES6 Untuk Semua Orang' dari Wes Bos sangat membantu ketika saya memulai (wesbos.com/es6-for-everyone).

Proyek klien terbesar yang pernah saya kerjakan dengan JavaScript adalah sistem desain tingkat perusahaan yang sama dengan yang saya gunakan sekarang. Sistem tersebut mengirimkan gaya melalui paket npm pribadi, yang dikelompokkan dengan perpustakaan bernama Lerna (github.com/lerna/lerna). Semakin banyak klien kami yang membuat pilihan untuk pindah ke kerangka kerja JavaScript, dan saya baru-baru ini bekerja di proyek React perusahaan, dan kami memiliki klien besar lainnya yang menggunakan Angular. React sangat menyenangkan bagi seseorang yang suka mengatur segala sesuatunya, seperti saya.

Bagaimana Anda mengikuti perubahan di JS?

Saya membaca banyak artikel. Rekan kerja saya adalah sumber informasi yang luar biasa, karena mereka sangat terhubung. Kami memiliki beberapa saluran di tim Slack tempat kami berbagi artikel setiap hari, dan ada beberapa hal bagus di sana. Kita sering kali memulai debat publik yang sopan tentang cara terbaik menyelesaikan sesuatu, dan setiap orang bersedia menjawab pertanyaan dan mempertahankan pendiriannya. Kami membuat satu sama lain lebih baik.

Saya juga suka menghadiri konferensi. Favorit saya sejauh ini adalah JSConf Islandia, yang telah saya kunjungi dua kali, sekali sebagai peserta, dan sekali sebagai pembicara. Saya suka mendengarkan orang-orang yang benar-benar bersemangat dengan kerajinan mereka. Jika sebuah pembicaraan benar-benar melekat pada saya dan saya dapat menemukan rekamannya, saya akan membaginya dengan tim saya dan terus melanjutkan siklusnya. Jadi saya sebagian besar termotivasi untuk belajar karena kegembiraan teman-teman saya.

Lihat Alex, Catherine dan Matteo di FullStackNYC pada bulan Mei👍 Untuk berita dan artikel dari Skills Matter, berlangganan buletin kami di sini