Біз Python Junior подкастының негізгі ойларымен қысқаша транскрипт жасадық: онда біз Python әзірлеушісі ретінде неден бастау және қайда бару керектігін талқыладық. Соңғы уақытта бізде орта және үлкендерге арналған мазмұн көп, бірақ бұл эпизод жасөспірімдерге арналған.

Негізгі тақырыптар:
- Жаңадан бастаған бағдарламашыға тәжірибе жасау үшін қандай білім қажет
веб әзірлеу? - Жұмыс берушілер әзірлеушілерден не күтеді?
- Тәжірибесіз жұмыс табу үшін не істеу керек?
- Python әзірлеушісі қалай дами алады?
Python Junior Подкаст - бұл Python тілін жақсырақ түсінгісі келетіндерге арналған бағдарламалау подкаст. Трансляцияларды қауымдық евангелистер жүргізеді және курс оқытушылары .
Әңгімелесуге қатысушылар:
- Валентин Домбровский,MoscowPython негізін қалаушы
- Злата Обуховская, NVIDIA командасының жетекшісі
- Григорий Петров, евангелист Мәскеу Python
- Алексей Штырняев, 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 күтпеген жерден күрделі және оны көргенде қарапайым әзірлеушінің миы қайнап кетеді.
Рубиді, Хаскеллді, Эрлангты және басқа тауашаларды қалдырайық, ал бізде ... Python қалады. Тұрақты синтаксисі бар тіл, біркелкі стандартты кітапхана, ең жақсы құжаттама, танымал жеңіл фреймворктар және мега-танымал Django комбинациясы.
Ең кең таңдауға қарамастан, егер бізде қарапайым емес, ең жақсы әзірлеушілер болса, біз қарапайым веб-сайттар жасағысы келетін қарапайым бизнеспіз, бізде 50 адамға арналған әзірлеу бөлімі жоқ, содан кейін біз Python аламыз.
Мамандыққа түсу үшін қандай білім қажет?
Злата Обуховская: Менің ойымша, сіз бір шеңберді жақсы білуіңіз керек - және басқалардың не бар екенін және олар қашан қолданылатынын білуіңіз керек. Торнадо қайда, Джанго қайда, Фласк қайда, aiohttp қайда және т.б.
Хаттамалар сияқты нәрсе бар екенін білу пайдалы болады. Атап айтқанда, http протоколын білу веб-қосымшаларды құру үшін маңызды.
Сондай-ақ, сіз кем дегенде, веб-жобаларда интерфейстің қалай жұмыс істейтінін шамамен түсінуіңіз керек: HTML, CSS, JS деген не.
Алексей Штырняев: Және құжаттаманың қайда екенін біліңіз. Бұл ең маңызды нәрсе.
Григорий Петров: Міне, біз өте дірілдеген жерге аяқ басып келеміз. Егер біз сәтсіз болып, қандай да бір түрде заманауи фронтенді мұқият зерттей бастасақ, онда бұл Python-дағы бэкендке қарағанда шамамен 10 есе қиын болады. Жаңадан бастаған әзірлеушіге ол HTML тілін үйренуді бастауы үшін өз назарын шектеуі керек, бірақ барлық осы divs, spans, floats, барлығы қалай тураланғаны және реттелгені туралы жоғалып кетпеуі керек.
Алексей Штырняев: Негізгі Bootstrap курсы қажет. Және HTML негіздері.
Бірінші жылы сіз JS фреймворктарына терең бойламауыңыз керек (егер сіз серверге назар аударсаңыз). Негізгі Bootstrap курсында дайын модульдер бар: егер сіз сырғытпаны қаласаңыз, қалқымалы мәзірді қаласаңыз, қалқымалы мәзір жасаңыз.
Злата Обуховская: Менің ойымша, фронтенді зерттей отырып, сіз өзіңізді, атап айтқанда, статиканың жалпы веб-қосымшаларға қалай берілетінін біле аласыз. Осылайша, әзірлеуші веб-қосымшалардың архитектурасы негізінен қалай жұмыс істейтінін және олардың өндірісте қалай өмір сүретінін білуге оңай кіріседі.
Григорий Петров: Иә, егер сіз Python-ды бэк-энд әзірлеу тілі ретінде таңдасаңыз, мен оны бірден ұсынамын, мысалы, Джанго негізі ретінде: Джангоның Джанго кітабында құжаттары бар, ол өте керемет, онда Златаның айтқанының бәрі бар, ол шынымен де бастаушы үшін жақсы.
Алексей Штырняев: Кейбір Джанго қыздары, егер сіздің мақсатыңыз Джанго тілін үйрену болса, жылдам бастау үшін де қолайлы. Бұл оқулық, онда бір күнде сіз жоғарыдан өтіп, негіздерді және рамканың не істей алатынын түсінуге болады.
Валентин Домбровский: Подкастты жазуға дайындық кезінде біз Python бағдарламашысына веб-әзірлеу үшін не қажет болатынының тізімін жасадық, ол бұрын айтқанымызды қорытындылайды.
Python-да веб-әзірлеу негіздеріне не кіреді
- Web фреймворктері 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 деректер ғылымында дамып, автоматтандырылған тестілеуге немесе машиналық оқытуға өте аласыз.
Валентин Домбровский: Жалпы, көптеген нұсқалар мен мүмкіндіктер бар, соның ішінде біздің курстар да бар. Кіре берісте сізге көп білім қажет емес, бірақ одан кейін кеңірек ауқымды қамтыған жөн, өйткені неғұрлым көп алсаңыз, соғұрлым сізге жақсырақ болады.
***
Бұл шығарылымның бір бөлігі ғана . Эпизодтың толық нұсқасы қолжетімді .
Немесе тіпті қараңыз:

Оқығаныңызға, тыңдағаныңызға немесе көргеніңізге рахмет.
Ақпарат көзі: www.habr.com
