Սկզբնապես հրապարակվել է blog.stephsmith.io-ում:

Վերջերս ես ելույթ ունեցա սովորել կոդավորել ապրանքները մեկ տարուց պակաս ժամանակում:

Ելույթը լավ ընդունվեց և նույնիսկ պիտակվեց 2018 թվականի լավագույն ելույթն այն վայրում, որտեղ այն տրվեց: 🙂 Քանի որ թվում էր, թե դա որոշակի ոգեշնչում էր ներկաների մոտ, ես որոշեցի գրել հիմնական կետերի ավելի մատչելի ամփոփում:

Նախապատմություն

Հատվածը նախաբանելու համար կարծում եմ, որ կարևոր է արագ անցնել իմ պատմությանը: Ես Ստեֆն եմ և 25 տարեկան: 25 տարիների ընթացքում ես ունեցել եմ տարբեր անցյալ՝ սկսած.

  • Քիմիական ճարտարագիտության աստիճան
  • Կյանքս հեռանալով կառավարման խորհրդատվության մեջ
  • Վերջերս աշխատել է աճի/մարքեթինգի ոլորտում տեխնոլոգիական ընկերության համար՝ Toptal

Տարբեր որոշումներ ինձ տարան տարբեր ճանապարհներով, բայց ի վերջո տեխնոլոգիայի մասին ինչ-որ բան մնաց: Անցած 2,5 տարիների ընթացքում Toptal-ում ես ավելին իմացա ոլորտի մասին և հնարավորություն ունեցա գնալ կոնֆերանսների, ինչպիսին է TechCrunch Disrupt-ը, որտեղ ես կարող էի տեսնել հնարավորությունների և նորարարության չափը:

Վերջերս բացակայող կտորն ինքս կարողացա նպաստել տեխնոլոգիային: Ես աշխատում էի ծրագրավորողների հետ; Ես տեսնում էի այն ապրանքները, որոնք ստեղծում էին ուրիշները… և, ի վերջո, ես ուզում էի լինել այդ աշխարհի մի մասը: Այսպիսով, սկսած փետրվարից, ես գնացի ուսուցման տարի, որը կենտրոնացած էր զրոյից ծրագրավորում սովորելու վրա՝ կենտրոնանալով վեբ հավելվածներ ստեղծելու վրա:

Կարճ ասած, ստացվեց: Այս տարի ես թողարկեցի 4 անգամ, որոնցից մեկը զբաղեցրեց թիվ 1-ը Product Hunt-ում, մյուսը, որը վերջերս մրցանակի արժանացավ ներառման համար և առաջադրվեց 2 Golden Kitty մրցանակի, և մյուսներն ունեին իրենց առանձնահատկությունները, օրինակ. սա, որը զբաղեցրել է 5-րդ տեղը 24-ժամյա ստարտափ մարտահրավերում:

Ես նույնիսկ առաջադրվել էի Տարվա ստեղծող անվանակարգում Product Hunt-ի ամենամյա Golden Kitty մրցանակաբաշխության մեջիմ առաջին կոդն իմանալուց մեկ տարի անց:

Կոդավորում սովորելը եղել է իմ կյանքի ամենահետաքրքիր ժամանակաշրջաններից մեկը և լիովին հասանելի է այս հոդվածը կարդացող յուրաքանչյուրի համար: Նախքան սկսելը, եկեք մի արագ քայլ հետ գնանք և հարցնենք, թե ինչու է դա նույնիսկ կարևոր:

Դժվար է վիճարկել, որ տեխնոլոգիական ոլորտը լինելու է ամենաազդեցիկ ոլորտը մեր ապագայի վրա, և շատ առումներով արդեն այդպիսին է: Մեր ապագայում ամենուր տարածված արտադրանքի պատրաստման վերաբերյալ որոշումները պետք է ընդունվեն ներկայացուցչական բնակչության կողմից: Քանի որ մենք հասկանում ենք զարգացումը, մենք վերացնում ենք այդ խոչընդոտը, որպեսզի մենք կարողանանք լինել այդ ապագայի մի մասը:

Շատերը դյուրանցումներ են փնտրում: Օրինակ, որոշ ընդհանուր որոնման հարցումներ ներառում են.

  • կոդավորում սովորելու հեշտ միջոց
  • ծրագրավորում սովորելու ամենահեշտ ձևը
  • կոդավորում սովորելու ամենաարագ ճանապարհը

Ճարպկության կամ պարզեցման մեջ վատ բան չկա, բայց ծրագրավորում սովորելը (հատկապես ինքնուրույն) պահանջում է նվիրում և ժամանակ: Այդ պատճառով այս հոդվածում դուք չեք գտնի դյուրանցումներ, քանի որ չեմ կարծում, որ դրանք կան: Այս հոդվածը կենտրոնանում է այն 7 առասպելների վրա, որոնք, իմ կարծիքով, կոդավորում սովորելու մասին են, քանի որ կարծում եմ, որ դրանք իսկապես ամենամեծ խոչընդոտներն են մարդկանց մասնակցության համար, այլ ոչ թե տեխնոլոգիան:

Ես կսկսեմ մի պատմվածքով.

Սարսափելի ավտովթար է տեղի ունենում, որի ժամանակ հայրը զոհվում է, իսկ որդին վիրավորվում է և տեղափոխվում հիվանդանոց։ Երբ տղային բերում են վիրահատության, վիրաբույժը նայում է տղային և ասում. «Ես չեմ կարող վիրահատել այս հիվանդին։ Սա իմ որդին է»

Ինչպե՞ս է դա հնարավոր:

Ընկալման կողմնակալություն

Եթե ​​դեռ չեք ստացել պատասխանը, ապա վիրաբույժը մայրն է: Շատ մարդիկ, ներառյալ ես, անմիջապես չեն գտնում այդ արձագանքը:

Սա պայմանավորված է մի բանով, որը կոչվում է ընկալման կողմնակալություն. մարդիկ հակված են «տեսնել իրերը»՝ հիմնվելով իրենց կոնկրետ հղման համակարգի վրա: Թվում է, թե պարզ է, ընկալման կողմնակալությունը, ըստ էության, զտիչ է ձեր կայացրած յուրաքանչյուր որոշման համար. ում եք վարձում, ինչ եք սովորում, ինչպես եք բանակցում և այլն:

Կարծում եմ, որ եթե դեռ չեք սկսել կոդավորել սովորել, ապա ձեզ պիտակավորել եք որպես մեկը, ով «ծրագրավորող չէ»: Ունենալով այդ գիտելիքները, ես կցանկանայի ձեզ ներկայացնել 3 ծրագրավորողների, ովքեր կարող են թվային նման չլինեն սովորական մշակողների, բայց, իհարկե, նման են:

Այսպիսով, հարց է առաջանում. Ինչո՞ւ է այդ ընկալումը նույնիսկ գոյություն ունենալ

Այս հարցին պատասխանելու համար կարևոր է իմանալ զարգացման պատմության մասին: Դեռևս 40-ական և 50-ական թվականներին, երբ զարգացումն առաջին անգամ սկսվեց, ծրագրային ապահովման հիմնական ինժեներներից շատերը իրականում կանայք էին, ինչպես Գրեյս Հոփերը:

Եկեք 1966, մուտքագրեք Cannon-Perry թեստը: Սա թեստ էր, որն արվել էր անհատների ընտրված խմբի վրա, որը փորձում էր բացահայտել, թե ովքեր են լավագույն ծրագրային ապահովման ինժեներները, և կային երկու հիմնական եզրակացություններ.

  1. Նրանք լավ խնդիրներ լուծողներ էին
  2. Նրանք, ըստ երևույթին, չէին սիրում մարդկանց

Այս «եզրակացությունը» ընդմիշտ փոխեց այն ձևը, որով տեխնիկական հավաքագրողները գտնում էին «լավագույն ծրագրավորողներին», և դա ինքնահաստատվում էր գալիք տասնամյակների ընթացքում: Այս հոգեբանական ընկալումը ներթափանցում է առասպելների մեջ, որոնք մենք ասում ենք ինքներս մեզ կամ ասում են մեզ ուրիշները՝ սովորելով ծածկագրել:

Եթե մեկ ուսումնասիրություն կարող է այդքան կտրուկ փոխել զարգացման հետագիծը, մենք կարող ենք ակտիվորեն շրջել այն՝ առհասարակ անդրադառնալով արգելքներին և առասպելներին:

Ահա նրանք. առասպելները, որոնք ժամանակին խանգարել են ինձ և, հուսով եմ, չեն խանգարի ձեզ սովորել այս արժեքավոր և հատուցող հմտությունը:

Առասպել 1. Այս աշխարհում երկու տեսակի մարդիկ կան

Ընդհանուր սխալ պատկերացում կա, որ կան երկու տեսակի մարդիկ՝ նրանք, ովքեր գիտեն, թե ինչպես կոդավորել, և նրանք, ովքեր չեն կարող: Որոշ դեպքերում պատկերն այնքան համատարած է, որ թվում է, թե այս երկուսի հետ կապված գրեթե այլ տեսակ կա՝ նրանց միջև մեծ, անթափանց պատնեշով:

Իրականությունը պարզապեսուսուցման կոր է: Ինչպես ցանկացած այլ լեզու կամ արդյունաբերություն, մեկը, ով 10 տարի է ծախսել սովորելով կոդավորումը, պարզապես ավելի հեռու է սովորելու այդ կորի երկայնքով:

Չգիտես ինչու, մարդիկ, ովքեր սկսում են իրենց համեմատել ուրիշների հետ տարիներ առաջ, սակայն դա տեղի չի ունենում այլ հմտությունների ձեռքբերման դեպքում: Դուք երբեք չեք համեմատի ձեզ մայրենի իսպանախոսի հետ լեզուն սովորելուց մի քանի շաբաթ անց, ոչ էլ ձեզ նրանցից պակաս ընդունակ չեք համարի:

Առասպել 2. Կույտը կարևոր է

Շատերը կախվում են կապի վրա: Նրանք հայտնվում են բլոգային գրառումներում, որոնք ասում են նրանց, որ մեկ կույտի կատարումն ավելի լավն է, կամ կոնկրետ լեզուն «մեռնում է»: Այս աղմուկը թույլ չի տալիս նրանց սկսել, ինչն իսկապես կարևոր է:

Իրականում, stack-ը նշանակություն չունի: Ստորև ներկայացված են երեք հաջողակ ընկերություններ, որոնց շատերը ծանոթ են: Երեքն էլ օգտագործում են բոլորովին այլ տեխնոլոգիաներ, և ոմանք նույնիսկ օգտագործում են լեզուներ, որոնք որոշ կոդերի սնոբներ կհամարեն «հնացած»:

  • FB: PHP և React
  • Spotify՝ Python և Java
  • Միջին: Node and Go

Խնդրում ենք մի հայտնվեք բլոգային գրառման մեջ, որը համեմատում է React-ն ընդդեմ Angular-ի ընդդեմ Vue-ի կատարումը: Մինչ դուք սովորում եք, սա կարևոր չէ: Գտեք ձեզ դուր եկած կույտը և կպցրեք դրան:

Առասպել 3. իրական ծրագրավորող լինելու համար պետք է սովորել 3820 լեզու/շրջանակ

Ստորև ներկայացված է զարգացման էկոհամակարգի պատկերը: Պատկերը նույնիսկ չի ֆիքսում այն ​​ամենը, ինչ կա, բայց նույնիսկ այն, ինչ ցուցադրվում է, հեղեղում է մարդկանց և, անշուշտ, հեղեղում է ինձ: Ոչ մի ծրագրավորող երբեք չի իմանա այս ամենը, սակայն սա այն է, ինչը վախեցնում է մարդկանց:

«Տեխնոլոգիական արդյունաբերությունն այնքան արագ է առաջ շարժվում»: «Այնքան նոր բաներ են հայտնվում: Ծրագրավորման ո՞ր լեզու եմ սովորում: «Ամեն օր կա Javascript-ի նոր շրջանակ: Որտեղի՞ց սկսեմ»: «Ես չգիտեմ, թե ինչ է նշանակում այս ամենը»:

«Ես երբեք չեմ կարող ծրագրավորող լինել, քանի որ շատ հետ եմ»:

Ստորև բերված պատկերը իմ իրականությունն է այդ էկոհամակարգում, և ես գործարկել եմ յուրաքանչյուր հավելված կամ նախագիծ այս կույտով: Սրանք այն նույն նախագծերն են, որոնք հաջողությամբ են պսակվել, մրցանակներ են շահել և իրականում որոշակի եկամուտ են բերում: Անտեսեք վերը նշված պատկերը և հիշեք, որ դուք միայն պետք է սովորեք մի բան նման, ինչ տեսնում եք ստորև:

Կարևոր նշում. դուք կարիք չունեք սովորելու իմ ստեկը, քանի որ. stack-ը նշանակություն չունի: :)

Ստորև բերված է պարզ կառուցվածք՝ մտածելու այն մասին, թե ինչ պետք է սովորեք, եթե զբաղվում եք ձեր սեփական նախագծերով: Կարևոր է նշել, որ սա ակնհայտորեն տարբերվում է, եթե դուք վճարովի ծրագրավորող եք, բայց բոլորը պետք է ինչ-որ տեղից սկսեն:

Եթե ​​դուք ստեղծում եք պարզ ստատիկ կայք, ձեզ հարկավոր է միայն HTML և CSS: Երբ սկսում եք ֆունկցիոնալություն ավելացնել, դուք, բնականաբար, կներգրավվեք Javascript-ի մեջ: Սկզբում սովորեք վանիլային Javascript և jQuery և անտեսեք շրջանակները: Դրանք հետագայում կարող են հիանալի լինել, բայց սկզբում ուշադրությունը շեղող են:

Քանի որ ձեզ անհրաժեշտ են այնպիսի բաներ, ինչպիսիք են նույնականացումը կամ տվյալների բազան, ձեզ հարկավոր կլինի հետին պլան: Բայց կրկին, մի ծանրաբեռնվեք ընտրությամբ, քանի որ ձեզ իսկապես անհրաժեշտ է միայն 1 տվյալների բազա (ինձ համար՝ Mongo) և 1 հետին պլանի լեզու (ինձ համար՝ Node):

Առասպել 4. «Ես պարզապես ծրագրավորում չեմ ստանում և երբեք չեմ ստանա»

Ես ուզում եմ տարբերակել մի բան, որը կարծում եմ շատ կարևոր է։ Տրամաբանություն != (չի հավասարվում) շարահյուսություն: Տրամաբանությունն այն է, ինչին փորձում եք հասնել, մինչդեռ շարահյուսությունը կանոնների հատուկ շարք է, որը ձեզ տանում է այնտեղ. հատուկ նիշերը, որոնք համակարգիչը կարող է վերլուծել:

Մարդկանց մեծամասնության համար տրամաբանությունը անմիջապես կտտացնում է, բայց նրանք կախված են այն փաստից, որ նրանք անմիջապես չեն հասկանում շարահյուսությունը: Դա բնական է! Շարահյուսությունը չհասկանալը չի ​​նշանակում, որ դուք ի վիճակի չեք մշակողի պես մտածել կամ հասկանալ այդ տրամաբանությունը: Շարահյուսությունը ժամանակ է պահանջում, և կոդավորում սովորելու լավագույն մասն այն է, որ ձեզ հասանելի է մշտական ​​առցանց բառարան, որը Google-ն է:

Առասպել 5. «Ես կառուցելու ոչինչ չունեմ»

Եթե ​​դուք իսկապես հավատում եք, որ կառուցելու ոչինչ չունեք, ապա գրեթե անկասկած, չափազանց դժվար եք փնտրում կատարյալ գաղափարը: Եթե ​​մենք նայենք որոշ խոշորագույն տեխնոլոգիական ընկերություններին և դրանք թորենք մինչև իրենց ամենապարզ ձևը.

Ես գրեթե կարող եմ ձեզ խոստանալ, որ դուք մի օր չեք արթնանա և չեք գտնի կատարյալ գաղափարը: Գաղափարներն ու կատարումը միմյանց գործառույթներն են, բայց, ի վերջո, իրագործումն արժե շատ ավելին, քան գաղափարները: Սա ընդունելը իրական ստեղծման և գործարկման կարևոր նախադրյալ է, որն իսկապես կարևոր է:

Վարկ Դերեկ Սիվերսին այս գաղափարի և դրա իրականացման համար, որպեսզի աշխարհն իմանա դրա մասին: Բազմապատկեք երկու ամբողջ թվերը միասին՝ արժեքի վստահված անձի համար:

20 (զարմանալի գաղափար) x 10000 (միջին կատարում) = $200,000
1 (թույլ գաղափար) x 1000000 (հիանալի կատարում) = $1,000,000

Առասպել 6. «Ես շատ ուշ սկսեցի»

«Ուշ սկսելը» իմաստ ունի քմահաճույքների համար: Օրինակ՝ եթե դուք չեք նստել ֆիդջեթ սփիներ գնացք, կներեք, բաց եք թողել նավը: Այնուամենայնիվ, տեխնոլոգիան մոդա չէ: Այն գնալով ավելի ու ավելի է տարածվում մեր կյանքում և ցույց չի տալիս դանդաղման որևէ նշան:

Այս հայեցակարգի իմ լավագույն բացատրությունը հետևյալն է.

«Ամեն օր ավտոբուս է մեկնում տեխնոլոգիական աշխարհ, և դուք կարող եք նստել այդ ավտոբուսը: Եթե ​​կարոտում եք այն այսօր, վաղը մեկնում է ևս մեկը, և դա կշարունակվի ճշմարիտ տարիներ և տարիներ շարունակ: Ուրեմն լավություն արա և նստիր այդ ավտոբուսներից մեկը»:

Նաև սխալ պատկերացում կա, որ այնքան շատերը գիտեն, թե ինչպես կոդավորել, և դա արդեն մրցունակ է: Դե, իրականում աշխարհի միայն 0,5%-ը գիտի, թե ինչպես կոդավորել: Եթե ​​մենք դրան մոտենանք Նորարարության դիֆուզիոն կորով, մենք դեռ շատ նորարարության փուլում ենք: Դուք կարող եք և պետք է լինեք դրա մի մասը, և դուք շատ ուշ չեք սկսել:

Առասպել 7. «Ես բավականաչափ ժամանակ չունեմ»

Կոդավորում սովորելու համար այնքան ժամանակ չի պահանջվում, որքան կարծում եք: Դա կարող է տևել մի քանի ամիս կամ նույնիսկ շաբաթներ, եթե դուք իսկապես նվիրված եք:

Ես նաև կհրավիրեի ձեզ փորձել իմ Make Yourself Great Again հավելվածներից մեկը, որն օգնում է ձեզ քննադատաբար մտածել այն մասին, թե ինչպես եք ծախսում ձեր ժամանակը և ինչպես կարող է շեղելու ժամանակի վերաբաշխումը հանգեցնել բովանդակալից աճի և սովորելու:

Քանի որ ես հետևում էի իմ ջանքերին տարվա մեծ մասի համար, ես կարողացա որոշել, որ վերջին 10 ամիսների ընթացքում հավանաբար ծախսել եմ ~300 ժամ կոդավորում սովորելու համար: Չնայած յուրաքանչյուր անհատի համար այն կտարբերվի, այս 300 թիվը մեզ շատ ավելի լավ պատկերացում է տալիս, թե դա իրականում որքան ժամանակ է տևում:

Եթե ​​շաբաթական 1 ժամ եք ծախսում կոդավորում սովորելու համար, այո, դա տևում է ընդմիշտ (6 տարի): Քանի որ մենք չափում ենք այն մինչև օրական 1 ժամ, դուք արդեն մեկ տարուց պակաս եք տեսնում: Եթե ​​դուք ավելի մեծացնում եք ձեր հանձնառությունը՝ ավելի շատ կենտրոնանալու համար կես դրույքով կամ լրիվ դրույքով, մենք դիտարկում ենք ընդամենը ամիսներ, մինչև դուք կկարողանաք ստեղծել լիարժեք հավելվածներ:

Նշենք, որ խոչընդոտների մեծ մասը, որոնք մի ժամանակ արգելափակել են ինձ և կարող են խանգարել ձեզ սովորել, հոգեբանական են: Զարգացման աշխարհը տեսականորեն հասանելի է, եթե մենք կարողանանք վերացնել այս մտավոր և հասարակական խոչընդոտները: Լավագույն խորհուրդը, որը ես կարող եմ տալ ձեզ, դա սկսելն է, քանի որ դա իսկապես միակ միջոցն է զարգացումը տեղադրելու այնպիսի վայրում, որը դուք ընկալում եք որպես մատչելի:

Շատ մարդիկ ի վերջո խրվում են, թե ինչ լեզվով պետք է սովորեն կամ ինչպես առավել արդյունավետ սովորեն՝ փնտրելով այնպիսի բաներ, ինչպիսիք են.

  • կոդավորում սովորելու լավագույն միջոցը (SV: 2400)
  • կոդավորում սովորելու լավագույն կայքերը (SV: 1600)
  • կոդավորում սովորելու լավագույն կայքերը (SV: 1000)
  • սովորելու լավագույն կոդը (SV: 480)

Ահա մի գաղտնիք. կոդավորում սովորելու լավագույն միջոց չկա: Յուրաքանչյուր ոք սովորում է փոքր-ինչ տարբեր կերպ, բայց մարդկանց միջև ընդհանրությունը, որոնք իրականում սովորում են, հետևողականությունն ու հաստատակամությունն է: Բոլոր հիմնական գործիքները (Code Academy, Free Code Camp, Udacity, Udemy և այլն) արդյունավետ կերպով սովորեցնում են ձեզ, ուստի դա պետք է սկսել:

Այսպիսով, ես խրախուսում եմ ձեզ սկսել այսօր: Դուք կարող եք հավելվածներ ստեղծել շաբաթների ընթացքում:

Եթե ​​ցանկանում եք ավելին իմանալ այն մասին, թե ինչպես եմ ես հատուկ մոտեցել ուսմանը այս տարի, կարող եք կարդալ Իմ Սպունգի տարին և Դիտեք իմ ելույթը: Ես նաև այստեղ եմ Twitter-ում. խնդրում եմ տեղեկացրեք ինձ, եթե սկսեք սովորել:

Սկզբնապես հրապարակվել է blog.stephsmith.io-ում 2019 թվականի հունվարի 24-ին:

Այս պատմությունը հրապարակված է The Startup-ում՝ Medium-ի խոշորագույն ձեռնարկատիրական հրատարակությունում, որին հաջորդում է +417,678 մարդ:

Բաժանորդագրվեք՝ ստանալու մեր լավագույն պատմություններն այստեղ: