Bagaimana musik dan menggambar mengajari saya cara memprogram



Dari seorang penerjemah: Xijiang Yang, seorang programmer dari New York, berbicara tentang bagaimana seni membantunya berlatih koding.

Pemrograman mirip dengan seni. Pada saat yang sama, bentuk seni lainnya, khususnya, musik dan menggambar, dapat mengajar banyak programmer. Saya berharap mereka akan membantu Anda dengan cara yang sama seperti mereka membantu saya pada waktunya.

Skillbox merekomendasikan: Kursus praktis dua tahun "Saya seorang Pengembang Web PRO . "

Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".

Fokus pada dasar-dasarnya


Apa yang kita ajarkan?

Jika Anda menyukai algoritme, maksud saya, sangat menyukainya, seperti kenyataan bahwa di pagi hari Anda segera mulai melakukan rekursi dan segmen pohon, selamat. Anda seorang programmer murni. Tetapi kita, selebihnya, adalah orang biasa, kadang-kadang kita bertanya pada diri sendiri pertanyaan: mengapa memecahkan teka-teki ini? Berhasil lulus wawancara?

Bahkan, ketika Anda berlatih sesuatu, Anda perlu memahami mengapa Anda melakukannya. Ingin memperoleh keterampilan tertentu? Atau memperkuat kelemahan?

Saya percaya bahwa semua teka-teki untuk programmer tidak hanya memungkinkan Anda untuk mendapatkan pengetahuan khusus, tetapi juga lebih memahami elemen dasar dari proses pembuatan, penulisan kode. Dapatkan atau tingkatkan keterampilan dasar.

Adapun teka-teki, mereka tidak diperlukan untuk memecahkan masalah, tetapi untuk mempelajari proses menemukan solusi. Ini adalah hal yang berbeda.

Apa yang Anda lakukan dengan masalah - membobol komponen kecil? Apa yang membantu Anda meningkatkan level Anda? Apa perbedaan antara beberapa struktur database dari yang lain? Keterampilan dasar mirip dengan harmonik utama di mana sonata dibangun.

Apa yang diketahui profesional berpengalaman?


Saya akan mengatakan bahwa seorang seniman yang berpengalaman tidak tahu cara menggambar Central Park di New York pada musim gugur. Tapi dia tahu dasar-dasar yang dibutuhkan untuk membuat gambar. Menggunakannya, ia melukis pemandangan, dan hasilnya adalah gambar yang luar biasa indah.

Seorang seniman yang berpengalaman tidak tahu cara menggambar daun di pohon. Tidak, dia fasih dalam warna dan kombinasi mereka. Dia tahu bagaimana warna berperilaku di kanvas.

Jadi programmer yang berpengalaman tidak harus tahu semua nuansa React, Vue, Ember atau kerangka kerja lainnya. Seorang programmer berpengalaman tahu cara kerja JavaScript dan cara kerja browser. Seorang programmer berpengalaman memahami manfaat pemrograman fungsional, ia tahu mengapa React sangat penting dalam kasus tertentu.

Pelajari dasar-dasarnya, dan semua yang di atas akan menyatu dalam gambar yang jelas.

Sketsa hidup


Copy-paste vs sumber

Teman-teman saya, seniman yang serius dengan kerajinan mereka, selalu membuat sketsa dari kehidupan. Apa artinya ini? Mereka menggambar semua yang mereka lihat, semua yang menarik minat mereka.

Mereka tidak menggambar foto atau model, tetapi menggambar apa yang mereka lihat sendiri.

Ketika seseorang menggambar lanskap dari gambar seseorang, ia tidak menciptakan, tetapi salinan. Dalam pemrograman, ekuivalen dari perilaku ini adalah salin-tempel cuplikan dengan Stack Overflow.

Kode copy-paste tidak akan pernah memberikan kesempatan untuk mendapatkan pengetahuan mendasar. Menyalin kode orang lain memiliki arti yang serupa: Anda akan mendapatkan solusi, tetapi bukan pengalaman. Menangkan pertempuran, tetapi kalah perang.

Pengetahuan universal


Pengetahuan mendasar bisa disebut universal. Jika Anda mencoba memecahkan masalah sendiri, Anda salah dan akhirnya menemukan solusi, maka Anda hanya mendapatkan pengetahuan seperti itu. Anda mempelajari prinsip-prinsip kerja yang dapat digunakan dalam proyek masa depan.

Jarang ada keputusan umum ketika "satu ukuran cocok untuk semua." Untuk mendapatkan kunci kunci yang berbeda, Anda harus bekerja. Terkadang berguna untuk melakukan pekerjaan tanpa pengaruh keputusan seseorang, sendiri.

Berlatih


Pengulangan yang ditargetkan

Ketika seorang musisi mempelajari sebuah karya, dia tidak hanya mencoba memainkannya dari awal hingga akhir, berulang kali, ribuan kali. Dia mencari kelemahan dalam pekerjaannya dan menghilangkannya.

Kalau tidak, kinerja akan jauh dari ideal, berisi catatan yang salah (dalam hal pemrograman - bug).

Meskipun pengulangan buta bukan cara terbaik untuk mempelajari sesuatu, pengulangan terfokus memungkinkan Anda untuk mendapatkan pengalaman yang tepat. Anda bekerja pada titik lemah Anda dan menjadi lebih baik.

Dan bagi seorang pemula, pengulangan buta bermanfaat. Ini mengembangkan memori berotot, yang dalam hal pemrograman dapat dianggap sebagai kemampuan kognitif. Setelah itu, Anda dapat beralih ke pekerjaan kompleks.

Pekerjaan tingkat tinggi


Jika Anda baru menggunakan kerangka apa pun, berlatihlah. Pelajari elemen dasarnya, buat sesuatu yang mendasar.

Pilih port, buat rute, kirim permintaan dan tanggapi. Kemudian ulangi ini.

Ketika seorang musisi selesai mempelajari bagian yang sulit dari sebuah lagu, dia tidak berjabat tangan dan tidak berkata pada dirinya sendiri: ya, well, ini sudah berakhir. Tidak, dia mengulanginya untuk mengecualikan kemungkinan kesalahan.

Ini sama dengan programmer: jika Anda menulis program yang kompleks, menyelesaikan masalah, Anda dapat melewati kesalahan sintaksis yang paling sederhana, setelah itu seluruh mekanisme akan menolak untuk bekerja. Harus mencari masalah. Jika Anda menyusun sintaksis menjadi automatisme, kemungkinan masalah berkurang.

Maka Anda tidak perlu khawatir. Seorang musisi yang telah menguasai keterampilan automatismenya tidak akan khawatir bermain not individual dari sebuah konser. Dia berfokus pada melodi secara keseluruhan, dan bukan pada elemen individualnya.

Pelatihan dan garis besar


Contoh da vinci

Jika Anda pernah mempelajari karya seniman yang benar-benar hebat, misalnya, Leonardo da Vinci, maka Anda mungkin tahu berapa banyak sketsa, draft, kanvas pelatihan yang mereka buat. Leonardo terkenal karena perhatiannya pada detail - dia membuat sketsa bagian tubuh, tanaman, hewan, manusia dan kelompok mereka.

Artis pemula juga banyak berlatih, misalnya, mereka terus-menerus melukis benda mati. Tetapi mengapa, karena mereka bukan kutu buku? Tidak, ini semua pelatihan yang ditargetkan. Pemula mendapatkan pengalaman dan pengetahuan dalam bekerja dengan warna, cahaya dan bayangan.

Beberapa programmer bekerja dengan cara yang sama, memecah satu masalah besar menjadi beberapa yang kecil dan kemudian mengerjakan semuanya.

Sketsa Pemrogram

Bagaimana saya bisa mengingat fungsi ini, dalam konteks apa ia digunakan? Apakah saya perlu memanggil super () di setiap komponen Bereaksi, atau layakkah untuk sedikit belajar kelas ES6? Bagaimana cara mengintegrasikan permintaan HTTP asinkron?

Anda dapat memahami semua ini dengan membuka Repl atau JSBin. Studi kecil dapat memperdalam pemahaman tentang hal-hal yang lebih umum, belajar bagaimana bekerja dengan proyek-proyek besar.

Ketika seorang seniman menggambar apel atau pohon, ini tidak berarti bahwa objek tertentu menarik baginya. Dia hanya bekerja pada yang kecil untuk menggunakan pengalaman pada yang besar.

Lihatlah tangan Mona Lisa - mereka ideal dalam hal teknologi.

Potret dan Pohon Ketergantungan


Komposisi

Saya pikir tugas utama dari banyak tujuan (termasuk programmer) adalah komposisi. Ini adalah tentang bagaimana menggabungkan hasil bagi menjadi keseluruhan sedemikian rupa sehingga sebuah karya agung diperoleh.

Ada beberapa metode untuk mencapai ini. Salah satunya adalah memulai dengan layer dengan minimum dependensi. Dan sudah dari lapisan dasar ini naik.

Jika Anda menggambar analogi dengan artis, maka ia tidak memulai dengan bulu mata. Dia mulai dengan primer. Bulu mata yang sama, lokasinya tergantung pada bentuk dan ukuran kelopak mata. Itu tergantung pada ukuran dan posisi bola mata, yang, pada gilirannya, dikaitkan dengan fitur struktural tengkorak. Seluruh potret, jika kita berbicara tentang potret, banyak ketergantungan.

Jika satu elemen ditempatkan dengan tidak benar, kesan harmoni dan integritas menghilang. Hal yang sama dengan proyek perangkat lunak. Setelah melakukan satu kesalahan, Anda mulai menghasilkan entitas yang merusak semua pekerjaan.

Lapisan demi lapisan

Saat Anda membuat aplikasi tumpukan penuh, rawat lapisan data. Jalankan tes. Periksa semua item. Hanya dalam hal ini Anda dapat yakin dengan keandalan seluruh proyek. Tetapi pada awalnya perlu untuk memahami esensinya dan melihat keseluruhan gambar. Jika ada pemahaman, Anda bisa mengerjakan detailnya.

Encoders - Encode


Untuk masing-masing miliknya. Musisi - musik, seniman - lukisan. Untuk programmer - kode. Kami memulai artikel dengan kata-kata bahwa karya seorang programmer juga merupakan seni. Dan memang benar. Layak diingat hanya bahwa keterampilan dapat dan harus ditingkatkan dengan berlatih, belajar dan mengeksplorasi. Dengan bantuan latihan, programmer pemula akan dapat fokus pada dasar-dasar, meningkatkan kreasi mereka dan akhirnya membuat proyek keren, sebesar ambisi pencipta.

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


All Articles