Programlanabilmesi için her türlü sözdizimini hatırlamak zorunda gibi görünüyor. İsimleri hatırlamak için iyi bir hafızanız yoksa, programlamayı öğrenmek daha zor olur mu?
Programlanabilmesi için her türlü sözdizimini hatırlamak zorunda gibi görünüyor. İsimleri hatırlamak için iyi bir hafızanız yoksa, programlamayı öğrenmek daha zor olur mu?
Yanıtlar:
Bir dilin sözdizimi, günlük olarak kullanırsanız hatırlamayı düşündüğünüz kadar zor değildir. Sonunda çok kolay olur. Tüm çeşitli kütüphane işlevlerini hatırlamak çok daha zor olabilir ve çoğu insanın kullandıkları en yaygın olanlardan daha fazlasını hatırlayabileceğini düşünmüyorum, ancak Web'e, bir kitaba veya başka bir şeye erişiminiz varsa sorun değil. " "sizin için diğer tüm ayrıntıları hatırlar.
Doğal bir dili konuşmayı
programlayabilmekiçin her türlü sözdizimini hatırlamak zorunda gibi görünüyor .
İsimlerihatırlamak için iyi bir hafızanız yoksa , konuşmayıprogramlamayıöğrenmek daha mı zor olacak ?
İnsanların dilleri olan "doğal" bir tesisleri olduğu doğru değil, değil mi?
Sadece dil edinmek için düşük seviyeli sinirsel donanıma sahip olduğumuz doğru olamaz, değil mi?
Programlama, doğal dillerin birçok kuralına uyan yapay dilleri kullanır.
Doğal diller programlama dillerinden biraz daha fazla esnekliğe sahiptir.
hala katı dilbilgisi. kurallar çok var ama
Konuşabiliyorsanız, konuşmayı öğrendiğinizde ezberlediğinizden başka bir şey ezberlemeden programlamayı öğrenebilirsiniz.
Kısa süreli hafızadan bahsediyorsanız, evet . bir programcı problemleri programlarken / çözerken aynı anda birden fazla bilgi parçasını dengeleyebilmelidir.
Uzun süreli hafıza hakkında konuşuyorsanız, o zaman gerçekten değil . Bilginin hatırlanmasında önemli ölçüde yardımcı olabilecek birçok el kitabı ve referans + araç vardır. Kesinlikle bu uzun vadeli bilgileri ezberlemek daha hızlı bir geliştirici (genel) yapacak, ancak bu bir önkoşul değildir.
İyi bir bellek kesinlikle şarttır, ancak bariz nedenlerden dolayı değil.
Belirli algoritmalar, kütüphaneler, değişken isimleri ve benzerleriyle ilgili ayrıntıları hatırlamak çok kullanışlı olur, ancak süper önemli değildir. Yukarıdakilerin hepsine yardımcı olacak Google, DuckDuckGo, man sayfaları, dile özgü belgeler ve akıllı editörleriniz var. Bu koltuk değneklerine güvenmeniz gerekmiyorsa yardımcı olur, ancak zaman zaman onlara ihtiyacınız varsa iyi olur.
Belleğin önemli olduğu yerler üzerinde çalıştığınız şeyin ayrıntılarını aktif, kısa süreli bellekte tutmaktır. Tasarım, veri akışı, algoritmalar, veri yapıları ve hepsinin ürününüz ne olursa olsun nasıl etkileşimde bulunduğunu görselleştirebilmek OK programcısını mükemmel programcıdan ayırır. Aktif olarak yaparken, tek tekerlekli sirk bisikletine binerken devasa sayıda topla başarılı bir şekilde hokkabazlık yaptığınızı hissediyorsunuz.
Buna genellikle bölgede olmak denir . Kesintiler, aptalca sorular, TPS'ye ihtiyaç duyan patronlar sizi bu bölgeden sarsar.
Hafızanız ne kadar iyi olursa, bölgeye girmek o kadar kolay, orada kalmak o kadar kolay ve bir kesinti sonrasında tekrar içeri girmek o kadar kolay.
Bu tür bir bellekle ilgili sorunlarınız varsa, belleğiniz ne kadar kolay olursa, bir programcı olarak daha fazla başarı elde edeceğiniz için meditasyon tekniklerini ve bellek hilelerini öğrenmenizi öneririm.
Akışa karşı gideceğim ve evet diyeceğim . İyi bir hafıza, bir programcı olarak harika bir varlıktır. Hafızam her zaman bir programlama yükümlülüğü olarak gördüm, bu yüzden handikapımı telafi etmek için bazı hileler aldım:
Bu değişkenin (daha önce 3 satır kullandığınız) nasıl yazıldığını hatırlayabilmelisiniz. Eğer yapamıyorsanız IntelliSense kullanmayı öğrenmek (veya ne olursa olsun otomatik tamamlama Düzenleyicinizde veya IDE ise sizin formu).
Bu proje üzerinde en son ne zaman çalıştığınızı hızlı bir şekilde hatırlayabilmelisiniz. Bu günler önce olmuş, öğle yemeğinden hemen önce olmuş olabilir. Yapamıyorsanız, bir şeyler yazmayı öğrenin . Bir not defterini yanınızda tutun ve üzerinde çalıştığınız (veya yaptığınız) şeyleri, TODO öğelerini ve üzerinde çalışmakta olduğunuz kodun nasıl bir araya geldiğini hatırlamanız gereken şeyleri yazın.
Hata ayıklama ve KG zor. İdeal olarak, bir hata oluşturmaya veya bir şeyi hata ayıklamaya çalışırken attığınız adımlar hakkında çok ayrıntılı bir not defteri tutmalısınız. Bu yapmam gerektiğini bildiğim, ama yine de mücadele ettiğim bir şey.
Bu yardımcı olur umarım!
Gerilla Mülakat Rehberi (sürüm 3.0) , notların akıllı ve işlerin yapılmasının programlamanın önemli noktaları olduğu ortak bir referanstır. Smart, bazı hafıza becerileri içerir, ancak düşündüğünüz kadar değil.
Intellisense , sözdizimi söz konusu olduğunda, işlerin bu tarafında biraz yardım istiyorsanız çok yardımcı olabilir. Öğrendiklerinizi hızlı bir şekilde anlamlı bir şekilde uygulayabilmeniz için nasıl öğrendiğinizi bilmek, trivia sorularına cevap vermekten daha önemlidir.
İsimleri hatırlamanın, kelimeleri hatırlamaktan farklı süreçleri hatırlamaktan oldukça farklı bir bilişsel işlev olduğuna inanıyorum. Başka şekilde mükemmel bir şekilde işlev görebildikçe isimleri hatırlama yeteneğini tamamen ortadan kaldıran beyin yaralanmaları olan insanlar olmuştur.
Bu yüzden, programlama dillerini öğrenmekle ilgisi olmayan isimleri hatırlama yeteneğinin olduğunu söyleyebilirim.
Bununla birlikte, mantıksal kalıpları, kuralları ve kelimeleri hatırlamak faydalı olacaktır.
Hayır. Araçların bellek derinliği (Intellisense, Google, derleyiciler, kod üreteçleri) insan hafızasına kıyasla sonsuzdur. Bu yüzden iyi belleğe sahip programcı, kafasında bir delik bulunandan daha iyi değildir.
Programcıların gerçekte ihtiyaç duydukları şey, soyutlama seviyeleri arasında geçiş yaptıkları zaman "en yüksek odaklanma hızıdır". Ne kadar hızlı olursanız, bir programcı olarak o kadar iyi olursunuz. Bazıları 500 ms gibi bir kalp atışı hızına sahiptir, ilk kan dalgasının beyne gelişi odaklanır. Bazılarının sigara içme döngüsüne yuvarlanan odak saati, yaklaşık 2 saattir. Bazı sabah duş, yani yaklaşık 24 saat gerekir. İyi ve kötü programcı arasındaki fark bir zamanlar 1:80 kat önce ilan edildi ve aradaki fark sadece artıyor.
Hayır, istediğiniz şeyi elde etmek için Google'ın nasıl çalıştığını anlamanız yeterlidir
Korkunç bir hafızam var, ancak Google'ım becerilerim harika ^ _ ^
Tüm ciddiyetle, sözdizimini nerede bulacağınızı bildiğiniz sürece, hatırlamanıza gerek yoktur. Intellisense, yardım dosyaları, referans kılavuzları, internet vb.
Her şeyden önce, programlamayı öğrenmek herkes için zordur. İyi bir belleğe sahip olmak eminim. Ancak, özveri ve yaşam boyu öğrenme sevgisi daha değerlidir. Sözdizimini öğrenmek her şey gibidir, tekrar.
Programlama becerisi hakkında büyülü veya insanüstü bir şey yoktur. Sadece 10.000 saat harcayın ... ve diğer beceriler gibi bir usta olacaksınız. Tabii ki, bu 10.000 saatlik bir eğitim, körü körüne ve zihin uykusuzca geçmiş hataları tekrarlamıyor.
Bu gönderiyi uygun söz dizimi ile İngilizce olarak yazdınız. Açıkça bir dili nasıl kullanabileceğinizi hatırlayabilirsiniz. Sadece yeni bir dil öğrenmeniz ve her zaman doğru anlayabilmeniz için yeterince sık kullanmanız gerekir. İnsan odaklı dillerin aksine, bilgisayar programlama dilleri yanlış sözdizimi kullandığınızda size her zaman bilgi verecektir, bu yüzden aslında daha kolaydır. :-)
Ortalama bir programcının görevlerini yerine getirebileceğini bildikleri çok çeşitli şeyler olduğunu kabul ediyorum, sadece basit bir web sitesi oluşturmak için kontrol etmeniz gereken tüm kelimeleri, sözdizimlerini, teknikleri düşünün (ön uç: html, css, javascript (bazı Js çerçevelerini jquery olarak da sayabilirsiniz), ajax, arka uçta: Php veya ASP veya ASP.Net ve veri tabanlarını, mySql veya SqlServer veya Oracle veya MongoDB, vb. unutmayın). Dillerin, paradigmaların, sintaksilerin, kalıpların vb. Büyük bir listesi var, bunların her birini hatırlamak imkansız.
İyi bir programcı yapan şeyin pratik olduğunu, algoritmalarla dilden daha fazla pratik yaptığını ve sonunda en sık kullandığınız şeyleri hatırlayacağınızı, geri kalanı için her zaman google = P olduğunu düşünüyor.
Harika bir bellek her iki yolu da kesebilir.
Kafanızda düzinelerce bilgi parçasını bir kerede oynatabilirseniz, proje için kritik olan ancak herkesin korktuğu kadar karmaşık olan eski miras kodunu anlamak (ve umarım yeniden yazmak) için çok daha kolay bir zamanınız olacaktır. dokunun.
Öte yandan, proje için kritik olan ancak herkesin dokunmaktan korktuğu korkunç kod parçası, muhtemelen düzinelerce bilgi parçasını dengelemek için harika bir yeteneğe sahip biri tarafından yazılmıştır. Harika bir hafızanız varsa, sadeliğin zarafeti için bir takdir geliştirmek için ekstra çalışın.
Bir programlama dilinin sözdizimini öğrenmek büyük bir hafıza gerektirmez. Diğerlerinin söylediği gibi, sözdizimi o kadar çok güçlendirilir ki, hızla ikinci doğa olur. Yolun hangi tarafında sürmeniz gerektiğini hiç unuttunuz mu? Hangi aritmetik semboller toplama ve çıkarma temsil eder? Değilse, seçtiğiniz dilin sözdiziminin en yaygın kısımlarında çok fazla sorun yaşamadan ustalaşacaksınız ve ortaya çıktıklarında daha az yaygın olan bitlere bakabilirsiniz.
Bazı kütüphanelerin yüzlerce veya binlerce işlevi, sınıfı ve / veya yöntemi vardır. Tüm bu işlevleri kullanmayı öğrenmek imkansız bir görev gibi yabancıya benziyor. Ancak neredeyse her zaman kütüphanenin altında yatan bir yapı vardır. Tüm bu işlevleri hatırlamak yerine akıllı bir programcı kütüphanenin nasıl düzenlendiğini ve neler yapabileceğini anlamaya çalışır. Bu yapıldığında, ihtiyacınız olan işlevi ihtiyacınız olduğunda bulmak genellikle oldukça kolaydır.
Kısacası, bellek anlamaktan çok daha az önemlidir.
Değişir. Java ve .NET içinde standart kütüphaneler bir tür hiyerarşidir ve iyi belgelenmiştir. Bu nedenle, ağ iletişimi ile uğraştığınızı biliyorsanız, C #'daki system.net'e gidersiniz ve oradan ihtiyacınız olan belirli nesnelere / çağrılara inebilirsiniz. Bu açıdan, detayları ve orada ezberlemenize gerek yok.
Kendi programınızda, her şey bir şeyleri nasıl organize ettiğiniz / adlandırdığınızla ilgilidir. Basic of Basic'ten $, b $, c $ ... veya g $ gibi isimler kullanıyorsanız iyi şanslar. şeyleri FirstName, LastName gibi düşündüğünüz şekilde adlandırırsanız, çok daha kolaydır. Birçok dilde yardımcı olan adlandırma standartları vardır. Örneğin Java'da setX kuralı, bir sınıfın belirli niteliklerini almak / ayarlamak için getX ve büyük harf kullanım kuralları vardır. Yani bir kişinin ilk adı olduğunu biliyorsanız, muhtemelen firstName olarak adlandırılır ve alıcı / ayarlayıcı muhtemelen getFirstName ve setFirstName'dir ... Yani bu sözleşmeler çok yardımcı olur ...
Ayrıca daha kısa yöntemler / işlevler, aynı anda kafanızda daha az kalmanıza yardımcı olur. Ve uygun isimler kullanmak, bakmanıza gerek kalmanıza yardımcı olur. Örneğin, yaptıkları şeylere bir ad verirseniz, getMaximumValue çağıran bir yordamı okurken muhtemelen ne yaptığını anlamak için getMaximumValue 'yu okumanız gerekmez ... Ama işlevler / yöntemler daha uzun ve iç içe geçtikçe daha iyi bir bellek kesinlikle yardımcı olur.
Hafıza o kadar da önemli değil. Bu konuda endişeleriniz varsa, sabahları cüzdanımı veya anahtarlarımı düzenli olarak evimde unuturum. Herkesi en az bir kez yanlış isimle çağırıyorum (ailem ve kız arkadaşım dahil). Her zaman evin etrafında bir şeyler yapmayı unutuyorum.
Günün sonunda programlama ilkeleri hala “bisiklet sürmeyi asla unutma” gibi kafanızda olacak. Özel ayrıntılar ve uygulama ayrıntıları o kadar önemli değildir. Bunları her zaman Google'a ekleyebilirsiniz.
Gönderen Joel On Software bir programmer- üretkenliği hakkında
Verimlilik, kısa süreli bellekte birçok küçük detayı aynı anda dengelemeye bağlıdır .
Bu nedenle, kısa süreli bellek , kritik bir görev verilen bir programcı için çok önemlidir.
Fakat uzun vadeli hafızanın o kadar önemli olduğunu düşünmüyorum .
Hızlı bir okumadan, kimsenin bir program yazmanın tek bir görevinden ziyade, genel programlama anlamında bellek hakkında konuştuğunu görmedim.
Bellek iki şey için yararlıdır:
Temel anlambilimi / kütüphaneleri hatırlamak:
Bu, tekrar ve Google tarafından kolayca desteklenir. IOW, bu problemin üstesinden gelememek için doğduğunuz bellek miktarının gülünç derecede düşük olması gerekir.
Büyük programlardaki bağlamı hatırlamak:
İşte hile burada. Programlar büyüdükçe (ve yaşlandıkça) verdiğiniz kararlar, sistem hakkındaki bilginizin miktarı ve proje tartışmalarında, hata ayıklamada herhangi bir faydası varsa, milisaniye içinde onu alabilme yeteneğinizle tamamen ilgilidir. Push acil durum söz konusu olduğunda, hiçbir miktarda belge / wiki girişi size yardımcı olmayacaktır - ekibinizin "sihirbazı" tek seçeneğiniz olacaktır. Baş mühendislerin bu kadar değer vermesinin / ödemesinin nedenlerinden biri de budur. Birçoğu tüm zamanlarını aslında bu noktada kodlama yaparak harcamaz, tam resmi güncel tutmak ve herhangi bir sorun / iyileştirme için uygulamak için daha fazla zaman harcarlar. İyi olanlar sadece bir ton CR ve burada bir kodlama değişikliği yaparak / yeni revizyonları prototipleyerek iletişim halinde kalırlar.
IOW, Yalnız # 1 ile makul bir programcı olabilirsiniz, ancak bir sonraki Linus olacaksanız, en azından çözdüğünüz sorunu kapsayacak kadar çok belleğe sahip olsanız iyi olur.
Gözlemlerimden, çalışma belleğinin kişinin değeri ile neredeyse doğru orantılı olduğunu bile söyleyebilirim.
Özetlemek için küçük bir sorumluluk reddi: Eidetic belleğiniz varsa, ancak bu mantığı uygularken sıfır / düşük entelektüel gücünüz varsa, bir projeye kameradan daha iyi olmayacaksınız.
Karşılaştığınız kişilerin adlarını hatırlamakta zorluk çekiyorsanız, yine de harika bir programcı olabilirsiniz.
İnsanların adlarını her zaman unutuyorum. Neredeyse on yıllık deneyime sahip kıdemli bir programcıyım. Benim durumumda, korkunç işitsel hafızam harika bir görsel hafıza tarafından telafi ediliyor.
Yine de, iyi bir programcı için temel gereksinim soyutlama yeteneğidir. Ne kadar çok veya ne kadar az hatırlayabileceğiniz önemli değil, bir değişken kavramını anlayamıyorsanız ve bir programda nasıl kullanacağınız iyi bir programcı olmayacaksınız.
Benim önerim, programlamada kısa bir ders denemeniz veya Python öğreticisini nasıl sevdiğinizi görmek için tamamlamanızdır.
Bu, programlamanın takip etmek isteyebileceğiniz bir kariyer olup olmadığı hakkında iyi bir fikir vermelidir.
Ben empatik bir EVET diyorum!
Şu anda JAVA & C # öğreniyorum. Tüm testler kapalı kitap, bu yüzden JAVA için tüm% 100 tüm sınavları kodlama bellek kodlama.
Dahası, gittikçe zorlaşıyor. Şu anda anımsatıcılar gibi bellek numaralarını kullanmaya başlamam gereken noktadayım.
Yüksek IQ, iyi genel bilgi, iyi kelime bilgisi, polimatizm, yüksek matematik bilgisi, dokunarak yazma ve iyi bellek, bir programcının tüm varlıkları olduğunu söyleyebilirim.
Tipe dokunamayan veya daha yüksek matematik vb. Yapamayan çok zeki programcılar biliyorum. Yaptılar, çok daha iyi olabilirler.