Di bawah judul " dll. " Muncul sesuatu yang dapat dengan mudah mengambil 50% atau lebih dari waktu Anda.
Pelajari cara men-debug.
Ini berarti mempelajari Metode Ilmiah . Maksud saya benar - benar mempelajarinya. Dan kemudian menerapkannya dengan kejujuran diri yang brutal . Pelajari bagaimana menyatakan dengan tepat apa yang Anda tahu benar, apa yang Anda tahu tidak benar, dan hal-hal yang tidak Anda ketahui. Setiap kali Anda dengan sembarangan menetapkan item ke kategori yang salah, Anda baru saja membuat hidup Anda jauh lebih sulit.
Belajarlah untuk mengatakan "Saya pikir" bukannya "Saya tahu". Anda hanya bisa mengatakan "Saya tahu" ketika Anda "berpikir" sesuatu itu benar (atau salah), dan kemudian Anda membuktikannya!
Banyak bug sepele, tetapi mereka bisa sulit dilihat karena Anda "tahu" kode apa yang seharusnya ... kecuali tidak. Temukan teman untuk menjelaskannya. Minta mereka untuk menjadi "idiot ahli": seseorang yang tidak tahu kode Anda, tetapi siapa yang Anda tahu Anda tidak bisa menghancurkan BS masa lalu. Jangan kaget jika di tengah-tengah menggambarkannya kepada Anda, Anda tiba-tiba berhenti dan berkata, "jadi Anda bisa ... lihat ... lihat itu ... sh * t. Terima kasih."
Serangga nontrivial membutuhkan gudang teknik. Klasik yang dapat dengan cepat menyoroti sebagian besar bug yang tidak terkait waktu adalah Wolf Fence di Alaska. Ada serigala di suatu tempat di Alaska; membangun pagar memotong negara menjadi dua. Di sisi mana serigala berada? Potong sisi itu menjadi dua. Busa, bilas, ulangi. Melakukan ini 20 kali di tempat-tempat yang dipilih dengan baik dalam kode mengurangi area di mana bug (serigala) dapat mencapai 1/1048576. Bunuh serigala itu.
Kiat: cari gelombang tangan — fisik, mental, atau jenis lainnya. Segera setelah Anda (atau kolega Anda) tersentak / mengalihkan / memperkecil perhatian yang diberikan pada sebagian kode, jadi benar-benar gila . Karena area di mana Anda baru tahu bug tidak bisa, meskipun Anda telah menghabiskan berjam-jam / hari mencari hal d * mn dan masih tidak dapat menemukannya ... itu adalah lokasi probabilitas tertinggi untuk bug. Tidak ada yang mendapat 'bye' , tidak ada (termasuk mesin, OS, kompiler, atau Anda ) mendapat semacam "hormat". Ada bug. Titik. Akhir kalimat. Sekarang pergi, bunuh benda itu.
Saya tahu tidak ada sekolah yang mengajarkan debugging sebagai subjek tersendiri. IMNSHO, ini mungkin satu-satunya bukti paling mencolok bahwa mereka (universitas / profesor) tidak mengajari Anda untuk menjadi seorang programmer, mereka, sebaliknya, mengajari Anda untuk ... seperti mereka? Keras? Mungkin. Benar? Tentukan pilihan Anda sendiri. Sekarang buktikan.