1. Pag-aaral batay sa pagsasanay

Pag-aaral ng Java batay sa pagsasanay

May mga taong nagmamahal sa CodeGym nang buong puso, at may mga taong napopoot dito nang buong puso. Ngunit kahit na ang pinakamabagsik na kritiko ng CodeGym ay madaling sumang-ayon na mayroon itong napakalaking bilang ng mga gawain. At ang dahilan kung bakit napakarami sa kanila ay dahil lahat ng pagsasanay sa CodeGym ay may pagsasanay bilang pundasyon nito .

Ang programming ay isang kasanayan. Walang nagsasabing, "Marunong akong magprograma". Sinasabi ng bawat programmer, "Maaari akong mag-program". Ito ay isang hands-on na kasanayan, tulad ng paglangoy o paglalaro ng chess. At maaari mo lamang linangin ang kasanayan sa pamamagitan ng patuloy na pagsasanay.

Iyon ang dahilan kung bakit ang buong kurso ng CodeGym ay isang pagkakasunod-sunod ng lalong mahihirap na gawain. Magsisimula ka sa napakadali, primitive na mga gawain, at magtatapos sa pinakamahirap at kawili-wiling mga gawain. Ang kahirapan ay lumalaki nang kaunti sa bawat antas. Ito mismo ang landas na magdadala sa iyo sa iyong layunin na maging isang programmer.


2. Mga uri ng gawain

Isang buong grupo ng iba't ibang uri ng mga gawain ang naghihintay sa iyo sa CodeGym. Ilista natin ang mga pangunahing:

Mga gawain kung saan ka sumulat ng isang programa

Ito ang pinakamahalagang gawain sa kurso. Ang kanilang antas ng kahirapan ay malawak na nag-iiba: mula sa pinakasimpleng mga gawain hanggang sa mga kailangan mong pag-isipan nang husto.

Ang layunin ng mga gawaing ito ay magsulat ng isang programa na nakakatugon sa mga tinukoy na kondisyon at kinakailangan. Karamihan sa mga gawain ay nabibilang sa kategoryang ito. Para sa kaginhawahan ng mga mag-aaral ng CodeGym, minarkahan namin ang mga gawaing ito ayon sa antas ng kanilang kahirapan: EASY , MEDIUM , HARD at EPIC .

Ang mga EPIC na gawain ay kadalasang nakabatay sa hinaharap na materyal sa pag-aaral sa mga aralin na hindi mo pa naa-unlock. Sikat sila sa mga estudyante ng CodeGym na sa tingin nila ay napakadali ng kurso para sa kanila. Maaaring laktawan lamang ng iba ang mga gawaing ito at bumalik sa kanila sa ibang pagkakataon, kapag naging pamilyar na sila sa nauugnay na teorya.

Mga proyekto

Ang downside sa mga ordinaryong gawain ay ang mga ito ay maliit. Tapos na at nakalimutan, tulad ng sinasabi nila. Samakatuwid, bihirang posible na gawin silang lubos na kawili-wili. Ngunit mahirap subukan ang isang malaking programa: napakaraming paraan para ipatupad ito.

Iyon ang dahilan kung bakit ipinakilala ng CodeGym ang mga gawain sa proyekto — malalaking gawain na nahahati sa 5-35 ordinaryong subtask. Ginagawa mo ang lahat ng mga subtasks nang sunud-sunod, at napupunta ka sa isang malaking programa.

Sa dulo ng bawat antas pagkatapos ng Antas 20, mayroong isang malaking gawain sa proyekto, na nahahati sa dalawampung subtask. Mayroon ding isa pang 6 na gawain sa laro, na mga proyekto rin. At mayroong isang gawain sa proyekto para matanggap sa isang online na internship. Sa kabuuan, mayroong 27 mga gawain sa proyekto sa buong kurso.

Mga pagsusulit

Sa mahabang panahon, walang pagsusulit o pagsusulit ang CodeGym. Pinanghahawakan ng tagalikha ng CodeGym ang opinyon na ang pumasa sa mga pagsusulit ay lumikha ng "ilusyon ng kaalaman" sa mga tao. Hindi talaga alam ng mga tao kung paano magprogram, ngunit lubos silang kumbinsido kung hindi man, dahil nakapasa sila sa mga pagsusulit. Ang ganitong mga tao ay huminto sa pag-aaral, dahil "alam na nila ang lahat".

Kasunod nito, idinagdag ang mga pagsusulit upang payagan ang mga mag-aaral ng CodeGym na madaling matukoy ang mga puwang sa kanilang pag-aaral. Ito ay kapaki-pakinabang para sa mga programmer na malaman ang mga nuances ng mga bagay na kanilang ginagawa araw-araw sa kanilang propesyon.


3. Mga katayuan ng gawain

Ang bawat gawain sa CodeGym ay may espesyal na katayuan. Maaaring magbago ang status habang nilulutas mo ang mga gawain.

Ang bawat gawain ng CodeGym ay nauugnay sa isang aralin. Sa una, wala kang access sa anumang mga gawain, na nangangahulugang hindi mo malulutas ang mga ito.

Kapag binuksan mo ang susunod na aralin, ang lahat ng mga gawain sa aralin ay magiging available para sa paglutas, ibig sabihin, ang kanilang katayuan ay nagbabago sa "Available".

Kung nagsumite ka ng gawain para sa pag-verify kahit isang beses lang, ang status nito ay magbabago mula sa "Available" patungong "In progress".

Sa wakas, kapag matagumpay mong natugunan ang lahat ng mga kinakailangan at tinanggap ng validator ang iyong pagsusumite, ang status ng gawain ay magiging "Nakumpleto".

Ang mga user na may subscription sa Premium Mentor ay may 3 pang araw para subukang magsulat ng iba pang solusyon para sa gawain. Pagkatapos mag-expire ang karagdagang palugit ng oras na ito, lilipat ang gawain sa status na "Sarado", at hindi na magbabago ang status na ito.


4. Mga kinakailangan

Sa mga unang taon ng CodeGym, kapag na-verify mo ang bawat gawain, nakakuha ka ng isang simpleng resulta: oo o hindi. Ang programa ay pumasa sa lahat ng mga pagsubok o hindi. Napakasimple, ngunit hindi sobrang nakakatulong.

Habang natututo ang mga tao, napakahalaga na maunawaan nila kung ano ang kanilang ginagawang mali at kung paano simulan ang paggawa nito ng tama. Alinsunod dito, makatuwiran na kung hindi tatanggapin ng server ang iyong solusyon, itatanong mo, mabuti, ano ang mali dito?

Upang makakuha ng sagot sa tanong na ito, kailangan mo ng isang tao na sumisid sa iyong solusyon, pag-aralan ito, at sasabihin sa iyo kung ano ang mali dito. Magtatagal ito at magastos. Ang kagandahan ng instant na pag-verify ng gawain ay maaari kang umupo upang mag-aral sa 2 AM at lahat ito ay gagana tulad ng anumang iba pang oras.

Iyon ang dahilan kung bakit muling isinulat namin ang lahat ng mga gawain sa CodeGym. Ngayon ang bawat gawain ay may hindi lamang mga kundisyon ng gawain, kundi pati na rin ang isang listahan ng 5-10 mga kinakailangan na bubuo sa mga kundisyon. Pinakamahalaga, ang bawat kinakailangan ay hiwalay na nabe-verify.

Nangangahulugan iyon na kapag nagsumite ka ng gawain para sa pag-verify ngayon, makakakuha ka ng pinahabang tugon: sa tabi ng bawat kinakailangan sa gawain makakakita ka ng espesyal na icon na nagsasaad kung natutugunan ng iyong programa ang kinakailangang ito o hindi. Halimbawa:

Mga kinakailangan

Ang diskarte na ito ay lubos na nagpapasimple sa buhay habang gumagawa ka sa mga gawain na nangangailangan sa iyo na magsulat ng ilang mga klase o pamamaraan. Palagi mong makikita kung aling mga pamamaraan o klase ang isinulat mo nang tama at kung alin ang hindi mo ginawa.


5. Mga Rekomendasyon

Posible bang gawing mas mahusay ang mga gawain kahit papaano? Hindi ba magiging maganda kung, pagkatapos ng bawat tseke, sasabihin sa iyo kung ano ang eksaktong mali sa iyong programa at makakuha ng mga pahiwatig kung paano ito ayusin? Oo, iyon ay magiging cool! Well, guess what? Ginagawa lang namin iyon sa CodeGym 🙂

Nahuhuli namin ang dose-dosenang mga karaniwang pagkakamali sa pamamagitan ng pagsuri sa bawat kinakailangan sa gawain. Kung nagkamali ang iyong programa na alam ng validator, gumagawa ito ng rekomendasyon — isang pahiwatig kung paano mo maaayos ang iyong solusyon upang matugunan nito ang lahat ng kinakailangan.

Pag-isipan mo. Mayroon na ngayong humigit-kumulang 1200 mga gawain sa CodeGym, na may kabuuang humigit-kumulang 10,000 mga kinakailangan. At mayroong ilang mga rekomendasyon na nauugnay sa bawat kinakailangan. Ang ilang mga kinakailangan ay may dose-dosenang mga ito. Ang validator ng CodeGym ay handang gumawa ng higit sa 50,000 rekomendasyon para sa mga solusyon ng user.

Dagdag pa, ang lahat ng ito ay nangyayari habang ang iyong solusyon ay napatunayan, na sa karamihan ng mga kaso ay tumatagal ng mas mababa sa isang segundo. Walang taong makakagawa niyan. Ito ay isang tunay na virtual mentor.

Mga Rekomendasyon

6. Komunidad

Nakatuon ang CodeGym sa maraming pagsasanay , na bumubuo ng higit sa 80% ng buong proseso ng pag-aaral. Ginawa namin ang pag-aaral sa isang malaki, nakakaengganyo na pakikipagsapalaran (talagang isang serye ng mga pakikipagsapalaran).

Ngunit lahat ay naiiba: ang ilang mga tao ay mabilis na natututo, at ang iba ay natututo nang mas mabagal. Ang ilang mga tao ay madaling makahanap ng bagong materyal, habang ang iba ay mas mahirap. Ngunit ang aming trabaho ay para sa bawat isa sa aming mga mag-aaral na makarating sa linya ng pagtatapos. At least yun ang pinagsusumikapan natin.

Sa mundong ito, ang mga programmer ay hindi lamang ilang milyong tao na nagsusulat ng code sa iba't ibang wika at gumagawa ng mga startup sa kanilang libreng oras. Bumubuo sila ng isang pandaigdigang network, patuloy na nagbabahagi ng kanilang kaalaman sa iba, handang sagutin ang mga tanong at tulungan kang maunawaan ang mga kumplikadong paksa.

Ang pinakamalaking komunidad ng developer sa mundo — ang StackOverflow website — ay isinilang dahil sa pangangailangan ng mga programmer na matuto mula sa isa't isa. Simple lang ang konsepto nito: magtatanong ka at masasagot ito ng sinumang programmer sa mundo. Maginhawa, tama? 🙂

Sa CodeGym, naniniwala kami na ang pagpapalitan ng kaalaman sa pagitan ng mga mag-aaral ay lubhang mahalaga. Habang tinutulungan ng mga programmer ang iba, sila mismo ay lumalaki . At walang mas mahusay na paraan upang maunawaan ang isang bagay sa iyong sarili kaysa ipaliwanag ito sa ibang tao. Kaya naman gumawa kami ng mga espesyal na seksyon sa aming website na idinisenyo upang bigyan ang lahat ng aming mga mag-aaral ng pagkakataong ibahagi ang kanilang kaalaman at tulungan ang isa't isa na matuto.

Kaya ano ang gagawin mo kung natigil ka sa pinakabagong gawain? Ang paghahanap para sa isang handa na solusyon sa Internet ay isang masamang ideya. Sigurado, makakakuha ka ng kredito para sa gawain kung kokopyahin mo lang ang solusyon ng ibang tao o gagamitin ang aming tamang solusyon. Ngunit hindi mo isasara ang iyong agwat sa kaalaman at tiyak na babalik iyon upang kagatin ka sa puwitan sa hinaharap.


7. Mga tanong tungkol sa mga gawain

Ang mga kinakailangan , rekomendasyon , at virtual na tagapagturo ay sobrang cool. Ngunit paano kung hindi pa rin tanggapin ng validator ang iyong solusyon at hindi ka sigurado kung ano ang problema?

Kahit na sa kasong ito, mayroon pa ring paraan. Kilalanin ang seksyong Tulong . Sa seksyong ito ng website, maaaring magtanong ang mga mag-aaral ng CodeGym tungkol sa mga gawain, tuklasin ang mga solusyon ng bawat isa, at magbigay din ng payo at mga tip. Hindi pinapayagan ang pag-post ng mga kumpletong solusyon!

Ito ay napaka-simple at basic, ngunit ito ay talagang napaka sopistikado.

Una, ang bawat tanong ay maaaring may kaugnay na gawain . Nangangahulugan ito na walang saysay na pag-usapan ang lahat ng mga tanong, kung interesado ka sa mga tanong tungkol sa isang partikular na gawain. Maaari kang gumamit ng filter anumang oras upang madaling makita lamang ang mga tanong na nauugnay sa gawain na kinaiinteresan mo. Ipasok lamang ang pangalan ng gawain sa search bar:

Mga tanong tungkol sa mga gawain

Pangalawa, kung iki-click mo ang button na "Tulong sa Komunidad" habang nilulutas ang isang gawain, dadalhin ka kaagad sa seksyong Tulong, kung saan makikita mo lamang ang mga tanong tungkol sa gawaing iyong ginagawa. Kung ang iyong solusyon ay nabigo sa pag-verify ng gawain, ang mga tanong ay pinagbubukod-bukod sa isang kapaki-pakinabang na paraan: ang mga nangungunang tanong ay tungkol sa mga hindi nasisiyahang kinakailangan na naging dahilan upang mabigo ang iyong solusyon.

Button ng tulong

Pangatlo, ang IntelliJ IDEA plugin ay nag-aalok ng katulad na pag-andar. Maaari mong i-click ang pindutang "Tulong" o pindutin ang kumbinasyon ng key na Ctrl+Alt+W, na agad na magbubukas sa seksyong Tulong sa iyong browser. At siyempre, ipapakita lang ng filter ang mga tanong tungkol sa gawaing nilulutas mo sa IntelliJ IDEA .

tulong ng IntelliJ IDEA

8. Paggawa ng tanong

Kung hindi ka makakita ng mahusay na pagsusuri ng iyong error sa seksyong Tulong, maaari kang lumikha ng sarili mong tanong anumang oras. Madaling gawin ito — kailangan mo lang i-click ang button na "Magtanong" at punan ang mga kinakailangang field:

Paggawa ng tanong

Hindi tulad ng maraming iba pang serbisyo, gaya ng StackOverflow, Code Ranch, atbp., hindi hinihiling ng CodeGym na i-cram mo ang lahat ng mahalagang impormasyon sa pamagat ng tanong. Isulat ang iyong tanong gayunpaman gusto mo.

At siya nga pala, hindi mo kailangang kopyahin ang iyong code mula sa WebIDE o IntelliJ IDEA at idagdag ito sa iyong tanong. Kapag lumikha ka ng isang tanong tungkol sa isang gawain, ang code ng iyong solusyon kasama ang mga katayuan ng iba't ibang mga kinakailangan sa gawain ay awtomatikong idaragdag dito , ibig sabihin, kung aling mga kinakailangan ang kasalukuyang natutugunan ng iyong solusyon at hindi nito.

Paggawa ng tanong 2

Nangangahulugan ito na ang ibang mga mag-aaral ng CodeGym ay agad na nakikita ang lahat ng may-katuturang impormasyon tungkol sa solusyon ng nagtatanong, na ginagawang mas madali ang pagbibigay ng magandang payo.


9. Code ng solusyon

Sa maraming site, kapag gumagawa ng tanong tungkol sa code, kailangan mong mag-attach ng archive na may mga program file sa tanong, o idagdag ang lahat ng file na ito sa text ng tanong mismo. Ang resulta ay isang malaking gulo na ang mga tao ay alinman sa ayaw o hindi kayang hukayin.

Ang mabilis at mahusay na pagtatanong ay isang buong anyo ng sining. Sa mga regular na website, kakailanganin mong gumugol ng kalahating oras sa pagbalangkas ng iyong tanong, o tanggapin ang katotohanang walang sasagot sa iyo. Ang isang magandang tanong tungkol sa isang gawain ay dapat maglaman ng sumusunod na impormasyon:

  • Mag-link sa gawain na nilulutas ng nagtatanong
  • Ang mga kundisyon ng gawain para hindi na kailanganin ng iba na manghuli sa kanila kahit saan
  • Code ng solusyon — maaaring magsama ito ng maraming file
  • Katayuan ng bawat kinakailangan sa gawain, ibig sabihin, kung ano ang kasalukuyang gumagana at kung ano ang hindi.
  • Teksto ng tanong: ito ay karaniwang medyo malinaw — ang aking solusyon ay hindi gumagana, at hindi ako sigurado kung bakit.

Ipinapakita ng CodeGym ang impormasyong ito gamit ang isang espesyal na widget na halos kapareho sa widget ng WebIDE . Pagkatapos ng lahat, idinisenyo na ito upang ipakita ang lahat ng impormasyong iyon. Well, marahil maliban sa tanong mismo.

Code ng solusyon

Sa katunayan, sumulat kami ng isang espesyal na widget para lang gawing maginhawa para sa iyo na pag-aralan ang mga solusyon ng ibang user. At para gawing madali at kaaya-aya para sa ibang mga user na suriin ang iyong mga solusyon sa mga tanong na itatanong mo.