Ես ուզում եմ ձեզ հետ խոսել այն մասին, թե ինչու ենք մենք ավելի հաճախ վերանորոգում սանտեխնիկան, քան դրա մասին ատենախոսություններ գրում, ծրագրավորման դասավանդման տարբեր մոտեցումների մասին և ինչպես ենք մենք փորձում կիրառել դրանցից մեկը մեր նոր Hyperskill արտադրանքում:
Եթե երկար ներածություններ չեք սիրում, ապա անմիջապես անցեք ծրագրավորման մասին պարբերությանը: Բայց դա ավելի քիչ զվարճալի կլինի:
Լիրիկական շեղում
Եկեք պատկերացնենք մի երիտասարդ տիկին Մաշա. Այսօր Մաշան պատրաստվում էր հանգիստ միրգ լվանալ և ֆիլմ դիտել, բայց վատ բախտը բերեց. հանկարծ նա հայտնաբերեց, որ խոհանոցի լվացարանը խցանված է: Թե ինչ անել սրա հետ, դեռ պարզ չէ։ Դուք կարող եք անորոշ ժամանակով հետաձգել այս հարցը, բայց այժմ ազատ ժամանակ կա, ուստի Մաշան որոշում է անմիջապես զբաղվել խնդրի հետ։ Ողջամտությունը առաջարկում է երկու տարբերակ. ա) զանգահարեք սանտեխնիկի բ) զբաղվեք ինքներդ: Երիտասարդ տիկինը ընտրում է երկրորդ տարբերակը և սկսում ուսումնասիրել YouTube-ի հրահանգները։ Հետևելով Vasya_the_plumber օգտատիրոջ խորհրդին՝ Մաշան նայում է լվացարանի տակ և տեսնում մի քանի մասից կազմված օձի պլաստիկ խողովակ։ Աղջիկը խնամքով արձակում է լվացարանի հիմքի մի կտորը և ոչինչ չի գտնում։ Ստացվում է, որ խողովակի ստորին հատվածը սերտորեն խցանված է անհայտ նյութով, և նույնիսկ սեղանի վրա հայտնաբերված պատառաքաղը չի կարող հաղթահարել խցանումը: Ինտերնետից մասնագետները հիասթափեցնող կանխատեսումներ են անում՝ հատվածը պետք է փոխվի։ Քարտեզի վրա Մաշան գտնում է մոտակա խանութը, տանում է իր հետ չարաբաստիկ խողովակի կտորը և գնում նույնը, միայն նորը։ Վաճառողի խորհրդով Մաշան նաև նոր քամիչ է վերցնում կանխարգելման համար։ Որոնումն ավարտված է. լվացարանը նորից աշխատում է այնպես, ինչպես պետք է, և նրա գլխավոր հերոսը, մինչդեռ, սովորել է հետևյալը.
- Դուք կարող եք ինքներդ ետ պտուտակել և ամրացնել լվացարանի տակ գտնվող խողովակները;
- Մոտակա սանտեխնիկայի խանութը Մաշինայի բնակարանից մեկուկես կիլոմետր հեռավորության վրա է։
Ամենայն հավանականությամբ, Մաշան նույնիսկ չնկատեց, թե որքան նոր բաներ է նա սովորել և սովորել, քանի որ նա անհանգստանում էր ապագայում իր հարմարավետության համար, և միևնույն ժամանակ դիտում էր ֆիլմ և լվանում իր խնձորը: Հաջորդ անգամ, երբ նմանատիպ խնդիր առաջանա, աղջիկը շատ անգամ ավելի արագ կլուծի այն։ Իրականում Մաշան աշխարհը պարզապես վերադարձրեց իր սովորական վիճակին. նա սովորել է ինդուկտիվ կերպով, այսինքն՝ հատուկ դեպքերում և պրակտիկային ուղղվածություն, այսինքն՝ ինչ-որ բաներ անելով, այլ ոչ թե դրանք մանրամասնորեն և նախապես ուսումնասիրելով։
Ամեն ինչ կարող էր այլ կերպ լինել։ Ենթադրենք, Մաշան երեկոյան նստած է աթոռին և հանկարծ հասկանում է, որ հոգեպես և ֆիզիկապես պատրաստ չէ լվացարանի խցանմանը: Նա արագ ընդունվում է փականագործների ակադեմիա՝ ուսումնասիրելով լվացարանների տեսակները, խողովակները և հնարավոր միացումները, սանտեխնիկական խնդիրների դասակարգումը և դրանց հնարավոր լուծումները։ Մաշան գիշերը չի քնում՝ անգիր անելով տերմիններ և անուններ։ Հավանաբար նա նույնիսկ դոկտորական թեզ է գրում խողովակների տեսական գիտության վերաբերյալ, որտեղ նա քննարկում է ռետինե միջադիրները: Վերջապես, ստանալով վկայականը, Մաշան հպարտորեն նայում է խոհանոցի շուրջը՝ վստահ լինելով, որ այժմ լվացարանի ամենաչնչին խնդիրը կլուծվի մատի սեղմումով։ Այս սցենարով աղջիկը սովորել է դեդուկտիվ կերպով, ընդհանուրից անցնելով կոնկրետին և ավելի շատ կենտրոնացած էր տեսությունը.
Այսպիսով, ո՞ր մոտեցումն է լավագույնը: Լվացարանի և խցանման դեպքում՝ առաջինը և այս պատճառներով.
- Եթե կարևոր է միայն աշխատող լվացարանը, ապա բավական է իմանալ միայն այն, ինչ վերաբերում է կոնկրետ այս տարածքին։ Երբ Մաշան հասկանա, որ գիտելիքի պակաս ունի, անպայման կգտնի ավելին իմանալու միջոց։
- Հանրագիտարանային գիտելիքները կարող են չակտիվանալ իրական իրավիճակում, քանի որ սովորությունը չի ձևավորվել: Գործողությունների հաջորդականությունը սովորելու համար իմաստ ունի ոչ թե կարդալ դրանց մասին, այլ կատարել դրանք։
Հանգիստ թողնենք խեղճ Մաշային ու որպես այդպիսին անցնենք ուսումնական գործընթացին։
Ծրագրավորում. սովորե՞լ, թե՞ անել:
Մենք սովոր ենք մտածել, որ անծանոթ ոլորտում զարգանալու և փորձագետ դառնալու համար նախ պետք է գնալ համալսարան կամ գոնե դասընթացներ ընդունվել։ Մենք պարբերաբար լսում ենք, թե ինչ են մեզ ասում և կատարում առաջադրանքներ։ Երբ մեր ձեռքում է բաղձալի դիպլոմը կամ վկայականը, մենք անմիջապես կորչում ենք, քանի որ դեռ չենք հասկանում, թե ինչու է մեզ այդքան շատ տեղեկատվություն անհրաժեշտ և ինչպես կոնկրետ կիրառել այն: Սա խնդիր չէ, եթե ձեր հաջորդ պլանները գիտական հոդվածներ գրելն ու նրանց հետ համաժողովների մեկնելն է: Հակառակ դեպքում, արժե ձգտել հմտությունների, այսինքն՝ անել և նորից անել կոնկրետ գործեր, փորձել և սխալվել, որպեսզի երկար հիշեք, թե ինչն է լավագույնը չանել։
Այն ոլորտներից մեկը, որտեղ «կոշտ ձեռքը» կամ «ադամանդե աչքը» ձեռք ձեռքի տված է լայն հայացքների հետ, ծրագրավորումն է: Եթե խոսեք փորձառու ծրագրավորողների հետ, կլսեք համարձակ պատմություններ, որոնցում մարդը փոքր տարիքից սովորել է մաթեմատիկա/ֆիզիկա/դասավանդել, իսկ հետո հոգնել և տեղափոխվել է հետնամաս։ Կլինեն նաև բարձրագույն կրթություն չունեցող ծրագրավորողներ։ Նախ, ծրագրավորողի մոտ գնահատվում է ոչ թե վկայականը կամ դիպլոմը, այլ գրավոր ծրագրերի, սցենարների ու կայքերի քանակն ու որակը։
«Բայց սպասիր», առարկում ես, «Գեղեցիկ է հնչում, վերցրու և արա՛»: Ես չեմ կարող հեշտությամբ ինքս ինձ ծրագիր գրել, եթե նախկինում չեմ ծրագրավորել: Ինձ համար կարևոր է հասկանալ, թե որտեղ գրել, ինչպես հիմնականում խոսել ծրագրավորման լեզվով կոմպիլյատորի հետ: Դա Google-ում սանտեխնիկի հեռախոսահամար գտնելը նման չէ»:
Սրա մեջ էլ կա մի դառը ճշմարտություն. Մի անծանոթ կողմը տանում է դեպի մյուսը, որն իր հերթին հանգեցնում է երրորդին, և շուտով այս գործընթացը վերածվում է հրաշագործի շոուի, որը շարունակում է կապած թաշկինակները հանել և չի կարողանում դրանք հանել գլխարկից: Գործընթացը, ճիշտն ասած, տհաճ է, 5-րդ «թաշկինակով» արդեն թվում է, թե անտեղյակության խորությունը մոտ է Մարիանյան խրամատին։ Դրա այլընտրանքը նույն դասախոսություններն են 10 տեսակի փոփոխականների, 3 տեսակի օղակների և 150 հնարավոր օգտակար գրադարանների մասին: Ցավոք սրտի.
Հիպերհմտություն. մենք կառուցեցինք, կառուցեցինք և վերջապես կառուցեցինք
Մենք երկար մտածեցինք այս խնդրի մասին։ Մեր բլոգում վերջին գրառման ամսաթիվը խոսում է այն մասին, թե որքան երկար ենք մտածել: Բոլոր բանավեճերից և Ստեպիկի վերաբերյալ նոր մոտեցումը ինտեգրելու փորձերից հետո մենք հայտնվեցինք... այլ կայքի հետ: Հնարավոր է, որ դուք արդեն լսել եք դրա մասին որպես JetBrains ակադեմիայի մի մաս: Մենք այն անվանեցինք Hyperskill, որը կառուցված է նախագծային ուսուցման մեջ, կապեցինք Java-ի գիտելիքների բազան դրա հետ և ներգրավեցինք EduTools թիմի աջակցությունը: Իսկ հիմա ավելի մանրամասն։
Կոնկրետ նպատակ. Մենք առաջարկում ենք նախագծերի «մենյու», այսինքն. ծրագրեր, որոնք կարող եք գրել մեր օգնությամբ: Դրանց թվում են tic-tac-toe-ը, անձնական օգնականը, բլոկչեյնը, որոնման համակարգը և այլն։ Նախագծերը բաղկացած են 5-6 փուլից. Յուրաքանչյուր փուլի արդյունքը ավարտված ծրագիր է: «Այդ դեպքում մեզ ինչի՞ն են պետք մնացած փուլերը, եթե առաջինում ամեն ինչ արդեն ստացվել է»: Շնորհակալություն հարցի համար: Յուրաքանչյուր քայլով ծրագիրը դառնում է ավելի ֆունկցիոնալ կամ ավելի արագ: Սկզբում կոդը վերցնում է 10 տող, բայց ի վերջո այն կարող է նույնիսկ չտեղավորվել 500-ի մեջ։
Մի քիչ տեսություն: Անհնար է նստել ու գրել նույնիսկ «Բարև աշխարհ», առանց ծրագրավորման մասին որևէ խոսք իմանալու։ Հետևաբար, նախագծի յուրաքանչյուր փուլում տեսնում եք, թե ինչ տեսական հիմունքներ պետք է տիրապետեք և, որ ամենակարևորն է, որտեղից ձեռք բերել դրանք: Հիպերհմտությունը գտնվում է նաև «Գիտելիքների քարտեզ» բաժնում: Եթե ծրագրի առաջին փուլի համար ուսանողներից չի պահանջվում ֆայլից տվյալներ կարդալ, ապա նրանք կարող են չկարողանալ շարունակել: Նրանք դա իրենք կսովորեն ավելի ուշ՝ ընդհանուր զարգացման համար, կամ դա իրենց պետք կգա հաջորդ փուլում։
Գիտելիքների քարտեզ. Այն ցույց է տալիս, թե ինչ թեմաներ եք արդեն ուսումնասիրել և ինչպես են դրանք կապված միմյանց հետ: Բացեք ցանկացած գեղեցիկ վերնաշապիկ: Դուք կարող եք շրջանցել այն, բայց մենք խորհուրդ ենք տալիս կատարել փոքր առաջադրանքներ՝ համոզվելու համար, որ տեղեկատվությունը տեղավորվում է ձեր գլխում: Նախ՝ հարթակը ձեզ թեստեր կտա, որից հետո մի երկու ծրագրավորման առաջադրանք կտա։ Եթե կոդը հավաքում և անցնում է թեստերը, համեմատեք այն հղման լուծման հետ, երբեմն դա օգնում է պարզել դրա իրականացման ավելի օպտիմալ եղանակը: Կամ համոզվեք, որ ձեր լուծումն արդեն գերազանց է:
Ոչ մի ավելորդ բան: Սպասում ենք ինչպես «կանաչ» օգտատերերի, այնպես էլ փորձառու մշակողների։ Եթե դուք արդեն ծրագրեր եք գրել, միեւնույն է, մենք ձեզ չենք ստիպի ավելացնել 2+2 կամ նորից տող շուռ տալ։ Անմիջապես ցանկալի մակարդակին հասնելու համար գրանցվելիս նշեք այն, ինչին արդեն ծանոթ եք և ընտրեք ավելի բարդ նախագիծ։ Մի վախեցեք գերագնահատել ինքներդ ձեզ. եթե ինչ-որ բան պատահի, դուք միշտ կարող եք վերադառնալ գիտելիքի քարտեզի մոռացված թեմային:
Գործիքներ Կայքի հատուկ պատուհանում փոքր կտորներ գրելը հիանալի է, բայց իրական ծրագրավորումը սկսվում է մշակման միջավայրում աշխատելուց (Iինտեգրվել Dզարգացում Eմիջավայր): Փորձառու ծրագրավորողները գիտեն ոչ միայն ինչպես գրել կոդ, այլ նաև ինչպես նախագծել գրաֆիկական ինտերֆեյս, հավաքել տարբեր ֆայլեր նախագծի մեջ, օգտագործել զարգացման լրացուցիչ գործիքներ, և IDE-ն հոգում է այդ գործընթացներից մի քանիսը: Ինչու՞ չսովորել այս հմտությունները մինչ ծրագրավորում եք սովորում: Այստեղ օգնության է գալիս JetBrains-ը և IntelliJ IDEA Community Educational-ի հատուկ տարբերակը՝ նախապես տեղադրված EduTools հավելվածով: Նման IDE-ում դուք կարող եք վերապատրաստման դասընթացներ անցնել, ստուգել լուծված խնդիրները և դիտել ծրագրի խորհուրդները, եթե ինչ-որ բան մոռացել եք: Մի անհանգստացեք, եթե առաջին անգամ եք լսում «պլագին» կամ «IDE» բառը. մենք ձեզ կասենք, թե ինչ է դա և ինչպես այն տեղադրել ձեր համակարգչում կամ նոութբուքում՝ նվազագույն տառապանքով: Հասկացեք տեսությունը, այնուհետև անցեք IDE և ավարտեք նախագծի հաջորդ փուլը հենց այնտեղ:
Վերջնաժամկետներ. Նրանցից ոչ մեկը չկա։ Մենք ո՞վ ենք, որ գլխին թակենք ու ասենք, թե ինչ տեմպերով ծրագիր գրեք։ Երբ դուք հաճույք եք ստանում կոդ գրելուց և ցանկանում եք այն ավարտել, ավարտում եք այն այսօր կամ վաղը: Կատարեք զարգացում ձեր սեփական հաճույքի համար:
Սխալներ. Բոլորն ընդունում են դրանք, դուք նույնպես նախագծի փուլերից մեկում, և այդ փուլը չի անցնի ավտոմատ թեստերը: Դե, դուք ինքներդ պետք է պարզեք, թե ինչն է սխալ եղել: Մենք կարող ենք ձեզ ասել, թե որտեղ է սխալը, բայց դա կսովորեցնե՞ր, թե ինչպես պետք է զգույշ գրել կոդը: Կարդացեք խորհուրդներ IDEA-ից կամ Bugs-ի մասին տեսական թեմայից, և երբ ծրագիրը վերջապես գործի, դոֆամինի արագացումը, ամենայն հավանականությամբ, երկար չի սպասի:
Հստակ արդյունք. Այսպիսով, դուք ավարտեցիք առաջին նախագիծը, իսկ հետո: Վայելեք ձեր աշխատանքի պտուղները: Խաղացեք ձեր ընկերների հետ և միևնույն ժամանակ պարծեցեք ձեր հաջողությամբ: Վերբեռնեք նախագիծը GitHub՝ այն ապագա գործատուին ցույց տալու համար, ինքներդ գրեք նկարագրությունը և այնտեղ նշեք ձեր կիրառած գիտելիքները: 4-5 բարդ նախագծեր, և այժմ պատրաստ է համեստ պորտֆոլիո սկսնակ ծրագրավորողի համար:
Աճի հնարավորություն. Ենթադրենք, դուք նայում եք Hyperskill-ին և այնտեղ չեք տեսնում որևէ կարևոր թեմա կամ օգտակար նախագիծ: Տեղեկացրեք մեզ դրա մասին: Եթե ձեր նախապատմությունը ավելի լայն է և հարուստ, քան գիտելիքների քարտեզը, ապա գրեք մեզ ձևով
Բարի գալուստ:
Source: www.habr.com