Vam fer una breu transcripció amb les idees principals del podcast Python Junior: en ell vam comentar per on començar i on anar com a desenvolupador de Python principiant. Últimament tenim molt contingut per a mitjans i sèniors, però aquest episodi és sens dubte per a júniors.

Temes principals:
- Quins coneixements necessita per practicar un programador novell
desenvolupament web? - Què esperen els empresaris dels desenvolupadors?
- Què fer per trobar feina sense experiència?
- Com es pot desenvolupar un desenvolupador de Python?
Python Junior Podcast és un podcast de programació per a aquells que volen entendre millor Python. Les emissions són realitzades per evangelistes de la comunitat i professors del curs .
Participants a la conversa:
- Valentí Dombrovsky,cofundador de MoscowPython
- Zlata Obukhovskaya, Cap d'equip de NVIDIA
- Grigori Petrov, evangelista MoscowPython
- Alexei Shtyrnyaev, desenvolupador a FinEx, professor de cursos d'aprenentatge
Pitó
Per què Python és bo per al desenvolupament web
Valentí Dombrovsky: Per què Python és adequat per al desenvolupament web? Per què no PHP o JavaScript, per exemple?
Grigori Petrov: Així que no hi ha gaire opció. Tot i que a la web moderna es pot crear una aplicació d'una sola pàgina o una aplicació web progressiva sense un backend, utilitzant exclusivament tecnologies de front-end, utilitzant JavaScript, encara és massa complicat, està mal indexat i requereix desenvolupadors fantàstics.
Si volem fer un lloc web o servei, utilitzem un enfocament combinat: algun backend implementa la lògica i crea pàgines web, i algun frontend dibuixa aquestes pàgines web al navegador. I quan hem de posar-ho tot junt ràpidament en alguna cosa, realment no tenim cap opció.
Vegem les opcions possibles.
- C#. Microsoft és realment fantàstic, van fer .NET Core i l'estan promocionant de totes les maneres possibles. Però, en primer lloc, es tracta d'una nova tecnologia multiplataforma, i encara no tot està bé. En segon lloc, és molt car, hi ha pocs desenvolupadors de C#, simplement perquè és impopular.
- Java És complicat. Fer un lloc web normal en Java no requereix 10 línies de codi, com en Python. Això és molt de codi, aquests són marcs i cal conèixer els detalls de la configuració de servidors Java. En general, dolor i patiment continus.
- PHP. En les últimes versions és meravellós. Fins i tot diré això: PHP 7.2 no és pitjor que Python. Però no podeu recollir i utilitzar PHP 7.2. Si un desenvolupador normal i no superior fa un lloc web en PHP, no escriurà només en 7.2: encara haurà de llegir alguns llibres de text, tutorials, hi ha molt de codi heretat a tot arreu, i això no és gaire bo.
- JavaScript i Node.js. És meravellós i molt modern quan hi ha un idioma tant al front-end com al back-end. Simplement no gaire estable. Node.js és una bona cosa, però és problemàtic desplegar-lo en producció perquè no es bloquegi i funcioni de manera estable. A més, si volem escriure codi JavaScript de qualitat, no necessitem JavaScript, sinó TypeScript. Però TypeScript és inesperadament complex i el cervell del desenvolupador mitjà bull quan el veu.
Deixem de banda Ruby, Haskell, Erlang i altres coses de nínxol, i ens quedem amb... Python. Un llenguatge amb una sintaxi coherent, una biblioteca estàndard uniforme, la millor documentació, marcs lleugers populars i el mega-popular Django es combinen.
Resulta que, malgrat l'elecció més àmplia, si tenim desenvolupadors normals, no de primer nivell, som un negoci normal que vol fer llocs web normals, no tenim un departament de desenvolupament per a 50 persones, llavors prenem Python.
Quins coneixements es necessiten per entrar a la professió?
Zlata Obukhovskaya: Crec que cal conèixer bé un marc i saber què n'hi ha d'altres i quan s'utilitzen. On és Tornado, on és Django, on és Flask, on és aiohttp, etc.
Serà útil saber que existeixen els protocols. En particular, el coneixement del protocol http és fonamental per crear aplicacions web.
També heu d'entendre com a mínim com funciona el front end en projectes web: què és HTML, CSS, JS.
Alexei Shtyrnyaev: I saber on és la documentació. És el més important.
Grigori Petrov: Aquí estem trepitjant un terreny molt incòmode. Si no tenim sort i d'alguna manera comencem a estudiar seriosament el front-end modern, llavors serà unes 10 vegades més complicat que el backend a Python. Un desenvolupador novell ha de limitar el seu enfocament perquè pugui començar a aprendre HTML, però no perdre's en tots aquests divs, spans, flotants, com tot està alineat i alineat.
Alexei Shtyrnyaev: Necessites un curs bàsic de Bootstrap. I els conceptes bàsics d'HTML.
El primer any, no hauríeu d'aprofundir en els marcs JS (si us centreu en el backend). El curs bàsic de Bootstrap ja té mòduls preparats: si voleu un control lliscant, feu un control lliscant; si voleu un menú flotant, feu un menú flotant.
Zlata Obukhovskaya: Crec que, mentre estudies el frontend, pots submergir-te, en particular, en com es dóna generalment l'estàtica a les aplicacions web. Així, el desenvolupador passa sense problemes per començar a aprendre com funciona en principi l'arquitectura de les aplicacions web i com viuen en producció.
Grigori Petrov: Sí, ho recomanaré de seguida en cas que trieu Python com a llenguatge de desenvolupament de backend i, per exemple, Django com a marc: Django té documentació al Django Book, és molt xulo, conté tot el que va dir Zlata, ella realment. bo per a un principiant.
Alexei Shtyrnyaev: Algunes noies de Django també són adequades per començar ràpidament si el vostre objectiu és aprendre Django. Aquest és un tutorial on en un dia podeu repassar, comprendre els conceptes bàsics i de què és capaç el marc.
Valentí Dombrovsky: En preparació per gravar el podcast, vam compilar una llista del que necessita un programador de Python per al desenvolupament web, que resumeix el que hem dit anteriorment.
Què s'inclou als conceptes bàsics per al desenvolupament web en Python
- Frameworks web Django, Flask, aiohttp, Tornado, etc. (i saber de l'existència d'altres).
- Protocols i API: principalment http, JSON-RPC, Protocol Buffers, gRPC.
- ORM i migracions, bases de dades relacionals, SQLAlchemy, SQL, PostgreSQL, MySQL.
- Conceptes bàsics d'HTML, CSS, Bootstrap, així com marcs JS i JQuery.
- Principis de funcionament de l'aplicació en producció, proves, proves unitàries, autotests, sistemes de control de versions, git.
Els joves necessiten algorismes?
Zlata Obukhovskaya: Al principi, no cal que conegueu els algorismes; apareixeran gradualment al vostre cap si us dediqueu al desenvolupament el temps suficient. Conec un munt de bons enginyers que no han tingut un bon curs d'algoritmes formals.
Grigori Petrov: Vull afegir combustible al foc. D'on ve el nostre desig d'algoritmes?
Actualment no tenim una educació fonamental en algorismes, no sabem com formar programadors, no tenim una base tècnica.
Ho estan intentant, però aquí tenim la història de Hogwarts: no podem crear una escola de mags mentre no tinguem un únic bruixot. Per tant, què ha de fer una universitat quan els acudeix i els demanen: "Comenceu a formar programadors", però no tenen programadors, perquè tothom treballa a Mail.ru, Rambler i Yandex, estan contents allà?
La universitat mira i diu:
- D'acord, programació. Trobem alguna àrea de coneixement relacionada i convidem especialistes d'allà. Convidem periodistes que puguin escriure còpies, enginyers elèctrics que puguin fer circuits elèctrics i matemàtics que puguin utilitzar algorismes.
Al final, resulta que això és tan pràctic com ensenyar a un constructor la física de partícules només perquè el maó i el ciment estan fets de partícules elementals.
Al mateix temps, ells mateixos no parlen de ciment i maons, perquè el físic que intenta formar un constructor no sap com fer cases. Com a resultat, obtenim un constructor que és capaç de descriure perfectament com funciona el "ciment", però no l'ha vist mai i no sap com fer-ne res.
Els algorismes i les estructures de dades són molt bons, però aquesta és una àrea d'aplicació molt petita. Es necessiten amb urgència, per exemple, si esteu escrivint un motor de joc, un compilador o un protocol de xarxa.
La majoria dels programadors resolen problemes empresarials on no es necessiten algorismes i estructures de dades.
La matemàtica més difícil és sumar dues vegades i després dividir. Requereix coneixements completament diferents. La resolució de problemes empresarials requereix principalment coneixements aplicats més que bàsics.
És millor per a un desenvolupador novell tenir una comprensió del negoci i com muntar correctament i ràpidament les estructures necessàries a partir de blocs ja fets, com depurar-los, com assegurar-se que no es desfan, saber per què es desfan, què passa quan canvien els requisits i el programa comença a "assentar-se sobre els fonaments" com una casa després de la pluja.
Aquestes són coses pràctiques i una comprensió de com escriure programari. Ha de saber que, a més del depurador, té un conjunt d'eines que mostraran exactament on s'està alentint el programa.
Valentí Dombrovsky: Aquesta comparació em va venir al cap: es tracta d'una traducció de l'idioma empresarial a un idioma en el qual et pots comunicar amb un ordinador. És a dir, un programador és una mena de lingüista específic.
Grigori Petrov: Els negocis necessiten un escriptor, no un lingüista. L'escriptor no necessita saber per què fa mil anys aquesta paraula es va transformar en aquesta. Ha de ser capaç d'aplicar aquestes paraules.
El que necessites per trobar la teva primera feina com a desenvolupador
Alexei Shtyrnyaev: Probablement no hi ha cap recepta universal sobre com cuinar els joves.
Si veniu a alguna empresa, no us contractaran perquè conegueu Django, JSON i alguns algorismes. El més probable és que us contractin per a les habilitats que aquesta empresa necessita aquí i ara.
Hi ha moltes empreses, i totes tenen requisits diferents. No hi ha una quantitat tan universal de coneixements que cal obtenir per preparar un currículum i anar a buscar feina.
Grigori Petrov: Quan a VoxImplant buscàvem diversos enginyers, el nostre director tècnic va formular el requisit bàsic de la següent manera: una persona ha de ser capaç de resoldre problemes. Està clar que un júnior no sempre ho farà de manera eficaç, ni de la millor manera ni sempre correctament, però l'ideal és que li doneu una tasca a una persona, s'esforça i la resol. Aquesta és l'habilitat que busquen principalment els empresaris.
Zlata Obukhovskaya: Les persones que busquen feina d'altres àmbits tenen algun avantatge des del punt de vista empresarial perquè ja han recorregut algun camí i són capaços de resoldre problemes ràpidament. Aquestes són habilitats suaus, fins i tot en diria cultura laboral. Sovint, els graduats universitaris encara no han desenvolupat aquesta cultura laboral.
Però encara m'agradaria intentar donar algun tipus de recepta als principiants.
Primers passos per a un desenvolupador novell
Zlata Obukhovskaya: El primer és que això no deixa de ser una mena de projecte propi, perquè cal escriure alguna cosa al vostre currículum i mostrar un portfoli mínim. És millor quan aquests projectes no es fan per a tu mateix, sinó com a projecte autònom, per a algú.
Després dels primers projectes, ja podeu fer un currículum i enviar-lo a totes les empreses on hi hagi places de juny. Les entrevistes proporcionaran informació sobre què necessiten les empreses. Tard o d'hora algú et contractarà, almenys en una petita empresa. Posteriorment, aquesta experiència laboral et donarà l'oportunitat d'entrar en una empresa més gran i interessant.
Valentí Dombrovsky: Per cert, en els nostres cursos preparem els alumnes perquè tinguin el seu propi projecte en 10 setmanes de formació. A més, formem habilitats de desenvolupament d'equips. Aquestes són exactament les habilitats suaus de les quals va parlar Zlata.
Alexei Shtyrnyaev: Per experiència et puc dir que pots buscar el teu primer treball durant molt de temps. Quan busqueu un mes o dos, això és normal. Si envieu el vostre currículum a totes les empreses, aneu a entrevistes, al tercer mes segur que trobareu alguna cosa.
Valentí Dombrovsky: Pots tallar els teus propis projectes o assumir projectes autònoms senzills i, al mateix temps, enviar el teu currículum.
Quines perspectives té un desenvolupador de Python?
Zlata Obukhovskaya: Un desenvolupador de Python pot anar a qualsevol lloc. Podeu passar a proves i continuar desenvolupant-vos com a arquitecte sènior. O fins i tot a la gestió. Hi ha diferents tipus de gestors tècnics i podeu arribar a la direcció superior. Podeu desenvolupar-vos en ciència de dades, DevOps, passar a proves automatitzades o aprenentatge automàtic.
Valentí Dombrovsky: En general, hi ha moltes opcions i oportunitats, inclosos els nostres cursos. No necessites gaire coneixement a l'entrada, però s'aconsella després cobrir un ventall més ampli, perquè com més puguis, millor per a tu.
***
Això és només una part del llançament . La versió completa de l'episodi està disponible .
O fins i tot mira:

Gràcies per llegir, escoltar o mirar.
Font: www.habr.com
