Питхон за веб: шта млађи треба да зна да би радио и развијао се

Направили смо кратак транскрипт са главним мислима из Питхон Јуниор подцаста: у њему смо разговарали о томе где да почнемо и где да идемо као почетник Питхон програмера. У последње време имамо доста садржаја за средње и сениоре, али ова епизода је свакако за јуниоре.

Питхон за веб: шта млађи треба да зна да би радио и развијао се

Главне теме:

  • Које знање треба да вежба програмер почетник
    веб девелопмент?
  • Шта послодавци очекују од програмера?
  • Шта учинити да нађете посао без искуства?
  • Како се Питхон програмер може развити?

Питхон Јуниор Подцаст је програмски подцаст за оне који желе боље да разумеју Питхон. Емисије спроводе јеванђелисти заједнице МосцовПитхон и наставници курсева Сазнајте Питхон.

Учесници разговора:

  • Валентин Домбровски,суоснивач МосцовПитхон-а
  • Злата Обуховскаја, НВИДИА вођа тима
  • Григориј Петров, јеванђелист МоскваПитхон
  • Алексеј Штирњајев, програмер у ФинЕк-у, предавач курсева Леарн
    Питон

Зашто је Питхон добар за веб развој

Валентин Домбровски: Зашто је Питхон погодан за веб развој? Зашто не ПХП или ЈаваСцрипт, на пример?

Григориј Петров: Дакле, нема много избора. Упркос чињеници да у модерном Вебу заправо можете да направите једностраничну апликацију или прогресивну веб апликацију без позадинског дела – чисто користећи фронт-енд технологије, користећи ЈаваСцрипт – то је и даље превише компликовано, лоше индексирано и захтева кул програмере.

Ако желимо да направимо веб локацију или услугу, користимо комбиновани приступ: неки бацкенд имплементира логику и креира веб странице, а неки фронтенд црта ове веб странице у претраживачу. А када треба да све то брзо спојимо на нешто, заправо немамо избора.

Хајде да погледамо могуће опције.

  • Ц#. Мајкрософт је заиста сјајан, направили су .НЕТ Цоре и промовишу га на све могуће начине. Али, прво, ово је нова цросс-платформска технологија и ту још није све глатко. Друго, то је заиста скупо, има мало Ц# програмера - једноставно зато што је непопуларан.
  • Јава. Компликовано је. За прављење нормалног веб сајта у Јави није потребно 10 редова кода, као у Питхон-у. Ово је много кода, ово су оквири и морате знати специфичности подешавања Јава сервера. Уопштено, континуирани бол и патња.
  • ПХП. У најновијим верзијама је дивно. Рећи ћу чак и ово: ПХП 7.2 није ништа лошији од Питхон-а. Али не можете само да узмете и користите ПХП 7.2. Ако обичан, а не врхунски програмер направи веб локацију на ПХП-у, неће писати само у 7.2: мораће и даље да чита неке уџбенике, туторијале, свуда има пуно застарелог кода, а ово није баш добро.
  • ЈаваСцрипт и Ноде.јс. Дивно је и веома модерно када постоји један језик и на предњем и на задњем крају. Само није баш стабилан. Ноде.јс је добра ствар, али је проблематично применити га у продукцији да се не би рушио и да ради стабилно. Осим тога, ако желимо да напишемо квалитетан ЈаваСцрипт код, не треба нам ЈаваСцрипт, већ ТипеСцрипт. Али ТипеСцрипт је неочекивано сложен и мозак просечног програмера кључа када га виде.

Хајде да изоставимо Руби, Хаскелл, Ерланг и друге нишне ствари, и остаје нам... Питхон. Језик са доследном синтаксом, јединственом стандардном библиотеком, најбољом документацијом, популарним лаганим оквирима и мега-популарни Дјанго комбинатом.

Испада да, и поред најширег избора, ако имамо обичне, а не врхунске програмере, ми смо обичан бизнис који хоће да прави обичне веб странице, немамо развојно одељење за 50 људи, онда узимамо Питхон.

Која знања су потребна за улазак у професију?

Злата Обуховскаја: Верујем да треба добро познавати један оквир – и знати шта други постоје и када се користе. Где је Торнадо, где је Дјанго, где је Фласк, где је аиохттп и тако даље.
Биће корисно знати да постоји таква ствар као што су протоколи. Конкретно, познавање хттп протокола је централно за изградњу веб апликација.

Такође морате барем приближно да разумете како фронт енд функционише у веб пројектима: шта је ХТМЛ, ЦСС, ЈС.

Алексеј Штирњајев: И знајте где је документација. То је најважније.

Григориј Петров: Овде ступамо на веома климаво тло. Ако немамо среће и некако почнемо озбиљно да проучавамо савремени фронтенд, онда ће он бити око 10 пута компликованији од бекенда у Пајтону. Програмер почетник треба да ограничи свој фокус како би могао да почне да учи ХТМЛ, али да се не изгуби у свим овим дивовима, распонима, плутањима, како је све поравнато и поређано.

Алексеј Штирњајев: Потребан је основни курс за Боотстрап. И основе ХТМЛ-а.

У првој години не би требало да улазите у ЈС оквире (ако се фокусирате на позадину). Основни курс за Боотстрап већ има готове модуле: ако желите клизач, направите клизач; ако желите плутајући мени, направите плутајући мени.

Злата Обуховскаја: Мислим да док проучавате фронтенд, можете се уронити, посебно у то како се статика генерално даје веб апликацијама. Дакле, програмер глатко прелази на почетак учења како архитектура веб апликација у принципу функционише и како живе у производњи.

Григориј Петров: Да, препоручићу га одмах у случају да сте изабрали Питхон као позадински развојни језик и, на пример, Дјанго као оквир: Дјанго има документацију у Дјанго Боок-у, стварно је кул, садржи све што је Злата рекла, она заиста добро за почетника.

Алексеј Штирњајев: Неке Дјанго Гирлс су такође погодне за брзи почетак ако је ваш циљ да научите Дјанго. Ово је туторијал где у једном дану можете прећи преко врха, разумети основе и за шта је оквир способан.

Валентин Домбровски: Припремајући се за снимање подкаста, саставили смо листу онога што је Питхон програмеру потребно за веб развој, која резимира оно што смо раније рекли.

Шта је укључено у основе за веб развој у Питхон-у

  • Веб оквири Дјанго, Фласк, аиохттп, Торнадо, итд. (и знају за постојање других).
  • Протоколи и АПИ-ји: првенствено хттп, ЈСОН-РПЦ, бафери протокола, гРПЦ.
  • ОРМ и миграције, релационе базе података, СКЛАлцхеми, СКЛ, ПостгреСКЛ, МиСКЛ.
  • Основе ХТМЛ, ЦСС, Боотстрап, као и ЈС оквири и ЈКуери.
  • Принципи рада апликације у производњи, тестирање, јединични тестови, аутотестови, системи контроле верзија, гит.

Да ли су јуниорима потребни алгоритми?

Злата Обуховскаја: У почетку не морате да знате алгоритме; они ће се постепено појављивати у вашој глави ако се довољно дуго бавите развојем. Знам гомилу добрих инжењера који нису имали добар курс формалних алгоритама.

Григориј Петров: Хоћу да долијем уље на ватру. Одакле долази наша жудња за алгоритмима?

Тренутно немамо основно образовање из алгоритама, не знамо да обучавамо програмере, немамо техничку базу.

Они то покушавају да ураде, али овде имамо причу о Хогвортсу: не можемо да направимо школу за чаробњаке док немамо ни једног чаробњака. Дакле, шта треба да уради универзитет када им дођу и питају: „Почните да обучавате програмере“, а они немају програмере, јер сви раде на Маил.ру, Рамблеру и Иандеку, да ли су срећни тамо?

Универзитет гледа и каже:
- Ок, програмирање. Хајде да пронађемо неку сродну област знања и позовимо стручњаке одатле. Позовимо новинаре који знају да пишу, електроинжењере који умеју да направе електрична кола и математичаре који знају да користе алгоритме.

На крају се испостави да је ово практично колико и подучавање градитеља физике честица само зато што су цигла и цемент направљени од елементарних честица.

Истовремено, они сами не говоре о цементу и цигли, јер физичар који покушава да обучи неимара не зна да гради куће. Као резултат, добијамо градитеља који је у стању да савршено опише како „цемент функционише“, али га никада није видео и не зна како да направи било шта од њега.

Алгоритми и структуре података су веома добри, али ово је веома мала област примене. Они су хитно потребни, на пример, ако пишете машину за игре, компајлер или мрежни протокол.

Већина програмера решава пословне проблеме тамо где алгоритми и структуре података нису потребни.

Најтежа математика тамо је сабирање два пута, а затим дељење. То захтева сасвим другачија знања. Решавање пословних проблема захтева углавном примењена, а не основна знања.

Боље је да почетник програмер има разумевање пословања и како правилно и брзо саставити потребне структуре из готових блокова, како их отклонити, како се побринути да се не распадају, знају зашто се распадају, шта се дешава када се захтеви промене и програм почне да се „таложи на темеље“ као кућа после кише.
Ово су практичне ствари и разумевање како писати софтвер. Он треба да зна да поред дебагера има и сет алата који ће тачно показати где се програм успорава.

Валентин Домбровски: Пало ми је на памет ово поређење: ово је превод са пословног језика на језик на коме можете да комуницирате са рачунаром. Односно, програмер је нека врста специфичног лингвиста.

Григориј Петров: Посао треба писац, а не лингвиста. Писац не мора да зна зашто је пре хиљаду година ова реч претворена у ово. Он мора бити у стању да примени ове речи.

Шта вам је потребно да пронађете свој први посао као програмер

Алексеј Штирњајев: Вероватно не постоји универзални рецепт за кување јуниора.

Ако дођеш у неку фирму, они ће те запослити не зато што знаш Дјанго, ЈСОН и неколико алгоритама. Највероватније ћете бити ангажовани за вештине које су потребне овој компанији овде и сада.

Постоји много компанија и све имају различите захтеве. Не постоји таква универзална количина знања коју треба стећи да би се даље припремио животопис и отишао наћи посао.

Григориј Петров: Када смо у ВокИмпланту тражили неколико инжењера, наш технички директор је формулисао основни захтев на следећи начин: човек мора бити способан да решава проблеме. Јасно је да јуниор то неће увек радити ефикасно, не на најбољи начин и не увек исправно, али идеално је да човеку дате задатак, он се напреже и реши. Ово је вештина коју послодавци првенствено траже.

Злата Обуховскаја: Људи који траже посао из других области имају неку предност са пословне тачке гледишта јер су већ прошли неки пут и могу брзо да реше проблеме. То су меке вештине, ја бих то чак назвао радном културом. Често дипломци универзитета још нису развили ову радну културу.

Али ипак бих желео да покушам да дам неку врсту рецепта почетницима.

Први кораци за почетника програмера

Злата Обуховскаја: Први је да је ово још увек нека врста вашег пројекта, јер морате нешто да напишете у својој биографији и покажете минималан портфолио. Кул је када ови пројекти нису направљени за вас, већ као слободни пројекат - за некога.

Након првих пројеката, већ можете направити биографију и послати је свим компанијама у којима постоје јунске позиције. Интервјуи ће пружити увид у оно што је компанијама потребно. Пре или касније ће вас неко запослити, макар у малој фирми. Након тога, ово радно искуство ће вам дати прилику да уђете у већу и занимљивију компанију.

Валентин Домбровски: Иначе, на нашим курсевима припремамо студенте да имају сопствени пројекат у року од 10 недеља обуке. Осим тога, тренирамо вештине развоја тима. Управо су то оне меке вештине о којима је Злата говорила.

Алексеј Штирњајев: Из искуства вам могу рећи да може потрајати веома дуго да тражите свој први посао. Када тражите месец или два, то је нормално. Ако доставите свој животопис свим компанијама, идите на интервјуе, у трећем месецу ћете сигурно нешто пронаћи.

Валентин Домбровски: Можете да исечете сопствене пројекте или да се бавите једноставним слободним пројектима и истовремено шаљете свој животопис.

Какве изгледе има програмер Питхон-а?

Злата Обуховскаја: Питхон програмер може ићи било где. Можете ући у тестирање и наставити да се развијате до старијег архитекте. Или чак у менаџмент. Постоје различите врсте техничких менаџера, а ви можете прерасти до највишег менаџмента. Можете се развијати у науци о подацима, ДевОпс-у, ући у аутоматизовано тестирање или машинско учење.

Валентин Домбровски: Генерално, постоји много опција и могућности, укључујући наше курсеве. На улазу вам није потребно много знања, али је препоручљиво да тада покријете шири опсег, јер што више можете, то боље за вас.

***

Ово је само део издања Питхон Јуниор. Доступна је пуна верзија епизоде слушај.

Или чак погледајте:

Пусти видео

Подцаст РСС

Хвала на читању, слушању или гледању.

Извор: ввв.хабр.цом

Додај коментар