Apakah Anda juga lupa kode setelah menyelesaikan tugas? [Tutup]

13

Saya seorang programmer baru dan ingin bertanya kepada programmer senior (programmer yang memiliki pengalaman di dunia nyata).

Saya melakukan pekerjaan saya dan setelah pengkodean, proyek saya selesai tetapi jujur ​​saya tidak ingat kode, kelas dan nama kerangka kerja dan sifat-sifatnya.

Kadang-kadang bahkan saya ragu pada diri sendiri apakah saya membuat ini?

Apakah ini normal dengan semua programmer atau saya programmer paling bodoh yang tidak dapat mengingat kode dan nama kelas / properti?

Edit:

Saya pikir banyak programmer membuat saya salah di sini. Saya bilang saya lupa nama kerangka kerja, nama kelas, nama properti tapi saya mulai mengingat kode saya sendiri setelah saya mulai mengerjakannya lagi. Pertanyaan saya adalah apakah Anda ingat sintaks dan nama kelas / properti dll?

necixy
sumber

Jawaban:

24

Dalam semua kejujuran, saya tidak tahu bagaimana seseorang bisa menjadi pengembang jangka panjang tanpa kemampuan untuk "melupakan" kode yang telah Anda kerjakan. Jumlah proyek dan kode yang dihasilkan pada akhirnya akan menyebabkan kelebihan informasi murni.

Namun, saya melihat situasi ini sebagai argumen pendukung untuk desain yang bersih dan logis. Akan tiba saatnya Anda harus mendukung kode Anda sendiri. Jika Anda memilih konvensi koding yang kuat dan logis, waktu pengenalan Anda akan berkurang secara signifikan. Selain itu, ini secara teoritis akan mengurangi waktu yang diperlukan untuk melakukan pemeliharaan yang sebenarnya.

Pencari Hal
sumber
Saya telah bertemu dua coders dengan memori fotografis yang dapat mengingat apa yang mereka pikirkan ketika mereka mengerjakan beberapa kode. Dengan kemampuan menghafal saya yang di bawah rata-rata, saya tentu dipaksa untuk melakukan pekerjaan terbaik yang saya bisa dalam membuat kode bersih dan didokumentasikan.
Pekerjaan
Saya pikir Anda benar, hanya karena saya "lupa" kode yang dapat saya program dalam 3-4 platform berbeda!
necixy
9

Mengingat semua sintaks dan apis Anda untuk sebuah proyek tidak sepenting mengingat konsep yang digunakan untuk membangunnya. Setelah Anda memiliki pengalaman, Anda dapat membaca kode dan mencari artinya seperti membaca posting ini.

Apa yang akan Anda temukan dari waktu ke waktu, jika Anda secara aktif meningkatkan, adalah bahwa Anda akan melihat kekurangan dalam apa yang telah Anda tulis di masa lalu hanya dengan membaca kode lama (yang saya sarankan Anda lakukan). Melalui latihan itu menjadi lebih mudah dilakukan; sama seperti keterampilan lainnya.

Saya mungkin telah menulis lebih dari sejuta baris kode sekarang dalam karir saya dan tidak mungkin saya bisa mengingat semuanya. Saya ingat proyek-proyek dan apa yang mereka coba selesaikan (dan teknik yang digunakan untuk menyelesaikannya).

jmq
sumber
5

Saya lupa banyak hal setelah saya selesai menggunakannya, tetapi melupakannya secara berbeda.

Saya telah mengamati diri saya selama bertahun-tahun dan saya sampai pada kesimpulan bahwa otak kita (oke, otak saya) menggunakan strategi caching tertentu:

  • Informasi baru dipelajari, digunakan, dan kemudian dimasukkan ke dalam antrian kedaluwarsa. Dalam beberapa minggu itu hilang.

  • Akses berulang ke potongan-potongan informasi yang pernah dipelajari selambat-lambatnya beberapa bulan lalu mempromosikan mereka entah bagaimana sehingga mereka dapat diingat selama berbulan-bulan, baru kemudian mereka kedaluwarsa.

  • Akses berulang ke blok pengetahuan selama beberapa tahun, dengan kesenjangan penggunaan selama beberapa bulan mendorong mereka ke memori prioritas di mana mereka disimpan selama bertahun-tahun.

PS Saya menduga ide pertama cache dengan aplikasi ke komputer berasal dari seseorang yang mengamati bagaimana manusia belajar dan mengingat sesuatu. Jadi kami belum menemukan apa pun, hanya mengambil apa yang sudah ada di dalam diri kami.


sumber
2

Sering. Komentar sudah lama berlalu, tetapi saya mendapati biasanya saya bisa mengenali kode saya dengan komentar saya.

EDIT: Saya tidak mengatakan saya setuju dengan tren. Saya hanya mengatakan itu tren hari ini. Seperti yang ditunjukkan Dave, pasti ada titik puncaknya. Ada diskusi yang sangat bagus di sini: "Komentar adalah bau kode" . Saya termasuk dalam "komentar untuk memberikan informasi di dunia DI LUAR basis kode (persyaratan, perubahan bisnis, dll)".

Michael Blackburn
sumber
Komentar sudah ketinggalan jaman? Itu tidak benar.
Steve
1
Oh saya setuju; Saya hanya mengatakan tampaknya ada kecenderungan untuk merasa komentar tidak harus diminta. Saya sudah mewawancarai orang-orang yang bersikeras bahwa nama metode harus semua komentar yang Anda butuhkan. Jelas, mereka bekerja di tempat mitos di mana persyaratan bisnis tidak berubah setiap enam bulan.
Michael Blackburn
2
Saya berpendapat bahwa sementara PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () adalah deskriptif, itu juga membuat kode tidak terbaca karena merusak aliran.
Dave Wise
1
Setuju x100. Jika saya tidak mencatat dengan hati-hati apa yang saya pikirkan dan mengapa saya membuat keputusan yang saya lakukan melalui komentar yang ditulis dengan hati-hati, saya sama sekali tidak tahu apa yang terjadi ketika saya kembali membaca kode yang saya tulis beberapa bulan yang lalu. Saya sudah mencoba membuat argumen ini sebelumnya kepada para astronot arsitektur yang mengatakan komentar adalah kebisingan atau ketinggalan zaman atau usang, tetapi tidak ada yang pernah mendengarkan. Semua orang menganggap saya pengembang yang buruk karena saya harus menulis komentar dalam kode sumber saya. Aku baik-baik saja dengan itu. Ini membantu saya dan semua orang setelah saya.
Cody Grey
@ Dave: Sementara saya setuju dengan Anda, Anda memiliki metode dengan dua tanggung jawab. Penitensi Anda adalah 4 Hail Martins dan 2 GangOfFours.
Michael Blackburn
1

Sintaks Saya biasanya ingat setelah beberapa kegunaan. Sebagai contoh, ketika saya pertama kali mulai menggunakan obat generik atau LINQ, saya mengalami beberapa kesulitan untuk mendapatkan sintaks yang benar.

IntelliSense jelas membuat pekerjaan saya jauh lebih mudah dalam mengingat properti dan nama metode.

Michael Blackburn
sumber
1

Ketika saya seorang penguji, pemimpin perusahaan itu pernah memberi tahu saya bahwa kode itu ditulis 6 bulan yang lalu tidak ada orang saya yang dapat dimintai pertanggungjawaban atas hal itu. Pada saat itu mengejutkan saya. Sekarang saya telah beralih menjadi pengembang, saya mengerti. Saya tidak ingat detail kode yang saya tahu saya kerjakan tetapi detailnya tidak ada.

Erin
sumber
0

Hampir selalu. Proyek saya yang paling baru (sangat kecil) adalah ujian dari keterampilan saya sendiri (berkarat). Saya sendiri telah menulis banyak kode prosedural dalam gaya C yang sangat sederhana, kemudian mengubahnya menjadi kode Java menggunakan beberapa pola desain dan menjaga setiap metode tidak lebih dari delapan baris, jika saya bisa.

Saya meletakkan kode selama sekitar satu bulan. Ketika saya kembali ke sana, butuh waktu satu jam sebelum saya menyadari bahwa saya telah menulisnya. Terus terang, bahkan jika saya meletakkan nama saya di kolom komentar, saya tidak yakin itu akan meyakinkan saya.

mfe
sumber