Вэбд зориулсан Python: бага насны хүүхэд ажиллаж, хөгжихийн тулд юу мэдэх ёстой вэ

Бид Python Junior Podcast-ын гол санааг агуулсан богино бичлэг хийсэн: үүн дээр бид Python-ийн анхан шатны хөгжүүлэгчийн хувьд хаанаас эхлэх, хаашаа явах талаар ярилцсан. Сүүлийн үед бид дунд болон ахмад настнуудад зориулсан контент ихтэй байгаа ч энэ анги мэдээж бага насныханд зориулагдсан.

Вэбд зориулсан Python: бага насны хүүхэд ажиллаж, хөгжихийн тулд юу мэдэх ёстой вэ

Үндсэн сэдвүүд:

  • Шинэхэн програмист дадлага хийхэд ямар мэдлэг хэрэгтэй вэ
    вэб хөгжүүлэлт?
  • Ажил олгогчид хөгжүүлэгчдээс юу хүлээж байна вэ?
  • Туршлагагүй ажил олохын тулд юу хийх хэрэгтэй вэ?
  • Python хөгжүүлэгч хэрхэн хөгжих вэ?

Python Junior Podcast бол Python-ийг илүү сайн ойлгохыг хүсдэг хүмүүст зориулагдсан програмчлалын подкаст юм. Нэвтрүүлгийг олон нийтийн сайн мэдээг түгээгчид явуулдаг Москвагийн Питон болон курсын багш нар Python сурах.

Ярилцлагад оролцогчид:

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

Яагаад Python вэб хөгжүүлэхэд сайн байдаг

Валентин Домбровски: Python яагаад вэб хөгжүүлэхэд тохиромжтой вэ? Жишээлбэл, PHP эсвэл JavaScript яагаад болохгүй гэж?

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

Хэрэв бид вэбсайт эсвэл үйлчилгээ хийхийг хүсвэл хосолсон аргыг ашигладаг: зарим backend нь логикийг хэрэгжүүлж, вэб хуудас үүсгэдэг, зарим нь эдгээр вэб хуудсыг хөтөч дээр зурдаг. Тэгээд бид бүгдийг ямар нэгэн зүйл дээр хурдан нэгтгэх шаардлагатай үед бидэнд сонголт байхгүй.

Боломжит хувилбаруудыг авч үзье.

  • C#. Майкрософт үнэхээр гайхалтай, тэд .NET Core-г бүтээж, бүх талаар сурталчилж байна. Гэхдээ нэгдүгээрт, энэ бол платформ хоорондын шинэ технологи бөгөөд тэнд бүх зүйл жигд биш байна. Хоёрдугаарт, энэ нь үнэхээр үнэтэй, C# хөгжүүлэгчид цөөхөн байдаг - энэ нь түгээмэл биш учраас л.
  • Жава. Энэ бол хэцүү. 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 болон бусад чухал зүйлсийг орхиё, тэгээд бидэнд ... Python үлдэнэ. Тогтвортой синтакс, нэгдсэн стандарт номын сан, шилдэг баримт бичиг, алдартай хөнгөн хүрээ, мега алдартай Django хослол бүхий хэл.

Хамгийн өргөн сонголттой хэдий ч бид шилдэг хөгжүүлэгч биш, жирийн бизнес эрхлэгчид, энгийн вэбсайт хийхийг хүсдэг, 50 хүний ​​хөгжлийн хэлтэс байхгүй бол Python-ийг авдаг.

Мэргэжилд орохын тулд ямар мэдлэг шаардлагатай вэ?

Злата Обуховская: Та нэг хүрээг сайн мэдэж, бусад нь юу байдаг, хэзээ ашиглагдаж байгааг мэдэх хэрэгтэй гэдэгт би итгэдэг. Торнадо хаана байна, Жанго хаана байна, Фласк хаана байна, aiohttp хаана байна гэх мэт.
Протокол гэж ийм зүйл байдаг гэдгийг мэдэх нь ашигтай байх болно. Ялангуяа http протоколын талаарх мэдлэг нь вэб програмуудыг бүтээхэд чухал үүрэгтэй.

Та мөн HTML, CSS, JS гэж юу болох вэб төслүүдэд урд тал нь хэрхэн ажилладаг талаар дор хаяж ойлгох хэрэгтэй.

Алексей Штырняев: Мөн баримт бичиг хаана байгааг мэдэх. Энэ нь хамгийн чухал юм.

Григорий Петров: Энд бид маш чичиргээтэй газар гишгэж байна. Хэрэв бид азгүйтэж, ямар нэгэн байдлаар орчин үеийн frontend-г нухацтай судалж эхэлбэл энэ нь Python дахь backend-ээс 10 дахин илүү төвөгтэй байх болно. Шинэхэн хөгжүүлэгч HTML хэл сурч эхлэхийн тулд анхаарлаа хязгаарлах хэрэгтэй, гэхдээ энэ бүх divs, spans, floats, бүх зүйл хэрхэн нийцэж, дараалалд орсныг төөрөлдүүлэхгүй байх хэрэгтэй.

Алексей Штырняев: Bootstrap-ийн үндсэн курс хэрэгтэй. Мөн HTML-ийн үндэс.

Эхний жилд та JS фреймворкуудыг судлах ёсгүй (хэрэв та арын хэсэгт анхаарлаа төвлөрүүлж байгаа бол). Bootstrap-ийн үндсэн курс нь аль хэдийн бэлэн модулиудтай байдаг: хэрэв та гулсагч хүсвэл гулсагч, хөвөгч цэсийг хүсвэл хөвөгч цэс хий.

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

Григорий Петров: Тийм ээ, хэрэв та Python-г backend хөгжүүлэлтийн хэл болгон, жишээ нь Django-г хүрээ болгон сонгосон тохиолдолд би үүнийг даруй санал болгох болно: Django-д Django Book-д баримт бичиг бий, энэ нь үнэхээр гайхалтай, Златагийн хэлсэн бүх зүйлийг агуулсан, тэр үнэхээр эхлэгчдэд сайн.

Алексей Штырняев: Хэрэв таны зорилго Django сурах бол зарим Django охид хурдан эхлэхэд тохиромжтой. Энэ бол нэг өдрийн дотор та дээд цэгтээ хүрч, үндсэн ойлголтууд болон хүрээ нь ямар чадвартай болохыг ойлгох заавар юм.

Валентин Домбровски: Подкаст бичих бэлтгэлийн хүрээнд бид Python программист вэб хөгжүүлэхэд юу хэрэгтэйг жагсаасан бөгөөд энэ нь бидний өмнө хэлсэн зүйлийг нэгтгэн дүгнэсэн болно.

Python дээр вэб хөгжүүлэлтийн үндэст юу багтсан бэ

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

Бага насныханд алгоритм хэрэгтэй юу?

Злата Обуховская: Эхлээд та алгоритмуудыг мэдэх шаардлагагүй, хэрэв та хангалттай удаан хөгжүүлж чадвал тэдгээр нь аажмаар таны толгойд гарч ирэх болно. Албан ёсны алгоритмын талаар сайн сургалтанд хамрагдаагүй олон сайн инженерүүдийг би мэднэ.

Григорий Петров: Гал дээр тос нэммээр байна. Бидний алгоритмд хүсэл эрмэлзэл хаанаас ирдэг вэ?

Бид одоогоор алгоритмын суурь боловсролгүй, программист бэлтгэх мэдлэггүй, техникийн бааз байхгүй.

Тэд үүнийг хийхийг хичээж байгаа ч энд Хогвартсын түүх байна: бидэнд ганц шидтэн байхгүй байхад бид шидтэнгүүдэд зориулсан сургууль байгуулж чадахгүй. Тиймээс, тэдэн дээр ирээд "Программист бэлтгэж эхлээрэй" гэж асуухад их сургууль юу хийх ёстой вэ, гэхдээ тэдэнд програмист байхгүй, учир нь бүгд Mail.ru, Rambler, Yandex-т ажилладаг тул тэд тэнд сайхан санагддаг уу?

Их сургууль хараад:
- За, програмчлал. Холбогдох мэдлэгийн чиглэлийг олж, тэндээс мэргэжилтнүүд урьцгаая. Хуулбар бичих чадвартай сэтгүүлч, цахилгааны хэлхээ хийж чаддаг цахилгааны инженер, алгоритм ашиглаж чаддаг математикчдыг урьж оролцуулъя.

Эцсийн эцэст, энэ нь тоосго, цементийг энгийн тоосонцороор хийсэн учраас барилгачинд бөөмийн физик заахтай адил практик юм.

Үүний зэрэгцээ тэд өөрсдөө цемент, тоосгоны тухай ярьдаггүй, учир нь барилгачин сургах гэж байгаа физикч байшин яаж барихаа мэддэггүй. Үүний үр дүнд бид "цемент хэрхэн ажилладагийг" төгс дүрслэх чадвартай барилгачин олж авдаг, гэхдээ үүнийг хэзээ ч харж байгаагүй, яаж хийхээ мэддэггүй.

Алгоритм, өгөгдлийн бүтэц нь маш сайн, гэхдээ энэ нь маш жижиг хэрэглээний талбар юм. Жишээлбэл, хэрэв та тоглоомын хөдөлгүүр, хөрвүүлэгч эсвэл сүлжээний протокол бичиж байгаа бол тэд яаралтай хэрэгтэй болно.

Ихэнх програмистууд алгоритм, өгөгдлийн бүтэц шаардлагагүй бизнесийн асуудлыг шийддэг.

Тэнд хамгийн хэцүү математик бол хоёр удаа нэмээд дараа нь хуваах явдал юм. Энэ нь огт өөр мэдлэг шаарддаг. Бизнесийн асуудлыг шийдвэрлэхийн тулд үндсэн мэдлэгээс илүүтэйгээр хэрэглээний мэдлэг шаарддаг.

Шинэхэн хөгжүүлэгч нь бизнесийн талаархи ойлголттой байх, бэлэн блокуудаас шаардлагатай бүтцийг хэрхэн зөв, хурдан угсрах, тэдгээрийг хэрхэн дибаг хийх, нурж унахгүй байх, яагаад нурж унах талаар мэддэг байх нь дээр. шаардлага өөрчлөгдөж, хөтөлбөр борооны дараах байшин шиг "суурь дээр тогтож" эхлэхэд юу болох вэ.
Эдгээр нь практик зүйл бөгөөд програм хангамжийг хэрхэн бичих тухай ойлголт юм. Тэрээр дибаг хийгчээс гадна программ хаана удааширч байгааг харуулах олон хэрэгсэлтэй гэдгийг мэдэх хэрэгтэй.

Валентин Домбровски: Энэ харьцуулалт миний санаанд орж ирэв: энэ бол бизнесийн хэлнээс компьютертэй харилцах хэл рүү орчуулах явдал юм. Өөрөөр хэлбэл, програмист бол тодорхой хэл шинжлэлийн нэгэн төрөл юм.

Григорий Петров: Бизнест хэл судлаач биш зохиолч хэрэгтэй. Мянган жилийн өмнө энэ үг яагаад ийм болж хувирсныг зохиолч мэдэх шаардлагагүй. Тэр эдгээр үгсийг хэрэглэх чадвартай байх ёстой.

Хөгжүүлэгчийн анхны ажлаа олохын тулд юу хэрэгтэй вэ

Алексей Штырняев: Бага насны хоол хийх бүх нийтийн жор байдаггүй байх.

Хэрэв та ямар нэгэн компанид ирвэл тэд таныг Django, JSON, хэдэн алгоритм мэддэг учраас ажилд авахгүй. Та энэ компанид одоо болон энд хэрэгтэй ур чадварын төлөө ажилд орох магадлалтай.

Олон компани байдаг бөгөөд бүгд өөр өөр шаардлага тавьдаг. Цаашид анкет бэлдэж, ажилд орохын тулд олж авах шаардлагатай тийм хэмжээний мэдлэг байдаггүй.

Григорий Петров: Бид VoxImplant-д хэд хэдэн инженер хайж байх үед манай техникийн захирал үндсэн шаардлагыг дараах байдлаар томъёолсон: хүн аливаа асуудлыг шийдвэрлэх чадвартай байх ёстой. Өсвөр насны хүүхэд үүнийг үргэлж үр дүнтэй, хамгийн сайн аргаар биш, үргэлж зөв хийхгүй байх нь ойлгомжтой, гэхдээ та хүнд даалгавар өгвөл тэр түүнийг дарамталж, шийддэг. Энэ бол ажил олгогчдын хамгийн түрүүнд хайж байгаа ур чадвар юм.

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

Гэхдээ би эхлэгчдэд ямар нэгэн жор өгөхийг хичээмээр байна.

Шинэхэн хөгжүүлэгчийн эхний алхамууд

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

Эхний төслүүдийн дараа та аль хэдийн анкетаа хийж, зургадугаар сарын ажлын байртай бүх компаниудад илгээж болно. Ярилцлага нь компаниудад юу хэрэгтэй байгааг ойлгох болно. Эрт орой хэзээ нэгэн цагт хэн нэгэн таныг ядаж жижиг компанид ажилд авна. Дараа нь энэхүү ажлын туршлага нь танд илүү том, илүү сонирхолтой компанид орох боломжийг олгоно.

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

Алексей Штырняев: Анхны ажлаа хайхад маш их хугацаа шаардагддаг гэдгийг би өөрийн туршлагаасаа хэлж чадна. Нэг, хоёр сар хайж байгаа бол энэ нь хэвийн үзэгдэл юм. Хэрэв та бүх компанид анкетаа ирүүлбэл ярилцлагад ор, гурав дахь сард та ямар нэгэн зүйл олно.

Валентин Домбровски: Та өөрийн төслүүдээ хасч эсвэл энгийн бие даасан төслүүдийг хэрэгжүүлж, нэгэн зэрэг өөрийн анкет илгээж болно.

Python хөгжүүлэгч ямар ирээдүйтэй вэ?

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

Валентин Домбровски: Ер нь манай курсууд гээд маш олон сонголт, боломжууд бий. Та үүдэнд нэг их мэдлэг шаардахгүй, гэхдээ илүү өргөн хүрээг хамрахыг зөвлөж байна, учир нь та хэдий чинээ их байх тусмаа танд илүү сайн байх болно.

***

Энэ бол хувилбарын зөвхөн нэг хэсэг юм Python Junior. Ангийн бүрэн хувилбарыг үзэх боломжтой сонсох.

Эсвэл бүр хараарай:

Видео тоглуулна уу

Подкаст RSS

Уншиж, сонсож, үзсэнд баярлалаа.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх