Մեկ լեզու՝ բոլորին կառավարելու համար

Ծածկագրի շերտի տակ թաքնված լեզուն թուլանում է՝ սովորելու ցանկությամբ:

Մեկ լեզու՝ բոլորին կառավարելու համար

Այս գրելու պահի դրությամբ «ծրագրավորում, թե որ լեզուն պետք է սովորել առաջինը» հարցումը վերադարձնում է 517 միլիոն որոնման արդյունք: Այս կայքերից յուրաքանչյուրը կգովաբանի մեկ կոնկրետ լեզու, և դրանց 90%-ը կառաջարկի Python կամ JavaScript:

Առանց հետագա անհանգստության, ես կցանկանայի արձանագրել, որ այս բոլոր 517 միլիոն կայքերը սխալ են, և որ լեզուն, որը դուք պետք է առաջինը սովորեք, դա է. հիմնարար տրամաբանություն.

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

*այսուհետ, խնդրում ենք հիշել, որ սա թարգմանություն է, և աշխատաշուկայի իրավիճակը հեղինակի և ձեր երկրում կարող է տարբեր լինել (ինչպես նաև այլ նրբերանգներ), ինչը, սակայն, ինքնին չի վատթարացնում բնօրինակ հոդվածը. մոտ. թարգմանությունը

Համակարգչային գիտության իմ առաջին դասը

Համակարգչային գիտություններին իմ առաջին ծանոթությունը ընտրովի առարկա էր, որը ես ընդունեցի 10-րդ դասարանում: Հենց առաջին օրը, մտնելով դասարան, ուրախացա՝ իմ դիմաց տեսնելով մեծ քանակությամբ դույլեր պաղպաղակով և զանազան տոփինգներով։ Բոլորը նստելուց հետո ուսուցիչը հայտարարեց.

«Այսօր մենք կհամտեսենք ինքնուրույն պատրաստված պաղպաղակներ։ Բայց մեկ պայմանով՝ դուք պետք է կազմեք կոնկրետ հրահանգների ցանկ, թե ինչպես պատրաստել աղանդերը, և ես կհետևեմ դրանց»։

«Խնդիր չկա,- մտածեցի ես,- այս դասը երկար չի տևի»: Մեկ րոպեի ընթացքում ես գրեցի իմ երազանքների պաղպաղակի կատարյալ բաղադրատոմսը.

  1. Քերեք և երեք գդալ ազնվամորու պաղպաղակ դրեք ամանի մեջ
  2. Բացեք շոկոլադե սոուսը և նույն ամանի մեջ ավելացրեք երկու ճաշի գդալ
  3. Թասի մեջ ավելացնել հարած սերուցքը
  4. Այդ ամենը շաղ տալ շաքարավազի ձողիկներով և վրան դնել բալ

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

«Լավ, լավ, բայց նախ պետք է բացել այն»: - բացականչեցի ես՝ փորձելով որքան հնարավոր է շուտ ստանալ բուժումը:

«Դուք դա չեք գրել հրահանգների մեջ, և ես չէի կարող ձեզ պաղպաղակ պատրաստել: ՀԱՋՈՐԴ!

Եկեք արագ առաջ անցնենք թիվ 2 փորձին

  1. Բացեք ազնվամորու պաղպաղակը` հանելով կափարիչը
  2. Քերեք և երեք գդալ ազնվամորու պաղպաղակ դրեք ամանի մեջ
  3. Բացեք շոկոլադե սոուսը և նույն ամանի մեջ ավելացրեք երկու ճաշի գդալ
  4. Թասի մեջ ավելացնել հարած սերուցքը
  5. Այդ ամենը շաղ տալ շաքարավազի ձողիկներով և վրան դնել բալ

Դե, հիմա հաստատ խնդիրներ չպետք է լինեն։ Ամեն դեպքում ես համոզվեցի, որ իմ խոհարարական գլուխգործոցը պատրաստելու բոլոր բաղադրիչները բաց են։

Ուսուցիչը հանեց կափարիչը, փաթաթեց և երեք գդալ պաղպաղակ դրեց ամանի մեջ: «Վերջապես, իմ գեղեցիկ պաղպաղակը սկսեց իրականանալ»: Այնուհետև նա բացեց շոկոլադե սոուսը և երկու ճաշի գդալ ավելացրեց ամանի մեջ: Նա «երկու ճաշի գդալից շոկոլադե սոուս չավելացրեց», այդպես մի՛ կարծեք, նա, իհարկե, գդալներն իրենք դրեց ամանի մեջ: Նրանց մեջ սոուս չկա: Կրկին, ես չփորձեցի ամեն ինչ ճշգրիտ գրել: Այն բանից հետո, երբ մնացածն արվեց նույն ոգով, ես ստացա մի գավաթ պաղպաղակ և երկու ճաշի գդալ, որոնք հազիվ նկատելի էին հարած սերուցքի ծովի տակ: Վերևում մի զույգ շաքարավազ կար։

Թվում է, թե այս պահին ինձ վերջապես պարզվեց. համակարգիչը տրամաբանություն է վակուումում։ Նա տեղյակ չէ շրջապատող հանգամանքներից և ենթադրություններ չի անում։ Նա կատարում է միայն հստակ ձևակերպված հրահանգներ և բառ առ բառ հետևում դրանց։

Իմ վերջնական արդյունքը երկար, բայց անհրաժեշտ փորձությունների և սխալների շարքի արդյունքն էր.

  1. Եթե ​​դեռ չեք արել, բացեք հետևյալ փաթեթներից յուրաքանչյուրը՝ ազնվամորու պաղպաղակ, շոկոլադե սոուս, հարած սերուցք, շաքարի ձողիկներ։
  2. Հանեք մի գունդ և դրեք այն ձեր առջև
  3. Վերցրեք պաղպաղակի գդալ և երեք գդալ ազնվամորու պաղպաղակ մեկ առ մեկ դրեք ամանի մեջ: Պաղպաղակի գդալը նորից դրեք տեղում:
  4. Վերցրեք մի բանկա շոկոլադե սոուսով, քամեք սոուսը և ճաշի գդալի պարունակությունը լցրեք ամանի մեջ: Կրկնել ևս մեկ անգամ քամելու և լցնելու գործընթացը։ Գդալն ու տարան նորից դրեք տեղում։
  5. Հարած սերուցքի փաթեթը գլխիվայր վերցրեք և ամանի վրա պահելով, 3 վայրկյան լցրեք պաղպաղակի վրա, ապա փաթեթը վերադարձրեք իր տեղը։
  6. Վերցրեք մի բանկա շաքարավազի ձողիկներ, մոտ քառասուն ձողիկներ լցրեք ամանի մեջ և ետ դրեք բանկա:
  7. Բալի ամանի միջից վերցրեք մեկ բալ և դրեք պաղպաղակի վրա։
  8. Ուսանողին տվեք պատրաստի պաղպաղակով մի բաժակ և գդալ:

Վերջին կետը հատկապես կարևոր էր, քանի որ առանց դրա նախավերջին անգամ ուսուցիչը պարզապես սկսեց ուտել իմ պաղպաղակը։

Բայց սա ծրագրավորում է: Համակարգչի համար զգույշ հրահանգների ստեղծման սթրեսը: Ըստ էության, սա այն է, ինչին հանգում է յուրաքանչյուր ծրագրավորման լեզու՝ հրահանգներ գրելը:

Կարիերա ծրագրավորման ոլորտում

Ծրագրավորումը հասել է այն աստիճանին, որ դժվար է քննարկել որպես առանձին արդյունաբերություն, ինչպես որ դժվար է օգտագործել «ծրագրավորող» բառը որպես աշխատանքի նկարագրություն: Երկու ծրագրավորողներ կարող են հավասարապես պահանջված լինել շուկայի կողմից՝ իմանալով բոլորովին տարբեր լեզուներ, ինչը նշանակում է, որ զարգանալու կարողությունն ավելի կարևոր է, քան կոնկրետ լեզվի իմացությունը: Համընդհանուր հատկանիշ, որը կիսում են բոլոր հաջողակ մշակողները հիմնարար տրամաբանություն.

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

Այս ամենն ինձ բերում է մեկ այլ հայտարարության՝ այս անգամ թավով. Հիմնական գիտելիքները միշտ եղել են և կլինեն ծրագրավորողի համար առաջնային.

Լեզուները գալիս ու գնում են։ Շրջանակները դառնում են հնացած, և ընկերությունները պատասխանում են պահանջարկին՝ փոխելով իրենց օգտագործած տեխնոլոգիական փաթեթը: Կա՞ մի բան, որը երբեք չի փոխվի: Այո, հիմնարար գիտելիք, որը կոչվում է հիմնարար, քանի որ այն ընկած է ամեն ինչի հիմքում:

Ինչպես բարելավել հիմնարար գիտելիքները

Մեկ լեզու՝ բոլորին կառավարելու համարԼուսանկարը՝ Քրիստոֆերի Յեշկե մասին Unsplash

Եթե ​​դուք ելակետ եք փնտրում ձեր հիմնարար տրամաբանական մտածողությունը բարելավելու համար, փորձեք սկսել այստեղից.

Իմացեք ձեր ծրագրի բարդությունը

Կոչվում է նաեւ Մեծ Օ «Ալգորիթմի բարդությունը» վերաբերում է ծրագրի կատարման համար պահանջվող ժամանակի կախվածությանը դրա մուտքային տվյալների չափից: (n). Ձեր մատը կիրառվող ալգորիթմների զարկերակի վրա պահելը կարևոր քայլ է:

Իմացեք ձեր տվյալների կառուցվածքները

Տվյալների կառուցվածքները յուրաքանչյուր ժամանակակից ծրագրի հիմքում են: Իմանալը, թե որ դեպքում որ կառույցն օգտագործել, ինքնին կարգապահություն է: Տվյալների կառուցվածքներն ուղղակիորեն կապված են գործարկման ժամանակի բարդության հետ, և սխալ կառուցվածքի ընտրությունը կարող է հանգեցնել աշխատանքի հիմնական խնդիրների: Զանգվածում տարր գտնելն է O (n), որը ցույց է տալիս զանգվածները որպես մուտքային տվյալներ օգտագործելու բարձր արժեքը։ Հաշ աղյուսակի որոնում - Ո (1), ինչը նշանակում է, որ այս դեպքում արժեք փնտրելու ժամանակը կախված չէ տարրերի քանակից։

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

Կարդացեք / դիտեք / լսեք

Նման կայքեր UdemyՊլյուրալսթայթ и CodeAcademy - Գերազանց ընտրություն նոր ծրագրավորման լեզուներ սովորելու համար: Բայց հիմունքների համար խորհրդակցեք գրքերի ընդհանուր կոդավորման սկզբունքների, պրակտիկայի և ոճերի վերաբերյալ: Ամենաառաջարկվող գրքերն են «Դիզայնի նախշեր», «Վերափոխում. Գոյություն ունեցող օրենսգրքի բարելավում, «Կատարյալ կոդ», «Մաքուր կոդ» և «պրագմատիստ ծրագրավորող»: Ի վերջո, յուրաքանչյուր ծրագրավորող պետք է պահի «Ալգորիթմներ«ձեռքի տակ.

Պրակտիկա՛

Դուք չեք կարող եփած ձու պատրաստել առանց ձու կոտրելու: Կայքեր, ինչպիսիք են HackerRankCodeWarsCoderByte, TopCoder- ը и LeetCode առաջարկեք հազարավոր հետաքրքիր հանելուկներ տվյալների կառուցվածքների և ալգորիթմների վերաբերյալ ձեր գիտելիքները ստուգելու համար: Փորձեք ձեր բախտը լուծել ձեզ դուր եկած խնդիրը, տեղադրեք ձեր լուծումը Github-ում և այնուհետև տեսեք, թե ինչպես են դրան մոտենում մյուսները: Ինչը մեզ բերում է վերջին կետին.

Կարդացեք այլ մարդկանց կոդը

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

Լավագույն խորհուրդը, որ կարող եմ տալ, երբեք չամաչել, որ դեռ ինչ-որ բան չգիտես: Ինչպես արդեն ասվել է, մեր արդյունաբերությունը հսկայական է, և տեխնոլոգիաների քանակը անսահման է: Շատ ժամանակ և ջանք է պահանջվում ընդհանուր պատկեր ստեղծելու համար, նույնիսկ ավելի շատ՝ կոնկրետ ինչ-որ բանում պրոֆեսիոնալ դառնալու համար, և ավելի մեծ կարգ՝ ձեր ոլորտում հմտությունները կատարելագործելու համար: Ես ձեզ կտեղեկացնեմ, երբ ինքս հասնեմ դրան:

Source: www.habr.com

Добавить комментарий