Yeni başlayanlar IDE otomatik tamamlama (Intellisense) kullanmalı mıdır? [kapalı]


35

Bunu ilk defa programlama ve öğrenmede yeni olan birine yardım ederken sık sık karşılaşıyorum. Ben gerçekten yeni yeniliklerden bahsediyorum, hala OOness hakkında bilgi edinmek, nesneler inşa etmek, yöntem çağrıları yapmak ve bunun gibi şeyler. Genellikle, klavyeleri var ve ben sadece rehberlik ediyorum.

Bir yandan, IDE'lerin otomatik tamamlama özelliği, onlara doğru yaptıkları konusunda geri bildirimde bulunmalarına yardımcı olur ve çabucak beğenip güvenirler.

Öte yandan, IDE otomatik tamamlama özelliğine erken bağımlılığın, kavramları bir gün gerçekten basit bir editörle bulması durumunda kavramları gerçekten anlamalarına ya da işlev görmelerine neden olacağından korkuyorum.

Bu konuda daha fazla deneyime sahip olan biri lütfen görüşünü paylaşabilir mi? Yeni başlayanlar, otomatik tamamlama veya manuel yazma için hangisi daha iyidir?

Güncelleştirme

Herkes için teşekkürler!

Birçok cevap, yöntemleri tamamlama, yöntem arama ve dokümantasyon sağlama gibi, otomatik tamamlamanın ana kullanımına odaklanmış gibi görünmektedir. Ancak günümüzde IDE'ler daha çok benzer.

  • Liste türünde bir nesne oluştururken, bir IDE sağ tarafta yeni ArrayList'e otomatik olarak tamamlanır. Bir acemiye neden yeni Liste olamayacağı hemen belli olmayabilir, ama hey işe yarıyor, bu yüzden devam ediyorlar.
  • Bağlamda yerel değişkenlere dayalı yöntem parametrelerini doldurma.
  • Nesne atmalarını gerçekleştirme
  • 'İmport' veya 'using' ifadelerini otomatik olarak ekleme

ve daha fazlası. Bunlar demek istediğim türler. Unutma, Programlama 101'i yapan, gerçekten yeni başlayan insanlardan bahsediyorum. IDE'nin hakkında hiçbir fikri olmayan şeyleri yapmalarını izledim, ancak devam ediyorlar.

Bir kişi, program akışına odaklanmaya ve ilk önce derinlemesine gitmeden ve dilin nüanslarını anlamadan önce işleri bir kenara bırakmalarına yardımcı olduğunu iddia edebilir, ancak emin değilim.


1
Bunun genel bir sakıncaya girdiğini düşünüyorum: Bir alet kullanın. Kör kullanacak kadar tembel olmayın.
Alex Feinman

Onların "kullanmak gerektiğini düşünüyorum standart ... metin düzenleyicisi' gnu.org/fun/jokes/ed.msg
JoelFan

Burada bir blog yazısında öğrendiklerimi özetledim: codinguser.com/2011/01/abstraction-is-good-magic-is-bad
kodlayıcı kullanıcı

Yanıtlar:


11

Bence IDE'yi kullanmak öğrenme sürecinde yardımcı oluyor. Yöntemler, özellikler, parametreler, aşırı yükler ve benzerleri keşfedilebilir. Muazzam büyük kütüphanelerle Intellisense, JIT bilgisini kandırmaya yardımcı olur. Günümüzün kodlama ortamında, her şeyi önden öğrenmek imkansızdır ve JIT öğrenmesi genellikle hızlı bir şekilde üretken hale gelmenin tek pratik yoludur.

Bir IDE kullanmanın, kör kullanırsanız bir koltuk değneği olabileceğini anlıyorum, ancak faydaların olumsuzluklardan daha ağır basacağını düşünüyorum.

Öte yandan, sizin için önceden oluşturulmuş olanı anlamadan şablonları kullanmak daha fazla meseledir. Geliştiricinin şablonlanmış kodu okumaya zaman ayırması durumunda, bunların bir öğrenme aracı olarak kullanılabileceğini düşünüyorum. Fakat çoğu insan rahatsız etmiyor. Yine de harika bir öğrenme aracı olabilir.


JIT? .NET FCL demek istemiyor musunuz? =) Evet Katılıyorum ... Yıllar boyunca intellisense benim için bir öğrenme aracı oldu, tonlarca yeni sınıf, yöntem ve onunla ilgili özellikler öğrendim.
gideon,

1
JIT öğrenmeyi kastettim - JIT derlemesi değil;) Öğrenecek çok şey var, önündeki her şeyi öğrenmeye çalışmak gerçekçi değil, bu yüzden kavramları anladığınız sürece, uygulama özelliklerini öğrenmek "tam zamanında yapılabilir".
Mark Freedman

75

Kavramları anlamak ve onlarca yüzlerce aptal kütüphane dersini ve yöntemini ezberlemek tamamen farklı iki şeydir. Intellisense, tüm bu gereksiz bilgileri zihninizden tamamen atmaya yardımcı olur ve ne kadar erken yaparsanız, o kadar iyi. Yararlı konseptler için daha fazla alan bırakın, sınırlı kaynaklarınızı API'lere harcamayın.

Sorunun güncellenmiş bir bölümünü cevaplamak için: çok az sözdizimi detayları, dosya düzeni, derleyici ve bağlayıcı çağırma da genel programlama kavramlarına kıyasla önemsizdir. Bir kez yeni başlayanlar-daha fazla-olmayanlar anlaşıldıklarında, düşük seviyeli işlerin gerçekte nasıl çalıştığını daha iyi anlayabilirler. Temel bilgileri zaten bildiğiniz zaman yapmak daha iyidir, aksi takdirde bir dizi tehlikeli büyülü batıl inanç alırsınız.

Örneğin, DrScheme IDE, programlama öğretimi konusunda harika bir geçmişe sahiptir ve başarısı temelde gerçekten önemli olan şeylere odaklanmaya yardımcı olma yeteneğinden kaynaklanmaktadır.


30
+1. Aslında, o zaman bazı Win32 API işlevlerinin parametrelerinin listesini alıntılamamı istedikleri röportajlar yaptım. Bu bilginin ne kadar önemli olduğunu asla anlayamadım.

4
@ kodlama: ve bu da bir sorun değil. Şu anda kullandığım bir dilin sözdizimini bile hatırlayamıyorum (kendim tasarlasam bile). Hatırlatma notlarından veya bir alıcı / ayarlayıcı çiftinin nasıl yazılacağından veya hatırlamaktan daha önemli şeyler vardır. Ve IDE'ler daha yararlı şeyler yapıyor - örneğin araç ipuçlarında türleri gösteriyor.
SK-mantık

4
@Josh K, "soyutlama" kelimesini hiç duydunuz mu? Neden farklı soyutlama seviyeleri olduğunu biliyor musunuz? Mevcut sorun alan adınızın soyutlama seviyesinin altındaki herhangi bir şeye dikkat etmek aptalca ve üretkendir. Ve bu yıkıcı alışkanlığı bir kariyeri erkenden almak felakettir. Kısmen iyileşmem on yıldan uzun sürdü.
SK-mantık

3
@Josh K, sistem çağrıları boyunca devam edenleri ilerletmek konusunda ısrar ediyor musunuz? Bu anlayışta katma değer yoktur. Elbette, iyi bir programcının makine kodları da dahil olmak üzere tüm seviyelerde çalışabilmesi gerekir, ancak iyi bir programcının da alakasız bir şeyden tamamen soyutlanabilmesi gerekir.
SK-mantık

3
@ SK-mantık: Kabul ediyorum ve doğrudan kullandığınız aramaları içeri aktarıp fonksiyonlamak soyutlanacak bir şey değildir.
Josh K

16

Otomatik tamamlama özelliğini kullanmak hiç de fena bir şey değil.

Bu sadece hız içindir ve benim için IDE'yi iyi kullanmaya ve iyi kullanmaya başlayan birisinin işareti olacaktır.

Bunu kullanmamanın, örneğin OO öğrenmelerine nasıl yardımcı olacağını anlamıyorum.


1
Ben temelleri ustalaştığınızda hepiniz otomatik tamamladım. Hızlandırdığın şeyi bildiğinde hız iyidir. Ancak bir IDE aynı tür bir yerel değişkeni temel alan bir parametreyi otomatik olarak doldurduğunda veya bir import ifadesi eklediğinde, yalnızca çalışır ve bazı yeni başlayanlar bunu gerçekten anlamıyor.
kodlayıcı kullanıcı

Düzenlemenizi okudum, ancak işe aldığımız nooların doldurdukları şeye bakacak, sorgulayacak ve onları anlayacak akıllı insanlar olduğunu düşünmek istiyorum. Bunun elbette pratikte olup olmadığı bir başka sorudur.
ozz

13

Programlamaya yeni başlayan öğrencilere ders verdikten ve ders verdikten sonra, otomatik tamamlama / intellisense'in bazen iyiden daha fazla zarara neden olduğunu buluyorum. Evet, kullanarak bir program yazabilirler. Evet derler ve çalışır ve onlardan yapmasını istediğimiz şeyi bile yapabilir. Ama ne yaptıklarını anlamıyorlar.

Ne olduğunu anlamadıkları zaman, daha az programlama olur ve daha fazla not almak için birlikte bir çözüm hacklenir. Bunu yapmamızı istediklerimiz olarak öğrencilerde çok şey olduğunu gördüm, zorlanıncaya kadar, sadece bir şeyler çalışana kadar hacklendiler. Bu, ara sınav geldiğinde ve öğrencilerden elle basit yöntemler yazmaları istendiğinde her zaman netleşti ... yapamadılar.

Evet otomatik tamamlama / intellisense bize (profesyonel geliştiriciler) çok fazla hız kazandırır. Tüm farklı yöntemleri ve parametre listelerini ezberlemek zorunda değiliz, ancak aynı zamanda bir yöntemin hangi parametreleri alacağına dair bir tahminde bulunma ihtimalini de tahmin edebiliriz.

Yeni başlayanlar yapmaz. IDE'lerinin bir yöntem listesi çıkarmasını bekleyecekler, belki ihtiyaç duydukları şeyi bulana kadar o listeye girecekler, ihtiyaç duydukları parametrelere bakacaklar ve girip giremeyeceklerini görecekler. ..ve sonunda, birlikte verebilecekleri bir şeyi hackleyecekler.

Ve dersin sonunda başarılı olduklarında, sığ bir zaferle programlama sınıflarından uzaklaşacaklardı, çoğu, bir daha asla bir başka CS dersi alamayacaklardı, b / c yaptıklarını veya neden yaptıklarını anlamadılar. o.


2
Sinik olacağım ve her zaman CS'de böyle bir öğrenci olduğunu söyleyeceğim. Intellisense’i öğrenmek istiyorlarsa, Google’daki veya kitaptaki her bir işlev adını aramak için zaman harcamak yerine, işleri daha hızlı yapmalarına yardımcı olur
user151019

4
@Mark, katılıyorum. Sanırım cevabımı tüm öğrencileri kapsayacak şekilde çok geniş buldum. Ancak şunu söyleyeceğim: IDE'yi kurduktan sonra ve kursun gelişim ortamına otomatik tamamlama ile ilk ara sınavdaki başarısızlık sayısını ne zaman anlayamadığını anlamayan öğrenci sayısını söyleyeceğim. Aldığım soruların sayısı çok azaldı, ancak b / c öğrencilerinin daha iyi anlamadıklarını öğrendim, ancak b / c anlama için zaman ayırmadan çalışan programlar alabilirlerdi.
11:59, Tyanna

students were asked to write simple methods by hand...they couldn't.Onlara öğretmeye çalıştığınız şeye gelir. Genel programlama kavramları veya dile özgü sözdizimi?
zencefilli kurabiye

9

IDE'ler ve genel olarak geliştirme ortamları ile ilgili sorun, sizin için çok sayıda "ilginç" işin yapıldığı ve çeşitli derecelerde saklı bulundukları şablonlu çözümlerin (dosya | yeni | proje) kullanımı kadar otomatik tamamlama gibi bir şey değildir. .

Genel olarak, kaputun altında neler olup bittiğini anlayan biri için bu yararlıdır - ama ihtiyaç duyduğunu öğrenen biri için daha azdır.

Ayrıca ağır bir IDE'yi ateşlemek için harcanan zamanla ilgili bir soru var.

Bu nedenle, daha hafif bir şey kullanmanın ve her kod satırını yazdığınız uygulamaları çalıştırmanın çok önemli olduğunu düşünüyorum - özellikle bir metin editörü ve bir derleyici kullanmak, ihtiyacınız olmayan önemli bir noktayı gösterir. Yazılım yazmak için IDE vb. Ama bu uzun süredir bir metin editörü kullanmak istediğim ve bu hata ayıklama açısından zorluklar olduğu anlamına gelmiyor - kesme noktaları yapabilmek ve kodda tek bir adım atmak isteyebilirsiniz. Bu ne olup bittiğini anlamak için kolaylaştıracak gibi.

Tabii ki, "canlı" bir komut satırına sahip olduğunuz Python gibi şeyleri göz önüne alarak bu konuyu daha da karıştırabiliriz ...

İyi bir soru, tek bir iyi cevap yok - öğrenmeyi ilerletmek ve bir metin editörü ve bir derleyici (veya bir komut satırı tercümanı) ile başlamak istemeniz dışında, daha fazla ilerlemeye başlamadan önce sözdizimi ve mantığın temellerine odaklanmanıza izin verir. daha güçlü bir geliştirme ortamı ile yapılması daha kolay olacak karmaşık şeyler.


2
Açıkçası, IDE'yi ateşlemek için harcanan zamanı ihmal edilebilir olarak görüyorum. IDE'mi kullanarak ateşlemek arasında onlarca saat geçiriyorum. Kesinlikle bu süre zarfında sadece kod tamamlamaya başlamak için harcadığınız zamana ek 30-45 saniyeden fazla zaman kazandırır.
EricBoersma

@Eric - bağlamınızda? Evet,% 100. Soru bağlamında yani yeni başlayanlar için? IDE'nin kısa oturumlar için daha sık açılıp kapanacağından şüpheleniyorum ve genellikle yoluna giren her şey bir cesaret kırıntısı.
Murph

ORM'ler hakkında bu şekilde hissediyorum, veritabanı yeni başlayanlar, onları iyi kullanmaları için veritabanı geliştirme hakkında yeterli bir şey anlamadıkları için kullanmalarına izin verilmemelidir. Ne yaptıklarını bilen insanlar için harika araçlar, acemiler için felaketler.
HLGEM

@HLGEM Bundan biraz daha karmaşık olduğunu söyleyecektim ... ama artık yeni başlayanlar ve veritabanları hakkında yorum yapmaya bile uzaktan yetkin olduğumu sanmıyorum) -: (Ve netlik için, çünkü hala yeni diller ve çerçeveler öğreniyorum IDE meselesi hakkında yorum yapabilirim sanırım - .NET ve Visual Studio ile erken konuların çok fazla yapılması ile ilgili özel anılarım var)
Murph

4

Zor yoldan öğrenmek genelde sizinle kalır.

Acemi olarak, lütfen IDE kullanmayın. Komut satırını kullanın, hatalarınızdan ders alın. Bu aynı zamanda derleyici ve bağlayıcı seçeneklerini daha yakından anlamanıza yardımcı olur.

Peki ne zaman IDE kullanıyorsunuz? Çok büyük bir şey tasarlarken ya da bir sürü sınıf, yöntem ve değişken içeren büyük bir kod temeli üzerinde çalışırken.


7
Derleyicinin ne olduğunu henüz bilmiyorsanız derleyici ve bağlayıcı seçeneklerini anlamadaki nokta nedir? Normalde bir karmaşa içinde biter. On yıldan fazla bir zaman önce, başlangıçta çok derin ve çok düşük seviyeli bir pozlama ile yaratılan karmaşamı temizlemek için harcadım (MACRO32, Fortran, DCL ...).
SK-mantık

2
Kabul. Örneğin Python veya C # öğrenmeden önce montajı öğrenmek mantıklı değil - sadece sizi daha fazla sinirlendirir. Genel olarak, yüksek seviye kavramları öğrenir ve sonra düşük seviye konseptlerine veya diğer nitpicky şeylerine filtre uygularsınız.
DMan

4

IDE'lerin sık sık tuhaflıklarından şikayet etsem bile üretkenliğe bir nimet olduğunu söyleyen ilk kişi olurdum. Ancak, BASIC, C, C ++, Java, Python, Perl, PHP ve diğer bazı dilleri, bir metin vurgulayıcı editörden ve dil için derleyici / tercümandan başka bir şey olmadan öğrendim. Java'yı Not Defteri'nde öğrendim!

Bir IDE öğrenmek, "sihir" anlamına gelir - "işe yaradığı; nasıl olduğu önemli değil" fikri. Soyutlama iyidir; sihir kötüdür. Bir programcı bir projede olup biten her şeyi bilmeli ya da öğrenebilmelidir. Projeyi kontrol etmemek kaydıyla defter tutmaya dikkat etmek için iyi bir IDE tasarlanmıştır. Düzgün kullanıldığında harika bir araçtır. Fakat bir CNC router kullanarak hangi usta işe başlar?

Öğrendiğim yolun (her şeyi yazmak ve bir derleyici oluşturmak için derleyiciyi iyi bilmek zorunda), en sonunda IDE'leri kullanmaya başladığımda bana ölçülemez bir şekilde yardımcı olduğunu düşünüyorum. Örneğin, bir Java projesi Eclipse projesinde küçük bir klasör değil, yollar, yapılandırma ve dağıtım için bazı XML dosyaları içeren bir paket yapısındaki sınıfların bir koleksiyonudur. IDE'siz büyük bir kurumsal uygulama oluşturmak istemem ama küçük uygulamalar yapabilirim. Bu, büyük olanların yapısını anlamayı kolaylaştırır ve yapı içerisinde belirli bir davranış istediğimde, javac'ın nasıl çalıştığını biliyorum, bu yüzden bu sihirli birleşimi bulmaya çalışmak yerine gerçek derleme isteminde değişiklik yapabilirim. Yapı yapılandırmasında var. Ayrıca hata mesajlarını ve onları nasıl bulacağımı ve nasıl düzeltebileceğimi daha iyi anlayabildiğime inanıyorum.

IDE kullanmayı öğretmem. Başlangıçtaki projelerin karmaşıklığı yönetme argümanlarının tartışmasız olduğu kadar küçük olduğunu düşünüyorum. Örneğin, Java öğretiyorsanız, tüm sınıflarınızı aynı klasöre yerleştirebilirsiniz ve javac *.java. Bunun için bir IDE'ye ihtiyacınız yok! Bu, projelerin kavram kanıtlarından daha küçük, biraz daha küçük olmasını savunuyor. Genel masrafı en aza indirin ve öğrencilerin ihtiyaç duyduğu kavramı öğretmeye odaklanın. Bir IDE'nin faydalı olacağı daha büyük projeler daha gelişmiş SE sınıflarına veya özel projelere aittir.

Sınıflar ve API araştırması bulmakta yardım gelince, yine de projeler küçük tutulursa bunun tartışmalı olduğuna inanıyorum. Yine Java'da, javadoc'un okunması çok kolaydır. Hiç kimse zaten orada kafasında bütün API tutabilir, ve ther edecek bir IDE yararlanmadan bir API araştırma gereken bir zaman. Mesela, diğer dillerde veya IDE'yi açamayacağınız bir sunucuya yükseliyorsanız. Belgelerin nasıl bulunacağını öğretin, 'basın' ve bir nesnenin yöntemlerinin ne olduğunu görebilirsiniz. "

Herhangi bir programcı bir IDE öğrenebilir, ancak bir IDE bilmek sizi iyi bir programcı yapmaz. Kara mizah bir yana, "sihir" bir programcının kullanması için asla iyi bir kelime değildir.


Vurgulama metinle öğrendim ... şanslı serseri. Bazılarımızın sadece bir anahtar kelime listesi ve bir istemi var.
Matthew White

@Matthew: Java Not Defteri ile başladım ... :)
Michael K

LOL ... ROM'da yerleşik olan Applesoft BASIC ile bir Apple IIc'de başladım. : o)
Matthew Whited

Vay, QBasic'e sahip olduğum için kendimi şanslı hissediyorum!
Michael K

4

Belki de bir acemi ilk önce daha kolay problemler üzerinde çalışmalıdır. Ve hayır, bu problemler görevi tamamlamak için bir IDE kullanımını gerektirmemeli veya teşvik etmemelidir. Temel kavramları anlayarak uzun vadede kazanılacak daha çok şey var. Araçlar sonra gelmeli.

Hiçbir ağaç işleme ustası, ilk önce hem odun türünün hem de el düzleminin inceliklerini anlamadan, yüksek beygir gücüne sahip bir yüzey planlayıcısı kullanmaya doğrudan atlayamaz.

(Not: otomatik tamamlama ve intellisense iki derece farklı şeylerdir).

Zekâ, kendi başına fena değil. Yalnızca, temeldeki dokümantasyonu veya uygulamayı okumadan veya anlamadan işlevsellik tahmin etmek için bir koltuk değneği kullanıldığında kötüdür.

Yan nokta: Dilin sizin için kodlaması için bir IDE gerekiyorsa, dil, çözmeye çalıştığınız sorunlar için muhtemelen yanlış bir soyutlama düzeyindedir.


2
Yan nokta için +1. Ben çoklu dil öğrenme hayranıyım, yani bir dilin bir göreve uygun olmadığı zamanları bilirsiniz.
Michael K

3

Çocukken büyüdüğümüzde, konuşmadan önce İngilizcenin karmaşık kurallarını anlamamız gerektiği söylenmiyor. Edatların, bağlaçların doğru kullanımını tam olarak anlamamız ve cümle parçalarından kaçınmamız gerektiği söylenmez. Yaparak öğreniriz. Başarı ve başarısızlıkla öğreniyoruz.

Otomatik tamamlama özelliğine sahip bir IDE, çok sayıda kütüphanenin sayısız işlevini hatırlamakta zorlanmamakla birlikte programların oluşturulmasını kolaylaştırarak yeni programcının güven kazanmasına yardımcı olur.

Biri gerçekten çok kolay onlar için, o zaman ileri sürülebilir yapar çünkü otomatik tamamlama yeni programcı acıyor görüşünü tahmin etmek olsaydı, bu referans kitapları kullanılmamalıdır ederken , programlama, çünkü önce belleğe taahhüt edilmelidir içinde kavramlar, ezberlememeleri onları yavaşlatır ve ilk önce kavramları tam olarak anlamalarına izin vermez.

Otomatik tamamlama aracıdır, programlayıcıyı daha üretken kılmak için kullanılır. Tıpkı ilk defa bir dil öğrenirken olduğu gibi, öğrendiklerimizle kendimize güven ve başarı seviyesi kazandıktan sonra, bilgimizi geliştirmek için çalışırız.


IDE kullanmak için mükemmel bir argüman bu. Bu CS'de bozuluyor gibi görünüyor, çünkü öyle görünüyor ki (bana göre) birçoğu sadece 'konuşmayı öğrenmek' ötesine geçmiyor. Bu, bir IDE'nin gizlediği şeyleri açıkça öğretmek için müfredatın yeniden yapılandırılmasını gerektirir.
Michael K

2

Başlangıçta, işe yarayan bir şey inşa etmek yeterince zordur, bu nedenle noobie markasına daha iyi yardımcı olan herhangi bir şey. Yeni bir programcının, diziye bağlı listelerin veya bağlantılı listelerin eldeki sorunla daha iyi eşleşip eşleşmediğini düşünmelerini sağlamak için daha kıdemli birine ihtiyacı olacak. Her birinin güçlü ve zayıf yönleri vardır.

Aceminin bir IDE olup olmadığı veya çevrimiçi API belgelerine göz atıyorlarsa, oluşturdukları kod arasında gerçek bir fark olmayacak. Sözdizimi hatalarını yazmanın acısıyla uğraşmak bir öğrenme deneyimi olsa da, en başta bunun için endişelenmeyi öğrenecek çok şey var.

İpliği ağ olmadan doğrudan yüksek kabloya geçerek öğrenemezsiniz. Yerden bir ip çekerek başlıyorsunuz. Bir çoğumuzun bir IDE ile çalıştığını ve bir çeşit derleme betiği (Visual Studio'nun derleme betiği IDE tarafından yaratıldı ama orada) olduğunu söylemeye teşebbüs ediyorum. Çoğumuz sınıflarımızı bir metin editörüyle el ile oluşturmaz, sonra da derleyiciyi el ile çağırırız. Neden bunu öğrenecek çok fazla şeyi olan bir acemiye empoze etmeliyiz?


2

Bir geliştirici öğrenirken bile, yukarıda belirtilen araçların acısına maruz kalmaya hiç gerek duymuyorum. Araçlar olmadan kodu yazmak için harcayacağınız zaman ve çabanın, birim testleri yazmayı ve hata ayıklamayı öğrenmenin daha iyi harcanacağına inanıyorum. Bir kullanıcı kodunu nasıl test edeceğini ve çalıştığı sırada adım attığını öğrendiğinde, aslında ne yaptığını çokça öğreneceklerdir.

Ayrıca, IDE kullanmak gibi değil kod yazıyor demektir. Bir beceriksiz veya yeni başlayan bir geliştirici, IDE kullanıp kullanmadıklarını çalışmayan bir kod yazacak.

IDE'yi kodlama sırasında başka bir soyutlama seviyesi olarak görüyorum. Java yazıyorsam, genel olarak ürettiği bayt kodunun nasıl çalıştığını anlamam gerekmez. Eğer yeni bir programcı Java kütüphanelerini kullanıyorsa, IDE kendileri için otomatik olarak ekleyebiliyorsa hangi pakette olduklarını bilmeleri gerekmez. Her iki durumda da, bir hataya neden olan bir hata veya sorun ortaya çıkabiliyorsa (örn. Sınıf adı çatışması), geliştiricinin manuel olarak bakma zamanı gelmiştir.


0

Pek çok başka iyi cevap, bu yüzden bunun tam bir cevap olduğunu düşünmeyin, ancak yeni başlayanlar ve deneyimli kullanıcılar için ellerinde hangi fonksiyonların bulunduğunun tam bir resmini görmeleri iyidir.

Delphi'de ctrl-j'ye basabilirim ve sözdizimsel olarak çalışmayı bekleyebileceğim her şeyin bir listesini göreceğim.

Mutlaka kabul etmiyorum, ancak programcıların kullandıkları nesnelerin özel sınıf üyelerine bile bakmaması gerektiği konusunda tartışmalar okudum ve bu şekilde otomatik tamamlama her kullanıcıya anında API başvurusu veriyor.

Daha yeni IDE'ler, kullanıcıların ve dil geliştiricilerin meta-verilerini kendi akıllılarına koymalarına izin verir, bu da kaynağı okumadan (zaten yapmaları gerekmeyen bir şeydir) fonksiyonların ne yaptığını okuma ve anlama yeteneğini geliştirir.

Belki de yeni başlayanlar için uyguladıkları her şeyi gerçekten okumak ve anlamak en iyisidir. Ancak, belki de yeni başlayanlara, neden dahil ettiklerini belgelemeksizin istedikleri ad alanlarını veya birimleri dahil etmeleri veya ithal etmelerine izin verilip verilmeyeceği daha iyi bir soru olabilir.


0

Tecrübelerime göre, OO'nun temellerini öğrenmek için bir IDE kullanmak harika çünkü yeni geliştiricinin program mantığına odaklanmasına izin verirken kod yazmanın karmaşıklığını gizliyor. Ancak, programlamayı öğrendikten ve temel OO ilkelerini öğrendikten hemen sonra, bir kurs kursunda kaynak dosyalarda birbirleriyle etkileşime girmeleri gereken şeyleri (ithalat ifadelerini unutamayan, doğru sınıfları vb. terminal sadece Unix makineleri kullanmak zorunda kaldık.

Bu okulda mümkündür, çünkü birileri sizi lo-fi araçlarını kullanmaya zorlayacak 'yetkiye' sahiptir. Bir iş veya şirket ortamında elde etmek çok daha zor olurdu .


0

Bu konuda iki düşüncem var. Bunlardan ilki, gerçekten neler olduğunu bilmeniz gerektiğine inandığınız bir şeyi gerçekten öğrenmek. Ve IntelliSense'in ne kadar iyi kazandığı ile, bir kısmını yeni bir geliştiriciye gizleyebilir. Mesela, üniversitedeki bir web mühendisliği dersim vardı; burada son uygulamalarımızı geliştirmek için kendi web çerçevelerimizi kurduk. Hemen hemen her web çerçevesine adapte olabilme yeteneğiyle o sınıftan çıktım çünkü başlangıçta her şeyin altında olanı anladım. Bir IDE kullanmak o seviyeye göre değil ama konu hala orada.

Ancak, bir IDE kullanmak, API'leri yeni geliştiricilere açmak gibi şeyler de yapabilir. Ciddi bir şekilde kodlamaya başladığımda, kullandığım IDE bana inanılmaz derecede yardımcı oluyor; çünkü bir nesneye yazı yazmak, ne tür yöntemler olduğunu görmek için otomatik tamamlamayı kullanmak ve mevcut dokümanları kullanarak onları araştırmak gibi. Bunların hepsi IDE içinde yapıldı ve harika bir öğrenme aracıydı.

Yani, evet, ne olduğunu anlamak için zaman ayırdığınız sürece birini kullanmanın uygun olduğuna inanıyorum. Sadece neden kullanmak zorunda kaldığınızı anlamadan bir nesneyi kullanmak gerçekten kötüdür, ancak yeni bir geliştirici bir nesneyi kullanabileceğinizi görürse ve neden yanlış bir şey görmediğimi anlar.


0

Öğrenme pratik alır. Programlama, ne yapabileceğinize ya da işlerin nasıl yürüdüğüne dair hiçbir ipucunuz olmadığı zaman çok sinir bozucu bir görev olabilir.

Tek bir kod satırı yazmadan programlama ilkeleri hakkında birçok kitap okumak pratik değildir; biri bu şekilde hiçbir şey öğrenmez.

Intellisense, yeni programcılara programlamaya devam etmeleri, pratik yapmaya devam etmeleri ve böylece öğrenmeleri için ihtiyaç duydukları yardımı sağlamada çok yardımcıdır.

Daha önce de belirtildiği gibi, belirli API'leri öğrenmek, programlama programlama prensipleriyle aynı değildir. Kuşkusuz gerçekleşecek olan şey, yeni programcıların (Intellisense'e bakılmaksızın) hata yapmaları ve bu hataları nasıl düzelteceklerini seçmeleri, onları iyi programcılar veya fakirler olmalarına yol açacak olan şeydir.

Birisine nasıl programlanacağını öğretmeye çalışıyorsanız, Intellisense'i kullanmalarını ve takılmaya başlayana kadar oynamalarını sağlardım. O zaman onlara sıkışıp kalma nedenlerini öğreterek bir vakıf kurmaya çalışırdım.


0

IMO, IDE'ler sizi daha üretken yapacak. Ancak yeni başlayanlar için genellikle IDE ile programlamaya başlamak iyi bir fikir değildir. Notepad ++, notepad vb. Gibi metin editörleri yeterli olacaktır.

Ayrıca, programlamayı üst düzey bir dille öğrenmeye başlamak iyi bir fikir olarak kabul edilmez. Assembly dili ile başlamanızı öneririm. Bu size sabrın yanı sıra temelleri de öğretecektir.

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.