
Dari seorang penerjemah: Hari ini kami menerbitkan untuk Anda
sebuah artikel oleh pengembang pemula Amy Haddad. Ini menjelaskan mengapa programmer harus kembali ke masalah yang sudah diselesaikan.
Banyak pengembang memberikan saran yang sama: selesaikan masalah sebanyak mungkin untuk terus mendapatkan pengalaman dan pengetahuan baru. Ini adalah saran yang bagus, karena memecahkan masalah dengan kode memungkinkan Anda mempelajari hal-hal baru dan meningkatkan keterampilan yang ada. Tetapi saya juga menganggap penting untuk mengulang: masalah yang sama dapat diselesaikan dengan cara yang berbeda. Dan pengulangan seperti itu juga memungkinkan programmer mendapatkan keuntungan dalam bentuk peningkatan keterampilan.
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 promosi "Habr".
Ketahui apa yang tidak saya ketahui
Jika saya berhasil memecahkan masalah untuk pertama kalinya, ini tidak berarti saya bisa mengatasinya lagi.
Saya ingat situasi dengan satu perpustakaan dan kesalahan di dalamnya. Saya berhasil menyelesaikan masalah ini, meskipun saya sudah terjebak untuk waktu yang lama. Namun beberapa hari kemudian saya kembali menemui masalah yang sama, dan saya sudah lupa solusi awalnya. Jadi, alih-alih cepat menyelinap melalui tempat ini dan melanjutkan, Anda harus menghabiskan waktu lagi.
Kemudian menjadi jelas bagi saya bahwa saya perlu bekerja lebih banyak dengan operator dan fungsi bersyarat. Saya juga menyadari betapa pentingnya mempelajari masalah - ini memungkinkan saya untuk menguji pengetahuan saya sendiri dan melihat celah yang perlu diisi.
Bekerja dengan kode buggy memberikan pengalaman baru, seperti yang dibahas di atas. Sangat menyenangkan bahwa saya dapat memecahkan masalah dengan kelas-kelas pada saat saya mempelajarinya. Dalam hal ini, semuanya terlihat sangat sederhana. Tetapi bagaimana jika ini terjadi pada saya dalam waktu dekat? Dalam hal ini, saya akan dapat memahami apakah saya telah memperoleh pengetahuan baru yang diperoleh sebelumnya, atau apakah ada baiknya mengkonsolidasikan mereka.
Masalah lama, solusi baru
Bahkan ketika saya mengingat tindakan saya ketika mengerjakan tugas untuk pertama kalinya, di detik saya mencoba mencari solusi baru untuk meningkatkan keterampilan saya. Sebagai contoh, saya memecahkan salah satu masalah dalam kode menggunakan Loop. Kedua kalinya saya menemukan solusi baru, dan kode menjadi lebih logis dan mudah dibaca. Saya berhasil mengurangi volumenya sebesar 50% di area masalah, dan sebagai hasilnya, saya tidak hanya mendapatkan pemahaman tentang bagaimana semuanya harus bekerja, tetapi juga menemukan nuansa proses.
Dalam tugas lain yang serupa, Loop mengurangi kode dan membuatnya lebih mudah dibaca. Tetapi sebagai bagian dari "pengulangan," saya memecahkan masalah tanpa itu - untuk memastikan bahwa saya bisa menemukan solusi alternatif.
Saya dapat mengatakan bahwa mempelajari masalah membawa saya keluar dari zona nyaman saya, jadi saya mulai berpikir di luar kotak. Hanya karena ini adalah mungkin untuk menemukan solusi alternatif.
Belajar menulis tes
Ini adalah ketiga kalinya saya membaca buku karya Brian Hogan Latihan untuk Programmer. Saya menganalisis contoh-contohnya dan setiap kali saya mencoba mencari solusi baru. Kali ini saya berlatih menulis tes sendiri.
Begini cara kerjanya: Saya memilih latihan acak dari sebuah buku dan duduk ke kode. Saya membagi program yang dihasilkan menjadi beberapa file, di mana masing-masing bertanggung jawab untuk solusi terpisah. Dan kemudian saya menulis tes.
Pada akhirnya, saya ingin belajar bagaimana menulis tes terlebih dahulu, dan kemudian kode, tetapi ini masih akan datang. Sekarang saya sedang berlatih membuat dan menyoroti fungsi dan mengimpor file.
Pengulangan latihan yang konstan memungkinkan Anda untuk membuat pola yang disimpan di kepala. Selanjutnya, mereka dapat digunakan sebagai model mental untuk menyelesaikan masalah baru. Ngomong-ngomong, saya melihat saran ini dalam buku George Paul How to Solve It. Dia menyarankan dalam memecahkan masalah baru untuk mencari koneksi dengan pengalaman yang ada.
“Pikirkan tentang apa yang membantu Anda dalam situasi yang sama di masa lalu. Cari sesuatu yang familier dalam masalah saat ini, cobalah gunakan pengalaman Anda. "
Paul benar. Saya benar-benar cukup sering menggunakan pengalaman sebelumnya untuk menyelesaikan masalah tipe baru. Misalnya, baru-baru ini bekerja dengan anagram. Saya berhasil memecahkan salah satu masalah saat ini dengan bantuan pengalaman yang didapat kemudian. Terlepas dari kenyataan bahwa tugas sebelumnya lebih sederhana, itu memungkinkan untuk menemukan solusi baru.
Mempelajari masalah memberi programmer banyak hal berguna. Kami merumuskan konsep-konsep baru, memperkuat yang lama dan menciptakan basis pengetahuan, yang kemudian membentuk dasar pekerjaan.
Skillbox merekomendasikan: