Selamat datang di edisi ke-2 dari seri buku You Don't Know JS (YDKJS) yang terkenal: You Don't Know JS Yet (YDKJSY)
Jika Anda telah membaca salah satu buku edisi pertama, Anda dapat mengharapkan pendekatan yang diperbarui pada yang baru ini, dengan banyak liputan terbaru tentang apa yang berubah di JS selama lima tahun terakhir. Tapi apa yang saya harap dan percaya Anda masih dapatkan adalah komitmen yang sama untuk menghormati JS dan menggali apa yang benar-benar membuatnya berhasil.
Jika ini pertama kalinya Anda membaca buku-buku ini, saya senang Anda ada di sini. Bersiaplah untuk perjalanan yang dalam dan luas ke semua sudut JavaScript.
Jika Anda baru mengenal pemrograman atau JS, perhatikan bahwa buku-buku ini tidak dimaksudkan sebagai "pengantar JavaScript" yang lembut. Materi ini, kadang-kadang, rumit dan menantang, dan jauh lebih dalam daripada biasanya untuk pelajar pertama kali. Anda diterima di sini tidak peduli apa latar belakang Anda, tetapi buku-buku ini ditulis dengan asumsi Anda sudah nyaman dengan JS dan memiliki setidaknya 6–9 bulan pengalaman dengannya.
Buku-buku ini mendekati JavaScript dengan sengaja berlawanan dengan cara Bagian Yang Baik memperlakukan bahasa tersebut. Tidak, itu tidak berarti kita melihat Bagian Yang Buruk, melainkan menjelajahi semua bagian.
Anda mungkin pernah diberi tahu, atau merasakan sendiri, bahwa JS adalah bahasa yang sangat cacat yang dirancang dengan buruk dan diterapkan secara tidak konsisten. Banyak yang menyatakan bahwa itu adalah bahasa paling populer yang terburuk di dunia; bahwa tidak ada yang menulis JS karena mereka menginginkannya, hanya karena mereka harus memberikan tempatnya di pusat web. Itu klaim yang konyol, tidak sehat, dan sepenuhnya merendahkan.
Jutaan pengembang menulis JavaScript setiap hari, dan banyak dari mereka menghargai dan menghormati bahasanya..
Seperti bahasa hebat lainnya, bahasa ini memiliki bagian-bagian yang cemerlang serta bekas luka. Bahkan pencipta JavaScript sendiri, Brendan Eich, menyesali beberapa bagian itu sebagai kesalahan. Tapi dia salah: itu sama sekali bukan kesalahan. JS adalah seperti sekarang ini — bahasa pemrograman yang paling ada di mana-mana dan paling berpengaruh di dunia — justru karena semua bagian itu .
Jangan membeli kebohongan bahwa Anda seharusnya hanya mempelajari dan menggunakan koleksi kecil bagian yang baik sambil menghindari semua hal buruk. Jangan membeli minyak ular "X adalah Y baru", karena beberapa fitur baru dari bahasa tersebut secara instan menurunkan semua penggunaan fitur sebelumnya sebagai usang dan tidak penting. Jangan dengarkan ketika seseorang mengatakan kode Anda tidak "modern" karena belum menggunakan fitur tahap-0 yang baru diusulkan beberapa minggu yang lalu!
Setiap bagian dari JS berguna. Beberapa bagian lebih berguna dari yang lain. Beberapa bagian mengharuskan Anda lebih berhati-hati dan disengaja.
Saya merasa tidak masuk akal untuk mencoba menjadi pengembang JavaScript yang benar-benar efektif sementara hanya menggunakan sebagian kecil dari apa yang ditawarkan bahasa tersebut. Dapatkah Anda membayangkan seorang pekerja konstruksi dengan kotak perkakas yang penuh dengan perkakas, yang hanya menggunakan palu dan cemoohan pada obeng atau pita pengukur sebagai inferior? Itu konyol.
Klaim saya yang tidak berhak adalah bahwa Anda harus mempelajari semua bagian JavaScript, dan jika sesuai, gunakanlah! Dan jika saya mungkin begitu berani untuk menyarankan: inilah saatnya untuk membuang buku JS yang memberi tahu Anda sebaliknya.
Jadi tentang apa judul serinya?
Saya tidak mencoba menghina Anda dengan kritik tentang kurangnya pengetahuan atau pemahaman Anda tentang JavaScript saat ini. Saya tidak menyarankan Anda tidak bisa atau tidak bisa belajar JavaScript. Saya tidak membual tentang kebijaksanaan orang dalam tingkat lanjut rahasia yang saya dan hanya beberapa orang terpilih miliki.
Serius, semua itu adalah reaksi nyata terhadap judul seri aslinya bahkan sebelum orang membaca bukunya. Dan mereka tidak berdasar.
Poin utama dari judul "Anda Belum Tahu JS" adalah untuk menunjukkan bahwa sebagian besar pengembang JS tidak meluangkan waktu untuk benar-benar memahami cara kerja kode yang mereka tulis. Mereka tahu bahwa itu berhasil — bahwa itu menghasilkan hasil yang diinginkan. Tapi mereka juga tidak mengerti persis bagaimana , atau lebih buruk, mereka memiliki model mental yang tidak akurat tentang bagaimana hal itu terputus-putus jika diteliti lebih dekat.
Saya menyajikan tantangan yang lembut namun sungguh-sungguh kepada Anda, pembaca, untuk mengesampingkan asumsi yang Anda miliki tentang JS, dan mendekatinya dengan pandangan yang segar dan keingintahuan yang diperkuat yang membuat Anda bertanya mengapa untuk setiap baris kode yang Anda tulis. Mengapa ia melakukan apa yang dilakukannya? Mengapa satu cara lebih baik atau lebih tepat daripada setengah lusin cara lain yang bisa Anda lakukan untuk mencapainya? Mengapa semua "anak populer" mengatakan untuk melakukan X dengan kode Anda, namun ternyata Y mungkin pilihan yang lebih baik?
Saya menambahkan "Yet" pada judulnya, bukan hanya karena ini edisi kedua, tetapi karena pada akhirnya saya ingin buku-buku ini menantang Anda dengan cara yang penuh harapan daripada mengecilkan hati.
Tapi biar saya perjelas: Saya rasa tidak mungkin untuk pernah sepenuhnya mengetahui JS. Itu bukan prestasi yang bisa didapat, tapi tujuan yang harus diupayakan. Anda tidak selesai mengetahui segalanya tentang JS, Anda terus belajar lebih banyak dan lebih banyak lagi saat Anda menghabiskan lebih banyak waktu dengan bahasa tersebut. Dan semakin dalam Anda pergi, semakin Anda mengunjungi kembali apa yang Anda ketahui sebelumnya, dan Anda mempelajarinya kembali dari perspektif yang lebih berpengalaman.
Saya mendorong Anda untuk mengadopsi pola pikir seputar JavaScript, dan memang semua pengembangan perangkat lunak, yang tidak akan pernah Anda kuasai sepenuhnya, tetapi Anda dapat dan harus terus bekerja untuk lebih dekat ke tujuan itu, sebuah perjalanan yang akan membentang untuk keseluruhan karir pengembangan perangkat lunak Anda, dan seterusnya.
Anda selalu bisa mengetahui JS lebih baik daripada yang Anda ketahui saat ini. Itulah yang saya harapkan dari buku-buku YDKJSY ini.
Kasusnya tidak terlalu perlu dibuat untuk alasan mengapa pengembang harus menganggap serius JS — saya pikir itu sudah lebih dari terbukti layak untuk status kelas satu di antara bahasa pemrograman dunia.
Namun kasus lain yang lebih penting masih perlu dibuat, dan buku-buku ini menjawab tantangan itu.
Saya telah mengajar lebih dari 5.000 pengembang dari tim dan perusahaan di seluruh dunia, di lebih dari 25 negara di enam benua. Dan apa yang saya lihat adalah terlalu sering, yang diperhitungkan umumnya hanya hasil dari program, bukan bagaimana program ditulis atau bagaimana / mengapa program itu bekerja.
Pengalaman saya tidak hanya sebagai pengembang tetapi dalam mengajar banyak pengembang lain memberi tahu saya: Anda akan selalu lebih efektif dalam pekerjaan pengembangan jika Anda lebih memahami cara kerja kode Anda daripada hanya membuatnya menghasilkan hasil yang diinginkan.
Dengan kata lain, cukup baik untuk bekerja tidaklah, dan seharusnya tidak, cukup baik .
Semua pengembang secara teratur berjuang dengan beberapa bagian kode yang tidak berfungsi dengan benar, dan mereka tidak tahu mengapa. Tetapi terlalu sering, pengembang JS akan menyalahkan ini pada bahasa daripada mengakui bahwa pemahaman mereka sendiri yang gagal. Buku-buku ini berfungsi baik sebagai pertanyaan dan jawaban: mengapa ia lakukan ini , dan inilah cara untuk mendapatkannya untuk melakukan itu sebagai gantinya.
Misi saya dengan YDKJSY adalah memberdayakan setiap pengembang JS untuk sepenuhnya memiliki kode yang mereka tulis, untuk memahaminya, dan menulis dengan niat dan kejelasan.
Beberapa dari Anda sudah mulai membaca buku ini dengan tujuan menyelesaikan keenam buku, secara berurutan.
Saya ingin mengingatkan Anda untuk mempertimbangkan mengubah rencana itu.
Bukan niat saya agar YDKJSY dibaca secara langsung. Materi dalam buku-buku ini padat, karena JavaScript itu kuat, canggih, dan di beberapa bagian agak rumit. Tidak ada yang benar-benar dapat berharap untuk mengunduh semua informasi ini ke otak mereka dalam sekali jalan dan menyimpannya dalam jumlah yang signifikan. Itu tidak masuk akal, dan bodoh untuk mencobanya.
Saran saya adalah luangkan waktu Anda untuk menjalani YDKJSY. Ambillah satu bab, bacalah seluruhnya dari awal sampai akhir, kemudian kembali dan bacalah kembali bagian demi bagian. Berhenti di antara setiap bagian, dan latih kode atau ide dari bagian itu. Untuk konsep yang lebih besar, mungkin ide yang bagus untuk menghabiskan beberapa hari mencerna, membaca ulang, berlatih, lalu mencerna lagi.
Anda dapat menghabiskan satu atau dua minggu untuk setiap bab, dan satu atau dua bulan untuk setiap buku, dan satu tahun atau lebih untuk keseluruhan seri, dan Anda masih belum memeras setiap ons YDKJSY.
Jangan bingungkan buku-buku ini; bersabarlah dan sebarkan bacaan Anda. Interleave membaca dengan banyak latihan tentang kode nyata dalam pekerjaan Anda atau pada proyek yang Anda ikuti. Bergulat dengan pendapat yang saya sampaikan selama ini, berdebat dengan orang lain, dan yang paling penting, tidak setuju dengan saya! Jalankan kelompok belajar atau klub buku. Ajarkan lokakarya mini di kantor Anda. Tulis posting blog tentang apa yang telah Anda pelajari. Bicaralah tentang topik ini di pertemuan JS lokal.
Bukan tujuan saya untuk meyakinkan Anda agar setuju dengan pendapat saya, tetapi untuk mendorong Anda agar memiliki dan dapat mempertahankan pendapat Anda. Anda tidak bisa sampai di sana dengan membaca buku-buku ini dengan bijaksana. Itu adalah sesuatu yang membutuhkan waktu lama untuk muncul, sedikit demi sedikit, sewaktu Anda menelaah dan merenungkan serta mengunjungi kembali.
Buku-buku ini dimaksudkan sebagai panduan lapangan tentang penjelajahan Anda melalui JavaScript, dari mana pun Anda saat ini dengan bahasanya, ke tempat pemahaman yang lebih dalam. Dan semakin Anda memahami JS, semakin banyak pertanyaan yang akan Anda ajukan dan semakin banyak yang harus Anda jelajahi! Itulah yang menurut saya sangat menarik!
Saya sangat senang Anda memulai perjalanan ini, dan saya sangat terhormat Anda akan mempertimbangkan dan berkonsultasi dengan buku-buku ini selama perjalanan. Saatnya untuk mulai mengenal JS .