Bagaimana cara menjadi ninja JavaScript? [Tutup]

8

Saya ingin memilih JavaScript sebagai bidang pengembangan utama saya, bersama HTML dan CSS untuk menjadi pengembang yang dikenal sebagai pengembang front-end . Tapi saya tidak tahu bagaimana menjadi seorang profesional JavaScript. Saya telah membaca banyak buku dan mempelajari bagian-bagiannya termasuk tipe data, sintaksis, penggunaan alat (seperti IDE, Debuggers, dll.), JQuery, dll. Tetapi ketika saya melihat beberapa kode JavaScript canggih termasuk perpustakaan terkenal, saya seperti " Saya tidak pernah bisa menulis kode itu ". Ada apa di sini? Langkah apa yang harus saya ambil yang tidak saya lakukan? Saya merasa saya kehilangan sesuatu di sini untuk menjadi pengembang JavaScript profesional. Saya juga menonton film pelatihan, termasuk film Douglas Crockford di Yahoo Theatre.

Saeed Neamati
sumber
23
Bisakah kami menganggap Anda sudah memiliki pakaian itu?
JeffO
Apa keputusan yang membingungkan ... shakehead
ThomasX
1
DOM Scripting, bukunya. Kemudian mulailah membaca hal-hal John Resig dan mempelajarinya dengan cukup baik untuk melihat poin dari apa yang mereka lakukan dengan arsitektur jQuery. Ini pada dasarnya fungsi pabrik adaptor / dekorator untuk DOM mengambil keuntungan besar dari penutupan fungsi untuk menjaga objek jquery seringan (dalam memori) mungkin. Kembalilah dan bacalah kalimat itu sesekali saat Anda mempelajari hal-hal baru sampai masuk akal. Oh, dan jangan gunakan IDE. Tidak sampai Anda kompeten tanpa satu dan dapat membuat keputusan.
Erik Reppen

Jawaban:

19

Jawaban Anda adalah pengalaman. Saya khawatir tidak ada cara lain untuk menjadi baik tanpa latihan. Coba dan buat perpustakaan serupa dengan yang Anda lihat sebagai latihan. Teruslah membaca tetapi berlatih, berlatih, berlatih!

Gary Willoughby
sumber
3
+1 untuk pengalaman, saya khawatir. Benar-benar tidak ada cara lain. Jika Anda tidak bisa melakukannya di tempat kerja, lakukan beberapa proyek hewan peliharaan di rumah, atau terlibat dalam perangkat lunak sumber terbuka. Bahkan memperbaiki bug kecil di perpustakaan JS yang Anda kagumi akan menjadi pengalaman belajar yang luar biasa.
Tom Morgan
1
Terima kasih @Gary. Saya hanya ingin tahu mungkin ada beberapa teknik untuk membuat proses latihan itu lebih cepat. Atau mungkin ada beberapa jalan pintas, seperti beberapa konsep JavaScript yang tidak dikenal banyak pengembang.
Saeed Neamati
2
@ SaeedNeamati ada beberapa buku, seperti Bagian Bagus. Saya juga merekomendasikan keterlibatan stackoverflow. Saya belajar banyak dari menjawab pertanyaan javascript
Raynos
1
@Saeed Neamati - Cobalah sesuatu yang mungkin Anda pikir di luar batas Anda saat ini. Anda mungkin mengejutkan diri sendiri seberapa jauh Anda dapatkan. Pengalaman belajar terbaik yang saya miliki adalah ketika saya sedikit keluar dari kedalaman saya dan harus melakukan penelitian dan pembelajaran untuk melanjutkan proyek ini.
Gary Willoughby
Lt. Aldo Raine: "Anda tahu bagaimana Anda sampai di Carnegie Hall, bukan? Latihan."
MattyD
19

"Aku tidak pernah bisa menulis kode itu"

Betulkah? Coba dulu.

DeadMG
sumber
2
Ini saran yang sangat bagus! Cobalah dan pelajari bagian-bagian yang belum Anda ketahui. Begitulah cara Anda tumbuh.
Gary Willoughby
Mereka tidak dapat menulis kode sampai mereka melakukannya.
Yatrix
Dan 6 atau 12 bulan ke Javascript Anda akan melihat kembali pada langkah pertama Anda dan berpikir 'man, betapa amatir itu'. Praktek.
Alan B
5

Lucu Anda harus mengucapkan pertanyaan Anda dengan cara ini. Sebagian besar buku tentang javascript dasar tidak membantu Anda memahami mengapa dan bagaimana aspek-aspek tertentu JavaScript harus digunakan untuk mencapai kode hebat. Apa yang BENAR-BENAR membantu saya memahami sisi yang lebih maju dari JavaScript serta praktik pengkodean terbaik adalah tulisan John Resig, insinyur utama JQuery.

http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=John+Resig

Terutama:

Teknik JavaScript Pro

Rahasia Ninja JavaScript

Ini membantu Anda memahami bagaimana fitur JavaScript canggih harus digunakan dan mengapa. Anda mungkin juga ingin membaca tentang Pola dan Prinsip Agile, dan khususnya tulisan-tulisan Martin Fowler untuk pemikiran yang lebih umum tentang praktik pengkodean terbaik.

dqhendricks
sumber
1
Saya pikir Anda benar-benar menjawab pertanyaan dan memberikan saran yang lebih baik daripada "lakukan saja". Terima kasih telah menyediakan sumber daya ini.
Ryan Rodemoyer
4

Anda harus memprogram ... banyak.
Pelajari kode sumber proyek seperti jQuery, Node.js. Tambahkan CoffeScript atau ClojureScript ke gudang senjata Anda.
Lihatlah JavaScript MVC atau Backbone.js.

Periksa apa yang dibawa Google Penutupan ke tabel.
Dan tentu saja, tandai Jaringan Pengembang Mozilla.

Chiron
sumber
4
CoffeeScript dan ClojureScript memiliki tempat mereka tetapi mereka tidak membantu Anda mempelajari javascript, sama sekali.
Raynos
1
Ya saya tahu, itu sebabnya saya berkata: Tambahkan CoffeScript atau ClojureScript ke gudang senjata Anda. Sangat menyenangkan untuk mengetahui tentang dua teknologi ini.
Chiron
4

Jika Anda memilih bidang ini, bersiaplah untuk dibayar lebih sedikit dan dianggap kurang profesional / baik daripada c / c ++ / c # / java / etc.

Ini biasanya terjadi, terutama dalam hal gaji. Sangat mudah untuk menemukan programmer js + html + css yang benar-benar bagus, tetapi agak sulit untuk menemukan programmer c / c ++ / c # yang benar-benar bagus. Ini adalah masalah yang dihadapi perusahaan tempat saya bekerja (sekitar 300 karyawan) sekarang. Bahkan siswa yang memiliki pemahaman yang baik tentang bahasa tersebut dibayar lebih baik daripada pengembang JS berpengalaman.

Sebagian besar pengembang JS belajar dari tutorial dari internet, dan berpartisipasi dalam proyek open-source, yang merupakan hal yang cukup baik - mungkin menemukan beberapa proyek FOSS yang menggunakan JS secara berat (pengembangan front-end untuk gnome 3, untuk memberi Anda contoh) dan berkontribusi padanya. Dengan cara ini Anda bisa mendapatkan pengalaman dengan alat dan bahasa.

Selain itu, temukan beberapa buku yang bagus di Amazon dan bacalah. Tapi ingat, CODING adalah cara Anda belajar, jadi mulailah berkembang, selain membaca;)

Adi
sumber
1
Bagi saya sepertinya mudah untuk menemukan pengembang buruk js / html / css yang dapat meretas bersama-sama kekacauan yang tidak dapat dipecahkan dengan cepat. Pengembang yang baik masih sulit ditemukan.
Sean McMillan
1
Seorang pria front end yang baik mungkin lebih disayangi daripada para back end - benar-benar ada lebih banyak voodoo yang terjadi di sana dan bahwa dunia mengubah beban lebih cepat daripada back-end.
Wyatt Barnett
3

Saya setuju dengan apa yang dikatakan di atas, Anda hanya perlu latihan. Penting juga untuk memahami pola desain yang digunakan dalam kode javascript kelas atas. Saya pikir begitu Anda memahami pola yang digunakan dan mengapa mereka menggunakannya, mungkin akan menjadi jauh lebih jelas. Pola Desain JavaScript Pro oleh Harmes dan Diaz adalah awal yang baik. Lihat juga Pola Desain Esensial Esensial Osmani untuk Pemula .

George P.
sumber
3

Ninja biasanya hanya petani atau petani yang mengenakan pakaian penyamaran identitas yang sederhana namun licik. Tetapi apa yang membuat orang sederhana menjadi ninja sejati adalah tujuan yang bermakna, menariknya dan kemudian tidak terbunuh sendiri. Jadi dengan itu dalam pikiran mengapa Anda tidak menemukan setan samurai javascript, mempertajam Anda coding katana dan melihat apakah Anda dapat mengambil badboy tanpa membunuh diri sendiri. Jika Anda berhasil, Anda akan membuat dunia menjadi tempat yang lebih baik bagi petani kode lainnya dan menemukan bahwa Anda telah menjadi ninja dalam prosesnya. Itu atau kamu akan mati.

Semoga berhasil!

ChrisFM
sumber
juga - sebagian besar ninja menghisap dan terbunuh cukup cepat - tetapi mereka yang bertahan hidup - menjadi legenda hidup;)
c69
2

Saya tidak akan memanggil saya master dalam javascript, tapi cukup bagus. Baca, pahami, dan kode dari seperti buku-buku ini:

http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273/ref=sr_1_2?s=books&ie=UTF8&qid=1320176633&sr=1-2

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=pd_sim_b_1

Itu akan mencakup dasar-dasarnya. Kemudian jelajahi seluruh bidang. Cobalah untuk belajar sebanyak mungkin. Pelajari cara men-debug kode di Firebug. Pelajari beberapa kerangka kerja javascript (agak sopan) - Jquery menjadi yang termudah. Mungkin Dojo toolkit, Mootools, dan Prototype. Cobalah membaca dan memahami kode sumber kerangka kerja javascript. Buat plugin di jQuery. Pelajari pola Modul. Banyak yang harus dipelajari ..

Tetapi aturan yang paling penting dari semuanya adalah:

Kode dan cobalah untuk memperbaiki diri Anda setiap hari!

Dan jangan hanya menjadi pecandu kerangka kerja yang membutuhkan plugin atau kerangka kerja terbaru untuk melakukan sesuatu yang baik. Cobalah untuk menguasai bahasa inti dan lakukan plugin atau widget dari bawah ke atas sendiri. Jika Anda tidak bisa melakukan itu, berarti Anda belum terlalu hebat.

marko
sumber
2

Praktik pasti - tetapi, IMHO, lebih baik tidak hanya melakukan pekerjaan yang sibuk untuk latihan; menemukan masalah nyata untuk dipecahkan. Pikirkan sesuatu yang keren untuk dicapai, dan pergi menulisnya. Temukan seseorang yang ingin beberapa pekerjaan javascript dilakukan secara gratis (seperti untuk amal atau nirlaba) atau dengan cara murah, dan tuliskan kode untuk mereka. Dengan kata lain, praktik terbaik Anda akan terjadi dengan melakukan sesuatu yang bermakna.

Juga - saya pikir javascript adalah bahasa yang sangat menarik dan sebenarnya sangat kuat - tetapi saya belajar lebih banyak tentang pemrograman secara umum di kelas C perguruan tinggi yang saya ambil bertahun-tahun yang lalu daripada dari satu sumber sebelum atau sesudahnya. Belajar C datang dengan belajar tentang bagaimana komputer berpikir, tentang memori dalam bit dan byte, dan saya memiliki guru yang cukup baik yang menekankan beberapa praktik pemrograman dasar yang sangat solid. Orang yang mengatakan belajar bahasa lain tidak sepenuhnya salah - mempelajari bahasa lain sedikit mengubah pandangan Anda tentang pemrograman dan membuat Anda menghargai persamaan dan perbedaan.

Aerik
sumber
1

Kode javascript yang Anda temukan dalam aplikasi web biasa cukup mudah, terutama jika Anda menggunakan kerangka kerja seperti jQuery. Menulis plugin khusus sedikit lebih maju, tetapi masih hanya memerlukan beberapa konsep dasar. Ini cukup untuk sebagian besar tujuan - di lingkungan perusahaan Anda dapat benar-benar mengesankan klien dengan beberapa teknik sederhana dari pengembangan internet karena UI yang ada biasanya mengerikan - tetapi tidak benar-benar level ninja.

Jika Anda ingin benar-benar mengetahui javascript, Anda perlu sesuatu yang sedikit lebih menantang di mana Anda akan mengalami keterbatasan sistem dan dipaksa untuk menerapkan teknik yang lebih maju. Anda dapat menemukan beberapa kode semacam ini dalam kerangka kerja yang harus berurusan dengan kompatibilitas browser, tetapi ini sebagian besar merupakan masalah yang dipecahkan, dan juga agak membuat frustrasi untuk bekerja dengannya. Ada banyak opsi yang lebih menarik di sekitar aplikasi html5 - cobalah untuk mengimplementasikan sesuatu yang biasanya tidak dilakukan di browser.

Contoh saya sendiri tentang ini adalah klien git. Javascript tidak menangani data biner dengan sangat baik, dan implementasi naif mengunci UI selama beberapa menit dan mengalokasikan objek baru dengan cukup cepat untuk kehabisan memori sebelum GC dipicu. Mengoptimalkan sesuatu seperti ini mengarah pada pembelajaran dengan tepat apa yang terjadi ketika kode dijalankan, dan karena pemahaman ini tidak mungkin dengan kode yang tidak terstruktur, Anda akan belajar menulis javascript dengan struktur yang jelas yang berlaku untuk aplikasi yang lebih tipikal juga.

Tom Clarkson
sumber
0

Berlatih di lapangan dan JQuery. Ini adalah saran terbaik yang bisa saya berikan.

Dinamis
sumber
-7

Jangan belajar JavaScript sebagai bahasa pertama Anda, dan jangan mencoba meniru gaya pemrograman yang Anda temukan di perpustakaan JavaScript. Sebagian besar programmer JavaScript adalah hack yang memberi saya bahasa pemrograman nyata seperti C ++, C, Java, dll. Hasilnya adalah bahwa kode JavaScript mereka adalah kumpulan kode spaghetti yang tidak difragmentasi dan tidak dapat diuraikan. Saya tahu, karena saya bekerja sebagai insinyur perangkat lunak C ++ / Java / C # dan sekarang saya masuk ke dunia JavaScript.

Jadi jika Anda ingin menjadi pemrogram perangkat lunak JavaScript yang hebat, pelajari terlebih dahulu beberapa bahasa pemrograman lain dan kemudian kembali ke JavaScript.

stackoverflowuser2010
sumber
4
"C ++, C, Java" Anda yang menyiratkan adalah bahasa yang lebih baik daripada JavaScript. Anda menyiratkan bahwa JavaScript adalah masalahnya . Ini semua adalah pernyataan salah.
Raynos
4
Saya pikir Anda gagal melihat fungsionalitas javascript yang luas, dan apa kemampuan bahasa itu ...
@ stackoverflowuser2010 Itu salah. Saya yakin C ++ dan PHP memiliki begitu banyak programmer yang tidak terampil meretasnya tanpa mengetahui apa yang mereka lakukan sebagai JavaScript. Diakui hambatan masuk untuk js lebih rendah. Namun solusinya adalah belajar JavaScript agar tidak belajar bahasa yang lebih baik . Dan sementara kita berbicara tentang bahasa yang lebih baik, kita harus belajar sendiri . Itu akan membantu belajar JavaScript paling banyak
Raynos
2
Kebanyakan programmer mengisap - dalam bahasa apa pun. Perbedaannya dengan JavaScript adalah Anda dapat melihat sumber dan melihatnya.
Sean McMillan
1
-1: Kata-kata kasar yang tidak didukung.
kevin cline