1. Uygulamaya dayalı öğrenme

Uygulamaya dayalı Java öğrenimi

CodeGym'i tüm kalpleriyle seven insanlar var ve ondan tüm kalpleriyle nefret eden insanlar var. Ancak CodeGym'in en acımasız eleştirmeni bile, onun etkileyici derecede çok sayıda görevi olduğu konusunda hemen hemfikir olacaktır. Ve bu kadar çok olmasının nedeni, tüm CodeGym eğitimlerinin temelinde pratik olmasıdır .

Programlama bir beceridir. Kimse "Ben programlamayı biliyorum" demez. Her programcı "Ben programlayabilirim" der. Yüzmek veya satranç oynamak gibi uygulamalı bir beceridir. Ve beceriyi ancak sürekli pratik yaparak geliştirebilirsin.

Bu nedenle CodeGym kursunun tamamı, giderek zorlaşan bir görevler dizisidir. Çok kolay, ilkel görevlerle başlayıp en zor ve ilginç olanlarla bitiriyorsunuz. Zorluk her seviyede biraz artar. Bu tam olarak sizi programcı olma hedefinize götürecek yoldur.


2. Görev türleri

CodeGym'de bir sürü farklı türde görev sizi bekliyor. Ana olanları listeleyelim:

Program yazdığınız görevler

Bunlar kurstaki en önemli görevlerdir. Zorluk seviyeleri büyük ölçüde değişir: en basit görevlerden, üzerinde çokça düşünmeniz gerekenlere kadar.

Bu görevlerin amacı, belirtilen koşulları ve gereksinimleri karşılayan bir program yazmaktır. Çoğu görev bu kategoriye girer. CodeGym öğrencilerinin rahatlığı için bu görevleri zorluk seviyelerine göre işaretliyoruz: KOLAY , ORTA , ZOR ve EPİK .

EPIC görevleri genellikle henüz kilidini açmadığınız derslerde gelecekteki öğrenme materyallerine dayanır. Kursun kendileri için çok kolay olduğunu düşünen CodeGym öğrencileri arasında popülerdirler. Diğerleri, bu görevleri atlayabilir ve ilgili teoriye zaten aşina olduklarında daha sonra geri dönebilirler.

Projeler

Sıradan görevlerin dezavantajı, küçük olmalarıdır. Dedikleri gibi, bitti ve unutuldu. Bu nedenle, onları oldukça ilgi çekici hale getirmek nadiren mümkündür. Ancak büyük bir programı test etmek zordur: onu uygulamanın çok fazla yolu vardır.

Bu nedenle CodeGym, 5-35 sıradan alt göreve bölünmüş büyük görevler olan proje görevlerini tanıttı . Tüm alt görevleri sırayla gerçekleştirirsiniz ve sonunda büyük bir program elde edersiniz.

Seviye 20'den sonraki her seviyenin sonunda, yirmi alt göreve bölünmüş bir büyük proje görevi vardır. Yine proje olan 6 oyun görevi daha var. Ve bir çevrimiçi staja kabul edilmek için bir proje görevi var. Kursun tamamında toplam 27 proje görevi vardır.

Sınavlar

Uzun bir süre CodeGym'de test veya kısa sınav yoktu. CodeGym'in yaratıcısı, başarılı testlerin insanlarda "bilgi yanılsaması" yarattığı görüşündedir. İnsanlar nasıl programlanacaklarını gerçekten bilmiyorlar, ancak testleri geçtiklerinden tamamen aksi yönde ikna olmuş durumdalar. Bu tür insanlar, "zaten her şeyi bildikleri" için öğrenmeyi bırakırlar.

Daha sonra, CodeGym öğrencilerinin öğrenmelerindeki boşlukları kolayca tespit etmelerini sağlamak için sınavlar eklendi. Programcıların mesleklerinde günlük olarak çalıştıkları şeylerin nüanslarını bilmeleri yararlıdır.


3. Görev durumları

CodeGym'deki her görevin özel bir durumu vardır. Görevleri çözdükçe durum değişebilir.

Her CodeGym görevi bir dersle ilişkilendirilir. Başlangıçta, herhangi bir göreve erişiminiz olmayacak, bu da onları çözemeyeceğiniz anlamına gelir.

Bir sonraki dersi açtığınızda, dersteki tüm görevler çözülebilir hale gelir, yani durumları "Kullanılabilir" olarak değişir.

Bir görevi doğrulama için en az bir kez gönderdiyseniz, durumu "Kullanılabilir"den "Devam Ediyor"a değişir.

Son olarak, tüm gereksinimleri başarıyla karşıladığınızda ve doğrulayıcı gönderiminizi kabul ettiğinde, görevin durumu "Tamamlandı" olarak değişir.

Premium Mentor aboneliğine sahip kullanıcıların, görev için başka çözümler yazmaya çalışmak için 3 günleri daha vardır. Bu ek süre dolduktan sonra görev "Kapalı" durumuna geçer ve bu durum artık değişmez.


4. Gereksinimler

CodeGym'in ilk yıllarında, her görevi doğruladığınızda basit bir sonuç alıyordunuz: evet veya hayır. Program tüm testleri ya geçti ya da geçemedi. Süper basit, ama süper yardımcı değil.

İnsanlar öğrenirken neyi yanlış yaptıklarını ve doğru yapmaya nasıl başlayacaklarını anlamaları çok önemlidir. Buna göre, sunucu çözümünüzü kabul etmezse, o zaman bunun nesi var?

Bu sorunun yanıtını almak için, çözümünüzü derinlemesine inceleyecek, çözümleyecek ve size çözümde neyin yanlış olduğunu söyleyecek birine ihtiyacınız var. Bu uzun zaman alacak ve pahalıya mal olacaktı. Anında görev doğrulamanın güzelliği, sabah 2'de çalışmak için oturabilmeniz ve her zaman olduğu gibi çalışabilmesidir.

Bu yüzden CodeGym'deki tüm görevleri yeniden yazdık. Artık her görevin yalnızca görev koşulları değil, aynı zamanda koşulları detaylandıran 5-10 gereksinimlik bir listesi de var. En önemlisi, her gereksinim ayrı ayrı doğrulanır.

Bu, bugün bir görevi doğrulama için gönderdiğinizde, genişletilmiş bir yanıt alacağınız anlamına gelir: her görev gereksiniminin yanında, programınızın bu gereksinimi karşılayıp karşılamadığını gösteren özel bir simge göreceksiniz. Örnek:

Gereksinimler

Bu yaklaşım, birkaç sınıf veya yöntem yazmanızı gerektiren görevler üzerinde çalışırken hayatınızı büyük ölçüde basitleştirir. Hangi yöntemleri veya sınıfları doğru yazdığınızı ve hangilerini yazmadığınızı her zaman görebileceksiniz.


5. Öneriler

Görevleri bir şekilde daha da iyi hale getirmek mümkün mü? Her kontrolden sonra programınızda tam olarak neyin yanlış olduğu size söylense ve nasıl düzelteceğinize dair ipuçları alsanız harika olmaz mıydı? Evet, bu harika olurdu! Öyleyse tahmin et? CodeGym'de tam da bunu yapıyoruz 🙂

Her görev gereksinimini kontrol ederek onlarca yaygın hatayı yakalarız. Programınız, doğrulayıcının bildiği bir hata yaparsa, o zaman bir tavsiyede bulunur - çözümünüzü tüm gereksinimleri karşılayacak şekilde nasıl düzeltebileceğinize dair bir ipucu.

Bunu düşün. CodeGym'de şu anda yaklaşık 10.000 gereksinimle birlikte kabaca 1200 görev var. Ve her gereksinimle ilişkili birkaç öneri vardır. Bazı gereksinimlerin onlarcası vardır. CodeGym'in doğrulayıcısı, kullanıcı çözümleri için 50.000'den fazla öneride bulunmaya hazır.

Ayrıca, tüm bunlar çözümünüz doğrulanırken gerçekleşir ve bu çoğu durumda bir saniyeden kısa sürer. Bunu kimse yapamazdı. Bu gerçek bir sanal akıl hocası.

öneriler

6. Topluluk

CodeGym, tüm öğrenme sürecinin %80'inden fazlasını oluşturan çok sayıda uygulamaya odaklanır . Öğrenmeyi büyük, ilgi çekici bir göreve (aslında bir dizi göreve) dönüştürdük.

Ancak herkes farklıdır: bazı insanlar hızlı öğrenirken bazıları daha yavaş öğrenir. Bazı insanlar yeni materyali kolay bulurken, diğerleri daha zor bulur. Ama bizim işimiz her bir öğrencimizin bitiş çizgisine varmasıdır. En azından bunun için çabalıyoruz.

Bu dünyada programcılar, çeşitli dillerde kod yazan ve boş zamanlarında girişimler yaratan birkaç milyon insandan ibaret değildir. Bilgilerini başkalarıyla sürekli paylaşan, soruları yanıtlamaya ve karmaşık konuları anlamanıza yardımcı olmaya hazır küresel bir ağ oluştururlar.

Dünyanın en büyük geliştirici topluluğu olan StackOverflow web sitesi , programcıların birbirlerinden öğrenme ihtiyacından doğdu. Konsepti basittir: Bir soru sorarsınız ve dünyadaki herhangi bir programcı buna cevap verebilir. Uygun, değil mi? 🙂

CodeGym'de öğrenciler arasında bilgi alışverişinin son derece değerli olduğuna inanıyoruz. Programcılar başkalarına yardım ettikçe kendileri de büyürler . Ve bir şeyi kendi başınıza anlamanın başka birine açıklamaktan daha iyi bir yolu yoktur. Bu nedenle web sitemizde tüm öğrencilerimize bilgilerini paylaşma ve birbirlerinin öğrenmesine yardımcı olma fırsatı vermek için tasarlanmış özel bölümler oluşturduk.

Peki en son göreve takılırsanız ne yaparsınız? İnternette hazır bir çözüm aramak kötü bir fikirdir. Elbette, başka birinin çözümünü kopyalarsanız veya bizim doğru çözümümüzü kullanırsanız, görev için kredi alacaksınız. Ancak bilgi açığınızı kapatamayacaksınız ve bu kesinlikle gelecekte sizi kıçınıza sokmak için geri dönecektir.


7. Görevlerle ilgili sorular

Gereksinimler , tavsiyeler ve sanal akıl hocası çok havalı. Peki ya doğrulayıcı yine de çözümünüzü kabul etmezse ve sorunun ne olduğundan emin değilseniz?

Bu durumda bile, hala bir çıkış yolu var. Yardım bölümüyle tanışın . Web sitesinin bu bölümünde, CodeGym öğrencileri görevler hakkında sorular sorabilir, birbirlerinin çözümlerini keşfedebilir ve ayrıca tavsiye ve ipuçları verebilir. Tam çözümlerin yayınlanmasına izin verilmez!

Kulağa çok basit ve basit geliyor, ama aslında oldukça karmaşık.

İlk olarak, her sorunun ilişkili bir görevi olabilir . Bu, belirli bir görevle ilgili sorularla ilgileniyorsanız, tüm soruları gözden geçirmenin bir anlamı olmadığı anlamına gelir. Yalnızca sizi ilgilendiren görevle ilgili soruları kolayca görmek için her zaman bir filtre kullanabilirsiniz. Arama çubuğuna görev adını girmeniz yeterlidir:

Görevlerle ilgili sorular

İkincisi, bir görevi çözerken "Topluluk yardımı" düğmesine tıklarsanız, hemen yalnızca üzerinde çalıştığınız görevle ilgili soruları göreceğiniz Yardım bölümüne yönlendirilirsiniz. Çözümünüz görev doğrulamasında başarısız olursa sorular yararlı bir şekilde sıralanır: En çok sorulan sorular, çözümünüzün başarısız olmasına neden olan karşılanmamış gereksinimlerle ilgili olacaktır.

Yardım düğmesi

Üçüncüsü, IntelliJ IDEA eklentisi benzer işlevler sunar. "Yardım" düğmesine tıklayabilir veya Ctrl+Alt+W tuş bileşimine basabilirsiniz; bu, tarayıcınızdaki Yardım bölümünü hemen açar. Ve elbette, filtre yalnızca IntelliJ IDEA'da çözdüğünüz görevle ilgili soruları gösterecektir .

IntelliJ IDEA yardımı

8. Soru oluşturma

Yardım bölümünde hatanızın iyi bir analizini bulamazsanız, her zaman kendi sorunuzu oluşturabilirsiniz. Bunu yapmak oldukça kolaydır — "Soru sor" düğmesini tıklamanız ve gerekli alanları doldurmanız yeterlidir:

soru oluşturma

StackOverflow, Code Ranch, vb. gibi diğer birçok hizmetin aksine, CodeGym tüm önemli bilgileri sorunun başlığına sıkıştırmanızı gerektirmez. Sorunuzu istediğiniz gibi yazın.

Bu arada, kodunuzu WebIDE veya IntelliJ IDEA'dan kopyalayıp sorunuza eklemeniz gerekmez . Bir görevle ilgili bir soru oluşturduğunuzda, çözümünüzün kodu, çeşitli görev gereksinimlerinin durumlarıyla birlikte otomatik olarak buna eklenir , yani çözümünüzün şu anda hangi gereksinimleri karşılayıp karşılamadığı.

Soru oluşturma 2

Bu, diğer CodeGym öğrencilerinin soruyu soran kişinin çözümüyle ilgili tüm ilgili bilgileri hemen görmesi anlamına gelir ve bu da iyi tavsiye vermeyi çok daha kolaylaştırır.


9. Çözüm kodu

Birçok sitede, kodla ilgili bir soru oluştururken, soruya program dosyalarını içeren bir arşiv eklemeniz veya tüm bu dosyaları sorunun metnine eklemeniz gerekir. Sonuç, insanların içine girmek istemedikleri veya giremedikleri büyük bir karmaşadır.

Hızlı ve verimli bir şekilde soru sormak başlı başına bir sanattır. Normal web sitelerinde ya sorunuzu formüle etmek için yarım saat harcamanız gerekecek ya da kimsenin size cevap vermeyeceği gerçeğini kabul edeceksiniz. Bir görevle ilgili iyi bir soru mutlaka aşağıdaki bilgileri içermelidir:

  • Soruyu soran kişinin çözdüğü göreve bağlantı
  • Görev koşulları, başkalarının onları herhangi bir yerde avlamasına gerek kalmamasını sağlar
  • Çözüm kodu — buna birçok dosya dahil olabilir
  • Her görev gereksiniminin durumu, yani şu anda neyin işe yarayıp neyin yaramadığı.
  • Sorunun metni: Bu genellikle oldukça açıktır — benim çözümüm işe yaramıyor ve neden olduğundan emin değilim.

CodeGym, bu bilgileri WebIDE pencere aracına çok benzeyen özel bir pencere öğesi kullanarak görüntüler . Sonuçta, zaten tüm bu bilgileri görüntülemek için tasarlanmıştır. Belki de sorunun kendisi dışında.

çözüm kodu

Aslında, diğer kullanıcıların çözümlerini incelemenizi kolaylaştırmak için özel bir pencere öğesi yazdık . Ve diğer kullanıcıların sorduğunuz sorularda çözümlerinizi incelemesini kolay ve keyifli hale getirmek için.