Ինչը պետք է իմանա հետադարձող մշակողը: Frontendentendent- ից `հետադարձ տալ

Թափուր աշխատատեղ.
Վերադառնալ վեբ մշակող

Վեբ-զարգացման ոլորտում պահանջվող մասնագիտություններից մեկը հետադարձության ստեղծումն է, այսինքն `վեբ հավելվածի սերվերի մասը: Մասնագետների հաջող աշխատանքի համար անհրաժեշտ է գիտելիքի եւ հմտությունների որոշակի ուղեբեռ: Ընկերությունների ներկայացուցիչները պատմում են, թե ինչ մասնագետներ են ցանկանում տեսնել իրենց թիմում

  1. Ինչ գիտելիքներն ու հմտությունները պետք է ունենան հետեւի-վեբ մշակողը:
  2. Որն է հետադարձ վեբ մշակողի գործիքակազմը:
  3. Որոնք են ընկերության պահանջները հնարավոր աշխատակիցների ձեւավորման համար:
  4. Որոնք են աշխատանքային փորձի պահանջները:
  5. Կան հատուկ պահանջներ, որոնք պայմանավորված են ընկերության առանձնահատկությամբ:

Արթուր Բոժենով, Ներքին ավտոմատացման դեպարտամենտի դրական տեխնոլոգիաների ավագ ծրագրավորող

Timur Himullin, Բնական ինժեներ Ավտոմատացման փորձարկման դեպարտամենտի զարգացման տեխնոլոգիաների դրական տեխնոլոգիաներ

1. Արթուր Բոժենով. Հետադարձ վեբ մշակողը պետք է ունենա հետեւյալ հմտություններն ու գիտելիքները.

  • Բազմաշերտ ծրագրավորում;
  • Թթու (ատոմականություն, հետեւողականություն, մեկուսացում, հուսալիություն, հուսալիություն) եւ դրանց կիրառման սկզբունքները.
  • network անցի ճարտարապետության եւ արձանագրությունների ընդհանուր սկզբունքներ.
  • hTTP պահանջի / պատասխանի կյանքի ցիկլը, անցուղու ուղին;
  • network անցային կապերի պաշտպանություն (HTTPS): Թույլտվություն: Ռեսուրսների մուտքի իրավունքներ սահմանելը.
  • Հանգստյան, Օդատա, Webapi, օճառ;
  • Վեբ ծառայություններ;
  • Վեբ դիմումի հոստինգ (IIS, Nginx, Lighttpd, Node.js, Apache);
  • Լուծման մասշտաբելը, հավասարակշռման / երթուղղման պահանջները.
  • մուտք;
  • Տվյալների պահոց;
  • Տվյալների պահպանում (պահպանման մեթոդի համարժեք ընտրություն, կախված առաջադրանքից).
  • Աշխատել մեծ քանակությամբ տվյալների հետ:

2. Արթուր Բոժենով. Հիմնական գործիքակազմ Backend Web Developer:

  • Հարմարավետ IDE (Visual Studio, Netbeans եւ այլն);
  • regex- ի արտահայտությունների, JSON, XML- ի ստեղծման / դիտման / փոփոխման ծառայություններ `json, xml, տեքստը ոչ պատշաճ կոդավորման մեջ.
  • Google- ը եւ Stackoverflow- ը;
  • MongoDB / Redis / Memcached;
  • Elasticsearch / Kibana;
  • Rabblmq / Zeromq / MSMQ եւ այլ MQ.

Timur Himullin: Ինչ վերաբերում է IDE- ին, սա համի դեպքն է, գոնե նոթատետրը (SABLOIM, ԱԷԿ), բայց ես ավելի լավ տեսք կունենայի jetbrain արտադրանքի ուղղությամբ եւ մյուսներին, ովքեր լավ ինտեգրված են միմյանց հետ:

3. Արթուր Բոժենով. Ավելի բարձր (ըստ ցանկության) տեխնիկական (պարտադիր է): Փորձառություն Գործնական աշխատանք ավելի կարեւոր:

Timur Himullin: Ինչ վերաբերում է կրթությանը, ապա դա ավելի լավ է տեխնիկական կամ մաթեմատիկական:

4. Արթուր Բոժենով. 3-5 տարվա ոչ առաջնային զարգացում:

Timur Himullin: Վերադառնալու մշակողների համար ես չեմ կարող հստակեցնել:

5. Արթուր Բոժենով. Վերլուծական միտք:

Timur Himullin: Թիմում աշխատելու իրական հմտությունն ու բանակցությունների կարողությունը: Մի մշակող, որը չգիտի, թե ինչպես մոդելավորել եւ ընթանում է անմիջապես աշխատել, առանց մտածելու ընդհանուր ճարտարապետության եւ բոլոր դիմումների մոդուլների փոխազդեցության, ես ոչ մի տեղ չէի խաղա: Արտաքին գործի վրա թող նստենք:

Evgeny Kuzin, Network անցային ծրագրերի վարչության պետ,ՍՊԸ «Բժիշկ վեբ»

1. Նախեւառաջ, հետեւի վեբ մշակողը պետք է ունենա ընդհանուր ուղեբեռ բոլոր ծրագրավորողների համար `ինժեներական մտածողությունը, առաջադրանքի էությունը մտնելու ունակությունը, այն լուծելու համար անհրաժեշտ է ընտրեք գործիքները:

Վեբ դիմումների ճարտարապետությունը զգալիորեն տարբերվում է սովորական ճարտարապետությունից Կիրառական ծրագրաշար Նախեւառաջ, տասնյակ մարդիկ միեւնույն ժամանակ, եւ երբեմն հարյուրավոր օգտվողներ կարող են աշխատել վեբ ծրագրերի հետ: Հաճախորդների մեկուսացում միմյանցից, համակարգի անվտանգությունը, համակարգը մասշտաբելով եւ հարակից ճարտարապետական \u200b\u200bեւ տեխնիկական լուծումներն ամբողջությամբ ընկնում են համակարգը եւ հարակից ճարտարապետական \u200b\u200bեւ տեխնիկական լուծումները:

Երկրորդ, վեբ ծրագրավորողի համար կարեւոր է արձագանքել զգայուն ինտերնետի զարգացմանը, վերլուծել օգտագործված տեխնոլոգիաներն ու գործիքները:

Վեբ ծրագրավորողը չպետք է վախենա նոր տեխնոլոգիաների տիրապետելուց, պետք է հեշտ լինի բարձրանալ (համեմատած գործընկերների - կիրառական ծրագրավորողների հետ) եւ կարող եք արագ գործել:

2. Ես հատուկ ծրագրեր չեմ անվանում, քանի որ յուրաքանչյուր տեսանկյունից հնարավոր է համարժեք տարբերակներ:

Իհարկե, զննարկիչը, վեբ էջում տարրերով եւ գրություններով վերլուծության, ստուգման եւ մանիպուլյացիայի համար անհրաժեշտ բոլոր ընդարձակումներով: Այնուհետեւ այն կոմունալ հարմարությունները, որոնք թույլ են տալիս ուղարկել մի շարք հարմարեցված HTTP հարցումներ (10% Վեբ-մշակումն է HTTP արձանագրություն) եւ հաճախորդի եւ սերվերի միջեւ մանրամասն վերլուծում են երթեւեկության եւ տվյալների փոխանակում եւ տվյալների փոխանակում: Նաեւ հետադարձ վեբ մշակող պետք է Տեքստի խմբագիրDesirable անկալի է օգտագործված ծրագրավորման լեզուների, կարգաբերման գործիքների, պրոֆիլավորման եւ վերահսկողության աջակցությամբ:

Առանձին-առանձին հարկ է նշել տեխնիկական փաստաթղթեր գրելու կամ արտադրելու գործիքներ: Փաստաթղթերը լավ են, լավ փաստաթղթերը նույնպես վատ չեն:

Եվ, իհարկե, հիմնական գործիքները գլուխն են եւ ուղիղ ձեռքերը:

3. Բացարձակապես անհրաժեշտ է ռուսերեն ճանաչել, կարողանալ հստակ եւ հստակ նշել ձեր մտքերը գործընկերների հետ շփվելու մեջ, ինչպես գրավոր, այնպես էլ բանավոր: Մնացածի համար մենք դիմորդներ չենք պահանջում ավելի բարձր տեխնիկական կրթության պարտադիր ձեւով կամ ցանկացած վկայականի առկայության մասին. Լուծել աշխատանքի որակը եւ գործնական գիտելիքները:

4. Ահա նույն սկզբունքը, ինչ կրթության մեջ: Փորձ, փորձ - անվերապահ կողմ, բայց յուրաքանչյուր թեկնածուի համարում ենք անհատապես:

5. Եթե մենք խոսում ենք ինտերնետի համար ճշգրիտ զարգանալու մասին, ապա վեբ զարգացումն արդեն ներկայացնում է կիրառման ստեղծում, որն աշխատում է օգտագործողի համար հասարակական միջավայրում, որոնց իրական նպատակը անհայտ է: Ծրագրավորում եք ցանկացած գործողություն, դուք պետք է ինքներդ ձեզ հարցեր տվեք. Ինչ կլինի, եթե օգտագործողը (հարձակվող) ավտոմատացնում է այս գործողությունների անսահման կատարումը: Ինչ անել, եթե դիմումի մուտքագրման տվյալները կամայականորեն խմբագրվեն: Որ եթե այս ծառայության հղումը մտնում է Բաց մուտքԱրդյոք այն կփոխանցվի IM- ի միջոցով մեկ այլ օգտվող: Եվ այլն

Մեր գործունեության առանձնահատկությունների շնորհիվ մենք հաճախ ընթանում ենք հարձակվողների ճանապարհը, եւ այն տվյալները, որոնց հետ մենք աշխատում ենք որոշակի շրջանակներում, մեծապես մանրակրկիտ պաշտպանություն են պահանջում:

Նիկոլայ Նեթրատ, նոր զարգացման ղեկավար, Badoo

1. Badoo- ի հետեւի վեբ մշակողը, ինչպես ցանկացած լավ ինժեներ, պետք է կարողանա հասկանալ առաջադրանքը եւ կարողանա արդյունավետորեն լուծել այն առկա տեխնոլոգիաների եւ գործիքների շրջանակներում: Մենք օգտագործում ենք php + mysql, այնպես որ մեր վեբ մշակողը նախեւառաջ պետք է անվճար լինի PHP եւ SQL: Պետք է պատասխանատու լինի եւ ձգտեք լավ կատարել իր աշխատանքը `հետեւել ժամկետները, հասկանալ առաջադրանքի արտադրանքը / տեխնիկական արժեքը, պատասխանելով վերջնական որակի:

2. Հիմնական հավաքածուն PHP, MySQL, Nginx, Git, Jira, IDE, սիրված զննարկիչ եւ հրամանի տող, Բացի այդ, մենք ունենք մեծ թվով տարբեր գործիքներ, համակարգեր, գրադարաններ, որոնք մշակողները օգտագործվում են ամենուր, որոշակի առաջադրանքներ լուծելու համար: Այս գործիքներից մի քանիսը մատչելի են բաց կոդով, օրինակ, PINBA- ն իրական ժամանակի PHP մոնիտորինգի գործակալ է, մեր ծածկագրի ձեւաչափման գործիքը PHPCF է, լեպտիկ գրադարանի համար:

3. Եթե մարդը բավարարում է մեր հմտությունները եւ գիտելիքների պահանջները, ապա մենք պատրաստ ենք նրան աշխատանք առաջարկել, անկախ նրա կրթությունից:

4. Իրավիճակը նման է կրթության իրավիճակին. Ոչ խիստ եւ պաշտոնական պահանջներ:

5. Մեր նախագծերը ունեն մեծ լսարան եւ բավականաչափ բեռնված PHP-- տված: Գագաթներում նրանք կարգավորում են վայրկյանում մինչեւ 50 հազար հայց: Այս առումով մենք հատուկ ուշադրություն ենք դարձնում արտադրողականության թեմային: Անհրաժեշտ է հասկանալ պահուստավորման, վերարտադրության, օպտիմալ աշխատանքի հիմնական սկզբունքները, օպտիմալացնել ռեսուրսների սպառումը եւ բաշխումը: Կարող եք ցանկացած մակարդակի վրա տեսնել եւ տեղայնացնել արտադրողականության խնդիրը:

Դենիս փողոցը, տեխնոլոգիական զարգացման բաժնի վարիչ եւ «NTC IT Rosa» ընկերության ղեկավար

1. NTC- ում նման դիրքի թեկնածուն IT Rosa- ն անհրաժեշտ կլինի հետեւյալ հմտություններով.

  • ruby- ի լավ իմացություն 4.x;
  • վարքի վրա հիմնված զարգացմանը ծանոթությունը.
  • Ծանոթություն Կոլեկտիվ զարգացման սկզբունքներին. Տարբերակների կառավարման համակարգեր, առաջադրանքի որոնիչներ եւ այլն;
  • Տվյալների բազաների (ինչպես հարաբերական, այնպես էլ nosql) փորձ.
  • slim / Haml- ի հետ փորձ;
  • javaScript- ի / դագաղի հետ գիտելիք եւ փորձ;
  • cSS / SCSS գիտելիք:

2. NTC IT Rosa- ում Վեբ-զարգացման համար ներկայումս օգտագործվում է Bootstrap Framework, ինչպես նաեւ JavaScript Framework Angularjs: PostgreSQL- ը եւ Redis- ը օգտագործվում են տվյալները պահելու համար: Ռուբայի վրա ռուբլիի զարգացումը իրականացվում է RSPEC գործիքակազմի միջոցով վարքագծի վրա հիմնված զարգացման մոտեցման համաձայն:

3. Բարձրագույն տեխնիկական կրթության առկայությունը կլինի գումարած, բայց առաջին հերթին մենք չենք նայելու դիպլոմին, այլ հավանական թեկնածուի հմտությունների եւ փորձի:

4. Փորձը ցանկալի է տարեցտարի տարեցտարի նախագծերում, որտեղ օգտագործվել են տեխնոլոգիական առաջին պարբերություն (գոնե ռետիններ):

5. NTC IT Rosa- ի հետադարձ վեբ մշակողները հիմնականում աշխատում են ABF զարգացման եւ հավաքման համակարգի վրա, որն օգտագործվում է Linux OS- ի մեր հիմնական արտադրանքների բաշխումները եւ այս ՕՀ-ի տակ գտնվող արտադրանքները: Հետեւաբար, դա մեծ առավելություն կլինի, եթե այս թափուր աշխատատեղերի թեկնածուն ծանոթ լինի Linux- ին եւ այս համակարգի փաթեթներով հավաքելով: Դա այլեւս չի լինի ծանոթություն ABF- ում օգտագործված այլ տեխնոլոգիաների հետ. Վիրտուալացում (մասնավորապես, LXC), կազմաձեւման կառավարման համակարգեր (օրինակ, անատրելի) եւ կոդերի պահպանման համակարգեր (հիմնականում GIT):

Սերգեյ Կազանցեւ, ավագ մշակող, «Կասպերսկի լաբորատորիա»

1. Բեկազի մշակողները պատասխանատու են վեբ սերվերների վրա կատարված ծածկագրի համար:

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

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

Հանրաճանաչ փաթեթները կարող են լինել.

  • C # + ASP.NET + IIS;
  • Java + Spring MVC + Apache Tomcat;
  • Ruby on Rails + Nginx;
  • Python + Django + Apache;
  • Php + Apache;
  • ... կամ դրանց համադրությունները:

Բազմաթիվ ընկերության վեբ ծառայություններ կառուցված են Microsoft Technologies- ի եւ պլատֆորմների հիման վրա. NET, բայց ռուբլի ռելսերի վրա, Perl, PHP- ն:

Լավ հետեւի մշակողների զինանոցում միշտ կան գործիքներ.

  • traff անապարհային երթեւեկության մոնիտորինգ. Fiddler, Wireshark;
  • profiling կատարողական, հիշողություն եւ տվյալների բազայի պահանջներ.
  • Արագ որոնման տեղեկամատյաններ. GREP.

3. Պարտադիր հմտություններ `տվյալների բազաներով, հաղորդագրությունների հերթերի եւ մեծ նախագծերի օգտագործման համար` բաշխված քեշի օգտագործման համար:

4. Պահանջվող փորձը կարող է կախված լինել դիմումատուի պնդումից.

  • 1 տարի `կրտսեր վեբ մշակող;
  • 2-5 տարի `վեբ մշակող;
  • 5-7 + - ավագ / առաջատար մշակող:

5. Կասպերսկու լաբորատորիայի հատուկ պահանջները կարող են վերագրվել Գաղտնագրման գիտելիքներին, վեբ ծրագրերի հնարավոր սպառնալիքներին եւ դրանց կանխարգելման եղանակներին:

Իլյա Քութուկով, ավագ ծրագրավորող, համացանցային ճարտարագիտության մասնագետ

1. Զուգահեռներում մենք այժմ բացահայտորեն երկու թափուր աշխատատեղ են նման մասնագետների համար `առաջատար վեբ հետեւի մշակողը (http://hhh.ru/vacance/125866616?quy\u003dparallels) եւ առաջատար ցանցի բաչենների մշակող եւ ճարտարապետ (HTTP: //hhh.ru/vacancy/12599030?qery\u003dParlels), որպեսզի մենք գիտենք, թե ինչ ենք ուզում նման մասնագետներից: Հասկանալի է, որ մեզ մոտ եկող անձը ունի անհրաժեշտ ծրագրավորման լեզուներ եւ տեխնոլոգիաներ, բավականաչափ աշխատելու համար: Բացի կոդավորման հմտություններ ստուգելուց եւ ընդհանուր erudition- ի ստուգումից, մենք փորձություն ենք տալիս ճարտարապետի վրա `այն տեքստը, որը համակարգի զարգացման համար ազատորեն գրված եւ գիտակցաբար թերի թերի է: Ավելին, թեկնածուին խնդրելով պարզաբանել, որ նրա համար պարզ չէ, թե ինչ լրացուցիչ հարցեր ունի եւ ինչպես է տեսնում համակարգի հիմնական բաղադրիչները, տվյալների քանակը, տվյալների քանակը, ինչպես որտեղ կարելի է անտեսել:

2. Հիմնական գործիքակազմը `IDE (ես պարզաբանելու եմ, որ մենք թիմում ենք, նախընտրում ենք Pycharm), այսինքն` մի շարք ծրագրեր, բայց նույնը Ժամանակն արագորեն հասկանալու ունակությամբ, թե ինչ է կատարվում, VCS, գլխի գրություններ: Հետաքրքիր, համեմատաբար նոր գործիքների, տեխնոլոգիաների եւ մոտեցումների մասին, ես կցանկանայի նշել նաեւ «ռեակտիվ» մոտեցումը (AKKA, RX. *, Apache փոթորիկ եւ այլն), որը պահանջում է մտածողության մշակող, իրադարձություններ եւ դրանց փոփոխությունները: Ինչպես նաեւ Microservice ճարտարապետությունը, որոնք լավ են լրացնում իրենց միջերեսի նկարագրությունը լեզուները (բխում, AVRO, Protobufs, JSON Schema), որոնք հնարավորություն են տալիս ստեղծել պայմանագրեր, որոնց համար տվյալները փոխանակվում են:

3. Մեզ համար կրթությունը հիմնարար դեր չի խաղում:

5. Մենք ունենք հետընթաց մշակողների հետ, որոնք աշխատում են նման ֆունկցիոնալության վրա, որքան զուգահեռներ MyAccount, Access Portal, Desktop Portal, լուծումներով, ինչպիսիք են զուգահեռները (լուծում) Հեռավոր մուտք) եւ զուգահեռների աշխատասեղան Mac- ի համար (գործարկվում է տարբեր գործառնական համակարգերի եւ դրանց կիրառման մեքենաներ `առանց վերաբեռնման տարբեր լուծումներով): Հետեւաբար, մենք ունենք նման առանձնահատկություն, որքան զրոյական անկում, եւ լավ, եթե մարդը ոչ միայն հասկանա, թե ինչ փոփոխություններ պետք է կատարվեն, այլեւ ինչպես դա անել:

Ռազմավարական տեխնոլոգիաների փորձագետ Կոնստանտին Կիչինսկին, Microsoft Russuall

1. Կատարող վեբ մշակողի համար անհրաժեշտ գիտելիքներ եւ հմտություններ.

  • Network անցային ճարտարապետություն, արձանագրություններ, կապի ալիքներ:
  • Ծրագրին համապատասխան տեխնոլոգիական կեռը (օրինակ, C #, .NET, ASP.NET կամ JavaScript / Typritcept + Nodejs) + վերահսկում օպերացիոն համակարգի հիմքում ընկած է (օրինակ, Windows / Azure + Powershell):
  • Տեղակայման եւ փորձարկման ավտոմատացում (ներառյալ բեռը):
  • Հասկացում Ամպի հատկություններ Հիմնական պրովայդերները (Microsoft Azure, AWS), ներառյալ ծառայությունների կսկսումը տրամադրելը:
  • SDL եւ ընդհանուր անվտանգության խնդիրներ (ներառյալ կոդավորումը եւ վավերացումը):

2. Գործիքներ. Visual Studio, Git + Մնացածը կախված է գործընթացներից եւ տեխնոլոգիական պարկից:

3. Կրթություն. Պրոֆիլ (դա) + Գործնական փորձ, Ողջույնի որակի գիտելիքներ հատուկ ոլորտներում (նաեւ անվտանգություն կամ կայքի սխալ հանդուրժողականության ապահովում):

4. Փորձ. Գործնական փորձ իրական ծրագրերում, ներառյալ OS նախագծերին մասնակցությունը:

5. Հատուկ պահանջներ. Azure.

Ալեքսանդր լեռ, տնօրեն Տեղեկատվական տեխնոլոգիաներ Mail.ru խումբ:

1. Նախ, նա պետք է իմանա հետեւի պատասխանը `դրա հիմնական ծրագրավորման լեզուն, տվյալների բազան, սերվերի դիմումների կազմակերպման սկզբունքները: Բացի այդ, նրան պետք է գիտելիքներ համացանցում. HTTP արձանագրության սարք, CSS հնարավորություններ, առնվազն HTML եւ JavaScript- ի տարրական սեփականություն: Եվ, վերջապես, նա պետք է լինի լավ մշակող, որպեսզի կարողանանք կարգաբերել իր եւ ուրիշի օրենսգիրքը, պատշաճ կերպով օգտագործելու դասական ալգորիթմներ, ընտրեք տվյալների համապատասխան կառույցներ:

2. Հիմնական գործիքն, իհարկե, ծրագրավորման լեզու է: Լեզուն սահմանում է գործիքակազմի երկրորդ մակարդակը. Ստանդարտ այս շրջանակային լեզվի եւ գրադարանային հավաքածուների համար: Այնուհետեւ գնացեք տվյալների շտեմարաններ. Ամենից հաճախ MySQL կամ PostgreSQL - եւ NOSQL պահեստային միջոցներ, ինչպիսիք են Tarantool- ը կամ Redis- ը:

3. Սարքի ընթացքում դիպլոմի համար պաշտոնական պահանջներ չկան `Mail.ru Group- ում աշխատելու համար: Այն շատ ավելի կարեւոր է իրական հմտությունների եւ նախագծերի համար, որոնց մասնակցությունը: Mail.ru Group- ն ունի երկու մեծ կրթական ծրագիր. Տեխնոպարկ, MSTU Bauman- ի հիման վրա եւ տեխնոլոգիան IMC MSU- ի հիման վրա, որի նպատակն է ուսանողներին հատուկ հմտություններ տալ վեբ-զարգացման ոլորտում:

4. Կրկին պաշտոնական պահանջներ չկան, բայց, ընդհանուր առմամբ, կարելի է ասել, որ մշակողը երկու-երեք տարվա ընթացքում երկու կամ երեք տարվա փորձից հետո դառնում է լիովին անկախ:

5. Հետիոտնը զարգացումը ավանդաբար մեր ընկերության սիրտը էր: Backend Developer- ը պետք է լինի իսկապես ամենալավը ամեն ինչում `խելացի, ստեղծագործական, պատասխանատու, կոկիկ, ինչպես նաեւ լավ թիմի խաղացող եւ ցանկալի է գլխի շուրջը խցկելիս: Տեխնիկական տեսանկյունից մեր առանձնահատկությունն այն է, որ հետեւի մասի մեծ մասը գրված է C ++ վրա, եւ ոչ թե սցենարող լեզուները `բարձր բեռներ:

Ալեքսանդր Նեդցելսկի, բացի վեբ ստուդիայի ղեկավար

1. Եթե մենք խոսում ենք բակալաների մշակողի որոշակի կոլեկտիվ կերպարի մասին, ապա.

  • Հասկանալով OOP, դիզայնի ձեւանմուշները, հիմնական ալգորիթմների եւ տվյալների կառուցվածքների իմացությունը.
  • Ծրագրավորման լեզուներից մեկի (կամ մի քանիսը) տիրապետելը.
  • dBMS- ի, գիտելիքների SQL փորձ;
  • Հասկանալով հարաբերական տվյալների շտեմարանների նախագծման սկզբունքները.
  • ժողովրդական շրջանակների փորձ;
  • Տարբերակների կառավարման համակարգերի փորձ;
  • hTML, CSS, JavaScript- ի հիմնական գիտելիքներ.
  • Փորձարկման միջավայր ստեղծելու ունակություն:

2. «Նոթատետր» եւ գլուխը ուսերին: Եվ եթե լրջորեն, ցանկացած IDE / խմբագիր եւ փորձարկման տարածք: Սովորաբար, գործիքներն ընտրվում են `կախված նախասիրություններից / առաջադրանքներից / հնարավորություններից:

3. Խիստ բարձրագույն տեխնիկական:

4. Ավարտված եւ աշխատանքային առեւտրային նախագծերի առկայությունը:

5. Մենք մշակում ենք վեբ ծրագրեր, կայքեր եւ ծառայություններ հիմնականում PHP / MySQL- ում: Միեւնույն ժամանակ, մենք օգտագործում ենք YII / Symfony եւ 1C-Bitrix ստանդարտ լուծումների համար: Հետեւաբար, մեր համար կարեւոր փորձ եւ գիտելիքներ կարեւոր են:

Էդուարդ Գուրդսկու, Տեխնիկական առաջատարը ներքին զարգացման թիմում, jetbrains

1. Հետեւի վեբ մշակողը, ըստ էության, այն մարդն է, ով մշակում է սերվերի տրամաբանությունը եւ այդ համատեքստը կկատարվի, վեբ ծրագրերի համատեքստում: Եթե \u200b\u200bհետադարձ վեբ դիմումները իրականացվում են Java- ում, եւ շատ դեպքերում այդպես է, փաստորեն նույն մասնագետը կիրառում է գիտելիքի եւ հմտությունների բոլոր նույն պահանջները, որքան սովորական Java ծրագրավորողը, լեզվի գիտելիքներ, աշխատանքի եւ սարքերի գիտելիքներ Java SDK- ի հիմնական գրադարանի բաղադրիչները եւ այլն: Այնուամենայնիվ, փորձառությունները ավելացվում են նաեւ տարբեր վեբ շրջանակներով (պարզեցնելով կախվածության ներարկման, MVC- ի եւ այլն), հայտի գնահատման եւ բարելավման ունակությունը: Անհրաժեշտ է հաշվի առնել եւ հասկանալ, թե որքան արագ օգտագործողի դիմումը կստանա սերվերի ծածկագրի, ինչպես նաեւ որքան ապահով եւ ռացիոնալ, մյուս սերվերի գործառույթը ռացիոնալ է օգտագործողի զննարկչի միջոցով:

Հաճախ հետեւի վեբ դիմումը պահանջում է ինտեգրում երրորդ կողմի ծառայությունների հետ կամ դրա գործառույթի արտահանումը որպես արտաքին API: Մշակողը պետք է հասկանա, թե ինչպես են իրականացվում այդպիսի առաջադրանքներ, որոնք դրա համար օգտագործվում են արձանագրություններ եւ մեխանիզմներ:

Չնայած այն հանգամանքին, որ այդպիսի անձը հիմնականում զբաղվում է դիմումի սերվերի տրամաբանության մշակումով, դիմումի հաճախորդի կողմից օգտագործելու հնարավորության կամ նախատիպելու անհրաժեշտությունը: Այստեղից հետո հետեւում է TCP / IP արձանագրության գործառույթը, HTTP արձանագրությունների, HTTP արձանագրությունների, զննարկչի փոխազդեցության սկզբունքների, վեբ դիմումի, CSS ոճերի, JavaScript հնարավորությունների վերաբերյալ հիմնական գիտելիքներ:

2. Սովորաբար այս գաղափարը զարգացման համար: Դուք նաեւ պետք է օգտագործեք պրոֆիլավար, արտադրողականության առաջադրանքներ լուծելու, ռեսուրսների չափազանց մեծ սպառումը եւ այլն, մեր թիմում մենք օգտագործում ենք Intellij գաղափար:

3. Մենք ոչ մի պաշտոնական պահանջ չենք պարտադրում թեկնածուների կրթության մակարդակի համար: Ավելի կարեւոր փորձ, հասկացողություն եւ բանականություն, եւ, իհարկե, մարդու մոտիվացիան:

4. Արտադրության վեբ ծրագրերի մշակման ցանկացած փորձ, իհարկե, գումարած է: Վերոնշյալ նկարագրված գիտելիքներն ու հմտությունները չեն կարող լինել մասնագետին համապատասխան փորձի բացակայության դեպքում: Հարցազրույցների ժամանակ մենք սովորաբար շահագրգռված ենք ռեզյումեում նշված տարբեր նախագծերին մասնակցության մանրամասներով `գնահատելու այն փորձը, որը կարող է ձեռք բերել, այդպիսի առաջադրանքներ իրականացնելով: Մասնագետ, որը փորձեց տարբեր մոտեցումներ եւ տեխնոլոգիաներ `վեբ ծրագրերի մշակման մեջ նմանատիպ առաջադրանքներ լուծելու համար, որոնք կարող են վերլուծել յուրաքանչյուր մոտեցման կողմնակիցներն ու կողմերը, շատ հետաքրքիր թեկնածու է:

5. Ողջունվում է Jetbrains արտադրանք օգտագործող դիմումների մշակման փորձը: Մենք բոլորս ընկերությունում ենք, փորձեք օգտագործել մեր արտադրանքը, քանի որ դրանք հարմարավետ են եւ, քանի որ մենք ուզում ենք դրանք ավելի հարմար դարձնել:

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

Դմիտրի Օվչիննիկով, Վեբ ծրագրավորող
Natalia Beetle, Recruit in SOOO "Game Stream" Մինսկի զարգացման Wargaming Center

1. Համակիր մշակողը պահանջում է համացանցի խորը պատկերացում. Բրաուզերի կողմից HTTP խնդրանք ձեւավորումից առաջ տարբեր արձանագրությունների իրականացումից առաջ: Wargaming- ի վեբը ոչ միայն խաղացողի «անձնական հաշիվ» է, այլեւ բազմաթիվ ծառայություններ, որոնք ապահովում են միասնական վավերացում, գրանցում, մրցույթ, ուղղորդման ծրագրին եւ այլն:

Կարեւոր է նաեւ ինժեներական մտածողություն ունենալը: Համակցված է մեծ տեխնիկական հորիզոնի հետ, դա հնարավորություն է տալիս արդյունավետ լուծումներ առաջարկել:

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

2. Օգտագործված տեխնոլոգիայի պարկը բավականին ստանդարտ է. Վեբ նախագծերի հիմնական զանգվածը մշակվում է Python- ում, իսկ մյուսները, Erlang- ի համար, իսկ մյուսները, քննադատաբար, արագացնում են եւ զուգահեռ հաշվարկը: MySQL- ն օգտագործվում է պահեստավորման համար, Cache - Memcached- ի համար: Rabbitmq- ը ընտրվել է որպես Ընկերությունում հաղորդագրությունների անվադող: Շրջանակներից - Dj անգոն եւ ոլորված: Եթե \u200b\u200bմենք խոսում ենք առջեւի մասի մասին, ապա սա սովորական ողնաշար է / ներքեւի / jQuery փաթեթ:

Ինչ վերաբերում է զարգացման գործիքներին, ապա wargaming- ում մենք հավատարիմ ենք «Որն է ավելի լավը մշակողի» դիրքը: Ինչ-որ մեկը օգտագործում է ժամանակակից գաղափարը, ինչ-որ մեկը ավելի հարմարավետ է զգում վիմի կամ emacs- ի հետ: Կարեւոր չէ, թե որ գործիքների օգնությամբ մենք իրականացնում ենք մեր աշխատանքը, եթե արդյունքը հարմար եւ օգտակար ծառայություններ է, որոնք ամեն օր միլիոնավոր խաղացողներ են պատրաստում ամեն օր:

3. Մենք կրթության մակարդակի համար ձեւակերպված պահանջներ չենք ունենում: Պրոֆիլային (տեխնիկական, մաթեմատիկական) կրթությունը կլինի գումարած, քանի որ դա ցույց է տալիս թեկնածուի հիմնարար տեսական պատրաստման առկայությունը, բայց դժվար թե որոշիչ գործոն դառնա: Մենք հասկանում ենք, որ մաթեմատիկայի, օփի, դասական ալգորիթմների եւ տվյալների կառուցվածքների ոլորտում գիտելիքը կարելի է ստանալ ինքնուրույն: Նախապատվությունը տրվում է փորձի թեկնածուներին: Նաեւ թեկնածուի ունակությունը ինժեներական առաջադրանքներ լուծելու եւ ինժեներական լուծումներ կատարելու ունակություն եւ ոչ միայն կոդ գրել:

4. Աշխատանքային փորձի պահանջները կախված են թափուր տեղից: Եթե \u200b\u200bմենք երիտասարդ մասնագետ հրավիրենք, առաջին հերթին մենք կանդրադառնանք նրա «տնային նախագծերին» եւ համալսարանական զարգացումներին: Մենք պետք է վստահ լինենք, որ մարդը մեզ պատահական չէր եկել, դա գիտակցված ընտրություն էր, որը կարող է հաստատվել առնվազն փոքր, բայց ավարտված նախագծերի իրական օրինակներով: Երբ խոսքը վերաբերում է փորձառու մասնագետին. Պահանջներն ավելի կոնկրետ են: Մենք կարեւոր ենք զգալ բազմաթիվ ոլորտներում. Տվյալների բազաներ, linux, վեբ սերվեր (Apache, Nginx), Caching Systems- ի (Memcached), Messaged Systems (Rabbly) եւ Sciasted- ի փորձառություն (Django, Twisted): Բարձր բեռի նախագծերի օպտիմալացման փորձը շատ օգտակար կլինի եւ թույլ կտա ձեզ արագ միանալ զարգացման գործընթացին եւ աշխատել առավելագույն արդյունավետությամբ ձեր եւ թիմի համար: Առաջատար մասնագետների եւ փորձագետների համար, բացի վերը նշվածից, կարեւոր է մի շարք տեխնիկական հորիզոն եւ տարբեր տեխնոլոգիական կուտակման փորձ:

5. Wargaming.net- ի հսկայական խաղացողների համար վեբ ենթակառուցվածքների աջակցությունը ենթադրում է բարձր բեռներով աշխատելու ունակություն եւ դնելու համար կիրառման ճարտարապետության մեջ գործելու ունակություն մեծ քանակություն Հայցումներ:

Բացի ծանրաբեռնվածության պատրաստակամությունից, կարեւոր է հիշել անվտանգությունը: Հետեւաբար, Wargaming- ի վեբ մշակողը պարտավոր է իմանալ հիմնական սպառնալիքներին հակազդելու մեխանիզմների մասին եւ ապահովել դրա կոդի հուսալիությունը:

Պատրաստի Իգոր Շերտ

Superjob.ru պորտալի գիտահետազոտական \u200b\u200bկենտրոն Հատկապես «Համակարգի կառավարչի» հետազոտությունը ուսումնասիրել է գործատուների առաջարկները: Համացանցային մշակողների դիրքով հատուկ պահանջներ դեռ սահմանված չեն, դրանք հիմնականում նման են այն փաստի, որ դրանք ներկայացվում են ծրագրավորողներին:

Java ծրագրավորող

Այն
Հեռահաղորդակցություն
Արդյունաբերություն
Արտադրություն
Շինություն
Սեփականության կառավարում
Ծառայություններ B2V. Վաճառք B2B Վաճառք B2C:
Ես 65 000 – 80 000 54 000 – 71 000 50 000 – 67 000 60 000 – 75 000 50 000 – 65 000 50 000 – 64 000
50 000 – 64 000 42 000 – 57 000 40 000 – 53 000 45 000 – 60 000 40 000 – 52 000 40 000 – 51 000
II. 80 000 – 90 000 71 000 – 87 000 67 000 – 85 000 75 000 – 90 000 65 000 – 83 000 64 000 – 87 000
64 000 – 72 000 57 000 – 70 000 53 000 – 68 000 60 000 – 70 000 52 000 – 66 000 51 000 – 70 000
III 90 000 – 150 000 87 000 – 125 000 85 000 – 115 000 90 000 – 130 000 83 000 – 120 000 87 000 – 125 000
72 000 – 120 000 70 000 – 100 000 68 000 – 92 000 70 000 – 100 000 66 000 – 96 000 70 000 – 100 000
IV. 150 000 – 200 000 125 000 – 150 000 115 000 – 150 000 130 000 – 180 000 120 000 – 170 000 125 000 – 160 000
120 000 – 160 000 100 000 – 120 000 92 000 – 120 000 100 000 – 145 000 96 000 – 140 000 100 000 – 130 000
Գավաթ 125 000 110 000 100 000 115 000 115 000 110 000
100 000 88 000 80 000 92 000 90 000 90 000

Տարօրինակ աշխատավարձի գծեր `Միջին MSK, նույնիսկ - Սանկտ Պետերբուրգում

Աշխատավարձի տիրույթ Մասնագիտական \u200b\u200bհմտությունների պահանջներ եւ ցանկություններ
Միջակայք I.
  • Անավարտ բարձրագույն կրթություն (տեխնիկական / ՏՏ)
  • Գերազանց գիտելիք HTML, CSS, JAVA, XML
  • Օբյեկտի վրա հիմնված ծրագրավորման սկզբունքների իմացություն
  • Տվյալների բազայի զարգացման տեսական հիմքերի իմացություն
  • Անգլերենի իմացություն Տեխնիկական փաստաթղթերի ընթերցման մակարդակով
  • Java ծրագրավորման փորձը վեց ամսից
Միջակայքը II.
  • Փորձը վեբ սերվերների եւ դիմումի սերվերների հետ
  • Java ծրագրավորման փորձ 1 տարուց
Range III
  • Բարձրագույն կրթություն (տեխնիկական / ՏՏ)
  • Գիտելիքների ձեւավորման ձեւանմուշներ Java եւ J2EE
  • Հատուկ գործիքներ օգտագործելու փորձ (ձմեռել, գարուն, սթրոցներ եւ այլն)
  • Զարգացման թիմում փորձ
  • Տարբերակների վերահսկման համակարգերի փորձ
  • DBMS- ի հետ փորձ (MS SQL սերվեր կամ Oracle)
  • Java ծրագրավորման փորձ 2 տարի
Range IV.
  • Որակավորման վկայականների առկայությունը
  • Փորձի ձեւավորում Տեղեկատվական համակարգեր եւ նախագծային փաստաթղթերի պատրաստում
  • Ինտեգրման լուծումների փորձ (IBM Websphere, Oracle Fusion Middleware)
  • Բազմաֆունկցիոնալ դիմումների մշակման փորձ
  • Java ծրագրավորման փորձ 3 տարուց
Հնարավոր ցանկություններ.
  • Անգլերենի իմացություն կոլեկցիոն կամ ազատ մակարդակում
  • Հմտությունների ձեռնարկ Մշակողի խումբ

Վալերի Չերնետովան պատրաստեց, Superjob վերլուծաբան առաջնորդ


Կապի հետ

  • Տեղափոխել

Այս ցուցակը հայտնվեց որպես անձնական հուշագիր այն թեմաների շուրջ, որը ես քննարկել եմ գործընկերների եւ ընկերների հետ եւ որտեղ ուզում էի հասկանալ ավելի խորը ...

Ես մեծ սիրահար չեմ հարցազրույցների վերաբերյալ տեխնիկական հարցեր տալու համար. Ինձ համար ավելի լավ է այդքան շատ նստել թեկնածուի (կամ թեկնածուի) որոշ իրական օրենսգրքի, եւ մի ամբողջ օր ներգրավվելու համար Զույգ ծրագրավորում, այն ցանկալի է, որ տարբերակված է մնացած թիմի հետ: Բայց ես հավատում եմ, որ որոշ տեխնիկական հարցեր կարող են լինել լավ մեկնարկային կետ `հետաքրքրաշարժ եւ հաճելի զրույցի սկիզբի համար եւ թույլ կտան միմյանց ավելի խորը:

Սերվերի մասի հետ կապված մի շարք հարցեր հավաքվում են այս պահեստում, որոնք կարող են օգտագործվել հնարավոր թեկնածուների ստուգման ժամանակ: Ոչ մի դեպքում խորհուրդ չի տրվում հարցնել ամեն ինչ Հարցեր մեկ թեկնածուի. Դա կտեւի մի քանի ժամ եւ ընդհանրապես իմաստ չունի, քանի որ դրանք ծածկում են թեմաների չափազանց լայն տեսականի: Ոչ ոք չի կարող իմանալ ամեն ինչ: Ընտրեք առավել համապատասխան հատվածը եւ առավել հետաքրքիր հարցերը `խոսակցությունը ընդլայնելու համար:

Նախազգուշացում

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

Կրկին շեշտում եմ, որ դժվար թե հարցեր տալը: Հարցազրույցի ավարտին անցկացրեք զույգի ծրագրավորման երկար նստաշրջան. Սա մեկն է Ավելի լավ ընտրանքներՀասկանալու ոճը եւ մոտենալ միմյանց եւ հասկանալ թեկնածուներին, ինչ կարելի է ակնկալել հետագա աշխատանքից:

Այս նախագիծը ստեղծվել է «ՀԱՐԵՐԻ ՀԱՐ EST ԵԼՈՒ ՀԱՄԱՐ ՀԱՐ EST ԵԼ» -ի նմուշի համաձայն `@Darcyclarkeke- ից:

Որտեղ են պատասխանները:

Վաղ թե ուշ հոդվածը կտամ համապատասխան պատասխաններով: Շնորհակալ կլինեի ցանկացած օգնության համար:

Դիզայնի ձեւանմուշների վերաբերյալ հարցեր.

Ինչու են գլոբալ օբյեկտներն ու վիճակագրությունը չարիք: Կարող եք ցույց տալ օրինակների կոդը:

Պատմեք մեզ վերահսկող հակադարձման մասին եւ ինչպես է այն բարելավում կազմակերպության կոդը:

DEMERS օրենքը (նվազագույն տեղեկացվածության սկզբունքը) ասում է, որ ծրագրի յուրաքանչյուր մոդուլ պետք է սահմանափակ գիտելիքներ ունենա այլ մոդուլների մասին եւ պետք է փոխազդի միայն ուղղակի «ընկերների հետ»): Կարող եք գրել մի կոդ, որը խախտում է այս սկզբունքը: Ինչու է նրա վատ կազմակերպությունը եւ ինչպես շտկել այն:

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

Data-Mapper- ը դիզայնի ձեւանմուշ է, որը խրախուսում է փոխարկիչների (քարտեզների) շերտի օգտագործումը օբյեկտների եւ տվյալների շտեմարանի միջեւ, միեւնույն ժամանակ, միմյանցից եւ փոխարկիչից պահպանում է իրենց անկախությունը: Ի տարբերություն այս ձեւանմուշի, ակտիվ գրառումներում օբյեկտները ուղղակիորեն ներառում են գործառնություններ, իրենց տվյալների բազայում համապատասխան տվյալների բազայում համապատասխան պահելու համար: Դուք կարծիք ունեք այս ձեւանմուշների վերաբերյալ: Որ դեպքերում եք նախընտրում դրանցից մեկը մյուսին:

Ինչու է, երբ զրոյականորեն կառավարվում է, հաճախ նշում են «միլիարդ դոլարի սխալ»: Want անկանում եք քննարկել տեխնիկան `դա կանխելու համար, ինչպիսիք են GoF գրքում ներկայացված NULL օբյեկտի ձեւանմուշը, կամ ըստ ցանկության տեսակների:

Ինչու է կազմը հաճախ ավելի լավ, քան ժառանգությունը:

Որն է անվտանգության մակարդակը (հակակոռուպցիոն շերտ):

Singleton- ը դիզայնի ձեւանմուշ է, որը դասի մեկ օրինակ է ստեղծում մեկ օբյեկտի համար: Գրեք ճիշտը (թել-անվտանգ singleton) այնքան էլ հեշտ չէ: Փորձեք

Իրականացումը փոխելու հնարավորությունը, առանց հաճախորդի կողմից ազդելու, կոչվում է տվյալների վերացական ներկայացում (տվյալների վերացում): Գրեք օրինակ, որը խախտում է այս գույքը, ապա շտկել այն:

Գրեք այն կոդի մի հատված, որը խախտում է Don "T- ի սկզբունքը (չոր): Այնուհետեւ շտկեք այն:

Ինչպես կզբաղվեք դժոխքի կախվածության (կախվածության դժոխք):

Ինչու է goto - դա չար է:

Հուսալիության սկզբունքը խորհուրդ է տալիս այն օրենսգրքի կազմակերպման ընդհանուր կանոնը «Պահպանողական լինելը այն է, որ դուք ուղարկում եք եւ լիբերալ եք ընդունում»:, Այն հաճախ ձեւակերպված է որպես «Լինելով հանդուրժող ընթերցող եւ զգուշավոր գրող», Want անկանում եք քննարկել այս սկզբունքի իմաստը:

Քննարկումների տարանջատում. Դիզայնի սկզբունք տարանջատման համար Համակարգչային ծրագիր Անհատական \u200b\u200bտարածքների համար, որոնցից յուրաքանչյուրը պատասխանատու է իր առաջադրանքի համար: Կան բազմաթիվ տարբեր մեխանիզմներ `պարտականությունները առանձնացնելու համար (օբյեկտների, գործառույթների, մոդուլների կամ ձեւանմուշների օգտագործում, ինչպիսիք են MVC- ն եւ այլն): Want անկանում եք քննարկել այս թեման:

Կոդի կազմակերպման հարցեր (կոդ Դիզայն).

Հաճախ ասվում է, որ օբյեկտի վրա հիմնված դիզայնի ամենակարեւոր խնդիրներից մեկը (եւ, որպես ամբողջական օրենսգրքի կազմակերպման) ուժեղ ճիրան եւ թույլ է: Ինչ է դա նշանակում? Ինչու են դրանք այդքան կարեւոր եւ ինչպես հասնել դրանց:

Ինչու լեզուների մեծ մասում զանգվածի ինդեքսը սկսվում է զրոյից:

Ինչպես է թեստերը եւ TDD- ն ազդում կազմակերպության օրենսգրքի վրա:

Գրեք կոդի բեկոր, որը խախտում է ինքներդ ձեզ կրկնվող (չոր): Բացատրեք, թե ինչու է նա վատ կազմակերպություն եւ ճիշտ:

Որն է տարբերությունը ճարմանդի եւ կապվածության միջեւ:

Ինչ է վերամշակումը:

Կոդում մեկնաբանությունները օգտակար են: Ինչ-որ մեկը ասում է, որ հնարավորության դեպքում նրանց պետք է խուսափել, եւ իդեալականորեն դրանք ընդհանրապես պետք չեն: Համաձայն ես?

Որն է տարբերությունը կազմակերպության օրենսգրքի եւ ճարտարապետության միջեւ:

Ինչու են TDD թեստերը գրված կոդից առաջ:

C ++ - ը աջակցում է բազմակի ժառանգությանը, եւ Java- ն դասին հնարավորություն է տալիս իրականացնել բազմաթիվ միջերեսներ: Ինչ ազդեցություն է ունենում այս միջոցների օգտագործումը օրթոգոնիայի համար: Կա որեւէ տարբերություն `բազմաթիվ ժառանգության եւ բազմաթիվ միջերեսների օգտագործման միջեւ: Կա տարբերություն պատվիրակության եւ ժառանգության օգտագործման միջեւ: [Սա հարց է «Pragmatic Programmer» գրքից Էնդրյու Խանթա եւ Դեֆիդա Թոմաս]

Առարկայի տարածքի տրամաբանության կողմնակից եւ դեմ պահպանում պահված ընթացակարգերում:

Ըստ Ձեզ, ինչու օբյեկտիվորեն ուղղված կազմակերպությունը գերակշռում է շուկայում այդքան տարիներ:

Եթե \u200b\u200bձեր ծածկագիրը վատ կազմակերպություն ունի, ինչպես եք դա հասկանում:

Հարցեր ծրագրավորման լեզուներով.

Ասա Օ. Երեք հիմնական Ձեր նախընտրած ծրագրավորման լեզվի թերությունները:

Ինչու է մեծացնում տոկոսները ֆունկցիոնալ ծրագրավորման նկատմամբ:

Ինչ է փակումը եւ ինչի համար է դա օգտակար: Ինչ է տարածված փակման եւ դասերի հետ:

Երբ է հարմար օգտագործել գեներատորներից:

Ինչ է բարձր կարգի գործառույթները: Ինչի համար են անհրաժեշտ: Գրեք նման հատկություն ցանկացած լեզվով:

Գրեք ցիկլը, ապա այն վերափոխեք ռեկուրսիվ գործառույթի, օգտագործելով միայն աննկատ կառույցներ (այսինքն `առանց փոփոխականների): Նկարագրեք այն:

Ինչ է նշանակում, երբ լեզուն գործառույթները համարում է առաջին կարգի առարկաները:

Ցույց տալ օրինակ, երբ անանուն գործառույթը կարող է օգտակար լինել:

Ինչու եք պետք Անուններ: Եկեք այլընտրանք:

Պատմեք մեզ Java եւ C # համատեղելիության մասին (կամ ընտրեք երկու այլ կամայական լեզուներ):

Ինչու շատ մշակողներ չեն սիրում Java- ն:

Ինչն է լավ լեզու լավ եւ վատ լեզու դարձնում, վատ:

Գրեք երկու գործառույթ, մեկ անվիճելի թափանցիկ եւ այլ տեղեկատու անթափանց: Եկեք քննարկենք դրանք:

Որն է կեռը եւ որն է փունջը: Ինչ է փակուղի արտահոսքը:

Ինչու է կարեւոր, որ գործառույթներն առաջին կարգի առարկաներն են լեզվով:

Որոշ լեզուներով, հատկապես ֆունկցիոնալ մոտեցմամբ, թույլատրվում է տեխնիկա, որը կոչվում է համեմատության հետ `նմուշի հետ: Նա գիտի քեզ: Ինչպես է նմուշների քարտեզագրումը տարբերվում անջատիչ ձեւավորումից:

Ինչու որոշ ծրագրավորման լեզուներով բացառություններ չեն իրականացվում: Որոնք են այս մոտեցման առավելություններն ու թերությունները:

Եթե \u200b\u200bկատուն կենդանին է, ապա ճիշտ է, որ Takecare- ը - Սա takecare է: ?

Ինչու Java, C # եւ շատ այլ լեզուներով դիզայներները ինտերֆեյսի մաս չեն կազմում:

Վերջին տարիներին հանգույցի շատ աղմուկ բարձրացում. Որն է ձեր կարծիքը հետեւի լեզվով օգտագործելու մասին, որն ի սկզբանե բեղմնավորված էր զննարկչի մեջ աշխատելու համար:

Պատկերացրեք, որ դուք ունեք ժամանակային մեքենա եւ հնարավորություն ունեք ժամանակին վերադառնալ որոշակի պահի Java History- ում (C #, Python, Go կամ այլ բան) եւ խոսել JDK- ի որոշ ստեղծագործողների հետ: Ինչ կփորձեք դրանք համոզել: Delete նջել վերահսկվող բացառությունները: Ավելացնել չստորագրված պրիմիտիվ տեսակներ: Բազմակի ժառանգություն:

Վեբ զարգացման հարցեր.

Ինչու են բնիկ բլիթները եւ երրորդ կողմի բլիթները այդքան այլ կերպ մշակվում:

Ինչպես կարող եք կառավարել վեբ ծառայություններ API- ի վարկածների քանակը:

Հետեւի տեսանկյունից կա որեւէ թերություն կամ խոչընդոտներ մեկ էջի դիմումների ներդրման համար:

Ինչու ենք սովորաբար ձգտում այնքան, որ ծառայությունը քաղաքացիություն չուներ: Ինչն է այդքան լավը քաղաքացիություն չունեցող կոդում: Ինչու եւ երբ պայմանի պահպանումը (պետականությունը) վատն է:

Հանգստություն եւ օճառ. Որ իրավիճակներում եք ընտրելու այս մոտեցումներից մեկը, եւ ինչ այլ բան:

Վեբ կայքում մոդելային դիտման վերահսկիչ եւ մոդել-դիտման դիտման-մոդելի մոտեցումները հիմնականում նման են ինչպես beesende- ում, այնպես էլ առաջ: Ինչ են պատկերացնում եւ ինչու են տեղին օգտագործել դրանք:

Տվյալների բազաների հարցեր.

Ինչպես եք տեղադրում դիմումը մեկ տվյալների բազայից մյուսը, օրինակ, MySQL- ից PostgreSQL- ում: Եթե \u200b\u200bդուք պետք է կառավարեք նման նախագիծը, ինչ խնդիրներ եք ակնկալում:

Ինչու է տվյալների բազան զրոյականորեն վերաբերվում որպես այդպիսի հատուկ դեպք: Օրինակ, ինչու SQL- ում ընտրեք * աղյուսակից, որտեղ դաշտը \u003d զրոյականը չի ձայնագրում զրոյական դաշտի հետ:

Թթունը ատոմության, հետեւողականության, մեկուսացման, ամրության (ատոմության, հետեւողականության, մեկուսացման, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության, կայունության համար անվանում է: Տվյալների բազաների շարժիչների մեծ մասը երաշխավորում է այս չորս հատկությունները տվյալների բազայում գործարքների համար: Ինչ գիտեք դրա մասին: Անկանում եք ավելին ասել ձեզ:

Ինչպես կզբաղվեք DB Schema- ի փոխանցմամբ, այսինքն, ինչպես եք ավտոմատացնում DB սխեմայի փոփոխությունները, քանի որ դիմումը տարբերվում է վարկածից:

Ինչպես իրականացնել ծույլ բեռ: Երբ է դա օգտակար: Որոնք են ստորջրյա քարերը:

Այսպես կոչված «N + 1 խնդիրը» տեղի է ունենում այն \u200b\u200bժամանակ, երբ օրենսգիրքը պետք է բերի երեխաների տարրերը «Ծնողներ-սերունդներ» հարաբերություններից, ծույլ կոշիկով, եւ, հետեւաբար, խնդրանք ուղարկեք յուրաքանչյուր դուստր ձեռնարկության համար , Ինչպես լուծել խնդիրը:

Ինչպես եք գտնում դիմումում առավել ծախսերի պահանջները:

Ձեր կարծիքով, արդյոք միշտ անհրաժեշտ է տվյալների բազան նորմալացնելու համար: Երբ է խորհուրդ տրվի օգտագործել DEMOLADIZED տվյալների բազան:

Շարունակական ինտեգրման մեթոդներից մեկը կոչվում է կապույտ-կանաչ պարտք: Այն բաղկացած է երկու արդյունաբերական գործառնական միջավայրի օգտագործման մեջ, որքան հնարավոր է, եւ մյուսի ընթացքում տեղակայված է դրանցից մեկում, այնուհետեւ անվտանգ միջավայրից երկրորդից հետո ապահովեք երթեւեկությունը: Այս մեթոդը բարդ է, եթե պարտքը ներառում է տվյալների բազայի կառուցվածքը կամ բովանդակությունը: Ես կցանկանայի քննարկել այս թեման ձեզ հետ:

Հարցեր NOSQL- ի վերաբերյալ.

Ինչ է հետեւողականությունը, ի վերջո (վերջնական հետեւողականություն):

Ինչ վերաբերում է գլխարկի տեսաբանին, ապա տվեք CP- ի, AP- ի եւ CA համակարգերի օրինակներ:

Ինչպես եք բացատրում NOSQL- ի հետաքրքրության շաղ տալը:

Ինչպես է NOSQL- ը լուծում մասշտաբայինության խնդիրը:

Որ դեպքում եք նախընտրում MongOdb- ի նման փաստաթղթային կողմնորոշված \u200b\u200bDBMS- ը `հարաբերական DBMS- ի փոխարեն, ինչպիսիք են MySQL կամ PostgreSQL:

Կոդի տարբերակի վերաբերյալ հարցեր.

Ինչու է Mercurial- ում կամ Git- ում մասնաճյուղերի իրականացումը ավելի հեշտ, քան SVN- ում:

Որոնք են բաշխված տարբերակների վերահսկման համակարգերի կողմերն ու կողմերը, ինչպիսիք են GIT- ը, համեմատած SVN- ի կենտրոնացված VCS- ի հետ:

Կարող եք նկարագրել աշխատանքային հոսքի գիթուբի հոսքը եւ Gitflow- ը:

Ինչ է վերանայումը (շարժվում):

Ինչու է միաձուլումը ավելի դյուրին վարժություն կատարել, քան SVN- ում եւ CVS- ում:

Հարցեր զուգահեռության մասին.

Ինչու է պետք զուգահեռ: Բացատրեք

Ինչու է այդքան դժվար է բազմաշերտ / զուգահեռ կոդ ստուգել:

Որն է մրցավազքի կարգավիճակը: Գրեք օրինակ կամայական լեզվի վերաբերյալ:

Ինչ է փոխադարձ արգելափակում: Կարող եք գրել որոշակի կոդ, որը տառապում է փոխադարձ կողպեքներով:

Ինչ է ռեսուրսների քաղցը (գործընթացի սով): Անհրաժեշտության դեպքում եկեք հաշվի առնենք դրա սահմանումը:

Որն է ոչ արգելափակման համաժամացման ալգորիթմը առանց սպասումների (սպասման ալգորիթմ):

Հարցեր բաշխված համակարգերի վերաբերյալ.

Ինչպես փորձարկել բաշխված համակարգը:

Որ դեպքում եք դիմում երկու համակարգերի միջեւ ասինխրոն հաղորդակցություն:

Որոնք են հեռավոր մարտահրավերների ընթացակարգերի հիմնական ստորջրյա քարերը:

Եթե \u200b\u200bստեղծում եք կսահմանված համակարգ եւ հուսալիություն, ապա ինչ տարբեր խնդիրներ կարող են առաջանալ փակ եւ անվտանգ ցանցային միջավայրում `եւ աշխարհագրական բաշխված եւ հանրային համակարգում:

Ինչպես ապահովել վեբ հավելվածի մեղքի հանդուրժողականությունը: Desktop դիմում:

Ինչպես հաղթահարել բաշխված համակարգերում անհաջողությունները:

Եկեք խոսենք աշխատանքային կարողությունների վերականգնման (հաշտեցման) տարբեր մոտեցումների մասին, ցանցային կապի խախտումից հետո:

Որոնք են տարածված հաշվարկների վերաբերյալ սխալ պատկերացումները:

Հարցում / պատասխանելիս եւ երբ հրապարակեք / բաժանորդագրվեք:

Ենթադրենք, այն համակարգը, որի հետ դուք աշխատում եք, չի աջակցում գործարքների: Ինչպես եք այն իրականացնելու զրոյից:

Հարցեր կյանքի ցիկլի ծրագրային ապահովման եւ ձեռնարկի թիմի վերաբերյալ.

Ինչ է ճկունությունը (շարժունություն):

Ինչպես կաշխատեք ժառանգության կոդով:

Ասեք, ես ձեր ծրագրի ղեկավարն եմ եւ ոչ թե ծրագրավորման մասնագետ: Փորձեք ինձ բացատրել, թե որն է ժառանգության ծածկագիրը եւ ինչու պետք է հոգ տանել կոդի որակի մասին:

Ես ձեր ընկերության գործադիր տնօրենն եմ: Բացատրեք ինձ Kanban- ին եւ համոզեք ձեզ ներդրումներ կատարել դրա մեջ:

Որն է զարգացման ճկուն մեթոդաբանության եւ կասկադի մոդելի միջեւ:

Լինելով խմբի ղեկավար, ինչպես եք լուծում չափազանց շատ հանդիպումների խնդիրը:

Ինչպես եք հաղթահարել այն նախագիծը, որն իրականացվում է ուժեղ հետաձգմամբ:

«Մարդիկ եւ փոխազդեցությունն ավելի կարեւոր են, քան գործընթացներն ու գործիքները» եւ «Հաճախորդի հետ համագործակցությունը ավելի կարեւոր է, քան պայմանագրի պայմանների ներդաշնակեցումն է, ապա Արագաշարժության մեջ հռչակված արժեքների կեսն է: Եկեք քննարկենք դրանք:

Ասացեք մեզ, թե ինչ որոշումներ կձեռնարկեք, եթե ձեր ընկերության տեխնիկական տնօրենն լիներ:

Ծրագրի ղեկավարներից որեւէ օգուտ կա:

Կազմեք աշխատանքային գրաֆիկ, օգտագործելով ճկուն ժամանակացույց (այսինքն `առանց տեղադրված աշխատանքային ժամանակի) եւ հետաքրքրող քաղաքականությունը« վերցնում է, երբ ձեզ հարկավոր է »:

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

Որոնք են այն երեք հիմնական որակը, որը դուք գնահատում եք գործընկերների մեջ, բացառությամբ ծրագրավորման:

Ձեր կարծիքով, ծրագրավորման մասին երեք հիմնական բաներ պետք է ճանաչեն հումանիտարությունները:

Պատկերացրեք, որ ընկերությունը ձեզ տրամադրում է մեկ ամիս եւ բյուջե `ձեր եւ ձեր գործընկերների առօրյա կյանքի որակը բարելավելու համար: Ինչ կանեիք:

Հարցեր տրամաբանության եւ ալգորիթմների վերաբերյալ.

Գրեք FIFO- ի հերթը `օգտագործելով միայն Lifo Stacks: Այնուհետեւ ստեղծեք Lifo կեռ, օգտագործելով միայն FIFO- ի հերթերը:

Գրեք ծածկագրի մի հատված `բուֆերը գերլցելու համար:

Գրեք ֆակտորիա `ավարտի հետաձգմամբ:

Language անկացած լեզվով գրեք REP- ը, որն անմիջապես ցուցադրում է մուտքագրված արժեքները: Բարելավեք այն RPN հաշվիչին:

Ինչպես եք նախագծելու գործիք `Defragmentation- ի համար:

Գրեք ծրագիր, որն առաջացնում է պատահական լաբիրինթոսներ:

Գրեք օրինակ կոդ, որը ստեղծում է հիշողության արտահոսք:

Ստեղծեք եզակի պատահական թվերի հաջորդականություն:

Գրեք աղբահանության պարզ համակարգի օրինակ:

Գրեք ցանկացած լեզվով հաղորդագրությունների պարզ բրոքեր:

Գրեք շատ պարզ վեբ սերվեր: Կազմեք գործառույթների պլան, որոնք ապագայում պետք է իրականացվեն:

Ինչպես եք դասակարգում 10 ԳԲ ֆայլը: Ինչպես եք գալիս փոփոխություններ կատարելու 10 TB ֆայլում:

Ինչպես եք գտնում կրկնօրինակ ֆայլերի ծրագիրը:

Հարցեր ճարտարապետության վերաբերյալ.

Երբ քեշը անհրաժեշտ չէ եւ նույնիսկ վնասում է:

Ինչու է իրադարձությունների վրա հիմնված ճարտարապետությունը բարելավում հնարավորությունը:

Ինչն է ընթերցվում կոդը:

Որն է տարբերությունը մշակելու ձեւավորման (արտակարգ դիզայն) եւ էվոլյուցիոն ճարտարապետության միջեւ:

Հորիզոնական եւ ուղղահայաց մասշտաբներ. Ինչ են դրանք տարբերվում: Երբ դիմել մի բան, եւ երբ է մյուսը:

Ինչպես աշխատել ձախողման (ձախողման) եւ օգտագործողի նիստերի վերահսկման մասին:

Ինչ է CQRS- ը (հրամանի հարցման պատասխանատվության առանձնացում): Ինչպես է դա տարբերվում հրամանի հարցման տարանջատման հին սկզբունքից:

Ինչ է եռանիշ ճարտարապետությունը:

Ինչպես եք նախագծելու ծրագրային ապահովման համակարգ `մատչելիությամբ:

Ինչ ռազմավարություններ լուծելու C10K- ի խնդիրը:

Ինչպես եք նախագծում ապակենտրոնացված (այսինքն `առանց կենտրոնական սերվերի) P2P համակարգի:

Ինչու CGI- ն չի մասշտաբի:

Ինչպես եք պաշտպանում ձեր համակարգերը մատակարարի պարտադիր (վաճառողի կողպեք):

Որոնք են «Հրատարակիչ-բաժանորդ» դիզայնի ձեւանմուշի թերությունները:

Ինչ է տեղի ունեցել 80-ականներից վերամշակողների զարգացման գործում, ինչու է դա կարեւոր ծրագրավորման համար:

Կյանքի որ փուլում ցիկլը պետք է հաշվի առնի կատարումը եւ ինչպես:

Ինչպես չի կարող հայտնվել մերժման ձախողման խնդիրը DOS հարձակման պատճառով, բայց վատ դիզայնի պատճառով կամ ճարտարապետության խնդրի պատճառով:

Որն է փոխհարաբերությունները կատարման եւ մասշտաբի միջեւ:

Երբ է ընդունելի օգտագործել ուժեղ ներգրավվածություն (ամուր զուգավորում):

Ինչ հատկանիշներ պետք է տեղադրվի համակարգը, ամպի գնալու համար:

Արդյոք ճարտարապետների երկրի դիզայնի միասնությունը: Պարզ ասած. Կարող է լավ դիզայնը ծագել բոլոր մշակողների հավաքական ջանքերից:

Որն է տարբերությունը դիզայնի, ճարտարապետության, ֆունկցիոնալության եւ էսթետիկ հատկությունների միջեւ: Եկեք քննարկենք դա:

Հարցեր ծառայության վրա հիմնված ճարտարապետության եւ մանրադիտակի վերաբերյալ.

Ինչու SOA- ի երկար գործարքները չեն խրախուսվում, եւ փոխարենը նրանց հրավիրում են օգտագործել Սագա:

Որն է տարբերությունը SOA- ի եւ Microservice- ի միջեւ:

Եկեք խոսենք վեբ ծառայությունների վարկածների քանակի, վարկածի համատեղելիության եւ քննադատական \u200b\u200bփոփոխությունների մասին, որոնք ընդմիջում են հետադարձ համատեղելիությունը:

Որն է տարբերությունը SAGA- ում գործարքի եւ փոխհատուցող գործողության միջեւ:

Երբ է microservice- ը նույնպես միկրո:

Որոնք են մանրադիտակի ճարտարապետության կողմերն ու կողմերը:

Անվտանգության հարցեր.

Ինչպես գրել անվտանգ կոդ: Ըստ Ձեզ, արդյոք դա մշակողների պարտականությունն է, թե դա պետք է լինի ընկերության առանձին մասնագետ: Եվ ինչու:

Ինչու եք ասում, որ չպետք է փորձեք հորինել կամ ձեւավորել ձեր սեփական Գաղտնագրված կանոնները:

Որն է երկու գործոնային վավերացումը: Ինչպես եք այն իրականացնում գոյություն ունեցող վեբ դիմումում:

Եթե \u200b\u200bդուք ուշադիր չեք կարգավորում տեղեկամատյանները, միշտ կա ռիսկ, որ այնտեղ կգան գաղտնի տեղեկատվությունը, ներառյալ գաղտնաբառերը: Ինչպես եք կանխում նման խնդիրը:

Գրեք SQL ներարկման ենթակա ծածկագրի մի հատված եւ ուղղեք այն:

Ինչպես կարող եմ գտնել SQL- ներարկման խոցելիություն ստատիկ կոդի վերլուծության մեթոդով: Ես չեմ սպասում, որ դուք կգրեք պատրաստի ալգորիթմը, քանի որ այն չափազանց մեծ է, բայց եկեք քննարկենք ընդհանուր մոտեցումը:

Ինչ գիտեք խաչմերուկի գրերի մասին: Եթե \u200b\u200bչեք հիշում, տեսնենք նրա նկարագրությունը ինտերնետում եւ խոսենք դրա մասին:

Ինչ գիտեք խաչաձեւ նստած հարցման կեղծիքի մասին: Եթե \u200b\u200bչեք հիշում, տեսնենք նրա նկարագրությունը ինտերնետում եւ խոսենք դրա մասին:

Ինչպես է աշխատում HTTPS- ը:

Ինչ է հարձակումը «Man the Manning» - ը: Եվ ինչու HTTPS- ն օգնում է պաշտպանել դրա դեմ:

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

Ընդհանուր խնդիրներ.

Ինչու է կարեւոր ծրագրավորում գործել: Երբ պետք է օգտագործեմ ֆունկցիոնալ ծրագրավորման լեզուն:

Ինչպես են իրենց զննարկիչները վաստակում Microsoft- ի, Google- ի, Opera- ի եւ Mozilla- ի նման ընկերությունները:

Ինչու է TCP վարդակից բացումը մեծ գլխավերեւում:

Ինչ է կարեւոր օգտագործել ծածկագրումը:

Որն է իրական ժամանակի համակարգը եւ ինչպես է այն տարբերվում սովորական համակարգից:

Ինչ կապ ունի իրական ժամանակի ծրագրավորման լեզուների եւ հոդերի բաշխման միջեւ:

Անփոփոխելը օբյեկտի ստեղծման պահին արժեքների մեկ պարամետրերի պրակտիկայում է, եւ այդ արժեքներն այնուհետեւ երբեք չեն փոխվում: Ինչպես է խուսափում անփոփոխ պահելու ավելի անվտանգ կոդ:

Փոփոխական եւ անփոփոխ արժեքների կողմնակիցներ եւ դեմքեր:

Որն է օբյեկտի հարաբերական բացը (օբյեկտի հարաբերական ազդանշանային անհամապատասխանություն):

Ինչ սկզբունքներ եք դիմում քեշի չափը որոշելու համար:

Որն է տարբերությունը TCP- ի եւ HTTP- ի միջեւ:

Որոնք են հաճախորդի կողմից եւ սերվերի կողմից մատուցվող ընտրության փոխզիջումները:

Ինչպես մշակել հուսալի հաղորդակցության արձանագրություն, հիմնված անվստահելիի վրա:

Մի անգամ զրոյական ցուցիչի գյուտարար Թոնի Հոարը ասաց. » Ենթադրենք, որ ցանկանում եք վերացնել ձեր ծրագրավորման լեզվով զրոյական ցուցիչների օգտագործման հնարավորությունը. Ինչպես եք որոշում նման առաջադրանքը: Ինչ հետեւանքներ կարող է ունենալ:

Բաց հարցեր.

Ինչու են մարդիկ դիմադրում փոփոխություններին:

Բացատրեք թելերի հայեցակարգը ձեր տատիկի հետ:

Որպես մշակող, դուք միաժամանակ ցանկանում եք եւ կիրառում նորարարություն եւ կանխատեսելի եք: Ինչպես կարող են այս երկու նպատակները միմյանց հետ միասին գոյություն ունենալ նույն ռազմավարության մեջ:

Ինչն է լավացնում լավ կոդը:

Բացատրեք, թե ինչպես է իրականացվում հոսքային հեռարձակումը եւ ինչպես եք իրականացնում այն:

Ենթադրենք, որ ձեր ընկերությունը ձեզ տալիս է մեկ շաբաթ `բարելավելու կյանքը ձեզ եւ ձեր գործընկերներին. Ինչպես եք օգտագործում այս շաբաթ:

Ինչ եք պարզել վերջին շաբաթվա ընթացքում:

Design անկացած դիզայնում կա գեղագիտական \u200b\u200bտարր: Հարցն այն է, որ այս գեղագիտությունը ձեր ընկերն է կամ թշնամին:

Անվանեք ձեր կարդացած վերջին հինգ գրքերը:

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

Երբ է իմաստը վերականգնել անիվը:

Եկեք խոսենք նորի անիվների գյուտի մասին, մեկ ուրիշի զարգացման սինդրոմը, ընկերությունը կամ իր ծառայությունների եւ ապրանքների մշակողների թիմի օգտագործումը (ձեր սեփական սնունդը ուտելը):

Ինչ եք առաջին անգամ ավտոմատացնում ընթացիկ աշխատանքային հոսքը:

Որոնք են գրավոր դժվարությունները ծրագիր? Ինչն է դժվարացնում ծրագրային ապահովումը:

Դուք նախընտրում եք աշխատել բոլորովին նոր նախագծերի (Greenfield) կամ շարունակել ընթացիկ (Brownfield): Ինչու

Ինչն է գործառնական համակարգը դարձնում, երբ հատուկ կոդի կատարման հրամանը չկա, եւ դա անօգուտ է թվում: Ես կցանկանայի զրույց սկսել ընդհատման, դեւերի, ֆոնային ծառայությունների, հետազոտությունների, իրադարձությունների վերամշակման եւ այլն:

Բացատրեք Unicode- ը կամ գործարքները հնգամյա երեխայի DBMS- ում:

Փաստարկներ տվեք հօգուտ մոնոլիտ ճարտարապետության:

Ինչ է նշանակում լինել «պրոֆեսիոնալ մշակող»:

Ծրագրավորումն արվեստի, արհեստ կամ ճարտարագիտություն է: Ձեր կարծիքը.

Ինչու են կորպորացիաները ավելի վատ, ներմուծում են նորամուծություններ, քան սկսնակները:

Ձեր վերջին նվաճումը դուք հպարտ եք:

Կոդի բեկորներով հարցեր.

Որն է այս գործառույթի կատարման արդյունքը JavaScript- ը:

Գործառույթի կախվածություն () (for (var i \u003d 0; i< 3; i++) { document.getElementById("button" + i) .addEventListener("click", function() { alert(i); }); } }
Ինչ կասեք այն տեսակների ջնջման մասին, որոնք կտան այդպիսի Java կոդ եւ ինչու:

Arraylist. Li \u003d նոր arraylist (); Arraylist. Lf \u003d նոր arraylist (); Եթե \u200b\u200b(li.getclass () \u003d\u003d lf.getclass ()) // Գնահատում է իրական համակարգը :out.println («հավասար»);
Կարող եք հայտնաբերել հիշողության արտահոսքը:

Հասարակական կարգի դարակաշար (մասնավոր օբյեկտի տարրեր; մասնավոր INT չափ \u003d 0; մասնավոր ստատիկ վերջնական INT Default_initial_capacity \u003d 16; հանրային) (օբյեկտ \u003d E) (ElementeS \u003d E) Հասարակական օբյեկտի փոփ () (եթե (չափը \u003d\u003d 0) նետեք նոր դատարկաբլոկսեկցություն (). Վերադարձի տարրերը [- չափը] գոնե մեկ այլ տարրի համար, մոտավորապես մեկ այլ տարրի համար աճել. * / մասնավոր անվավեր օբյեկտիվություն () (եթե (տարրեր. length \u003d\u003d չափը) տարրերը \u003d զանգված .Copyof (տարրեր, 2 * Չափ + 1);))
Կարող եք ազատվել անջատիչ անջատիչից եւ գրել ավելի շատ օբյեկտների վրա հիմնված կոդ:

Հասարակական կարգի ձեւավորում (մասնավոր ծառայության ծառայություն; հանրային ձեւավորող (ծառայություն;) հանրային լարային Dothejob (լարային պատասխան) \u200b\u200b(լարային պատասխան) \u200b\u200b(«ձախողումը». Վերադարձ լարային. Form.Format ("% s% s", theinput, theinput); լռելյայն. Վերադարձ null;))))
Կարող եք ազատվել, եթե օպերատորները եւ գրեք ավելի շատ օբյեկտների վրա հիմնված կոդ:

Հանրային դասի Theservice (FileDandler File FileMandler Filedler; մասնավոր եզրափակիչ Foorepository Foorepository; հանրային theservice (filehandler filectherller) (սա. Filepository; Filehandler.getxmlfi(ֆայլ); FileMandler.geteextionidfromfilename (ֆայլ)) (վերադարձ ")) ); եթե (հայտնի Foo \u003d\u003d null) (վերադարձ "";) Վերադարձ հայտնի Foo.Dothat (ֆայլ);))
Ինչպես կատարել նման կոդի վերափոխում:

Գործառույթ () (Hresult Error \u003d S_OK; եթե (հաջողված է (շահագործում 1 ()) (եթե (հաջողված է (շահագործում () (շահագործում ((շահագործում ()) () այլ ( Սխալ \u003d գործողություն 4Failed;) այլ (սխալ \u003d գործողություն 3failed;)) այլ (սխալ \u003d գործողություն մշակող;) այլ (սխալ \u003d գործողություն 1)

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

BEC-END Developer- ը անտեսանելի առջեւի մարտիկ է:

Ժամանակակից կայքերը, վեբ ծրագրերը եւ խաղերը դարձել են շատ բարդ, ուստի մասնագետների մի ամբողջ թիմ աշխատում է դրանց վրա: Լրիվ, գեղեցիկ, ֆունկցիոնալ եւ օգտագործողի համար հարմար տեղ ստեղծելու համար անհրաժեշտ է առջեւի եւ հետեւի մշակողների հետեւողական աշխատանք: Սա արագ աշխատանք է `կայք կամ վեբ դիմում ստեղծելու եւ դրա ծառայության համար ավելի հեշտացնում է:

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

Հիմնական գործիքներ Վերադառնալ վերջնական մշակող - սերվերի ծրագրավորման լեզուներ. Օրինակ, PHP, Python, Ruby, Java, Perl, Node JS (ծրագրային պլատֆորմ): JS հանգույցից բացի, օգտակար է սովորել Express- ի (գրադարան) Server Server- ի հետ կապված NODE JS պլատֆորմը) եւ տեղեկատվություն ստանալու եւ պահելու տվյալների բազա:

Որպես Լրացուցիչ միջոցներ Symfony, Codeforiter, Yii, Zend Framework, Kohana եւ այլն օգտագործվում են MySQL / SQLite- ի օգտագործմամբ տվյալների պահպանման համար:

Մասնագիտության առանձնահատկությունները

Ժամանակակից մշակողները ոչ միայն ծածկագիր են գրում ծրագրերի համար: Այնքան աշխատել է ծրագրավորողներ 10-15 տարի առաջ: Ներկայումս նման տերմինը անտեղի է, քանի որ աշխատանքի մեջ հաճախ հնարավոր է անել առանց գրելու կոդ, պարզապես պատրաստի մասերը մեկ կազմաձեւման մեջ միացնելով: Եվ ծրագրավորողներն այժմ կոչվում են «մշակող» կամ «ինժեներ»:

ՏՏ ոլորտի զարգացումով նախագծերը դառնում են ավելի բարդ եւ դիզայներ են, որը կարելի է հավաքել պատրաստի լուծումներ (շրջանակներ), գրեթե ցանկացած առաջադրանքի համար:

Այսպիսով, մշակողի ուժի ֆունկցիոնալությունը այսպիսին է.

  • Ծառայության ճարտարապետության ձեւավորում;
  • Կայքի միջուկի ստեղծում.
  • Պլատֆորմի մշակում եւ հիմնական գործառույթ;
  • Աշխատեք կոդի ճարտարապետության հետ;
  • Դիմումների մշակում, որոնք աջակցում են օգտագործողի միջերեսին եւ անվտանգությանը.
  • Վերահսկել սերվերների վիճակի (մարտական, թեստ եւ աշխատող).
  • Տարբերակների, տվյալների բազաների, շարունակական ինտեգրման վերահսկում:

ԴԻՄԱՆ ԵՎ ԴԱՍԸՆԹԱ ՊՐՈՖԵՍԻՈՆ

Բարձրավճար եւ պահանջվող մասնագիտություն:

Աշխատանքի տեղ

Կայքի զարգացման ընկերություններ, վեբ ծրագրեր, Բջջային ծրագրեր.

Կարեւոր հատկություններ

  • Վերլուծական միտք
  • Տրամաբանական մտածողություն
  • Նախաձեռնություն
  • պլանների պլանավորման եւ հետեւելու ունակություն
  • Թիմային աշխատանքի հմտություններ
  • Մտածողության ճկունություն
  • Պատասխանատվություն, համառություն, նպատակասլացություն
  • Կենտրոնացեք արդյունքի եւ որակի վրա
  • Իր աշխատանքում նոր եւ դրա կիրառումը շարունակաբար ուսումնասիրելու ցանկությունը

Մասնագիտական \u200b\u200bգիտելիքներ եւ հմտություններ

Գոնե մեկ ծրագրավորման լեզուի իմացություն. Գնալ, C, C ++, Perl, Python, PHP, Ruby, Java:

  • արագ, գեղեցիկ եւ ճիշտ կոդ գրելու ունակություն.
  • Հանրաճանաչ վեբ բիրեհերի (Django, Flask, Spring) իմացություն;
  • Հմտությունների դիզայնի տվյալների շտեմարաններ եւ օպտիմիզացնել հարցումները.
  • Ժամանակակից ծրագրավորման պարադիգմների իմացություն;
  • Դիզայնի օրինաչափությունների իմացություն;
  • Վեբ ծառայություններ, միջերեսներ.
  • Անգլերեն կարդալ տեխնիկական փաստաթղթերը:

Որտեղ սովորել հետեւի վերջնական ծրագրավորողից

Գնացքները (անձամբ, Մոսկվա): Միջազգային ուսումնական հաստատություն, որը մասնագիտացած է համակարգչային կրթության ոլորտում: Աշխատել է 1999 թվականից: Աշխարհի 16 երկրներում 42 մասնաճյուղ: Microsoft- ի Microsoft- ի ամենամեծ լիազոր ուսումնական կենտրոնը, Cisco, Autodesk: Ուսանողները ստանում են միջազգային վկայականներ եւ միջազգային դիպլոմ: Հիմնական նպատակը յուրաքանչյուր շրջանավարտի աշխատանքն է:

Բարձրագույն կրթություն:

Հետադարձ կապի զարգացման ոլորտում իսկական մասնագետ դառնալու համար անհրաժեշտ է ունենալ հիմնական պրոֆիլային կրթություն, որը կարելի է ձեռք բերել հետեւյալ համալսարաններում.

Բայց կարեւոր է հիշել, որ համալսարանի հիմնարար կրթությունը հիմք է դնում կրթության հիմքը, բայց բավարար չէ ներկայիս գիտելիքների համար Ժամանակակից տեխնոլոգիաներ, Հետեւաբար, այս ոլորտում ինքնազարգացումը կարեւոր է `զերծ մնալ բոլոր նոր տեխնոլոգիաներից եւ գործիքներից: Բայց, իր հերթին, այդ պահին պրոֆիլային կրթության պակասը ազդում է այն ժամանակ, երբ ինչ-որ բան աշխատում է աշխատելու համար, եւ մարդը չի հասկանում, ինչի համար: Հիմնական կրթության մասնագետը, իհարկե, ամեն ինչ չգիտի, բայց նա ունի մեծ հմտություն `որտեղ գտնել եւ ինչպես օգտագործել անհրաժեշտ գիտելիքները:

Ժամանակակից գործատուները, որպես կանոն, չեն պարտադրում պաշտոնական պահանջներ Բարձրագույն կրթություն թեկնածուներ գրասենյակի համար: Նրանց համար, ամենակարեւոր փորձը, հետախուզությունը, մասնագետի մոտիվացիան:

Warry վճարում (քանի հետեւի վերջնական մշակող է վաստակում)

Աշխատավարձը 09/16/2019

Ռուսաստան 40000-100000 ₽

Moscow 80000-300000 ₽

Աստիճանների կարիերա եւ հեռանկարներ

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

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



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


Իմ անունը Կոստիա է, եւ ես աշխատում եմ QIWI- ում գրեթե 4 տարի: Այսօր ես ձեզ կասեմ, թե որքանով հաջողությամբ անցավ առջեւի զարգացմանը հետեւի մասում:

Դիմային մաս

QIWI- ում, 2014-ի վերջին, ես սկսեցի աշխատել որպես iOS դիմումների մշակող, եւ, սկզբունքորեն, մի քանի տարի զբաղվում էր QIWI դրամապանակի մշակմամբ: Միեւնույն ժամանակ, ես չեմ կարող ասել, որ դա ձանձրալի էր. Առաջադրանքները բոլորովին այլ էին եւ նույն դիմումի շրջանակներում. Բացի այդ, Apple Watch- ի համար դիմում ստեղծելու առաջադեմ փորձ կար: Այնուհետեւ նա ընդլայնեց մի փոքր ուշադրության կենտրոնում եւ նույնիսկ «խղճի» համար օգտագործեց iOS դիմումի շուրջ:



Եվ հետո, հետո ես սկսեցի դանդաղ շարժվել մեջքին: Flexible կուն մեթոդաբանության առումով այն նույնիսկ հարմար է `ես փոխվեց, առաջին սպրինտայում կարող էր անել բախտի մի տեսակ առաջադրանքներ, եւ երկրորդում, ես գրել եմ API- ի ինտեգրումը:


Բայց հետեւի մեջ, այդ ժամանակ շատ քիչ մշակողներ եւ չափազանց ծանր հենարաններ կային, ու վերջում ես դեռ լիովին անցնում էի հետին: Այն, ինչ հիմա անում եմ, համարի դասական առաջադրանքներն են. Ես գրում եմ կոդ մեր Microservice- ում, Chiny Bugi- ում, ես զբաղվում եմ Կոտլինը: Ընկերության թարմ արդյունքի հնարավորություն կա `QIWI ներդրող:


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


Այսպիսով, այստեղ շահող իրավիճակ կար. Ես ուզում էի օգնել թիմին եւ արտադրանքին (զարգացման մեջ առավելությունը շատ չէր հետադարձ կապի մեջ: Timlids- ը ամեն ինչ հասկացավ եւ թույլ տվեք գնալ առանց որեւէ բողոքների, ինչպես նաեւ արտադրանքի:


Բացի այդ, գիտելիքները, որոնք ես ուզում էի դիվերսիֆիկացնել, որպեսզի չհասցվեն մեկ հարթակին (Android Ես մի փոքր դուր չեմ գալիս, բայց Apple- ը դեռ տալիս է դիրքը): Դե, ցանկություն կար, թե ինչն է կարողանա ինքներդ ձեզ վերցնել եւ ինքներդ ձեզ դիմում վերցնել (եւ առջեւի եւ աջակցության) համար, եթե հանկարծակի հայտնվի մի տեսակ զով գաղափար: Մինչ այժմ դա օգտակար չէր:

Ետ կանգնել:


Իհարկե, առաջին խնդիրը, որի հետ դուք բախվում եք նման անցումի, խաղի բացերը են: Իմ դեպքում սրանք տվյալների բազաների հետ աշխատելու որոշ նրբություններ էին, բայց այստեղ օգնեց ինչպես ինքնակրթության, այնպես էլ թիմի, տղաներին, եւ միշտ պատրաստ է ինչ-որ բան բացատրել: QIWI- ում, սկզբունքորեն, ցանկացած փուլում սովորելով, ամեն ինչ լավ է, անկախ նրանից, թե դուք առնվազն կրտսեր եք աշխատանքի սկզբում, համենայն դեպս, այսպես է որոշել եւ փոխել ոլորտը մի քանի տարի անց:


Ոչ ոք չէր նյարդայնացել, որ առաջին անգամ ես ակնհայտորեն այնքան արդյունավետորեն աշխատեցի, քանի որ շատ բան էր անհրաժեշտ մուտք գործել (բայց թիմը դեռ հաղթելու մեջ էր):


Իհարկե, ես մի փոքր փորձ ունեի տարբեր ոլորտներում `բջջային խաղեր եւ համացանցում, բայց ավելի շուտ էր, ավելի շուտ փորձում էր զգալ իրենց սեփականը, քան գործնական լուրջ փորձը խայթելը:

Առջեւից հետո հետեւի տպավորությունները

UI- ի հետ որեւէ աշխատանք չկա: Ընդհանրապես. Նախկինում ես ստիպված էի սպանել ժամանակը UI- ում սխալները շտկելու համար, հիմա չկա: Նման դիրքի դեմ. Վերջնական օգտագործողը հատուկ իմ աշխատանքի արդյունքները չի տեսնում, ինչպես դա եղավ առջեւի հետ: Փորձեցի որոշել, թե որն է ավելի դժվար, սատարող կամ ճակատ եւ հասկացավ, որ (անձամբ ինձ համար) ավելի ծանր էր, որ միշտ աշխատի բազմաշերտ եւ ցանցի աշխատակազմի հետ: Եվ ահա այլեւս այդքան կարեւոր չէ. Դուք կողմ եք առջեւի կամ հետեւի համար: Առաջին հերթին ես առաջին անգամ հանդիպեցի նման առաջադրանքների, առանց պատրաստելու եւ հետեւի մասի, ցանկացած փորձի:


Հնարավոր է զգալ փորձ եւ որեւէ այլ տարածքում սառչում ինչ-որ բան անել, ցանկություն եւ նախադրյալ կլիներ, այստեղ կան պրակտիկա (եւ լավ վարվել), եւ որ այն ապահով եւ հեշտությամբ աշխատեց: Եվ համարի համար այնքան էլ քննադատվում է առջեւում փորձի առկայության կամ բացակայության համար: Եթե \u200b\u200bզարգացումը հաշվի է առնում բոլոր փոքրիկ բաները, երկմտում է անկյունային գործը եւ, որպես ամբողջություն, հասկանում է, թե ինչպես կօգտագործի իր API- ն, ապա այն կդարձնի ամեն ինչ, ինչպես պետք է:


Ինձ համար ավելի հեշտ է հայտնաբերել Հնարավոր խնդիրներ Պարզապես այն պատճառով, որ ես գիտեմ մեր բջջային ծրագրերի իրականացման առանձնահատկությունները: Բայց սա մի տեսակ գերբեռնվածություն չէ. Սա գիտելիքի մի շարք է, որը ցանկացած այլ բան է, որը հաճախ աշխատում է ճակատների հետ:

Վերջում

Backend-Development- ը ինձ համար դարձել է եւս մեկ լավ փորձ, - ես սովորեցի գրել ծածկագիր եւ Revw, մտածել ճարտարապետության վրա: Իրականում հետաքրքիր է:


Բայց միեւնույն ժամանակ, փորձելով ապրել, որ առջեւը հետ է, ես չեմ ասի, որ այն դեպքում, երբ հետեւումն անմիջապես կընտրեր կարիերայի հենց սկզբում: Ինձ համար դեռ կարեւոր է տեսնել եւ հասկանալ, թե ինչպես է իմ արտադրանքը ընկալում օգտվողներին: Հետադարձ կապով, ամեն ինչ գեղեցիկ ուրվական է:


Ամենայն հավանականությամբ, այժմ ընտրելով ոլորտը, ես կգնայի Գամաեւ կամ վեբ ճակատ: Վեբը դեռ լավ հարթակ է մնում նոր ապրանքների գործարկման համար, եւ միեւնույն ժամանակ դադարեց սարսափելի եւ դժվար է հասկանալ: Սպագետի կոդի եւ հետադարձ կապի այս բոլոր ձեռնարկները մնացին շատ հեռու, բարեբախտաբար:

Frontend- ը զարգացում է օգտագործողի ինտերֆեյս եւ ֆունկցիոնալությունը, որոնք աշխատում են կայքի հաճախորդի կամ դիմումի վրա: Այս տեսակի զարգացմանը կարելի է վերագրել այն ամենին, ինչ տեսնում է օգտագործողը, բացելով վեբ էջը: Առաջնային ծրագրավորողը համագործակցում է դիզայներների, ծրագրավորողների եւ UX վերլուծաբանների հետ `հարմար եւ պահանջվող արտադրանք ստեղծելու համար:

Պարզապես հասկանալու համար, թե որն է առջեւի զարգացումը, բացեք ցանկացած կայքի էջը. Դուք կտեսնեք ինտերֆեյսը ձեր առջեւ: Այս էջի ճիշտ սեղմումով կարող եք տեսնել զննարկիչը:

Այս ծածկագիրը առջեւի մշակողի օրինակ է, այն ներբեռնում է օգտագործողի զննարկիչը, եւ դա կարող եք տեսնել իմ սեփական աչքերով: Էջի ծածկագիրը նկարագրում է այն ամենը, ինչ տեսնում եք ձեր առջեւ, գույներ, դասավորություն, տառատեսակներ, գրաֆիկական տարրերի գտնվելու վայրը եւ այլն:

Frontend- ի զարգացումը ներառում է.

  • HTML (հիպերտեքստի նշման լեզու) - փաստաթղթերի նշման լեզու, որի միջոցով ձեւավորվում է էջի կառուցվածքը, վերնագրեր, պարբերություններ, ցուցակներ եւ այլն;
  • CSS (կասկադային ոճի թերթ) - լեզու նկարագրության եւ ոճավորման համար Արտաքին տեսարան Փաստաթուղթ: CSS կոդի շնորհիվ ձեր զննարկիչը հասկանում է, թե ինչպես ցուցադրել տարրերը: CSS- ը սահմանում է գույները եւ տառատեսակի պարամետրերը, որոշում են, թե ինչպես են տեղակայվելու տարբեր կայքերի բլոկներ, եւ այլն: Այն նաեւ թույլ է տալիս նույն փաստաթուղթը տարբեր ոճերում դուրս բերել, օրինակ, տպագրության համար (պայմանական կամ բրեյլ տառատեսակ), ելք դեպի էկրան կամ ձայն կարդալը.
  • JavaScript. - Սա այն լեզուն է, որը ստեղծվել է վեբ էջերը վերակենդանացնելու համար: Նրա խնդիրն է պատասխանել օգտագործողի գործողություններին, մկնիկի վրա սեղմել կտտոցներ, տեղափոխել կուրսորը, ստեղնաշարերը: Նա նաեւ հայցեր է ուղարկում սերվերին եւ բեռնում տվյալները, առանց էջը վերագործարկելու, թույլ է տալիս մուտքագրել հաղորդագրություններ եւ շատ ավելին:

Ինչ է հետադարձ զարգացումը:

Backend-Development- ը ապարատային-ծրագրաշարի շարք է, որի միջոցով իրականացվում է կայքի տրամաբանությունը: Պարզապես ասած, սա այն է, ինչ թաքնված է օգտագործողի աչքից եւ տեղի է ունենում իր զննարկիչից եւ համակարգչից դուրս:

Օրինակ, երբ դիմում եք մուտքագրում որոնման էջի էջում եւ կտտացրեք ստեղնը Մուտք գործելFrontend- ը ավարտվում է եւ սկսում է հետադարձություն: Ձեր հարցումը ուղարկվում է սերվերին: Հաջողություն կամ Յանդեքսորտեղ գտնվում են որոնման ալգորիթմները: Հենց այնտեղ է պատահում բոլոր «մոգությունը»: Հենց որ ձեզ փնտրում եք այն տեղեկատվությունը, դիմակահանդեսի գոտի հայտնվեց մոնիտորի վրա:

Ընդհանրապես, սերվերը նույն համակարգիչն է, միայն ավելի հզոր: Այն պահպանում է տվյալները եւ պատասխանում օգտագործողի պահանջներին:

Backend- ը սերվերը օգտագործողի հետ համատեղելու գործընթացն է:

Backend Developer- ը կարող է կիրառել իր սերվերում առկա ցանկացած գործիք: Նա իրավունք ունի ընտրելու համընդհանուր ծրագրավորման լեզու, օրինակ, Ռուբի, PHP, Python, Java.

Օգտագործված հետեւի զարգացման համար Տարբեր համակարգեր Տվյալների բազայի կառավարում.

  1. Mysql;
  2. Postgreesql;
  3. Sqlite;
  4. MongoDB.

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

Ինչպես են դիմակայել եւ հետ կանգնել:

Frontend եւ հետեւել շփումներ շրջանակի մեջ. Frontend- ը օգտագործողի տեղեկատվությունը ուղարկում է հետին, այն վերամշակվում է եւ վերադառնում է, հաշվի առնելով, հաշվի առնելով:

Որպես կանոն, տարբեր մասնագետներ են զբաղվում այս տեսակի աշխատանքներով, բայց ցանկալի է հասկանալ այն սկզբունքները, որոնց համար աշխատում են գործընկերների աշխատանքը: Օրինակ, ինտերֆեյսի դիզայները կարեւոր է գոնե ընդհանուր առմամբ իմանալու, թե որն է ծրագրի հիմքը, որին այն զբաղվում է: Սա կօգնի նրան պատշաճ կերպով գնահատել, թե ինչ տեխնիկական կարողություններ կարող են լինել կայքում կամ դիմումում:

Առկա է առջեւի եւ հետեւի փոխազդեցության մի քանի տարբերակներ.

  • HTTP հարցումը ուղղակիորեն ուղարկվում է սերվերին, սերվերը փնտրում է տեղեկատվություն, այն ներկառուցում է ձեւանմուշը եւ վերադառնում է որպես HTML էջ;
  • Ընտրանք, օգտագործելով գործիքներ Ajax (ասինխրոն JavaScript եւ XML), Այս դեպքում հարցումը ուղարկում է JavaScript.Ներբեռնվել է զննարկիչ, եւ պատասխանը գալիս է XML կամ JSON ձեւաչափով.
  • Մեկ էջի դիմումներ, որոնք ներբեռնում են տվյալները `առանց էջը թարմացնելու: Դա արվում է նաեւ Օգնության Ajax կամ Ֆրեյմվորկով Անկյունային եւ էմբեր:;
  • Ember. կամ գրադարան Արձագանքել Օգնեք օգտագործել դիմումը եւ սերվերի եւ հաճախորդի մեջ: Frontend եւ հետեւել շփվել Ajax- ի եւ HTML կոդի միջոցով, որոնք վերամշակվում են սերվերի վրա:

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

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

Կարող եք սկսել ձեր ճանապարհը առջեւի եւ հետադարձ զարգացման մեջ `12-ամսյա հմտությունների տուփից: Այն հարմար է փոքր փորձ ունեցող նորեկների եւ ծրագրավորողների համար: Տարվա ընթացքում գործնականում ուսանողների ունկնդիրները կքննարկեն ծրագրավորման հիմնական լեզուները եւ կստեղծեն իրենց սեփական պորտֆոլիոն, ինչը կօգնի գտնել խոստումնալից եւ լավ վարձատրվող աշխատանք: