Веб үчүн Python: жаш бала иштөө жана өнүгүү үчүн эмнени билиши керек

Биз Python Junior Подкасттын негизги ойлору менен кыска стенограмма жасадык: анда биз Python'дун башталгыч иштеп чыгуучусу катары эмнеден баштоону жана кайда баруу керектигин талкууладык. Акыркы убакта бизде орто жана улуулар үчүн көп мазмун бар, бирок бул эпизод, албетте, жаштар үчүн.

Веб үчүн Python: жаш бала иштөө жана өнүгүү үчүн эмнени билиши керек

Негизги темалар:

  • Жаңы баштаган программист практикада кандай билим керек
    веб иштеп чыгуу?
  • Иш берүүчүлөр иштеп чыгуучулардан эмнени күтүшөт?
  • Тажрыйбасы жок жумуш табуу үчүн эмне кылуу керек?
  • Python иштеп чыгуучусу кантип өнүгө алат?

Python Junior Podcast – бул Pythonду жакшыраак түшүнүүнү каалагандар үчүн программалоочу подкаст. Уктуруулар жамааттык евангелисттер тарабынан жүргүзүлөт MoscowPython жана курстун окутуучулары Python программасын үйрөнүңүз.

Сүйлөшүүнүн катышуучулары:

  • Валентин Домбровский,MoscowPython тең негиздөөчүсү
  • Злата Обуховская, NVIDIA командасынын лидери
  • Григорий Петров, евангелист MoscowPython
  • Алексей Штырняев, FinEx компаниясынын иштеп чыгуучусу, Learn курстарынын мугалими
    Python

Эмне үчүн Python веб-иштеп чыгуу үчүн жакшы

Валентин Домбровский: Эмне үчүн Python веб-иштеп чыгуу үчүн ылайыктуу? Эмне үчүн, мисалы, PHP же JavaScript эмес?

Григорий Петров: Ошентип, көп тандоо жок. Заманбап Интернетте сиз чындыгында бир беттик тиркемени же прогрессивдүү веб тиркемени бэкендсиз түзө аласыз - таза алдыңкы технологияларды колдонуу, JavaScript колдонуу - бул дагы эле өтө татаал, начар индекстелген жана сонун иштеп чыгуучуларды талап кылат.

Эгер биз веб-сайтты же кызматты жасагыбыз келсе, биз айкалыштырылган ыкманы колдонобуз: кээ бир бэкэнд логиканы ишке ашырат жана веб-баракчаларды түзөт, ал эми кээ бир фронтон бул веб-баракчаларды браузерде тартат. Анан баарын тез арада бир нерсеге топтошубуз керек болгондо, бизде тандоо жок.

Келгиле, мүмкүн болгон варианттарды карап көрөлү.

  • C#. Microsoft чындап эле сонун, алар .NET Core жасады жана аны ар тараптан илгерилетүүдө. Бирок, биринчиден, бул жаңы кросс-платформа технологиясы жана ал жерде баары эле жылмакай эмес. Экинчиден, бул чындап эле кымбат, C# иштеп чыгуучулары аз, анткени ал популярдуу эмес.
  • Java. Бул оор. Java тилинде кадимки веб-сайтты жасоо Pythonдогудай 10 сап кодду талап кылбайт. Бул көп код, бул алкактар ​​жана сиз Java серверлерин орнотуунун өзгөчөлүктөрүн билишиңиз керек. Жалпысынан алганда, үзгүлтүксүз оору жана азап.
  • PHP. Акыркы версияларында бул сонун. Мен муну айтайын: PHP 7.2 Pythonдон жаман эмес. Бирок сиз жөн гана PHP 7.2ди алып, колдоно албайсыз. Эгерде жөнөкөй эмес, эң мыкты иштеп чыгуучу PHPде веб-сайт жасаса, ал 7.2де гана жазбайт: ал дагы эле кээ бир окуу китептерин, окуу куралдарын окууга туура келет, бардык жерде көптөгөн эски коддор бар жана бул абдан жакшы эмес.
  • JavaScript жана Node.js. Алдыңкы жана арткы жагында бир тил болгондо, бул сонун жана абдан заманбап. Жөн гана абдан туруктуу эмес. Node.js - бул жакшы нерсе, бирок ал бузулуп калбашы жана туруктуу иштеши үчүн аны өндүрүшкө жайылтуу көйгөйлүү. Мындан тышкары, эгерде биз сапаттуу JavaScript кодун жазгыбыз келсе, бизге JavaScript эмес, TypeScript керек. Бирок TypeScript күтүүсүз татаал жана орточо иштеп чыгуучунун мээси аны көргөндө кайнайт.

Келгиле, Ruby, Haskell, Erlang жана башка niche нерселерди таштап коёлу, бизде... Python калды. Ырааттуу синтаксиси, бирдиктүү стандарттык китепканасы, эң мыкты документтери, популярдуу жеңил алкактары жана мега-популярдуу Django комбинациясы бар тил.

Көрсө, эң кеңири тандоого карабастан, эгерде бизде катардагы эмес, мыкты иштеп чыгуучулар болсо, биз кадимки веб-сайттарды жасагысы келген катардагы бизнес болсок, бизде 50 кишилик өнүктүрүү бөлүмү жок болсо, анда биз Pythonду алабыз.

Кесипке кирүү үчүн кандай билим керек?

Злата Обуховская: Мен сиз бир алкакты жакшы билишиңиз керек деп эсептейм - жана башкалар эмне бар жана алар качан колдонуларын билишиңиз керек. Торнадо кайда, Джанго кайда, Фласк кайда, aiohttp кайда ж.б.у.с.
Протоколдор деген нерсе бар экенин билүү пайдалуу болот. Атап айтканда, http протоколун билүү веб-тиркемелерди курууда негизги орунда турат.

Ошондой эле, жок дегенде, веб-долбоорлордо фронттун кандайча иштээрин түшүнүшүңүз керек: HTML, CSS, JS деген эмне.

Алексей Штырняев: Жана документтер кайда экенин билебиз. Бул эң башкысы.

Григорий Петров: Бул жерде биз абдан солкул жерге кадам таштайбыз. Эгерде бизде бактысыз болуп, кандайдыр бир жол менен заманбап фронтонду олуттуу изилдей баштасак, анда ал Pythonдогу бэкендге караганда 10 эсеге татаалыраак болот. Жаңыдан иштеп чыгуучу HTML тилин үйрөнө башташы үчүн, анын көңүлүн чектеши керек, бирок бул divs, spans, floats, бардыгы кантип тегизделген жана тизилгенде адашып калбашы керек.

Алексей Штырняев: Негизги Bootstrap курсу керек. Жана HTML негиздери.

Биринчи жылы сиз JS алкактарына кирбешиңиз керек (эгерде сиз backendге көңүл бурсаңыз). Негизги Bootstrap курсунда мурунтан эле даяр модулдар бар: эгер сиз сыдырманы кааласаңыз, слайдер жасаңыз; эгер сиз калкыма менюну кааласаңыз, калкылуучу меню жасаңыз.

Злата Обуховская: Менимче, фронтонду изилдеп жатып, сиз өзүңүздү, атап айтканда, статика жалпысынан веб-тиркемелерге кандайча берилгенине чөмүлсөңүз болот. Ошентип, иштеп чыгуучу акырындык менен веб-тиркемелердин архитектурасы кандайча иштээрин жана өндүрүштө кантип жашашын үйрөнө баштайт.

Григорий Петров: Ооба, эгер сиз Python'ду бэкенддик өнүктүрүү тили катары жана, мисалы, Джангону алкак катары тандасаңыз, мен аны дароо сунуш кылам: Джангодо Джанго китебинде документтер бар, ал чындап эле сонун, анда Златанын айткандарынын бардыгы камтылган, ал чындыгында башталгыч үчүн жакшы.

Алексей Штырняев: Кээ бир Джанго Кыздары, эгерде сиздин максатыңыз Джангону үйрөнүү болсо, тез баштоого ылайыктуу. Бул окуу куралы, анда сиз бир күндүн ичинде эң жогорку деңгээлге чыгып, негиздерин жана алкак эмнеге жөндөмдүү экенин түшүнө аласыз.

Валентин Домбровский: Подкастты жаздырууга даярдануу үчүн, биз Python программистине веб-иштеп чыгуу үчүн эмне керек экендигинин тизмесин түздүк, анда биз мурда айткандарыбызды жыйынтыктайт.

Pythonдо веб-иштеп чыгуунун негиздерине эмне кирет

  • Веб алкактары Django, Flask, aiohttp, Tornado, ж.б. (жана башкалардын бар экенин билесиз).
  • Протоколдор жана API'лер: биринчи кезекте http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM жана миграция, реляциялык маалымат базалары, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • HTML, CSS, Bootstrap, ошондой эле JS алкактары жана JQuery негиздери.
  • Өндүрүштөгү тиркемелердин иштөө принциптери, тестирлөө, бирдик сыноолору, автотесттер, версияларды башкаруу системалары, git.

Жаштарга алгоритмдер керекпи?

Злата Обуховская: Адегенде алгоритмдерди билүүнүн кереги жок, эгер сиз иштеп чыгууга жетиштүү убакыт кылсаңыз, алар акырындык менен башыңызда пайда болот. Мен жакшы формалдуу алгоритмдер курсуна ээ болбогон бир нече жакшы инженерлерди билем.

Григорий Петров: Отко май тамызгым келет. Алгоритмдерге болгон каалообуз кайдан келип чыгат?

Бизде учурда алгоритмдер боюнча фундаменталдуу билим жок, программисттерди даярдоону билбейбиз, техникалык базабыз жок.

Алар муну жасоого аракет кылып жатышат, бирок бул жерде бизде Хогвартс окуясы бар: бизде бир да сыйкырчыбыз жок болуп туруп, сыйкырчылар үчүн мектеп түзө албайбыз. Ошондуктан, алар келип: "Программисттерди даярдап баштагыла" деп сурашканда, университет эмне кылышы керек, бирок аларда программисттер жок, анткени баары Mail.ru, Rambler жана Яндексте иштешет, алар ал жакта бактылуубу?

Университет карап туруп мындай дейт:
- Макул, программалоо. Келгиле, билимдин кандайдыр бир чөйрөсүн таап, ал жактан адистерди чакыралы. Көчүрмө жаза алган журналисттерди, электр чынжырларын жасай алган инженер-электриктерди, алгоритмдерди колдоно билген математиктерди чакыралы.

Акыр-аягы, бул кирпич менен цемент элементардык бөлүкчөлөрдөн жасалгандыктан куруучуга бөлүкчөлөр физикасын үйрөтүү сыяктуу эле практикалык экени белгилүү болду.

Ошол эле учурда цемент менен кирпичти өздөрү айтышпайт, анткени куруучуга үйрөтөм деген физик үй курууну билбейт. Натый-жада биз «цементтин кандай иштешин» эц сонун суреттеечу, бирок аны эч качан кербеген жана андан эч нерсе жасоону билбеген куруучуга ээ болобуз.

Алгоритмдер жана маалымат структуралары абдан жакшы, бирок бул өтө кичинекей колдонуу аймагы. Алар, мисалы, оюн кыймылдаткычын, компиляторду же тармак протоколун жазып жатсаңыз, шашылыш түрдө керек.

Көпчүлүк программисттер алгоритмдер жана маалымат структуралары кереги жок бизнес маселелерин чечет.

Ал жерде эң кыйын математика эки жолу кошуп, анан бөлүү. Бул такыр башка билимди талап кылат. Бизнес көйгөйлөрүн чечүү фундаменталдык билимди эмес, негизинен колдонууну талап кылат.

Жаңы баштаган иштеп чыгуучу үчүн бизнести түшүнүү жана керектүү конструкцияларды даяр блоктордон кантип туура жана тез чогултуу, аларды кантип оңдоо, алардын бузулуп калбашы үчүн, алардын эмне үчүн бузулуп жатканын билүү, талаптар өзгөрүп, программа жамгырдан кийинки үй сыяктуу "пайдубалына отурукташып" баштаганда эмне болот.
Бул практикалык нерселер жана программалык камсыздоону кантип жазууну түшүнүү. Ал мүчүлүштүктөрдү оңдоочудан тышкары, программанын кайда жайлап жатканын так көрсөтө турган куралдардын топтому бар экенин билиши керек.

Валентин Домбровский: Менин оюма ушул салыштыруу келди: бул бизнес тилинен компьютер менен баарлаша ала турган тилге которуу. Башкача айтканда, программист – бул конкреттүү лингвисттин бир түрү.

Григорий Петров: Бизнеске тилчи эмес, жазуучу керек. Жазуучуга мындан миң жыл мурун бул сөз эмне үчүн бул сөзгө айланганын билиштин кереги жок. Ал бул сөздөрдү колдоно билиши керек.

Иштеп чыгуучу катары биринчи жумушуңузду табуу үчүн эмне керек

Алексей Штырняев: Кантип кенже тамак жасоонун универсалдуу рецепти жок болсо керек.

Эгер кандайдыр бир компанияга келсең, алар сени Django, JSON жана бир нече алгоритмдерди билгениң үчүн жумушка алышпайт. Сиз, балким, бул компанияга ушул жерде жана азыр керек болгон көндүмдөр үчүн жумушка алынат.

Көптөгөн компаниялар бар, алардын бардыгында ар кандай талаптар бар. Андан ары резюме даярдоо жана жумуш табуу үчүн алынышы керек болгон универсалдуу билим жок.

Григорий Петров: Биз VoxImplantта бир нече инженерди издеп жүргөндө, биздин техникалык директор негизги талапты төмөндөгүдөй формулировкалаган: адам көйгөйлөрдү чече билиши керек. Кенже бала муну дайыма эле эффективдүү, эң жакшы жана дайыма эле туура эмес аткара бербеси анык, бирок идеалында сиз адамга тапшырма бересиз, ал аны чыңдап, чечет. Бул жумуш берүүчүлөр биринчи кезекте издеген жөндөм.

Злата Обуховская: Башка тармактардан жумуш издеп жүргөн адамдар бизнес жагынан кандайдыр бир артыкчылыктарга ээ, анткени алар кандайдыр бир жолду басып өтүшкөн жана көйгөйлөрдү тез чече алышат. Бул жумшак көндүмдөр, мен муну эмгек маданияты деп атамакмын. Көбүнчө университеттин бүтүрүүчүлөрү бул эмгек маданиятын калыптата элек.

Бирок мен дагы деле үйрөнчүктөргө кандайдыр бир рецепт берүүгө аракет кылгым келет.

Жаңыдан иштеп чыгуучу үчүн алгачкы кадамдар

Злата Обуховская: Биринчиси, бул дагы эле өзүңүздүн кандайдыр бир долбооруңуз, анткени сиз резюмеңизге бир нерсе жазып, минималдуу портфолиону көрсөтүшүңүз керек. Бул долбоорлор өзүңүз үчүн эмес, кимдир бирөө үчүн фрилансердик долбоор катары жасалганда жакшыраак болот.

Биринчи долбоорлордон кийин, сиз буга чейин резюме түзүп, аны июнь кызмат орундары бар бардык компанияларга жөнөтө аласыз. Интервью компанияларга эмне керек экенин түшүнүүгө жардам берет. Эртеби-кечпи сени кимдир бирөө жумушка алат, жок дегенде кичинекей компанияга. Кийинчерээк бул иш тажрыйбасы чоңураак жана кызыктуураак компанияга кирүү мүмкүнчүлүгүн берет.

Валентин Домбровский: Баса, биздин курстарыбызда биз студенттерди 10 жумалык окуунун ичинде өз долбооруна ээ болууга даярдайбыз. Мындан тышкары, биз команданы өнүктүрүү көндүмдөрүн үйрөтөбүз. Бул так Злата айткан жумшак көндүмдөр.

Алексей Штырняев: Мен өз тажрыйбамдан айта алам: биринчи жумушуңузду издөө үчүн абдан көп убакыт талап кылынышы мүмкүн. Бир же эки ай издеп жүргөндө, бул нормалдуу көрүнүш. Эгерде сиз резюмеңизди бардык компанияларга тапшырсаңыз, интервьюга барыңыз, үчүнчү айда сиз сөзсүз түрдө бир нерсе табасыз.

Валентин Домбровский: Сиз өз долбоорлоруңузду кесип же жөнөкөй штаттан тышкаркы долбоорлорду алып, ошол эле учурда резюмеңизди жөнөтө аласыз.

Python иштеп чыгуучусунун кандай перспективалары бар?

Злата Обуховская: Python иштеп чыгуучусу каалаган жерге бара алат. Сиз тестирлөөдөн өтүп, улук архитекторго чейин иштеп чыгууну уланта аласыз. Же башкарууга да. Техникалык менеджерлердин ар кандай түрлөрү бар жана сиз топ-менеджментке чейин өсө аласыз. Сиз DevOps маалымат илиминде өнүгүп, автоматташтырылган тестирлөөгө же машина үйрөнүүсүнө өтсөңүз болот.

Валентин Домбровский: Жалпысынан алганда, көптөгөн варианттар жана мүмкүнчүлүктөр бар, анын ичинде биздин курстар. Сиз кире бериште көп билимдин кереги жок, бирок андан кийин кененирээк чөйрөнү камтуу сунушталат, анткени канчалык көп болсоңуз, сиз үчүн ошончолук жакшы.

***

Бул чыгаруунун бир бөлүгү гана Python Junior. Эпизоддун толук версиясы жеткиликтүү угуу.

Же дагы карап:

Play Video

Подкаст RSS

Окуп, укканыңыз же көргөнүңүз үчүн рахмат.

Source: www.habr.com

Комментарий кошуу