Hangi teknikler programlama bilgisini korumaya yardımcı olur? [kapalı]


44

Programlama ile ilgili şeyleri nasıl hatırlıyorsunuz? Birkaç yıl önce, şu an önünüzde karşılaştığınız hatayla karşılaştığınız hissine sahip oldunuz ve bunun nedenini bildiğinize yemin edebilirdiniz, ama şimdi unuttunuz mu?

Bir süre önce xsl'in stringi ayrıştırmakla çalıştınız, fakat şimdi xsl'nin tamamen hangi string fonksiyonlarını tam olarak hatırlayamıyorsunuz ve sıfırdan başlamak zorundasınız? Belki de Apache Commons'ın geçmişte kesinlikle kullandığınız “bir tahsilatı bir tahmine göre filtrelemek” gibi bazı özelliklerini unutursunuz.

Peki nasıl yapıyorsun? Blog sahibi olmaya çalıştım ancak uygulamalar geliştirdiğimde, blogu güncelleme veya deneyimlerim hakkında yazma zamanı bulamıyorum. Ayrıca, bir wiki kullanmak hoş bir şey ama o zaman bu konu hakkında yeni bilgiler eklemek için bir blog yazısını değiştirmek zorunda olduğumdan beri aralarında temiz bir ayrım olmasını zor buldum. Bu, aslında bu konuyu blog yerine wiki'ye koymam gerektiğini düşünmemi sağladı.

Programlama deneyiminizi hatırlamanıza yardımcı olacak herhangi bir sisteminiz var mı? Senin kurulumun ne


82
kurulumum: 1.google 2.bookmark sayfa 3. 4.goto-> 1 yer imini unutun.
e-MEE

4
Kişisel bir Wiki kullanın. Çözdüğünüz her sorunu not edin, böylece siz ve başkaları daha sonra görüntüleyebilirsiniz. Sadece birkaç aylığına yapın, zengin bir bilgi kaynağına sahipsiniz. WikidPad ve oldukça hoş kullanıyorum
Ubermensch

2
google cevaplar için harika ama bellek teknikleriyle ilgili bu soruyu gerçekten ele aldığını sanmıyorum. Tabii ki bu sadece bir yorum.
Michael Durrant,

4
Beynim benim CPU ve önbellektir. Yaparak önbelleğime bir şey koydum. Bilgimin geri kalanı eski kaynak kodu, notlar ve stackoverflow.com gibi başka yerlerde.
Distortum

5
@ e-MEE: Tanımladığınız durum sıklıkla kullanılsa da, bu kötü bir uygulamadır ve ona güvenemezsiniz. Zaman alıcı ve gereksiz. Tekerleği yeniden icat etmeden, müthiş özellikler oluşturmak için o zamanı kullanabilirsiniz :)
Claudiu Constantin

Yanıtlar:


64

Bir şeyleri unutmak normaldir. Geçmişte size yardımcı olan bazı püf noktalarını hatırlamamak da normaldir. Bu, onaylanması gereken ilk adımdır. O zaman daha fazla gözden geçirme için bilgiyi "saklayabilmenin" bazı yolları vardır:

  • Bununla ilgili zaman ve blog bulun . Gelecek, şu an için çok müteşekkir olacaksınız;
  • Küçük demolarla çalışın ve bir şekilde arşivleyin. Elbette bu arşivi defalarca geçeceksiniz;
  • Stackexchange profilinizi kullanın . Daha fazla araştırma için ilginç sorular / problemler / konular / ipuçları / püf noktaları favoriler olarak işaretleyin;
  • Keep yapıyor , programlama tutun. Bir çerçevenin belirli bir bölümünü ne kadar çok kullanırsanız, o kadar çok tanıdıkça ve o kadar çok hatırladığınızda.

5
"Yapmaya devam et" kısmı için +1, bilgiyi tazelemek gibi.
tehnyit

Nokta 1, bana The Office'in bir bölümünü hatırlatıyor ...
JBRWilkinson

Cevabınızı yükseltmek için buraya kayıt oldum. Mükemmel biri
Martin.

3
Bir günlük / günlük değeri için +1. Günlük kaydı diyetlerin, finansın, zindeliğin, gerçekte çoğu şeyin başarısını artırır ... gerçekten bir günlük yazmak için zaman ayırmayan insanlar, günlüklerin faydasının bir şeyler aramak olduğunu düşünürler, ancak asıl değer sizi düşünmeye zorlamaktır. son geçmiş olaylar üzerine, bu olayları eleştirel bir gözle ele al ve onları bir hikaye haline getir. Bu işlem belleğe yardımcı olur ve yazarın geleceği düşünmesini sağlar. O zaman için bir kütüğün yararı, gerçeği takiben değil, yaratılış sırasındaki kişisel ve gerçek değerden okumaktır.
Quaternion

Blog en iyisidir. Yaptığım bazı şeylerin bir blogunu tutuyorum - karşılaştığım sorunlar (ve sevdiğim ya da ilginç bulduğum şeyler hakkında). Bu şekilde, bir sorunla karşılaştığımda (bu kütüphaneyi buraya nasıl yeniden yerleştiririm?), Blog postalarıma gidiyorum ve devam ediyorum. Bir cazibe gibi çalışır, artı aslında bir gün birine yardım edebilir.
MatthewRock

20

Benim anahtar

Çeşitlilik


Tekrarlama. Bir zamanlar kısacık olabilir. 100'üncü oluşumu görmek fark yaratır!

Parmaklarınızla hafıza . Gerçekten birkaç kez yazdığımda kodu çok daha iyi hatırlıyorum.

Kod Kütüphanesi - Kullandığınız ve gördüğünüz püf noktaları ve kişisel bilgileri saklayın.

Merkezileştirilmesi. 1 adında tüm kullanıcı adlarımın (yüzlerce) bulunduğu 1 dosya tutuyorum. Ona güvenlik uyguluyorum.

Disiplin - kendi blogunuzu güncelleme vb. İçin zamanınız / çaba göstermediğinizden bahsettiniz. Sadece daha çok çalışmanız ve yaptığınızdan emin olmanız gerekir.

Kabul - her hafta öğrendiğiniz şeyler ve becerileriniz yeni olacaktır. 3 yıl önce söylediğiniz bazı şeyleri hatırlamak zor olacak. Beyin daha fazla yer açması normaldir.

Çoklu duyular - bazen anımsatıcı kullanırım, bazen belirgin şekilde çizilen anahtar kavramlarla bir resim çizerim. Okudum, podcast dinliyorum, video izliyorum, editörlerde renkli kullanıyorum. Ne kadar çok his kullanırsam o kadar iyi.

Anımsatıcılar , örneğin css sınır düzeni Tarball (TaRBalL) TopRightBottomLeft. Ayrıca kelimeleri ve temaları hatırlamak için renkler ve şekiller kullanırım. Genellikle ne kadar tuhaf, o kadar unutulmaz!

Devamlı Kullanım - Bu 'kullan ya da kaybet' efektidir. Tüm bilgiler zamanla kaybolur. Time ++ Fade ++

Yığın Değişim Ağı - Şu anki işim / projemde kullanmasam bile, 'mevcut' ve 'hatırlanan' birçok farklı beceri ve tekniği denemek ve tutmak için birden fazla alanda Yığın Taşması kullanıyorum.

Dropbox - Commnon küçük dosyaları hafıza ile ilgili öğelerle tutarım

Kitaplar - Hala fiziksel kitapların aptallığını ve hissini seviyorum. Ayrıca, herhangi bir yerde başvurabileceğim birden fazla kindle ve on-line teknik kitabım var. Açıkçası, teknik kütüphanem dijital olduğu zaman her yerde erişilebilir, bu çok büyük.

Google etkisi - hiçbir öğe listesi bundan söz etmeden gerçekten tamamlanmış sayılmaz. Bu daha fazla hatırlamamanız gerekmediği şeydir - çünkü onu google'da bulabilirsin. Bu da önemli bir husustur. Bilgi edinme yolunda daha fazla insan ustalaştığında, verilen herhangi bir gerçeği ezberleme ihtiyacı azalmaktadır. Ancak bu, mevcut ortamda gerçekleştirmek için derin bir kavramsal anlayışın gerekli olduğunu gittikçe daha fazla bulan bilgi çalışanları için 'çıtayı yükseltmek' anlamına geliyor. Tabii ki CME'ler için hangisi ?

Kendi blogum

Kendi yer imleri sitem.

  • Blogumu ve yer imlerimi nasıl güncel tutabilirim? Günün sonunda bence disiplin ve bencillikyani, evet, bunun için gereken belirli bir özveri miktarı var. Ancak bir dereceye kadar okula gittiyseniz ve 100.000 $ (veya 10.000 $) ödediyseniz ya da kendi kendinize öğretilirseniz, bağlılık ve sebatın anlamını bilirsiniz. Bu farklı değil. Nezaketsizlik ya da 'şıklık faktörü', harika bir öğretici ya da teknik ya da her ne olursa olsun ya da zorlu bir dikenli problemin üstesinden geldiğiniz ya da zorlu bir problemin üstesinden geldiğinizde, "hey bu çok şık!" - öyleyse bunu (veya ne kullanırsanız kullanın), şimdi "Ben bunu blog yapmalıyım veya bu yer imini kaydetmeliyim" ile ilişkilendirin. PC'nizde bulunmamanız, blogunuzu o anda güncellemeniz iyi bir şans, bu nedenle kendinize bir e-posta, metin veya sesli posta ya da görev listenizde yeni bir görev gönderin ;- kendinize yapmasını hatırlatmak için! Örneğin, android telefonum bunun için faydalı bir görev uygulamasına sahiptir.

Düşünceli cevabınız için teşekkürler. Blogunuzu güncelleme konusunda disiplinli misiniz? Sanırım sahip olduğum sorun tembellik, ya da bir şey yayınlamıyorum çünkü başkalarının bundan fayda sağlayacağını sanmıyorum.
Kyle Hayes

Çeşitlilik için +1. Gerçekten işe yarıyor ve birçok kez deneyimledim.
Karthik Sreenivasan

Kyle iyi soru, cevabımı güncelledim. Ancak cevabım daha ilgili hala ihtiyaç yerine güncellenen kalmak için nasıl ben disiplinli kalır. Bir noktada kişisel motivasyondan kaynaklanıyor.
Michael Durrant,

7

Geçen sene Evernote , onsuz yapamayacağım bir program oldu. Her şeyi Evernote'a kopyaladım. Kod Parçacıklar, Ekran Görüntüleri, İletişim verileri, Sürüm Geçmişi vb. Bu yüzden çok fazla ayrıntı hatırlamak zorunda değilim. Sadece orada bir yerlerde olduğunu biliyorum.

Temel sürüm ücretsizdir. Öyleyse dene!


1
Öyleyse, evernote'un hizmetlerinin düştüğü gün ya da internet yokken ne yaparsınız (örneğin operatörünüz nükleer bombalandığı için)? Nasıl yapıldığını bilmek için "bulut" a güvenmeyi önermiyorum.
Bay Smith,

Şu anda Evernote kullanıyorum, ancak her şeyi oraya koyarsanız, etiketler bölümü çok karışık olacak ve daha az kullanmaya başlayacaksınız. Bununla ilgili hoş numaraların varsa, paylaşmanın faydası olur! Teşekkür ederim!
parlayan ışık

@ danleadgy, etiketleri kabul ediyorum. Endişeli olmam gerekiyordu ki bu da gerçekten endişelenmemeliydim.
Kyle Hayes

Aynı soruyu Stack Overflow'ta sorduktan sonra Evernote'u kullanmaya başladım ve çok iyi çalışıyor. Programlama bilgisinin yanı sıra, nasıl yapılır süreçlerini de saklarım. Örneğin, dev makinemi sıfırdan nasıl kurarım (işletim sistemini kurun, yazılımı yükleyin, yapılandırın). Bu son derece yararlı oldu. Ayrıca, aynı bilgilere herhangi bir cihazdan erişebilirsiniz. Böylece bir bilgisayarda veya tablette okuyabilir, diğerinde de çalışabilirsiniz.
B Yedi

6

Sherlock Holmes bir keresinde şöyle dedi: "Bir erkeğin zihni tavan arasındadır. Önemsizliklerle doldurursanız, gerçekten önemli olan hiçbir şeye yer yoktur. Bu ayrıntıların tümü için ansiklopediye sahibiz."

Fotoğrafik bir hafızanız olmadığı ve buradaki problemler olmadığı sürece her şeyi hatırlamayacaksınız. Bir kaynak seti, hem bilgi kişisel kütüphanesini kurmak ve problem çözme teknikleri.

Cevabı hatırlamayabilir ve cevabın nerede yazıldığını bile hatırlamayabilirsin. Ancak, sorunu nasıl çözeceğinizi biliyorsanız, o zaman cevabı her zaman tekrar bulabilirsiniz. Umarım, bu çözümünüzü aranabilir ve yeniden kullanılabilir bir biçimde belgelemeyi içerecektir.


4

Şey, belki de durumum belli ... ama: 76'dan beri dizüstü bilgisayarıma, programlara, komut dosyalarına, konfigürasyonlara, vb. Yazdığım her yazılım notum var. Bu yüzden zamanla (itiraf etmeliyim), bellek yüküm hatırlamaktan vazgeçti. şeyler hakkında meta-verileri hatırlamak. Tabii ki, artık bir çoğu artık önemli değil, ama zor kısmın fikirlere sahip olduğunu, gerçekte bunları hayata geçirmediğini buluyorum. Dolayısıyla meta-veri temel olarak 'fikirlerin' nerede bulunabileceğinin bir göstergesidir.

Bugünlerde yeni çime çarptığımda, yeni yönleri kullanan bazı büyük kod tabanları bulma ve kod tabanı ile kaliteli zaman geçirme eğilimindeyim. Çalışıyorum, bir test ortamında çalışmasını sağlamaya çalışıyorum, daha sonra yeni araçlara (kütüphaneler, diller, yapı teknolojisi vb.) Kolaylık sağlayabilmek için onu artırmaya çalışıyorum. Bu süreç, kalıplarımı, fikirlerimi bir örnek üzerine çizmeme izin veriyor. Birkaç mini proje yapmak için zaman alabilir ve evde en çok hissettiğim referansı seçebilirim. Bu yapıldıktan sonra, sonunda kendi uygulamalarımın iskeletini oluşturmak için bu kod tabanını yeniden amaçlayacağım.

Kişisel arşivler başarısız olduğunda, son zamanlarda SO eklediğim net olanı vurdum. SO'dan önce SO'da 'yeni' kavramlar (kişisel bir bakış açısından yeni) hakkında bir fikir edineceğim. Aslında, nadiren (günümüzde) gaagle'a dönüyorum. Buradaki ilk ilgili cevap tipik olarak SO hakkındaki bazı ilginç sorulara bir bağlantıdır.


4

Diğerleri gibi, yer imlerini kullanarak bazı şeyleri takip ederim.

Delicious'ı kullanırdım ama şimdi Pinboard'a taşındım.

Ama bu şekilde eskisi kadar kullanmıyorum. Karşılaştığım her programlama problemi uzakta küçük bir google araması gibi görünüyor. Ve son bir yılda, arama terimlerimden biri olarak Stackoverflow kullanmaya başladım!

Ne zaman gelsem, özellikle zor bir konu için SO sorusu sorduğumda, onu takip etmeyi çok severim, bu yüzden bu başka bir yer imi biçimidir.


Ben de geçmişte çok lezzetli oldum ama onlar bu projeden bir karmaşa çıkardılar. Ben şimdi imleri ve vurguları için Diigo'yu kullanıyorum . Pinboard'u kontrol etmem gerekecek.
jmq

3

"Resmi hatırla, ince vuruşları unut"

Daha ince detayları hatırlamamak kesinlikle normaldir. Ancak, endişelenmeniz gereken şey önemli şeyleri unutmak. Eğer bir hatayı düzelttiyseniz, en azından sorunun ne olduğuna dair kavramsal bir fikre sahip olmalısınız.

Yer imleri, bloglar, defterler bu ince detayları saklamak için gayet iyi. Ama nihayetinde hala daha büyük olan "resmi" hatırlamanız gerekiyor. Aksi takdirde, bu "daha ince" ayrıntıların yeniden keşfedilmesi daha zor olacaktır.


2

Kendi notlarınızı saklayın, kendi sözlerinizle ifade edin. Hedef kitleniz sizsiniz , başka kimse yok, bu yüzden tereddüt edemezsiniz. (Ancak bir blog postasının gerçekten net ve iyi düzenlenmiş olması gerekir, bu da zaman alıcıdır.) İyi makaleler / blog sayfaları bulursanız, URL'yi kaydedin, ancak yine de kendi kelimelerinizle açıklayın.

Küçük, kısa, tek başlıklı dosyalardan oluşan büyük bir hiyerarşi saklıyorum. Dosyalar çoğunlukla serbest formda, ancak Markdown kullanmaya geçiyorum. Grep / find kullanarak arayın. Klasörü DropBox'ımda tutuyorum, bu yüzden her zaman bana uygun.


Ben de böyle dosyalar olarak kullanırdım, ancak Evernote'u bu tür veriler için de iyi bir depo olarak buldum.
Kyle Hayes

1

Herkes alışkın olduğu kendi tarzına sahip olabilir, Benim için bilgiyi kategorilerde ayırırım:

  • Kitabın

  • Makaleler

  • Koleksiyonlar (İlginç bulduğum sayfalar birkaç paragrafla sınırlı - Aslında bilgileri kopyalarım ve bazen kaynağı eklerim) - Örneğin: OODevelopment, Generics, ... etc.

  • Yeniden kullanılabilir kod (metin ve pasajlar) - Her biri iyi bir ağaç organizasyonu altında ayrı bir dosyada. Örneğin DataValidation düğümü, her biri ayrı bir dosyada bulunan farklı veri öğelerini doğrulamak için birçok teknik içerecektir

  • Tamamlanmış projeler

  • Kişisel Video Dersleri (Bazen, çok fazla adımın olduğu durumlarda işlerin nasıl yapılacağına ilişkin videoları kaydediyorum).

  • Bağlantılar

Yukarıdakileri konulara göre düzenlerim, her konu uygun bir ağaç yapısında.

Bazı zamanlar çakışan şeyler oluyor ama istediğimi bulmayı başardım.

Ayrıca, Google Desktop’ı kullanarak metin veya dosyaları bulmak çok hızlıdır.


Paylaşmak için istekli olsaydınız, ağacınızı görmek ilginç olurdu.
Kyle Hayes

@KyleHayes, bir örnek
verebilirim

0

OneNote kullanıyorum. Çalıştığım birçok farklı programlama dilim var, bu yüzden her dil için farklı bölümler ve farklı türdeki notlar için farklı sekmeler var.

Şimdi de Stack Exchange kullanmaya başlıyorum.


-1

Bellek ve "depolama" arasında dengeli olmalısınız. Eğer çok fazla veya bellekteki yanlış şeyler için güveniyorsanız, == problem, eğer her şeyi saklamaya çok fazla güveniyorsanız == işe yaramaz.

Benim kurallarım:

- Fazla güzelleştirmeyin! Yazı tipi boyutu belgenizde değişse bile önemli şeyleri yazın :)

- Fazla organize etmeyin. Düşüncelerinizi organize etmenin 10 seviyeli bir ağaç yapısına ihtiyaç duymadığınızı düşünün

-Neyi kaydetmek için harcanan ZAMAN. Aynı problem için 5 çözüm bulabilirsiniz. Onları TÜM yazdığınız anda gevşetin. GERÇEKTEN yardımcı olan 1-2 yazınız. Şimdi bunun için vaktiniz olmadığını söylemenize izin vermeyin. Oldukça garip ama geçerli: "Zaman geçirmek için zaman harcadı"

Bunları bazı "ürünlere" koymaktan hoşlanmıyorum çünkü 20 yıl sonra olacağından emin olmak istiyorum ve kendimi çeşitli platformlara geçirmek istemiyorum ..

Peki ne yapmalı?

En az çabayla bilgi alabileceğiniz her şey.

Örneğin phpBB'yi kurun ve kendinize yazın. kutudan ücretsiz arama işlevini elde edersiniz, basit SQL ifadeleriyle çıkarılmış ve dosyalara yerleştirilmiş verileriniz olur. Arşivlemek için dosyalarınızı düşüncelerinize aktararak bir cronjob alabilirsiniz. Yani onları başka bir sisteme koymanız gerekirse, asgari çabayla hazırsınız demektir.

Bir başka sorun da, hiç kimsenin bulduğunuz bağlantıların yarın işe yarayacağının garantisi değildir (5 yıl sonra hayal edin). Bu yüzden bilgileri kopyalamaya çalışın:

-Bir videoyu bir tarayıcı uzantısı ile indirin ve örneğin phpBB gönderinize ekleyin (veya wordpress veya her neyse).

Kabul et: siz bir programcısınız ve diğer insanlar için uygulamalar yapıyorsunuz. Kendiniz için basit bir tane yapın ve SİZİN en iyi müşterisi olun.

benim 2c


-1

Kısa cevap:

Pratik yap, pratik yap, pratik yap.

Kısa Değil Cevap:

Yürümeyi nasıl hatırlıyorsun? Nasıl konuşacağını nasıl hatırlıyorsun? Verilen bu beceriler tamamen aynı değildir ve görünüşte ansiklopedik bir bilgi gerektirmezler (en azından yeni başlayanlar için), ama aynı şeyi kullanıyorsunuz: hafıza.

İtiraf etmeme rağmen, yeni başlayanlar için, programlamaya başladığınızda programlamanın imkansız derecede büyük bir konu gibi görünebileceğini, temelleri öğrendikten sonra herhangi bir konuya dönüşebileceğini kabul ediyorum.

Bunu anladığım anda, işleri daha küçük ve daha küçük parçalara bölmeye başladım (benim kendi soyutlama versiyonum). Bu şekilde, hatırlanması zor görünen bir şey daha kolay hale gelir (en azından benimle yapar).

Bir şeyleri yazmak, düşündüğünüzden daha fazla yardımcı olur (Eğitimde çalışmış olmanız, bunun kalıcılığa büyük olumlu etkileri olabileceğini biliyorum). Özellikle de sadece kendi kelimelerin içine koyabilirsen - sadece kopyalamak yerine. Eğer daha önceden bildiğiniz bir şeye eşleştirebilir ya da eşleştirebilirseniz, daha da iyi.

Örneğin: C # 'da, String nesneleri değişmez. Bu, ne zaman programıma bir string nesnesinin içeriğini değiştirmesini söylediğimde, gerçekte olan şey orjinal dizenin imha edildiğidir (teknik olarak çöp toplayıcısının en düşük seviyesine yerleştirilir). Aynen bir sanatçının mermer bir heykel oluştururken hata yaptığı zaman olduğu gibi - değiştirilemez, dolayısıyla imha edilir ve yeni bir tane yaratılır.

Harika bir örnek değil, fakat elde ettiğim şeyin temelini gösteriyor.

Kaliteli belgeler de yardımcı olur. Programming 101 öğretim görevlisimin bir keresinde bana sıkıştığını söylediği bir şey:

Yorumunuzu ayrıntılı yapın. Aptallık noktasına değil, programcı olmayanların anlayabileceği yorumlar yazabilmelisin. Bu şekilde, projedeki başka birinin bunu mükemmel şekilde anlayabileceğini biliyorsunuz. Bir sistemi uygulamak için aylar harcayacağınızı, ancak çalışma yolunda korkunç bir kazaya karıştığınızı hayal edin. İşinize başka biri atanır - özellikle sıkışma zamanına yaklaşıyorsa - ve kodunuzun ne yaptığını çözemezlerse, üretim durur.

İyi kitaplar da mükemmel bir kaynaktır. Farklı bir öğretmen bir keresinde bana bir kitabın indeksinin olmadığını (ve orada olmayan çok sayıda varsa), o zaman satın almaya değmeyeceğini söyledi.

Google harika bir kaynak olabilir, ancak kopyala-yapıştır kodlayıcılarının farkında olun. Sadece açıklama içermeyen bir kod bloğu veren sitelerden uzak durun. Küçük kod bloklarıyla ilgili tüm bir makaleyi okumayı tercih ediyorum, bu şekilde kod bloğunun tam olarak ne anlama geldiğini, bunun nasıl yapıldığını ve programcının neden bu şekilde yazdığını bilerek ayrılıyorsunuz.

umarım yardımcı olur

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.