Stepik'ten sevgilerle: Hyperskill eğitim platformu

Sizlere neden tesisat tamiratlarını tez yazmaktan daha sık yaptığımızdan, programlama öğretimine yönelik farklı yaklaşımlardan ve bunlardan birini yeni ürünümüz Hyperskill'de nasıl uygulamaya çalıştığımızdan bahsetmek istiyorum.

Uzun tanıtımlardan hoşlanmıyorsanız doğrudan programlamayla ilgili paragrafa geçin. Ama daha az eğlenceli olacak.

Stepik'ten sevgilerle: Hyperskill eğitim platformu

Lirik geri çekilme

Belli bir genç bayan Masha'yı hayal edelim. Bugün Maşa huzur içinde biraz meyve yıkayıp film izleyecekti ama şansı yaver gitti: Aniden mutfak lavabosunun tıkalı olduğunu fark etti. Bununla ne yapılacağı henüz belli değil. Bu konuyu süresiz olarak erteleyebilirsiniz, ancak artık boş zaman var, bu yüzden Masha sorunla hemen ilgilenmeye karar veriyor. Sağduyu iki seçeneği önerir: a) bir tesisatçıyı arayın b) sorunu kendiniz halledin. Genç bayan ikinci seçeneği tercih ediyor ve YouTube'daki talimatları incelemeye başlıyor. Vasya_the_plumber kullanıcısının tavsiyesine uyan Masha, lavabonun altına bakar ve birkaç parçadan oluşan, kıvrılan plastik bir boru görür. Kız lavabonun dibindeki tek parçayı dikkatlice söküyor ama hiçbir şey bulamıyor. Borunun alt parçasının bilinmeyen bir maddeyle sıkı bir şekilde tıkandığı ortaya çıkıyor ve masanın üzerinde bulunan bir çatal bile tıkanmayla baş edemiyor. İnternetten uzmanlar hayal kırıklığı yaratan tahminler veriyor: parçanın değiştirilmesi gerekecek. Haritada Masha en yakın mağazayı bulur, talihsiz pipo parçasını yanına alır ve aynısını sadece yenisini satın alır. Satıcının tavsiyesi üzerine Masha, önleme için yeni bir süzgeç de alır. Görev tamamlandı: Lavabo yeniden olması gerektiği gibi çalışıyor ve bu arada ana karakteri şunları öğrendi:

  • Lavabonun altındaki boruları kendiniz söküp sıkabilirsiniz;
  • En yakın sıhhi tesisat mağazası Mashina’nın dairesine bir buçuk kilometre uzaklıkta.

Büyük olasılıkla Masha, ne kadar yeni öğrendiğini ve öğrendiğini bile fark etmedi, çünkü gelecekte kendi rahatlığı konusunda endişeliydi ve aynı zamanda bir film izleyip elmasını yıkıyordu. Bir dahaki sefere benzer bir sorun ortaya çıktığında, kız bunu birçok kez daha hızlı çözecektir. Aslında Maşa dünyayı sadece olağan durumuna döndürmekle kalmadı; o çalıştı tümevarımsal olarakyani özel durumlarda ve uygulamaya yönelikyani, bir şeyleri ayrıntılı olarak ve önceden incelemek yerine yaparak.

Her şey farklı sonuçlanabilirdi. Diyelim ki Masha akşam bir sandalyede oturuyor ve aniden lavabonun tıkanmasına zihinsel ve fiziksel olarak hazırlıksız olduğunu fark ediyor. Hemen bir tesisatçı akademisine kaydolur, lavabo türlerini, boruları ve olası bağlantıları, sıhhi tesisat sorunlarının sınıflandırılmasını ve bunlara olası çözümleri inceler. Masha geceleri uyumuyor, terimleri ve isimleri ezberliyor. Belki de teorik boru bilimi üzerine kauçuk contaları tartıştığı bir doktora tezi bile yazmaktadır. Sonunda sertifikayı alan Masha, artık lavabodaki en ufak sorunun bile bir parmak şıklatmasıyla çözüleceğine dair tam bir güvenle mutfağa gururla bakıyor. Bu senaryoda kız okudu tümdengelimsel olarakgenelden özele doğru ilerledik ve daha çok odaklandık. teori.

Peki hangi yaklaşım en iyisidir? Lavabo ve tıkanma durumunda - ilki ve şu nedenlerden dolayı:

  1. Yalnızca çalışan bir lavabo önemliyse, yalnızca bu alanı neyin ilgilendirdiğini bilmek yeterlidir. Maşa bilgi eksikliğini anladığında kesinlikle daha fazlasını öğrenmenin bir yolunu bulacaktır.
  2. Alışkanlık gelişmediği için ansiklopedik bilgi gerçek bir durumda etkinleştirilemeyebilir. Eylemlerin sırasını öğrenmek için, onlar hakkında okumak değil, bunları gerçekleştirmek mantıklıdır.

Zavallı Masha'yı yalnız bırakalım ve öğrenme sürecine bu şekilde geçelim.

Programlama: öğrenmek mi yoksa yapmak mı?

Bilmediğimiz bir alanda gelişmek ve uzmanlaşmak için öncelikle üniversiteye gitmemiz ya da en azından kurslara kaydolmamız gerektiğini düşünmeye alışkınız. Bize söylediklerini düzenli olarak dinliyor ve görevleri yerine getiriyoruz. Gıpta ile bakılan diploma veya sertifikayı elimize aldığımızda anında kayboluruz çünkü neden bu kadar çok bilgiye ihtiyacımız olduğunu ve bunu özellikle nasıl uygulayacağımızı hala anlamıyoruz. Bir sonraki planınız bilimsel makaleler yazmak ve onlarla birlikte konferanslara seyahat etmekse bu hiç sorun değil. Aksi takdirde, beceriler için çabalamaya, yani belirli şeyleri tekrar yapıp yapmaya, denemeye ve hata yapmaya değer, böylece ne yapmamanın en iyi olduğunu uzun süre hatırlamak gerekir.

“Sert elin” veya “elmas gözün” geniş bakış açısıyla el ele gittiği alanlardan biri programlamadır. Deneyimli geliştiricilerle konuşursanız, bir kişinin küçük yaşlardan itibaren matematik/fizik/öğretmenlik eğitimi aldığı ve daha sonra yorulup arka uca geçtiği cesur hikayeler duyacaksınız. Yüksek öğrenimi olmayan programcılar da olacak! Öncelikle bir geliştiricide değerli olan şey sertifika veya diploma değil, yazılı programların, scriptlerin ve web sitelerinin miktarı ve kalitesidir.

"Ama durun!" diye itiraz edersiniz, "Kulağa çok hoş geliyor - alın ve yapın!" Daha önce programlamamışsam kendime kolayca bir program yazamam! Nereye yazacağımı, temel olarak bir programlama dilinde bir derleyiciyle nasıl konuşacağımı anlamak benim için önemli. Google'da bir tesisatçının telefon numarasını bulmaya benzemiyor."

Bunda da acı bir gerçek var. Alışılmadık bir durum diğerine yol açar, o da üçüncüsüne yol açar ve bu süreç, bir süre sonra bağlı mendilleri çıkarmaya devam eden ve silindir şapkadan çıkaramayan bir sihirbazın gösterisine dönüşür. Dürüst olmak gerekirse süreç tatsız, 5. "mendil" ile cehaletin derinliği zaten Mariana Çukuru'na yakın görünüyor. Buna bir alternatif, 10 tür değişken, 3 tür döngü ve 150 potansiyel olarak yararlı kütüphane hakkında aynı derslerdir. Ne yazık ki.

Hyperskill: İnşa ettik, inşa ettik ve sonunda inşa ettik

Bu sorun üzerinde uzun süre düşündük. Blogumuzdaki son gönderinin tarihi, ne kadar süredir düşündüğümüz hakkında çok şey anlatıyor. Yeni yaklaşımı Stepik'e entegre etmeye yönelik tüm tartışmalardan ve girişimlerden sonra, sonunda... farklı bir site bulduk. JetBrains Akademisi'nin bir parçası olarak bunu zaten duymuş olabilirsiniz. Buna Hyperskill adını verdik, proje tabanlı öğrenmeyi geliştirdik, bir Java bilgi tabanını buna bağladık ve EduTools ekibinin desteğini aldık. Ve şimdi daha fazla ayrıntı.

Stepik'ten sevgilerle: Hyperskill eğitim platformu

Özel hedef. Projelerden oluşan bir “menü” sunuyoruz; bizim yardımımızla yazabileceğiniz programlar. Bunların arasında tic-tac-toe, kişisel asistan, blockchain, arama motoru vb. yer alıyor. Projeler 5-6 aşamadan oluşuyor; Her aşamanın sonucu bitmiş bir programdır. "Öyleyse ilk aşamada her şey yolunda gittiyse neden diğer aşamalara ihtiyacımız var?" Soru için teşekkürler. Her adımda program daha işlevsel veya daha hızlı hale gelir. İlk başta kod 10 satırdan oluşuyor ama sonunda 500 satıra bile sığmayabilir.

Biraz teori. Programlama hakkında tek kelime bilmeden oturup Merhaba Dünya bile yazmak imkansızdır. Bu nedenle, projenin her aşamasında hangi teorik temellere hakim olmanız gerektiğini ve en önemlisi bunları nereden alacağınızı görürsünüz. Temel bilgiler aynı zamanda Hyperskill'in "Bilgi Haritası" bölümünde de bulunmaktadır. Projenin ilk aşamasında öğrencilerin bir dosyadaki verileri okumaları gerekmiyorsa devam edemeyebilirler. Genel gelişim için bunu daha sonra kendileri öğrenecekler veya bir sonraki aşamada buna ihtiyaç duyacaklar.

Stepik'ten sevgilerle: Hyperskill eğitim platformu

Bilgi haritası. Size daha önce hangi konuları çalıştığınızı ve bunların birbirleriyle nasıl ilişkili olduğunu gösterir. Herhangi bir sevimli üst kısmı açın. Buna göz atabilirsiniz ancak bilgilerin kafanıza tam olarak oturduğundan emin olmak için küçük görevleri tamamlamanızı öneririz. Öncelikle platform size testler verecek, ardından size birkaç programlama görevi verecek. Kod derlenir ve testleri geçerse, onu referans çözümle karşılaştırın; bazen bu, onu uygulamanın daha uygun bir yolunu bulmaya yardımcı olur. Veya çözümünüzün zaten mükemmel olduğundan emin olun.

Daha fazlası değil. Hem “yeşil” kullanıcıları hem de deneyimli geliştiricileri bekliyoruz. Zaten programlar yazdıysanız fark etmez, sizi 2+2 eklemeye veya bir satırı tekrar ters çevirmeye zorlamayacağız. İstenilen seviyeye hemen ulaşmak için kayıt olurken zaten aşina olduğunuz şeyleri belirtin ve daha zor bir proje seçin. Kendinizi abartmaktan korkmayın: Bir şey olursa, bilgi haritasında her zaman unutulmuş bir konuya dönebilirsiniz.

Stepik'ten sevgilerle: Hyperskill eğitim platformu

Araçlar. Sitedeki özel bir pencereye küçük kod parçaları yazmak harikadır, ancak gerçek programlama, geliştirme ortamında çalışmakla başlar (Ientegre Development Eçevre). Deneyimli programcılar yalnızca nasıl kod yazılacağını değil, aynı zamanda grafiksel bir arayüzün nasıl tasarlanacağını, farklı dosyaların bir projede nasıl birleştirileceğini, ek geliştirme araçlarının nasıl kullanılacağını da bilir ve IDE bu süreçlerin bazılarıyla ilgilenir. Neden programlamayı öğrenirken bu becerileri öğrenmiyorsunuz? JetBrains'in kurtarmaya geldiği yer burasıdır ve IntelliJ IDEA Community Educational'ın önceden yüklenmiş EduTools eklentisine sahip özel bir sürümüdür. Böyle bir IDE'de eğitim kursları alabilir, çözülmüş sorunları kontrol edebilir ve bir şeyi unuttuysanız proje ipuçlarına bakabilirsiniz. "Eklenti" veya "IDE" kelimesini ilk kez duyuyorsanız endişelenmeyin: size bunun ne olduğunu ve onu bilgisayarınıza veya dizüstü bilgisayarınıza en az sıkıntıyla nasıl yükleyeceğinizi anlatacağız. Teoriyi anlayın ve ardından IDE'ye gidin ve projenin bir sonraki aşamasını orada tamamlayın.

Son teslim tarihleri. Bunların hiçbiri yok! Biz kimiz ki kafanıza vurup size hangi hızda bir program yazacağınızı söyleyeceğiz? Kod yazmaktan keyif alıyorsanız ve bitirmek istiyorsanız, bugün veya yarın bitirin. Kendi zevkiniz için gelişim yapın.

Hatalar. Herkes bunları kabul ediyor, siz de projenin aşamalarından birinde kabul ediyorsunuz, o zaman bu aşama otomatik testleri geçmeyecektir. Neyin yanlış gittiğini kendi başınıza bulmanız gerekecek. Size hatanın nerede olduğunu söyleyebiliriz, ancak bu size kodun nasıl dikkatli yazılacağını öğretir mi? IDEA'dan ipuçlarını veya Bugs hakkında teorik bir konuyu okuyun ve program nihayet işe yaradığında, dopamin patlamasının gelmesi büyük olasılıkla uzun sürmeyecektir.

Net bir sonuç. Peki ilk taslağı tamamladınız, sırada ne var? Emeklerinizin meyvelerinin tadını çıkarın! Arkadaşlarınızla tic-tac-toe oynayın ve aynı zamanda başarınızla övünün. Gelecekteki bir işverene göstermek için projeyi GitHub'a yükleyin, kendiniz bir açıklama yazın ve uyguladığınız bilgiyi orada belirtin. 4-5 karmaşık proje ve artık yeni başlayan bir geliştirici için mütevazı bir portföy hazır.

Büyüme fırsatı. Diyelim ki Hyperskill'e bakıyorsunuz ve orada önemli bir konu veya faydalı bir proje görmüyorsunuz. Bize bildirin! Eğer geçmişiniz bilgi haritasından daha geniş ve zenginse bize formdan yazın Katkıda bulunmak. Ekibimiz kendi ipuçlarımızı ve püf noktalarımızı sizinle paylaşacak, böylece bilginizi farklı yaş ve seviyedeki kullanıcıların anlayabileceği faydalı içeriğe dönüştürmenize yardımcı olmaktan mutluluk duyacağız. Belki ödeyeceğiz bile ama bu kesin değil.

Hoş geldin: merhaba.hyperskill.org Gelin, bakın, deneyin, önerin, övün ve eleştirin. Biz de size öğretmeyi öğreniyoruz.

Kaynak: habr.com

Yorum ekle