Teknik apa yang membantu mempertahankan pengetahuan pemrograman? [Tutup]


44

Bagaimana Anda mengingat pemrograman hal-hal terkait? Pernahkah Anda merasa bahwa Anda telah menemukan kesalahan yang Anda miliki sebelum Anda sekarang, beberapa tahun yang lalu dan Anda bisa bersumpah Anda tahu penyebabnya, tetapi sekarang Anda sudah melupakannya?

Apakah Anda bekerja dengan parsing string xsl beberapa waktu yang lalu, tetapi sekarang Anda tidak dapat mengingat persis mana fungsi string yang sama sekali dari xsl dan Anda harus mulai dari awal? Atau mungkin Anda melupakan beberapa fitur dari Apache Commons seperti "memfilter koleksi berdasarkan beberapa predikat" yang pasti Anda gunakan di masa lalu.

Jadi, bagaimana Anda melakukannya? Saya mencoba memiliki blog tetapi ketika saya mengembangkan aplikasi, saya tidak pernah menemukan waktu untuk memperbarui blog atau menulis tentang pengalaman saya. Juga, menggunakan wiki adalah hal yang baik tetapi kemudian saya merasa sulit untuk menjaga pemisahan yang bersih di antara mereka karena berkali-kali saya perlu mengubah posting blog untuk menambahkan informasi baru tentang topik itu. Ini membuat saya berpikir bahwa saya seharusnya meletakkan topik ini di wiki daripada di blog.

Apakah Anda memiliki sistem yang membantu Anda mengingat pengalaman pemrograman Anda? Apa pengaturan Anda?


82
setup saya: 1.google halaman 2.bookmark 3. Lupakan bookmark 4.goto-> 1.
e-MEE

4
Gunakan Wiki pribadi. Catat setiap masalah yang Anda selesaikan sehingga Anda dan orang lain dapat melihatnya nanti. Lakukan saja selama beberapa bulan dan Anda memiliki banyak informasi. Saya menggunakan WikidPad dan ini cukup bagus
Ubermensch

2
google sangat bagus untuk jawaban tetapi saya tidak berpikir ini benar-benar menjawab pertanyaan ini tentang teknik memori. Tentu saja itu hanya komentar.
Michael Durrant

4
Otak saya adalah CPU dan cache saya. Saya memasukkan barang ke dalam cache dengan melakukannya. Sisa pengetahuan saya ada di tempat lain seperti kode sumber lama, catatan, dan stackoverflow.com.
Distortum

5
@ e-MEE: walaupun situasi yang Anda gambarkan sering digunakan, ini adalah praktik buruk dan Anda tidak dapat mengandalkannya. Itu memakan waktu dan berlebihan. Anda dapat menggunakan waktu itu untuk membangun fitur-fitur luar biasa, bukan menciptakan kembali roda :)
Claudiu Constantin

Jawaban:


64

Melupakan hal-hal adalah normal. Tidak mengingat beberapa trik yang membantu Anda di masa lalu juga normal. Ini adalah langkah pertama yang harus diakui. Lalu ada beberapa cara Anda dapat "menyimpan" pengetahuan untuk revisi lebih lanjut:

  • Temukan waktu dan blog tentang hal itu . Masa depan-Anda akan sangat berterima kasih kepada yang sekarang-Anda;
  • Bekerja dengan demo kecil dan mengarsipkannya dengan cara tertentu. Anda pasti akan menelusuri arsip ini berkali-kali;
  • Manfaatkan profil pertukaran stackex Anda . Tandai pertanyaan / masalah / masalah / tips / trik menarik sebagai favorit untuk penyelidikan lebih lanjut;
  • Terus lakukan , terus pemrograman. Semakin banyak Anda menggunakan bagian tertentu dari suatu kerangka kerja, semakin Anda membiasakannya dan semakin Anda ingat.

5
+1 untuk bagian "terus lakukan", semacam menyegarkan pengetahuan.
tehnyit

Poin 1 mengingatkan saya pada sebuah episode The Office ...
JBRWilkinson

Saya mendaftar di sini hanya untuk meningkatkan jawaban Anda. Sempurna
Martin.

3
+1 untuk nilai log / buku harian. Penebangan meningkatkan keberhasilan diet, keuangan, kebugaran, hampir semua hal yang benar-benar ... orang-orang yang tidak meluangkan waktu untuk menulis log berpikir manfaat log adalah untuk mencari sesuatu tetapi nilai sebenarnya adalah memaksa Anda untuk berpikir lebih dari peristiwa masa lalu baru-baru ini, pertimbangkan secara kritis peristiwa itu dan bentuknya menjadi sebuah cerita. Proses ini membantu ingatan dan membuat penulis berpikir tentang masa depan. Manfaat log bagi sebagian besar orang saat itu, bukan dalam membacanya setelah fakta tetapi dari nilai pribadi dan nyata selama pembuatannya.
Quaternion

Blog terbaik. Saya membuat blog dari beberapa hal yang saya lakukan - beberapa posting tentang masalah yang saya temui (dan jarang tentang hal yang saya sukai atau temukan menarik). Dengan cara ini, ketika saya menemukan beberapa masalah (bagaimana saya menginstal perpustakaan ini lagi di sini?), Saya pergi ke posting blog saya dan mengikuti. Bekerja seperti pesona, plus mungkin bisa membantu seseorang suatu hari nanti.
MatthewRock

20

Kunciku adalah

Variasi


Pengulangan. Sekali bisa cepat berlalu. Melihat kejadian ke 100 membuat perbedaan!

Memori dengan jari . Saya ingat kode jauh lebih baik ketika saya benar-benar mengetiknya beberapa kali.

Perpustakaan Kode - Menyimpan kode dan trik pribadi yang telah Anda gunakan dan lihat.

Sentralisasi. Saya menyimpan 1 file dengan semua nama pengguna saya (ratusan) di 1 pc. Saya menerapkan keamanan untuk itu.

Disiplin - Anda sebutkan tidak punya waktu / melakukan upaya untuk memperbarui blog Anda sendiri, dll. Bahwa Anda hanya perlu bekerja lebih keras dan pastikan Anda melakukannya.

Penerimaan - keterampilan dan teknik dan hal-hal yang Anda pelajari selama seminggu akan menjadi segar. Beberapa item yang Anda katakan 3 tahun lalu akan sulit diingat. Itu normal karena otak memberi ruang lebih banyak.

Berbagai indera - kadang-kadang saya menggunakan mnemonik, kadang-kadang saya menjatuhkan gambar dengan konsep-konsep kunci yang diambil dengan cara yang berbeda. Saya membaca, saya mendengarkan podcast, saya menonton video, saya menggunakan warna di editor. Semakin banyak akal yang saya gunakan semakin baik.

Mnemonik , misalnya tarbal css order tarball (TaRBalL) TopRightBottomLeft. Saya juga menggunakan warna dan bentuk untuk mengingat kata dan tema. Seringkali semakin aneh, semakin berkesan!

Penggunaan Lanjutan - Ini adalah efek 'gunakan atau hilangkan'. Semua pengetahuan memudar seiring waktu. Waktu ++ Fade ++

The Stack Exchange Network - Saya menggunakan Stack Overflow di banyak area untuk mencoba dan mempertahankan sebanyak mungkin skill dan teknik yang berbeda 'saat ini' dan 'diingat' walaupun saya tidak menggunakannya dalam pekerjaan / proyek saya saat ini.

Dropbox - Saya menyimpan file kecil commnon dengan item yang terkait dengan memori

Buku - Saya masih suka orang bodoh dan merasa buku fisik. Saya juga memiliki beberapa kindle dan buku teknis on-line lainnya yang dapat saya rujuk di mana saja. Jelas perpustakaan teknis saya dapat diakses di mana saja saat ini digital yang sangat besar.

Efek Google - tidak ada daftar item yang benar-benar akan lengkap tanpa menyebutkan ini. Ini lebih lanjut tentang apa yang tidak perlu Anda ingat - karena Anda dapat google dan menemukannya. Ini juga merupakan pertimbangan penting. Karena semakin banyak orang menjadi lebih mahir dalam cara mendapatkan pengetahuan ini, kebutuhan untuk benar-benar menghafal setiap fakta yang diberikan menurun. Namun ini juga 'meningkatkan standar' bagi pekerja pengetahuan yang semakin menemukan pemahaman konseptual yang mendalam untuk dilakukan di lingkungan saat ini. Tentu saja yang keluar untuk CME !

Blog saya sendiri

Situs bookmark saya sendiri .

  • Bagaimana cara saya memperbarui blog dan bookmark saya? Nah pada akhirnya saya pikir itu adalah disiplin dan keindahanYa, ada sejumlah dedikasi yang diperlukan untuk itu. Namun jika Anda bersekolah untuk mendapatkan gelar dan membayar $ 100.000 (atau bahkan $ 10.000) atau Anda belajar sendiri, Anda tahu arti dedikasi dan kegigihan. Ini tidak berbeda. Niftyness, atau 'nifty factor' adalah ketika Anda melihat situs web keren dengan tutorial atau teknik keren atau apa pun, atau Anda mengatasi masalah pelik yang sulit, Anda berkata "hei itu bagus sekali!" - jadi ketika Anda merasakan ini (atau semboyan apa pun yang Anda gunakan), sekarang asosiasikan dengan "Saya harus membuat blog itu atau merekam bookmark itu". Ada kemungkinan besar Anda tidak berada di depan komputer, memperbarui blog Anda saat itu juga, jadi kirim sendiri email, atau teks atau bahkan voicemail, atau tugas baru dalam daftar tugas Anda - apa pun yang cocok untuk Anda- untuk mengingatkan diri Anda untuk melakukannya! Misalnya ponsel android saya memiliki aplikasi tugas yang berguna untuk ini.

Terima kasih atas jawaban bijaksana Anda. Apakah Anda tetap disiplin dalam memperbarui blog Anda? Saya pikir masalah yang saya miliki adalah kemalasan, atau saya tidak memposting sesuatu karena saya tidak berpikir orang lain akan mendapat manfaat dari itu.
Kyle Hayes

+1 untuk variasi. Benar-benar berfungsi dan saya telah mengalaminya berkali-kali.
Karthik Sreenivasan

Kyle pertanyaan yang bagus, saya sudah memperbarui jawaban saya. Namun jawaban saya masih lebih tentang perlunya tetap diperbarui daripada bagaimana saya tetap disiplin. Pada titik tertentu hal itu memang bermuara pada motivasi pribadi.
Michael Durrant

7

Selama setahun terakhir Evernote menjadi program yang tidak dapat saya lakukan tanpanya. Saya menyalin semuanya ke Evernote. Cuplikan Kode, Screenshoot, Data kontak, Riwayat Versi dan sebagainya. Jadi saya tidak perlu mengingat banyak detail. Saya hanya tahu itu ada di suatu tempat.

Versi dasar gratis. Jadi, cobalah!


1
Jadi, apa yang akan Anda lakukan ketika layanan evernote turun, atau tidak ada internet (karena operator Anda telah nuked misalnya)? Saya tidak merekomendasikan mengandalkan "cloud" untuk menyimpan informasi penting.
Tuan Smith

Saat ini saya menggunakan Evernote tetapi jika Anda meletakkan semuanya di sana, bagian tag akan menjadi sangat berantakan dan Anda akan mulai menggunakannya lebih sedikit. Jika Anda memiliki trik bagus tentang ini, akan sangat membantu untuk dibagikan! Terima kasih!
Cahaya bersinar

@danleadgy, saya setuju dengan tag. Saya harus lebih selektif yang seharusnya tidak perlu saya khawatirkan.
Kyle Hayes

Setelah mengajukan pertanyaan yang sama tentang Stack Overflow ini, saya mulai menggunakan Evernote dan berfungsi dengan sangat baik. Selain info pemrograman, saya menyimpan proses how-to. Misalnya, cara mengatur mesin dev saya dari awal (instal OS, instal perangkat lunak, konfigurasi). Itu sangat berguna. Anda juga dapat mengakses info yang sama dari perangkat apa pun. Jadi Anda bisa membaca di satu komputer atau tablet, dan mengerjakan yang lain.
B Seven

6

Sherlock Holmes pernah mengatakan sesuatu seperti, "Pikiran seseorang seperti loteng. Jika Anda mengisinya dengan hal-hal sepele, tidak ada ruang untuk hal-hal yang benar-benar penting. Untuk semua detail ini, kami memiliki ensiklopedia."

Kecuali jika Anda memiliki memori fotografi, dan masalah di dalamnya, Anda tidak akan mengingat semuanya. Membangun satu set sumber daya, perpustakaan pribadi dari kedua informasi dan teknik pemecahan masalah.

Anda mungkin tidak ingat jawabannya, dan Anda bahkan mungkin tidak ingat di mana jawabannya ditulis. Tetapi, jika Anda tahu bagaimana menyelesaikan masalah, maka Anda selalu dapat menemukan jawabannya lagi. Semoga, ini akan mencakup mendokumentasikan solusi Anda dengan cara yang dapat dicari dan digunakan kembali.


4

Yah, mungkin kasus saya khusus ... tetapi: Saya memiliki setiap memo perangkat lunak yang saya tulis sejak 76 di laptop saya, program, skrip, konfigurasi, dll. Jadi seiring waktu (harus mengaku), beban ingatan saya telah bergeser dari mengingat ' hal untuk mengingat meta-data tentang hal. Tentu, banyak dari itu tidak relevan lagi, tetapi apa yang saya temukan bahwa bagian yang sulit adalah memiliki ide, tidak benar-benar mengimplementasikannya. Jadi meta-data pada dasarnya adalah indeks dari apa 'ide' dapat ditemukan di mana.

Ketika saya memukul rumput baru, saat ini, saya cenderung menemukan beberapa basis kode besar yang menggunakan aspek-aspek baru, dan menghabiskan waktu berkualitas dengan basis kode. Saya mempelajarinya, mencoba membuatnya bekerja di lingkungan uji, kemudian mencoba menambahnya sehingga saya bisa mempermudah ke alat baru (perpustakaan, bahasa, membangun teknologi, dll ...). Proses ini memungkinkan saya untuk memetakan pola, ide, ke contoh. Saya mungkin mengambil waktu untuk melakukan beberapa proyek kecil seperti itu, dan memilih sebagai referensi yang paling saya rasakan di rumah. Setelah selesai, saya akhirnya akan mengarahkan kembali basis kode itu untuk membangun kerangka aplikasi saya sendiri.

Ketika arsip pribadi gagal, saya menekan jaring, yang saya baru saja menambahkan SO. Saya akan mendapatkan konsep 'baru' (baru dari sudut pandang pribadi) pada SO sebelum gaagle. Bahkan, saya jarang (saat ini) kembali ke penjara. Jawaban pertama yang relevan pada biasanya ada tautan ke beberapa pertanyaan menarik tentang SO.


4

Seperti orang lain, saya melacak hal-hal menggunakan bookmark.

Saya dulu menggunakan Delicious, tetapi sekarang telah pindah ke Pinboard.

Tapi saya tidak menggunakan cara ini seperti dulu. Sepertinya setiap masalah pemrograman yang saya temui adalah pencarian google kecil saja. Dan dalam setahun terakhir, saya mulai menggunakan Stackoverflow sebagai salah satu istilah pencarian saya!

Setiap kali saya datang pertanyaan SO untuk masalah yang sangat sulit, saya favorit untuk melacaknya jadi ini adalah bentuk lain dari bookmark.


Saya juga pernah menggunakan lezat, tetapi mereka membuat kekacauan dari proyek itu. Saya sekarang menggunakan Diigo untuk bookmark dan highlight. Saya harus memeriksa Pinboard.
jmq

3

"Ingat lukisan itu, lupakan goresan-goresannya yang bagus"

Sangat normal untuk tidak mengingat detail yang lebih baik. Namun yang harus Anda khawatirkan adalah melupakan hal-hal utama. Jika Anda memperbaiki bug, Anda setidaknya harus memiliki ide konseptual tentang apa masalahnya.

Bookmark, blog, notebook semuanya baik-baik saja untuk menyimpan detail-detail yang lebih baik. Tetapi pada akhirnya Anda masih perlu mengingat "gambaran" yang lebih besar. Kalau tidak, menemukan kembali rincian "halus" itu akan jauh lebih sulit.


2

Simpan catatan Anda sendiri, ungkapkan hal-hal dengan kata-kata Anda sendiri. Target audiens Anda adalah Anda , bukan siapa-siapa, sehingga Anda bisa menjadi pendek. (Namun, posting blog benar-benar harus jelas dan diedit dengan baik, yang memakan waktu.) Jika Anda menemukan artikel / blogpost yang bagus, catat URLnya, tetapi tetap jelaskan dengan kata-kata Anda sendiri.

Saya menyimpan hierarki besar file kecil, pendek, satu topik. Sebagian besar file berbentuk bebas, tapi saya beralih menggunakan Markdown. Cari menggunakan grep / find. Saya menyimpan folder di DropBox saya, jadi selalu tersedia untuk saya.


Saya dulu melakukannya sebagai file seperti ini juga tetapi menemukan Evernote sebagai repositori yang baik untuk tipe data ini juga.
Kyle Hayes

1

Setiap orang mungkin memiliki gayanya sendiri sehingga terbiasa, Bagi saya, saya memisahkan pengetahuan dalam kategori:

  • Buku

  • Artikel

  • Koleksi (Barang yang menurut saya menarik terbatas pada beberapa paragraf - Saya benar-benar menyalin informasinya dan terkadang membubuhi keterangan sumbernya) - Misalnya: Pengembangan OOD, Generik, ... dll.

  • Kode yang dapat digunakan kembali (teks dan cuplikan) - Masing-masing pada file terpisah di bawah organisasi hierarki yang baik. Misalnya simpul DataValidation akan berisi banyak teknik untuk memvalidasi item data yang berbeda, masing-masing dalam file terpisah

  • Proyek yang sudah selesai

  • Tutorial Video Pribadi (Saya terkadang merekam video tentang bagaimana melakukan sesuatu ketika terlalu banyak langkah terlibat).

  • Tautan

Saya mengatur di atas dengan subjek, dengan masing-masing subjek dalam struktur pohon yang sesuai.

Beberapa kali ada hal-hal yang tumpang tindih tetapi saya berhasil menemukan apa yang saya inginkan.

Juga, menggunakan Google Desktop, menemukan teks atau file sangat cepat.


Akan menarik untuk melihat pohon Anda jika Anda mau berbagi.
Kyle Hayes

@KyleHayes, saya mungkin bisa memberikan sampel
NoChance

0

Saya menggunakan OneNote. Saya memiliki banyak bahasa pemrograman berbeda sehingga saya memiliki bagian yang berbeda untuk setiap bahasa dan tab yang berbeda untuk berbagai jenis catatan.

Sekarang, saya mulai menggunakan Stack Exchange juga.


-1

Anda harus seimbang antara memori dan "penyimpanan" .. Jika Anda terlalu banyak mengandalkan atau untuk hal-hal yang salah dalam memori, == masalah, jika Anda terlalu mengandalkan menyimpan semuanya == tidak berguna.

Aturan saya:

-Jangan mempercantik! tulis hal-hal penting walaupun ukuran font bervariasi di dokumen Anda :)

-Jangan berlebihan. Yakinkan diri Anda bahwa mengeminasi pikiran Anda tidak memerlukan struktur pohon 10 tingkat

-Menghabiskan WAKTU untuk menemukan apa yang harus direkam. Anda mungkin menemukan 5 solusi untuk masalah yang sama. saat Anda menuliskan semuanya, Anda kehilangan. Tuliskan 1-2 yang BENAR-BENAR membantu Anda. JANGAN biarkan diri Anda memberi tahu Anda bahwa Anda tidak punya waktu untuk ini sekarang. Agak aneh tapi ini berlaku: "Menghabiskan waktu untuk mendapatkan waktu"

Saya tidak suka meletakkan barang-barang ini di "produk" karena saya ingin memastikan bahwa barang itu akan ada 20 tahun kemudian dan saya tidak ingin pindah ke berbagai platform ..

Jadi apa yang harus dilakukan?

Apa pun yang Anda bisa dapatkan info dengan upaya minimum.

Misalnya instal phpBB dan tulis sendiri. Anda mendapatkan fungsi pencarian di luar kotak, gratis dan Anda dapat memiliki data diekstraksi dengan pernyataan SQL sederhana dan memasukkannya ke dalam file. Anda dapat meminta cronjob untuk mengekspor pemikiran Anda dalam file untuk pengarsipan. Jadi, jika Anda perlu menempatkan mereka di sistem lain, Anda siap dengan upaya minimum.

Masalah lain adalah tidak ada yang menjamin bahwa tautan yang Anda temukan akan berfungsi besok (bayangkan 5 tahun kemudian). Jadi cobalah untuk menggandakan info:

-Download video dengan ekstensi browser dan pasang misalnya ke posting phpBB Anda (atau wordpress atau apa pun).

Hadapilah: Anda seorang programmer dan Anda membuat aplikasi untuk orang lain. Buat yang sederhana untuk diri sendiri dan menjadi klien terbaik ANDA.

2c saya


-1

Jawaban singkat:

Berlatih, berlatih, berlatih.

Jawaban Tidak Begitu Singkat:

Bagaimana Anda ingat cara berjalan? Bagaimana Anda ingat cara berbicara? Memang keterampilan ini tidak persis sama dan mereka tidak memerlukan, tampaknya, pengetahuan ensiklopedik (untuk pemula, setidaknya), tetapi Anda menggunakan hal yang sama: memori.

Meskipun saya akui bahwa, bagi pemula, pemrograman dapat tampak sebagai subjek yang sangat tidak mungkin ketika Anda mulai mempelajarinya, itu menjadi seperti subjek lain begitu Anda sudah menguasai dasar-dasarnya.

Segera setelah saya menemukan jawabannya, saya mulai memecah hal-hal menjadi potongan yang lebih kecil dan lebih kecil (versi abstraksi pribadi saya). Dengan begitu, sesuatu yang tampaknya sulit untuk diingat menjadi lebih mudah (paling tidak dengan saya).

Menulis hal-hal membantu lebih dari yang Anda kira (setelah bekerja di Pendidikan, saya tahu bahwa ini dapat memiliki efek positif besar pada retensi). Terutama jika Anda bisa memasukkannya ke dalam kata-kata Anda sendiri - bukan hanya menyalinnya kata demi kata. Jika Anda dapat memparafrasekan atau menyamakannya dengan sesuatu yang sudah Anda ketahui, bahkan lebih baik.

Sebagai contoh: Dalam C #, objek String tidak dapat diubah. Ini berarti bahwa setiap kali saya memberi tahu program saya untuk mengubah konten objek string, apa yang sebenarnya terjadi adalah string asli dihancurkan (secara teknis itu ditempatkan di tingkat terendah pemulung). Persis seperti ketika seorang seniman membuat kesalahan ketika membuat patung marmer - itu tidak dapat diubah, sehingga dihancurkan dan yang baru dibuat.

Itu bukan contoh yang bagus, tetapi itu menunjukkan dasar-dasar dari apa yang saya maksudkan.

Dokumentasi kualitas juga membantu. Sesuatu yang pernah dikatakan oleh dosen Pemrograman 101 saya tentang saya:

Jadikan komentar Anda verbal. Bukan sampai pada kebodohan, tetapi Anda harus bisa menulis komentar yang bisa dipahami oleh non-programmer. Dengan begitu, Anda tahu bahwa orang lain di proyek dapat memahaminya dengan sempurna. Bayangkan Anda akan menghabiskan waktu berbulan-bulan menerapkan suatu sistem tetapi Anda di mana terlibat dalam semacam kecelakaan mengerikan dalam perjalanan ke tempat kerja. Orang lain akan ditugaskan pekerjaan Anda - terutama jika itu dekat dengan waktu krisis - dan jika mereka tidak tahu apa yang dilakukan kode Anda, maka produksi berhenti.

Buku-buku bagus juga merupakan sumber yang bagus. Seorang guru yang berbeda pernah mengatakan kepada saya bahwa jika sebuah buku tidak memiliki indeks (dan ada banyak dari mereka, di luar sana tidak ada), maka itu tidak layak dibeli.

Google bisa menjadi sumber yang luar biasa, tetapi berhati-hatilah terhadap copy-paste coders. Jauhi situs yang hanya memberi Anda blok kode tanpa penjelasan. Saya lebih suka membaca seluruh artikel tentang blok kode kecil, dengan begitu Anda bisa mengetahui dengan pasti apa yang dimaksud dengan blok kode, bagaimana melakukannya, dan mengapa programmer menulisnya seperti itu.

Semoga itu bisa membantu

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.