Python para la Web: lo que un junior necesita saber para trabajar y desarrollarse

Hicimos una breve transcripción con las ideas principales del Python Junior Podcast: en él discutimos por dónde empezar y adónde ir como desarrollador principiante de Python. Últimamente tenemos mucho contenido para estudiantes de nivel medio y superior, pero este episodio definitivamente es para jóvenes.

Python para la Web: lo que un junior necesita saber para trabajar y desarrollarse

Temas principales:

  • ¿Qué conocimientos necesita practicar un programador novato?
    ¿desarrollo web?
  • ¿Qué esperan los empleadores de los desarrolladores?
  • ¿Qué hacer para encontrar trabajo sin experiencia?
  • ¿Cómo puede desarrollarse un desarrollador de Python?

Python Junior Podcast es un podcast de programación para aquellos que desean comprender mejor Python. Las transmisiones son realizadas por evangelistas comunitarios. MoscúPython y profesores del curso Aprende Python.

Participantes en la conversación:

  • Valentin Dombrovsky,cofundador de MoscúPython
  • Zlata Obujovskaya, Líder del equipo NVIDIA
  • Grigori Petrov, evangelista MoscúPython
  • Alexey Shtyrnyaev, desarrollador en FinEx, profesor de cursos Learn
    Python

Por qué Python es bueno para el desarrollo web

Valentin Dombrovsky: ¿Por qué Python es adecuado para el desarrollo web? ¿Por qué no PHP o JavaScript, por ejemplo?

Grigori Petrov: Entonces no hay muchas opciones. A pesar de que en la Web moderna se puede crear una aplicación de una sola página o una aplicación web progresiva sin un backend (utilizando únicamente tecnologías front-end, usando JavaScript), sigue siendo demasiado complicada, está mal indexada y requiere desarrolladores geniales.

Si queremos crear un sitio web o un servicio, utilizamos un enfoque combinado: un backend implementa la lógica y crea páginas web, y un frontend dibuja estas páginas web en el navegador. Y cuando necesitamos reunirlo todo rápidamente en algo, realmente no tenemos otra opción.

Veamos las posibles opciones.

  • C#. Microsoft es realmente genial, crearon .NET Core y lo están promocionando de todas las formas posibles. Pero, en primer lugar, se trata de una nueva tecnología multiplataforma y todavía no todo va bien allí. En segundo lugar, es realmente caro, hay pocos desarrolladores de C#, simplemente porque no es popular.
  • De Java. Es complicado. Crear un sitio web normal en Java no requiere 10 líneas de código, como en Python. Esto es mucho código, estos son marcos y necesita conocer los detalles de la configuración de servidores Java. En general, dolor y sufrimiento continuos.
  • PHP En las últimas versiones es una maravilla. Incluso diré esto: PHP 7.2 no es peor que Python. Pero no puedes simplemente coger y usar PHP 7.2. Si un desarrollador normal, no de primer nivel, crea un sitio web en PHP, no escribirá solo en 7.2: todavía tendrá que leer algunos libros de texto, tutoriales, hay mucho código heredado por todas partes y esto no es muy bueno.
  • JavaScript y Node.js. Es maravilloso y muy moderno cuando hay un idioma tanto en el front-end como en el back-end. Simplemente no es muy estable. Node.js es algo bueno, pero es problemático implementarlo en producción para que no falle y funcione de manera estable. Además, si queremos escribir código JavaScript de calidad, no necesitamos JavaScript, sino TypeScript. Pero TypeScript es inesperadamente complejo y al desarrollador promedio le hierve el cerebro cuando lo ve.

Dejemos de lado Ruby, Haskell, Erlang y otras cosas de nicho, y nos quedaremos con... Python. Un lenguaje con sintaxis consistente, una biblioteca estándar uniforme, la mejor documentación, marcos livianos populares y el mega popular Django se combinan.

Resulta que, a pesar de la elección más amplia, si tenemos desarrolladores comunes y no de primer nivel, somos una empresa común y corriente que quiere crear sitios web comunes, no tenemos un departamento de desarrollo para 50 personas, entonces elegimos Python.

¿Qué conocimientos se necesitan para ingresar a la profesión?

Zlata Obujovskaya: Creo que es necesario conocer bien un marco y saber qué otros existen y cuándo se utilizan. ¿Dónde está Tornado, dónde está Django, dónde está Flask, dónde está aiohttp, etc.?
Será útil saber que existen los protocolos. En particular, el conocimiento del protocolo http es fundamental para crear aplicaciones web.

También es necesario comprender al menos aproximadamente cómo funciona el front-end en proyectos web: qué es HTML, CSS, JS.

Alexey Shtyrnyaev: Y saber dónde está la documentación. Es lo más importante.

Grigori Petrov: Aquí estamos pisando un terreno muy inestable. Si no tenemos suerte y de alguna manera empezamos a estudiar seriamente el frontend moderno, será aproximadamente 10 veces más complicado que el backend en Python. Un desarrollador novato necesita limitar su enfoque para poder comenzar a aprender HTML, pero no perderse en todos estos divs, spans, floats, cómo todo está alineado y alineado.

Alexey Shtyrnyaev: Necesita un curso básico de Bootstrap. Y los conceptos básicos de HTML.

En el primer año, no deberías profundizar en los marcos JS (si te centras en el backend). El curso básico de Bootstrap ya tiene módulos listos para usar: si quieres un control deslizante, haz un control deslizante; si quieres un menú flotante, haz un menú flotante.

Zlata Obujovskaya: Creo que mientras estudias el frontend, puedes sumergirte, en particular, en cómo se le da estática en general a las aplicaciones web. Entonces, el desarrollador pasa sin problemas a comenzar a aprender cómo funciona en principio la arquitectura de las aplicaciones web y cómo viven en producción.

Grigori Petrov: Sí, lo recomendaré de inmediato en caso de que elijas Python como lenguaje de desarrollo backend y, por ejemplo, Django como marco: Django tiene documentación en el Libro de Django, es realmente genial, contiene todo lo que dijo Zlata, ella realmente bueno para un principiante.

Alexey Shtyrnyaev: Algunas Django Girls también son adecuadas para un comienzo rápido si tu objetivo es aprender Django. Este es un tutorial donde en un día puedes repasar, comprender los conceptos básicos y de qué es capaz el marco.

Valentin Dombrovsky: Como preparación para grabar el podcast, compilamos una lista de lo que un programador de Python necesita para el desarrollo web, que resume lo que dijimos anteriormente.

Qué se incluye en los conceptos básicos para el desarrollo web en Python

  • Frameworks web Django, Flask, aiohttp, Tornado, etc. (y conocer la existencia de otros).
  • Protocolos y API: principalmente http, JSON-RPC, Protocol Buffers, gRPC.
  • ORM y migraciones, bases de datos relacionales, SQLAlchemy, SQL, PostgreSQL, MySQL.
  • Conceptos básicos de HTML, CSS, Bootstrap, así como frameworks JS y JQuery.
  • Principios de operación de aplicaciones en producción, testing, pruebas unitarias, autotests, sistemas de control de versiones, git.

¿Los jóvenes necesitan algoritmos?

Zlata Obujovskaya: Al principio, no es necesario que conozcas los algoritmos; irán apareciendo gradualmente en tu cabeza si te involucras en el desarrollo durante el tiempo suficiente. Conozco un montón de buenos ingenieros que no han tenido un buen curso formal de algoritmos.

Grigori Petrov: Quiero echar más leña al fuego. ¿De dónde viene nuestro ansia por los algoritmos?

Actualmente no tenemos una educación fundamental en algoritmos, no sabemos formar programadores, no tenemos una base técnica.

Están intentando hacerlo, pero aquí tenemos la historia de Hogwarts: no podemos crear una escuela para magos mientras no tengamos un solo mago. Por lo tanto, ¿qué debería hacer una universidad cuando se acercan a ellos y les preguntan: "Empiecen a formar programadores", pero no tienen programadores, porque todos trabajan en Mail.ru, Rambler y Yandex, están contentos allí?

La universidad mira y dice:
- Está bien, programación. Busquemos algún área de conocimiento relacionada e invitemos a especialistas de allí. Invitemos a periodistas que sepan escribir textos, ingenieros eléctricos que sepan hacer circuitos eléctricos y matemáticos que sepan usar algoritmos.

Al final, resulta que esto es tan práctico como enseñarle a un constructor física de partículas simplemente porque el ladrillo y el cemento están hechos de partículas elementales.

Al mismo tiempo, no hablan de cemento y ladrillos, porque el físico que intenta formar a un constructor no sabe cómo construir casas. El resultado es un constructor que es capaz de describir perfectamente cómo “funciona el cemento”, pero nunca lo ha visto y no sabe hacer nada con él.

Los algoritmos y las estructuras de datos son muy buenos, pero ésta es un área de aplicación muy pequeña. Se necesitan con urgencia, por ejemplo, si estás escribiendo un motor de juego, un compilador o un protocolo de red.

La mayoría de los programadores resuelven problemas comerciales donde no se necesitan algoritmos ni estructuras de datos.

Las matemáticas más difíciles son sumar dos veces y luego dividir. Requiere conocimientos completamente diferentes. La resolución de problemas empresariales requiere principalmente conocimientos aplicados más que fundamentales.

Es mejor para un desarrollador novato tener conocimientos de negocios y cómo ensamblar correcta y rápidamente las estructuras necesarias a partir de bloques ya hechos, cómo depurarlos, cómo asegurarse de que no se desmoronen, saber por qué se desmoronan. ¿Qué sucede cuando los requisitos cambian y el programa comienza a "asentarse sobre los cimientos" como una casa después de la lluvia?
Estas son cosas prácticas y una comprensión de cómo escribir software. Necesita saber que, además del depurador, tiene un conjunto de herramientas que le mostrarán exactamente dónde se está desacelerando el programa.

Valentin Dombrovsky: Me vino a la mente esta comparación: se trata de una traducción del lenguaje de los negocios a un lenguaje en el que puedes comunicarte con una computadora. Es decir, un programador es una especie de lingüista específico.

Grigori Petrov: Las empresas necesitan un escritor, no un lingüista. El escritor no necesita saber por qué hace mil años esta palabra se transformó en ésta. Necesita poder aplicar estas palabras.

Lo que necesitas para encontrar tu primer trabajo como desarrollador

Alexey Shtyrnyaev: Probablemente no exista una receta universal sobre cómo cocinar junior.

Si vienes a alguna empresa, te contratarán no porque conozcas Django, JSON y algunos algoritmos. Lo más probable es que lo contraten por las habilidades que esta empresa necesita aquí y ahora.

Hay muchas empresas y todas tienen requisitos diferentes. No existe una cantidad tan universal de conocimientos que deban obtenerse para seguir preparando un currículum y buscar un trabajo.

Grigori Petrov: Cuando en VoxImplant buscábamos varios ingenieros, nuestro director técnico formuló el requisito básico de la siguiente manera: una persona debe poder resolver problemas. Está claro que un joven no siempre hará esto de manera efectiva, no de la mejor manera y no siempre correctamente, pero lo ideal es que le des una tarea a una persona, él se esfuerce y la resuelva. Esta es la habilidad que los empleadores buscan principalmente.

Zlata Obujovskaya: Las personas que buscan trabajo en otros campos tienen alguna ventaja desde el punto de vista empresarial porque ya han recorrido algún camino y son capaces de resolver problemas rápidamente. Son habilidades blandas, incluso las llamaría cultura laboral. A menudo, los graduados universitarios aún no han desarrollado esta cultura laboral.

Pero todavía me gustaría intentar dar algún tipo de receta a los principiantes.

Primeros pasos para un desarrollador novato

Zlata Obujovskaya: La primera es que esto sigue siendo una especie de proyecto propio, porque necesitas escribir algo en tu currículum y mostrar un portafolio mínimo. Es mejor cuando estos proyectos no están hechos para ti, sino como un proyecto independiente, para alguien.

Después de los primeros proyectos, ya puedes hacer un currículum y enviarlo a todas las empresas donde hay puestos de junio. Las entrevistas proporcionarán información sobre lo que necesitan las empresas. Tarde o temprano alguien te contratará, al menos en una pequeña empresa. Posteriormente, esta experiencia laboral te brindará la oportunidad de ingresar a una empresa más grande e interesante.

Valentin Dombrovsky: Por cierto, en nuestros cursos preparamos a los estudiantes para que tengan su propio proyecto dentro de las 10 semanas posteriores a la formación. Además entrenamos habilidades de desarrollo de equipos. Estas son exactamente las habilidades sociales de las que habló Zlata.

Alexey Shtyrnyaev: Puedo decirte por experiencia que puede llevar mucho tiempo buscar tu primer trabajo. Cuando buscas uno o dos meses, eso es normal. Si envías tu currículum a todas las empresas, acudes a las entrevistas, en el tercer mes definitivamente encontrarás algo.

Valentin Dombrovsky: Puede recortar sus propios proyectos o realizar proyectos sencillos como autónomo y al mismo tiempo enviar su currículum.

¿Qué perspectivas tiene un desarrollador de Python?

Zlata Obujovskaya: Un desarrollador de Python puede ir a cualquier parte. Puede realizar pruebas y continuar desarrollándose hasta convertirse en arquitecto senior. O incluso en la gestión. Hay diferentes tipos de gerentes técnicos y usted puede llegar a ser directivo superior. Puedes desarrollarte en ciencia de datos, DevOps, dedicarte a pruebas automatizadas o aprendizaje automático.

Valentin Dombrovsky: En general, hay muchas opciones y oportunidades, incluidos nuestros cursos. No necesitas muchos conocimientos al principio, pero es recomendable que luego cubras un abanico más amplio, porque cuanto más puedas, mejor para ti.

***

Esto es solo parte del lanzamiento. pitón junior. La versión completa del episodio está disponible. escucha a.

O incluso mirar:

Ver mas

RSS de podcasts

Gracias por leer, escuchar o mirar.

Fuente: habr.com

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster