1. Учене на базата на практика

Java обучение, базирано на практика

Има хора, които обичат CodeGym с цялото си сърце, и има хора, които го мразят с цялото си сърце. Но дори и най-яростният критик на CodeGym лесно ще се съгласи, че има впечатляващо огромен брой задачи. И причината, поради която има толкова много от тях, е, че цялото обучение в CodeGym има практика като основа .

Програмирането е умение. Никой не казва: „Аз знам How да програмирам“. Всеки програмист казва: „Мога да програмирам“. Това е практическо умение, като плуване or игра на шах. И можете да култивирате умението само чрез постоянна практика.

Ето защо целият курс на CodeGym е поредица от все по-трудни задачи. Започвате с много лесни, примитивни задачи и завършвате с най-трудните и интересни. Трудността нараства малко с всяко ниво. Точно това е пътят, който ще ви отведе до вашата цел да станете програмист.


2. Видове задачи

Цял куп различни видове задачи ви очакват в CodeGym. Нека изброим основните:

Задачи, при които се пише програма

Това са най-важните задачи в курса. Тяхното ниво на трудност варира в широки граници: от най-простите задачи до тези, за които ще трябва да мислите много.

Целта на тези задачи е да се напише програма, която отговаря на определени условия и изисквания. Повечето задачи попадат в тази категория. За удобство на учениците на CodeGym маркираме тези задачи според нивото им на трудност: ЛЕСНИ , СРЕДНИ , ТРУДНИ и ЕПИЧНИ .

EPIC задачите често се основават на бъдещ учебен материал в уроци, които все още не сте отключor. Те са популярни сред студентите на CodeGym, които смятат, че курсът е твърде лесен за тях. Други могат просто да пропуснат тези задачи и да се върнат към тях по-късно, когато вече са се запознали със съответната теория.

проекти

Недостатъкът на обикновените задачи е, че са малки. Готово и забequalsо, Howто се казва. Следователно рядко е възможно да ги направим много интересни. Но голяма програма е трудна за тестване: просто има твърде много начини да се приложи.

Ето защо CodeGym въведе проектни задачи — големи задачи, разделени на 5-35 обикновени подзадачи. Изпълнявате всички подзадачи последователно и в крайна сметка получавате голяма програма.

В края на всяко ниво след ниво 20 има една голяма проектна задача, която е разделена на двадесет подзадачи. Има и още 6 игрови задачи, които също са проекти. И има една проектна задача за приемане на онлайн стаж. Общо в целия курс има 27 проектни задачи.

Викторини

Дълго време CodeGym нямаше тестове or викторини. Създателят на CodeGym е на мнение, че издържаните тестове създават у хората „илюзията за знание“. Хората наистина не знаят How да програмират, но са напълно убедени в обратното, тъй като са преминали тестовете. Такива хора спират да учат, тъй като "вече знаят всичко".

Впоследствие бяха добавени тестове, за да позволят на студентите от CodeGym лесно да идентифицират пропуските в своето обучение. За програмистите е полезно да познават нюансите на нещата, с които работят ежедневно в своята професия.


3. Статуси на задачите

Всяка задача в CodeGym има специален статус. Състоянието може да се променя, докато решавате задачи.

Всяка задача на CodeGym е свързана с урок. Първоначално няма да имате достъп до ниHowви задачи, което означава, че няма да можете да ги решавате.

Когато отворите следващия урок, всички задачи в урока стават достъпни за решаване, т.е. статусът им се променя на "Налични".

Ако поне веднъж сте изпратor задача за проверка, нейният статус се променя от „Наличен“ на „В процес“.

Накрая, когато успешно изпълните всички изисквания и валидаторът приеме подаването ви, тогава състоянието на задачата се променя на „Завършено“.

Потребителите с абонамент за Premium Mentor имат още 3 дни, за да опитат да напишат други решения за задачата. След като изтече този допълнителен период от време, задачата преминава в състояние „Затворено“ и това състояние вече няма да се променя.


4. Изисквания

В ранните години на CodeGym, когато сте проверявали всяка задача, сте получавали прост резултат: да or не. Програмата or премина всички тестове, or не. Супер просто, но не супер полезно.

Докато хората се учат, е много важно да разберат Howво правят грешно и How да започнат да го правят правилно. Съответно, напълно логично е, че ако сървърът не приеме вашето решение, тогава ще попитате, добре, Howво не е наред с него?

За да получите отговор на този въпрос, трябва някой да се потопи във вашето решение, да го анализира и да ви каже Howво не е наред с него. Това ще отнеме много време и ще бъде скъпо. Красотата на незабавната проверка на задачите е, че можете да седнете да учите в 2 сутринта и всичко ще работи Howто всяко друго време.

Ето защо пренаписахме всички задачи в CodeGym. Сега всяка задача има не само условия на задачата, но и списък от 5-10 изисквания, които конкретизират условията. Най-важното е, че всяко изискване се проверява отделно.

Това означава, че когато изпратите задача за проверка днес, ще получите разширен отговор: до всяко изискване на задачата ще видите специална икона, показваща дали програмата ви отговаря на това изискване or не. Пример:

Изисквания

Този подход значително опростява живота, докато работите върху задачи, които изискват да напишете няколко класа or метода. Винаги ще можете да видите кои методи or класове сте написали правилно и кои не.


5. Препоръки

Възможно ли е по няHowъв начин задачите да бъдат още по-добри? Няма ли да е страхотно, ако след всяка проверка ви се казва Howво точно не е наред във вашата програма и получавате съвети How да го поправите? Да, би било страхотно! Е, познайте Howво? Правим точно това в CodeGym 🙂

Ние улавяме десетки често срещани грешки, като проверяваме всяко изискване на задачата. Ако вашата програма направи грешка, за която валидаторът знае, тогава тя прави препоръка — намек How можете да поправите решението си, така че да отговаря на всички изисквания.

Помисли за това. Сега има приблизително 1200 задачи в CodeGym, с общо приблизително 10 000 изисквания. И има няколко препоръки, свързани с всяко изискване. Някои изисквания имат десетки от тях. Валидаторът на CodeGym е готов да направи над 50 000 препоръки за потребителски решения.

Освен това всичко това се случва, докато вашето решение се валидира, което в повечето случаи отнема по-малко от секунда. Никой човек не би могъл да направи това. Това е истински виртуален ментор.

Препоръки

6. Общност

CodeGym се фокусира върху много практика , която представлява повече от 80% от целия процес на обучение. Превърнахме ученето в голямо, ангажиращо търсене (всъщност поредица от куестове).

Но всеки е различен: някои хора учат бързо, а други по-бавно. Някои хора намират новия материал за лесен, докато за други е по-труден. Но нашата работа е всеки наш ученик да стигне до финала. Поне към това се стремим.

В този свят програмистите не са само няколко мorона души, които пишат code на различни езици и създават стартиращи компании в свободното си време. Те формират глобална мрежа, непрекъснато споделяйки знанията си с други, готови да отговарят на въпроси и да ви помогнат да разберете сложни теми.

Най-голямата общност за разработчици в света — уебсайтът StackOverflow — се роди от необходимостта програмистите да се учат един от друг. Концепцията му е проста: задавате въпрос и всеки програмист в света може да ви отговори. Удобно, нали? 🙂

В CodeGym вярваме, че обмяната на знания между учениците е изключително ценна. Докато програмистите помагат на другите, самите те растат . И няма по-добър начин да разбереш нещо сам от това да го обясниш на някой друг. Ето защо ние създадохме специални секции на нашия уебсайт, които са предназначени да дадат възможност на всички наши ученици да споделят знанията си и да си помагат в ученето.

И така, Howво правите, ако закъсате с последната задача? Търсенето на готово решение в интернет е лоша идея. Разбира се, ще получите кредит за задачата, ако просто копирате нечие решение or използвате нашето правилно решение. Но няма да затворите празнината в знанията си и това със сигурност ще ви ухапе задника в бъдеще.


7. Въпроси към задачите

Изискванията , препоръките и виртуалният ментор са супер готини. Но Howво ще стане, ако валидаторът все още не приеме вашето решение и не сте сигурни Howъв е проблемът?

Дори в този случай все още има изход. Запознайте се със секцията Помощ . В този раздел на уебсайта учениците на CodeGym могат да задават въпроси относно задачи, да изследват взаимно решенията си и също така да дават съвети и съвети. Публикуването на цялостни решения не е разрешено!

Звучи много просто и елементарно, но всъщност е доста сложно.

Първо, всеки въпрос може да има свързана задача . Това означава, че няма смисъл да преминавате през всички въпроси, ако се интересувате от въпроси за конкретна задача. Винаги можете да използвате филтър, за да видите лесно само въпросите, свързани със задачата, която ви интересува. Просто въведете името на задачата в лентата за търсене:

Въпроси за задачите

Второ, ако щракнете върху бутона „Помощ от общността“, докато решавате задача, веднага ще бъдете отведени до секцията Помощ, където ще видите само въпроси относно задачата, върху която работите. Ако вашето решение не премине проверката на задачата, тогава въпросите са сортирани по полезен начин: най-важните въпроси ще бъдат за неудовлетворените изисквания, които са причинor неуспеха на вашето решение.

Бутон за помощ

Трето, плъгинът IntelliJ IDEA предлага подобна функционалност. Можете да щракнете върху бутона "Помощ" or да натиснете клавишната комбинация Ctrl+Alt+W, което веднага ще отвори секцията Помощ във вашия браузър. И разбира се, филтърът ще показва само въпроси относно задачата, която решавате в IntelliJ IDEA .

Помощ за IntelliJ IDEA

8. Създаване на въпрос

Ако не намерите добър анализ на вашата грешка в раздела за помощ, винаги можете да създадете свой собствен въпрос. Това се прави доста лесно — просто трябва да кликнете върху бутона „Задайте въпрос“ и да попълните задължителните полета:

Създаване на въпрос

За разлика от много други услуги, като StackOverflow, Code Ranch и др., CodeGym не изисква да натъпчете цялата важна информация в заглавието на въпроса. Напишете въпроса си Howто желаете.

И между другото, не е необходимо да копирате codeа си от WebIDE or IntelliJ IDEA и да го добавяте към въпроса си. Когато създадете въпрос относно задача, codeът на вашето решение заедно със статусите на различните изисквания на задачата се добавят автоматично към нея , т.е. кои изисквания удовлетворява вашето решение в момента и кои не.

Създаване на въпрос 2

Това означава, че другите студенти на CodeGym незабавно виждат цялата подходяща информация за решението на запитващия, което прави много по-лесно предоставянето на добри съвети.


9. Код на решението

На много сайтове, когато създавате въпрос относно codeа, трябва or да прикачите архив с програмни файлове към въпроса, or да добавите всички тези файлове към текста на самия въпрос. Резултатът е голяма бъркотия, в която хората or не желаят, or не могат да се заровят.

Бързото и ефективно задаване на въпрос е цяла форма на изкуство. В обикновените уебсайтове or ще трябва да отделите половин час, за да формулирате въпроса си, or да приемете факта, че никой няма да ви отговори. Един добър въпрос за задача задължително трябва да съдържа следната информация:

  • Линк към задачата, която питащият решава
  • Условията на задачата, така че другите да не трябва да ходят да ги преследват навсякъде
  • Код на решението — това може да включва много файлове
  • Състояние на всяко изискване за задача, т.е. Howво работи в момента и Howво не.
  • Текст на въпроса: това обикновено е съвсем ясно — решението ми не работи и не знам защо.

CodeGym показва тази информация с помощта на специална джаджа, която е много подобна на джаджата WebIDE . В крайна сметка той вече е проектиран да показва цялата тази информация. Е, може би с изключение на самия въпрос.

Код на решението

Всъщност ние написахме специална джаджа, само за да ви е удобно да изучавате решенията на други потребители. И за да е лесно и приятно за другите потребители да разглеждат вашите решения във въпросите, които задавате.