Sa pag-ibig mula sa Stepik: Hyperskill educational platform

Gusto kong makipag-usap sa iyo tungkol sa kung bakit mas madalas naming inaayos ang pagtutubero kaysa sa pagsulat namin ng mga disertasyon tungkol dito, tungkol sa iba't ibang diskarte sa pagtuturo ng programming, at kung paano namin sinusubukang ilapat ang isa sa mga ito sa aming bagong produkto na Hyperskill.

Kung hindi mo gusto ang mahabang pagpapakilala, pagkatapos ay laktawan nang diretso sa talata tungkol sa programming. Ngunit ito ay magiging hindi gaanong masaya.

Sa pag-ibig mula sa Stepik: Hyperskill educational platform

Lyrical digression

Isipin natin ang isang binibini Masha. Ngayon si Masha ay maghuhugas ng ilang prutas at manood ng isang pelikula sa kapayapaan, ngunit malas: bigla niyang natuklasan na ang lababo sa kusina ay barado. Hindi pa malinaw kung ano ang gagawin dito. Maaari mong ipagpaliban ang isyung ito nang walang hanggan, ngunit may libreng oras ngayon, kaya nagpasya si Masha na harapin ang problema kaagad. Ang sentido komun ay nagmumungkahi ng dalawang pagpipilian: a) tumawag ng tubero b) hawakan ito nang mag-isa. Pinili ng dalaga ang pangalawang opsyon at nagsimulang pag-aralan ang mga tagubilin sa YouTube. Kasunod ng payo ng user na si Vasya_the_plumber, tumingin si Masha sa ilalim ng lababo at nakita ang isang umuusok na plastic pipe na binubuo ng ilang bahagi. Ang batang babae ay maingat na nagtanggal ng isang piraso sa base ng lababo at walang nakita. Ang isang mas mababang piraso ng tubo ay lumalabas na mahigpit na barado ng isang hindi kilalang sangkap, at kahit na ang isang tinidor na matatagpuan sa mesa ay hindi makayanan ang pagbara. Ang mga eksperto mula sa Internet ay nagbibigay ng nakakabigo na mga pagtataya: ang bahagi ay kailangang baguhin. Sa mapa, nakita ni Masha ang pinakamalapit na tindahan, kinuha ang masamang piraso ng tubo kasama niya at binili ang pareho, bago lang. Sa payo ng nagbebenta, kumuha din si Masha ng isang bagong strainer para sa pag-iwas. Ang paghahanap ay nakumpleto: ang lababo ay gumagana tulad ng nararapat, at ang pangunahing karakter nito, samantala, ay natutunan ang mga sumusunod:

  • Maaari mong i-unscrew at higpitan ang mga tubo sa ilalim ng lababo sa iyong sarili;
  • Ang pinakamalapit na plumbing store ay isa at kalahating kilometro mula sa apartment ni Mashina.

Malamang, hindi napansin ni Masha kung gaano karaming mga bagong bagay ang natutunan at natutunan niya, dahil nag-aalala siya tungkol sa kanyang sariling kaginhawahan sa hinaharap, at sa parehong oras ay nanonood ng isang pelikula at naghuhugas ng kanyang mansanas. Sa susunod na lumitaw ang isang katulad na problema, malulutas ito ng batang babae nang maraming beses nang mas mabilis. Sa katunayan, hindi lamang ibinalik ni Masha ang mundo sa dati nitong kalagayan; nag-aral siya pasaklaw, ibig sabihin, sa mga espesyal na kaso, at nakatuon sa pagsasanay, iyon ay, sa pamamagitan ng paggawa ng mga bagay sa halip na pag-aralan ang mga ito nang detalyado at maaga.

Ang lahat ay maaaring maging iba. Ipagpalagay na si Masha ay nakaupo sa isang upuan sa gabi at biglang napagtanto na siya ay hindi handa sa pag-iisip at pisikal para sa isang bara sa lababo. Mabilis siyang nag-enrol sa isang akademya ng mga tubero, pinag-aaralan ang mga uri ng lababo, tubo at posibleng koneksyon, ang pag-uuri ng mga problema sa pagtutubero at posibleng solusyon sa mga ito. Hindi natutulog si Masha sa gabi, sinasaulo ang mga termino at pangalan. Marahil ay sumusulat pa siya ng PhD thesis sa theoretical pipe science, kung saan tinatalakay niya ang mga gasket ng goma. Sa wakas, nang matanggap ang sertipiko, buong pagmamalaki ni Masha na tumingin sa paligid ng kusina nang buong kumpiyansa na ngayon kahit na ang pinakamaliit na problema sa lababo ay malulutas sa isang snap ng isang daliri. Sa ganitong senaryo, nag-aral ang dalaga deduktibo, lumilipat mula sa pangkalahatan patungo sa partikular, at mas nakatuon sa teorya.

Kaya aling diskarte ang pinakamahusay? Sa kaso ng isang lababo at isang bara - ang una, at para sa mga kadahilanang ito:

  1. Kung ang isang gumaganang lababo ay mahalaga, kung gayon sapat na upang malaman lamang kung ano ang may kinalaman sa partikular na lugar na ito. Kapag napagtanto ni Masha na kulang siya sa kaalaman, tiyak na hahanap siya ng paraan para matuto pa.
  2. Ang kaalaman sa ensiklopediko ay maaaring hindi maisaaktibo sa isang tunay na sitwasyon dahil ang ugali ay hindi pa nabuo. Upang matutunan ang pagkakasunud-sunod ng mga aksyon, makatuwirang huwag basahin ang tungkol sa mga ito, ngunit gawin ang mga ito.

Iwanan natin ang kawawang Masha at magpatuloy sa proseso ng pag-aaral tulad nito.

Programming: matuto o gawin?

Nakasanayan na nating isipin na para umunlad at maging eksperto sa hindi pamilyar na larangan, kailangan muna nating pumasok sa unibersidad o mag-enroll man lang sa mga kurso. Regular kaming nakikinig sa sinasabi nila sa amin at nagsasagawa ng mga gawain. Kapag nasa kamay natin ang hinahangad na diploma o sertipiko, agad tayong nawala, dahil hindi pa rin natin nauunawaan kung bakit kailangan natin ng napakaraming impormasyon at kung paano ito partikular na ilalapat. Walang problema kung ang susunod mong plano ay magsulat ng mga siyentipikong papel at maglakbay kasama nila sa mga kumperensya. Kung hindi, ito ay nagkakahalaga ng pagsusumikap para sa mga kasanayan, iyon ay, paggawa at paggawa muli ng mga tiyak na bagay, pagsubok at paggawa ng mga pagkakamali upang matandaan nang mahabang panahon kung ano ang pinakamahusay na hindi gawin.

Ang isa sa mga lugar kung saan ang isang "matigas na kamay" o isang "diyamante na mata" ay sumasabay sa malawak na pananaw ay ang programming. Kung makikipag-usap ka sa mga makaranasang developer, makakarinig ka ng matatapang na kwento kung saan nag-aral ang isang tao ng matematika/physics/pagtuturo mula sa murang edad, at pagkatapos ay napagod at lumipat sa backend. Magkakaroon din ng mga programmer na walang mas mataas na edukasyon! Una sa lahat, ang pinahahalagahan sa isang developer ay hindi isang sertipiko o diploma, ngunit ang dami at kalidad ng mga nakasulat na programa, script at website.

"Ngunit maghintay!", tumutol ka, "Mukhang maganda - kunin mo at gawin ito!" Hindi ako madaling magsulat ng isang programa sa aking sarili kung hindi pa ako nakapagprograma noon! Mahalaga para sa akin na maunawaan kung saan magsusulat, kung paano talaga makipag-usap sa isang programming language na may isang compiler. Hindi ito tulad ng paghahanap ng numero ng telepono ng tubero sa Google."

May mapait na katotohanan din dito. Ang isang hindi pamilyar na aspeto ay humahantong sa isa pa, na humahantong naman sa isang pangatlo, at sa lalong madaling panahon ang prosesong ito ay nagiging palabas ng isang salamangkero, na patuloy na naglalabas ng nakatali na mga panyo at hindi maalis ang mga ito sa tuktok na sumbrero. Ang proseso, sa totoo lang, ay hindi kasiya-siya; sa ika-5 na "panyo" ay tila ang lalim ng kamangmangan ay malapit sa Mariana Trench. Ang isang alternatibo dito ay ang parehong mga lecture tungkol sa 10 uri ng mga variable, 3 uri ng mga loop at 150 potensyal na kapaki-pakinabang na mga aklatan. Nakalulungkot.

Hyperskill: kami ay nagtayo, nagtayo at sa wakas ay nagtayo

Matagal naming pinag-isipan ang problemang ito. Ang petsa ng huling post sa aming blog ay nagsasalita tungkol sa kung gaano katagal na namin iniisip. Matapos ang lahat ng mga debate at pagtatangka na isama ang bagong diskarte sa Stepik, napunta kami sa... ibang site. Maaaring narinig mo na ang tungkol dito bilang bahagi ng JetBrains Academy. Tinawag namin itong Hyperskill, na binuo sa pag-aaral na nakabatay sa proyekto, nag-link dito ng Java knowledge base, at humingi ng suporta ng EduTools team. At ngayon higit pang mga detalye.

Sa pag-ibig mula sa Stepik: Hyperskill educational platform

Tiyak na layunin. Nag-aalok kami ng "menu" ng mga proyekto, i.e. mga programa na maaari mong isulat sa aming tulong. Kabilang sa mga ito ang tic-tac-toe, personal assistant, blockchain, search engine, atbp. Ang mga proyekto ay binubuo ng 5-6 na yugto; Ang resulta ng bawat yugto ay isang natapos na programa. "Kung gayon bakit kailangan natin ang iba pang mga yugto kung ang lahat ay nagtagumpay na sa una?" Salamat sa tanong. Sa bawat hakbang, nagiging mas functional o mas mabilis ang program. Sa una ang code ay tumatagal ng 10 linya, ngunit sa huli ay maaaring hindi ito magkasya sa 500.

Ang kaunting teorya. Imposibleng umupo at magsulat kahit Hello World nang hindi alam ang isang salita tungkol sa programming. Samakatuwid, sa bawat yugto ng proyekto, makikita mo kung anong mga teoretikal na pangunahing kaalaman ang kailangan mong makabisado at, higit sa lahat, kung saan makukuha ang mga ito. Ang mga pangunahing kaalaman ay matatagpuan din sa Hyperskill sa seksyong "Mapa ng Kaalaman". Kung para sa unang yugto ng proyekto ang mga mag-aaral ay hindi kinakailangang magbasa ng data mula sa isang file, maaaring hindi sila makapagpatuloy. Malalaman nila ito sa ibang pagkakataon, para sa pangkalahatang pag-unlad, o kakailanganin nila ito sa susunod na yugto.

Sa pag-ibig mula sa Stepik: Hyperskill educational platform

Mapa ng kaalaman. Ipinapakita nito sa iyo kung anong mga paksa ang napag-aralan mo na at kung paano nauugnay ang mga ito sa isa't isa. Buksan ang anumang cute na tuktok. Maari mo itong suriin, ngunit inirerekomenda namin na kumpletuhin mo ang maliliit na gawain upang matiyak na akma sa iyong ulo ang impormasyon. Una, bibigyan ka ng platform ng mga pagsubok, pagkatapos nito ay magbibigay sa iyo ng ilang mga gawain sa programming. Kung ang code ay nag-compile at pumasa sa mga pagsubok, ihambing ito sa reference na solusyon, kung minsan ay nakakatulong ito upang malaman ang isang mas pinakamainam na paraan upang ipatupad ito. O siguraduhin na ang iyong solusyon ay mahusay na.

Walang extra. Naghihintay kami para sa parehong "berde" na mga user at may karanasang developer. Kung nakapagsulat ka na ng mga programa, hindi mahalaga, hindi ka namin pipilitin na magdagdag ng 2+2 o muling palitan ang isang linya. Upang agad na makarating sa nais na antas, kapag nagrerehistro, ipahiwatig kung ano ang pamilyar ka na at pumili ng isang mas mahirap na proyekto. Huwag matakot na labis na timbangin ang iyong sarili: kung may mangyari, maaari kang palaging bumalik sa isang nakalimutang paksa sa mapa ng kaalaman.

Sa pag-ibig mula sa Stepik: Hyperskill educational platform

Mga instrumento. Mahusay na magsulat ng maliliit na piraso ng code sa isang espesyal na window sa site, ngunit ang tunay na programming ay nagsisimula sa pagtatrabaho sa kapaligiran ng pag-unlad (Inasiraan ng loob Development Ekapaligiran). Alam ng mga nakaranasang programmer hindi lamang kung paano magsulat ng code, kundi pati na rin kung paano magdisenyo ng isang graphical na interface, mag-assemble ng iba't ibang mga file sa isang proyekto, gumamit ng mga karagdagang tool sa pag-unlad, at ang IDE ang nangangalaga sa ilan sa mga prosesong ito. Bakit hindi matutunan ang mga kasanayang ito habang nag-aaral ka ng programming? Dito sumagip ang JetBrains at isang espesyal na bersyon ng IntelliJ IDEA Community Educational na may paunang naka-install na EduTools plugin. Sa ganoong IDE, maaari kang kumuha ng mga kurso sa pagsasanay, suriin ang mga nalutas na problema, at tingnan ang mga tip sa proyekto kung may nakalimutan ka. Huwag mag-alala kung ito ang iyong unang pagkakataon na marinig ang salitang "plugin" o "IDE": sasabihin namin sa iyo kung ano ito at kung paano i-install ito sa iyong computer o laptop na may kaunting paghihirap. Unawain ang teorya, at pagkatapos ay pumunta sa IDE at kumpletuhin ang susunod na yugto ng proyekto doon mismo.

Mga deadline. Wala sa kanila! Sino kami para kumatok sa ulo at sabihin sa iyo kung anong bilis ang pagsulat ng isang programa? Kapag nasiyahan ka sa pagsulat ng code at gusto mong tapusin ito, tapusin mo ito, ngayon o bukas. Gumawa ng pag-unlad para sa iyong sariling kasiyahan.

Pagkakamali. Ang bawat isa ay umamin sa kanila, gayundin ang gagawin mo sa isa sa mga yugto ng proyekto, at pagkatapos ang yugtong ito ay hindi papasa sa mga awtomatikong pagsubok. Well, kailangan mong malaman para sa iyong sarili kung ano ang naging mali. Maaari naming sabihin sa iyo kung saan namamalagi ang error, ngunit ituturo ba nito sa iyo kung paano maingat na magsulat ng code? Magbasa ng mga tip mula sa IDEA o isang teoretikal na paksa tungkol sa Mga Bug, at kapag gumana na ang programa, malamang na hindi magtatagal ang pagdaloy ng dopamine.

Isang malinaw na resulta. Kaya, natapos mo na ang unang draft, ano ang susunod? Tangkilikin ang mga bunga ng iyong mga pagpapagal! Maglaro ng tic-tac-toe kasama ang iyong mga kaibigan at ipagmalaki ang iyong tagumpay sa parehong oras. I-upload ang proyekto sa GitHub upang ipakita ito sa isang employer sa hinaharap, magsulat ng isang paglalarawan sa iyong sarili, at isaad doon ang kaalaman na iyong inilapat. 4-5 kumplikadong proyekto, at ngayon, handa na ang isang maliit na portfolio para sa isang nagsisimulang developer.

Pagkakataon para sa paglago. Sabihin nating tumingin ka sa Hyperskill at wala kang nakikitang anumang mahalagang paksa o kapaki-pakinabang na proyekto doon. Ipaalam sa amin ang tungkol dito! Kung ang iyong background ay mas malawak at mas mayaman kaysa sa mapa ng kaalaman, pagkatapos ay sumulat sa amin sa form Mag-ambag. Ibabahagi ng aming team ang aming sariling mga tip at trick sa iyo, kaya ikalulugod naming tulungan kang gawing kapaki-pakinabang na nilalaman ang iyong kaalaman na naiintindihan ng mga user na may iba't ibang edad at antas. Baka magbabayad pa kami, pero hindi pa tiyak.

Maligayang pagdating: hi.hyperskill.org Pumasok, tumingin, subukan, magmungkahi, purihin at punahin. Natututo din kaming turuan ka.

Pinagmulan: www.habr.com

Magdagdag ng komento