Buat kode Anda dari awal, ini akan memompa level Anda

gambar


Untuk benar-benar memahami roda, Anda perlu menemukannya kembali sendiri.

Suatu hari saya mewawancarai untuk posisi pengembang javascript senior. Rekan saya, yang juga berpartisipasi dalam wawancara, meminta kandidat untuk menulis fungsi yang akan mengeksekusi permintaan HTTP dan mengulanginya beberapa kali jika terjadi kegagalan.

Karena dia menulis ini di papan tulis, pseudocode sudah cukup. Jika dia menunjukkan pemahaman yang baik tentang masalah ini, kita akan puas. Namun, sayangnya, ia tidak dapat menemukan solusi yang baik.

Berpikir bahwa dia gugup, kami memutuskan untuk membuat tugas sedikit lebih mudah dan memintanya untuk mengubah fungsi berdasarkan panggilan balik ke fungsi berdasarkan Janji.

Tidak berhasil

Saya dapat mengatakan bahwa dia telah melihat kode yang sama sebelumnya. Dia kurang lebih tahu bagaimana ini bekerja. Pseudocode menunjukkan bahwa dia mengerti konsep ini sudah cukup.

Tetapi kode yang ditulisnya di papan tulis tidak masuk akal. Dia hanya memiliki pemahaman yang samar tentang konsep Janji dalam JavaScript, dan dia tidak bisa berbicara dengan jelas tentangnya.

Ini bisa dimaafkan jika Anda adalah pengembang pemula, tetapi jika Anda melamar posisi kepemimpinan, ini tidak cukup. Bagaimana dia akan men-debug rantai Janji kompleks dan kemudian menjelaskan kepada orang lain apa yang dia lakukan?

Perangkat Lunak EDISON - pengembangan web
Artikel ini ditulis dengan dukungan Perangkat Lunak EDISON, yang menjaga kesehatan programmer dan sarapan mereka , dan juga mengembangkan perangkat lunak khusus .

Pengembang menerima abstraksi begitu saja


Sebagai pengembang, kami bekerja dengan abstraksi. Kami kode abstrak yang seharusnya harus digandakan. Oleh karena itu, ketika kita fokus pada poin yang lebih penting, kita menerima abstraksi yang kita kerjakan begitu saja, dan hanya menganggap bahwa mereka bekerja sebagaimana mestinya.

Biasanya memang begitu, tetapi ketika segala sesuatunya menjadi rumit, Anda harus tahu cara kerja abstraksi ini.
Kandidat pengembangan senior mengambil abstraksi dari Janji untuk diberikan. Dia mungkin akan tahu bagaimana bekerja dengannya jika dia bertemu di suatu tempat dalam sepotong kode, tetapi dia tidak mengerti konsepnya dan karena itu tidak dapat mereproduksinya di wawancara.
Dia hanya bisa mengingat kode itu. Sebenarnya tidak terlalu sulit:

return new Promise((resolve, reject) => { functionWithCallback((err, result) => { return err ? reject(err) : resolve(result); }); }); 

Saya melakukan itu. Kita semua mungkin melakukan ini. Anda hanya ingat sepotong kode sehingga Anda bisa bekerja dengannya. Anda kurang lebih memahami cara kerjanya.

Tetapi jika dia benar-benar memahami konsep itu, dia tidak perlu mengingatnya. Dia hanya akan tahu ini dan mereproduksi tanpa masalah.

Ketahui sumber Anda


Kembali pada tahun 2012, sebelum kerangka front-end mendominasi dan jQuery memerintah dunia, saya membaca Rahasia Ninja JavaScript oleh John Rezig, pencipta jQuery.

Buku ini akan mengajarkan Anda cara membuat jQuery Anda sendiri dari awal, dan memberi Anda pemahaman unik tentang proses pemikiran di balik pembuatan perpustakaan ini. Meskipun jQuery telah menjadi latar belakang dalam beberapa tahun terakhir, saya sangat merekomendasikan membaca buku ini.

Apa yang menurut saya dalam buku itu adalah perasaan terus-menerus bahwa saya dapat memikirkannya sendiri. Langkah-langkah yang dijelaskan dalam buku ini sangat logis dan sederhana sehingga saya benar-benar merasa bahwa saya dapat membuat jQuery jika saya menetapkan sendiri tujuan tersebut.

Bahkan, saya tidak akan pernah bisa melakukan ini - saya akan merasa terlalu rumit. Saya akan berpikir bahwa keputusan saya terlalu sederhana dan naif, dan saya akan menyerah begitu saja. Saya hanya akan menerima jQuery begitu saja dan percaya padanya. Setelah itu, saya mungkin tidak akan mengerti cara kerjanya. Saya hanya akan menggunakannya sebagai kotak hitam.

Membaca buku ini telah mengubah saya. Saya mulai memahami kode sumber dan menemukan bahwa banyak implementasi yang cukup sederhana, bahkan jelas.

Sekarang datang dengan solusi ini sendiri adalah masalah yang sama sekali berbeda. Tetapi membaca kode sumber dan mengimplementasikan sendiri solusi yang ada adalah persis apa yang membantu Anda memunculkan sendiri.

Inspirasi yang Anda terima dan pola yang Anda temukan akan mengubah Anda sebagai pengembang. Anda akan menemukan bahwa perpustakaan luar biasa yang Anda gunakan dan anggap sebagai sulap ini bukanlah sihir yang sebenarnya, tetapi hanya solusi sederhana dan cerdas.

Anda dapat menghabiskan waktu menguraikan kode, langkah demi langkah, dan itu juga akan memaksa Anda untuk melalui langkah-langkah kecil dan bertahap yang sama seperti yang dilakukan penulis untuk membuatnya. Ini memberi Anda pemahaman yang lebih dalam tentang proses pemrograman dan lebih percaya diri dalam implementasi keputusan Anda sendiri.

Ketika saya mulai menggunakan Promise dalam JavaScript, saya pikir itu ajaib. Kemudian saya menemukan bahwa mereka didasarkan pada panggilan balik, dan visi saya tentang pemrograman telah berubah selamanya.
Template ini, yang seharusnya menghilangkan callback, diimplementasikan menggunakan ... callbacks?

Itu mengubah saya. Itu membuat saya sadar bahwa ini bukan cuplikan kode yang sangat rumit, jadi saya bisa mengetahuinya. Ini adalah model yang saya dapat dengan mudah mengerti jika saya memiliki rasa ingin tahu dan keinginan untuk menyelami mereka.

Inilah cara Anda benar-benar belajar memprogram. Inilah cara Anda menjadi pengembang yang lebih baik.

Temukan kembali roda


Jadi mari kita menemukan kembali roda. Tulis pengikatan data Anda sendiri, Janji Anda sendiri, atau bahkan solusi manajemen negara Anda.

Tidak masalah bahwa tidak ada yang akan menggunakan ini. Anda akan belajar sesuatu yang baru untuk diri Anda sendiri. Dan jika Anda dapat menggunakannya di salah satu proyek Anda sendiri, itu akan bagus. Anda akan mengembangkan kode ini lebih lanjut dan belajar lebih banyak lagi.

Intinya bukan untuk menggunakan solusi Anda dalam produksi, tetapi untuk belajar. Menulis implementasi solusi Anda sendiri yang ada adalah cara yang bagus untuk belajar dari yang terbaik.


Baca juga blognya
Perusahaan EDISON:


20 perpustakaan untuk
aplikasi iOS yang spektakuler

Source: https://habr.com/ru/post/id473288/


All Articles