Tengok sambungan kepada perkongsian ni: Lagi projek mencabar setiap pengaturcara patut cuba
Tengok sambungan kedua juga: Algoritma dan struktur data mencabar setiap pengaturcara patut cuba
Saya bercakap dengan ramai pelajar dan pengaturcara profesional yang sering kali ingin memulakan projek sampingan, tetapi tidak pasti apa yang hendak dibina. Berikut merupakan sekumpulan projek perisian yang banyak mengajar saya. Malah, ia hebat kerana anda boleh membinanya banyak kali dan anda akan mempelajari perkara baharu setiap kali. Jadi apabila saya tidak tahu apa yang hendak dibina atau saya ingin mempelajari bahasa pengaturcaraan atau baharu, saya mulakan dengan salah satu daripada ini:
Kita menggunakan editor teks setiap hari, tetapi adakah anda tahu bagaimana ia benar-benar berfungsi? Mengabaikan semua ciri mewah yang ada pada editor kegemaran anda, bagaimanakah anda akan melaksanakan kotak teks yang menyokong dan memilih, memasukkan dan memadam teks? Tanpa menggunakan dalam rangka kerja kegemaran anda!
Cabaran terbesar ialah memikirkan cara menyimpan dokumen teks dalam . Fikiran pertama saya ialah menggunakan , tetapi itu mempunyai yang mengerikan jika pengguna memasukkan teks di mana-mana selain daripada penghujung dokumen. Nasib baik, ada beberapa struktur data yang bagus untuk dipelajari untuk menyelesaikannya.
Satu lagi halangan ialah mempelajari cara kursor teks berkelakuan dalam editor popular. Sebagai contoh, jika saya menekan kekunci anak panah ke atas apabila kursor di tengah-tengah dokumen, ke manakah kursor akan bergerak? Lajur yang sama? Tidak jika baris itu lebih pendek. Jika anda terus menggerak kursor ke atas, ia akan kembali ke lajur asal apabila baris cukup panjang. Ternyata kursor mempunyai memori/ingatan untuk lajur dan cuba untuk kembali kepadanya. Perincian beginilah yang saya tidak pernah perasan sehingga saya cuba melaksanakannya.
Selepas melaksanakan editor asas, saya mencabar anda untuk melaksanakan dua lagi ciri: / dan . Melaksanakan buat asal/buat semula dengan cara yang cekap amat mengejutkan saya! Saya mula-mula cuba menyimpan dalam satu tatasusunan, kemudian cuba menggunakan corak Memento, sebelum akhirnya berpuas hati dengan corak Command. Pembalutan perkataan memaksa anda untuk memisahkan aspek visual baris teks daripada aspek ingatan.
Perkara yang perlu dipelajari:
Bacaan lanjut: