Una entrevista completa con el Decano del Departamento de Python en GeekBrains: cómo y por qué los principiantes aprenden el idioma

imagen

Ayer, publicamos el primer número de la serie "Por quién trabajar en TI". Para él, hablé con dos ex alumnos y el decano de la facultad de Python en GeekBrains . Cuando "monté" las historias en una historia, fue una pena que quedara mucho en los borradores.

Por lo tanto, hoy publico la transcripción completa de la entrevista con Alexei Petrenko, decano de GeekBrains, casi sin editarla o sacarla de contexto. Quizás será aún más aplicado, útil y concentrado que el problema principal.

Esto es lo que, por ejemplo, queda detrás de escena: ¿Por qué Python no es peor que otros lenguajes? ¿Qué marcos debo ver además de Django? ¿Dónde es mejor aprender a escribir, en un IDE moderno o en un cuaderno? Qué sitios y libros vale la pena aprender por su cuenta y mucho más.

- ¿Qué están haciendo los desarrolladores de Python ahora?

- Un desarrollador de Python puede hacer muchas cosas, desde simples scripts hasta análisis de datos y construcción de redes neuronales.

Hablando de desarrollo, este es un back-end para servidores web. La parte oculta de Internet, la que los usuarios comunes no ven. Servidor, su lógica, interacción con bases de datos.

- ¿Python no es peor para el desarrollo del servidor que otros lenguajes?

- En realidad no, no peor. Por ejemplo, en C, un desarrollador pasa mucho tiempo escribiendo código. Este es un lenguaje de abuelo. Escribir en C # es más fácil y rápido, pero esta es una creación de Microsoft: promovieron el lenguaje para el sistema Windows. Pero Java es universal ... De hecho, puedes debatir qué lenguaje es mejor.

Python tiene un umbral de entrada bajo, es muy fácil aprender los conceptos básicos de programación en él. Python es un lenguaje interpretado. En consecuencia, si se escriben dos programas idénticos en Python y C, entonces en Python el programa funcionará más lentamente. Tiene una audiencia muy grande, una biblioteca extensa, además de muchas bibliotecas externas que hacen los desarrolladores de todo el mundo. Y debido a esto, se convierte en un lenguaje adecuado para todo.

- ¿Podría ser que conocer Python es más fácil de ingresar en profesiones específicas, como inteligencia artificial y análisis, y los chicos con Java tendrán más probabilidades de tener un backend regular?

- Si miramos las estadísticas hace unos años, entonces el lenguaje PHP ocupaba el 80% del backend de todos los servidores. Pero PHP está empezando a perder terreno. Python ha lanzado varios marcos de desarrollo web en esta ola, y el más popular de ellos es Django. Está ganando popularidad, y muchos empleadores están buscando desarrolladores que conozcan este marco en particular.

Siempre hay competencia. Pero un estudiante novato debe comprender que, sin importar a qué se dedique por completo (Python o Java), en cualquier caso encontrará un trabajo.

- ¿Aprender Python como primer idioma es una buena solución?

"Me parece bien". Hace 20 años, mi primer idioma era básico. Y luego me pareció divertido y fácil programarlo. Cuando vi por primera vez la sintaxis de Python, mi primer pensamiento fue: "Es lo mismo que BASIC, solo que más genial". Da las mismas sensaciones: fácil, divertido, todo queda instantáneamente claro. Es decir, Python es el mejor lenguaje para el primero.

"¿Precisamente por la simplicidad?"

- Sí, debido a la sintaxis simple. Perdona errores menores del desarrollador, a diferencia de los lenguajes compilados, donde si está sellado, el programa ya no compila.
Aunque espero que los desarrolladores no esperen que el intérprete corrija todos sus errores.

Lo más importante, el desarrollador entendió que después de una base fácil, tendría que hacer un esfuerzo para dominar los aspectos más serios. Bibliotecas y marcos que hacen de Python un lenguaje aún más genial y avanzado.

- ¿Qué tan compleja y voluminosa es la sintaxis?

- En la configuración básica de Python hay aproximadamente 70 funciones (pero incluso un programador genial no necesariamente las usa todas) y varias docenas de palabras reservadas. Es decir, para aprender cien palabras y comprender lo que están haciendo, puede pasar de una a tres semanas si lo desea y trabajar duro.



- La escritura dinámica no es un signo negativo?

- La escritura dinámica tiene oponentes a los que inicialmente enseñaron en la universidad a escribir en C, ingresaron, que esta es la base de todos los idiomas y que todos deberían ser iguales. Por lo tanto, son extremadamente negativos sobre la escritura dinámica. De hecho, la escritura dinámica es más más que menos. Acelera el desarrollo.

Pero si está acostumbrado a la escritura estática, entonces el lenguaje tiene la capacidad de prescribir los tipos de variables que usa. Escribir seguirá siendo dinámico, pero puedes darte cuenta de tu hábito.

- Pero ahora Go y TypeScript están creciendo en popularidad debido a la mecanografía estricta.

- Sí lo es. Pero los idiomas siempre van y vienen, y Python ha estado vivo durante 30 años y aún continúa ganando popularidad. Go language es joven y bueno. Tal vez se desarrolle, o tal vez nos olvidemos de él en unos años.

Si comparamos el lenguaje de programación con un depósito, entonces, por ejemplo, el lenguaje C es el océano. Se zambulle desde un acantilado hasta una gran profundidad y nada o se ahoga. El lenguaje Python es una playa de arena limpia donde puedes llegar lejos, nadar tranquilamente y, si entiendes que quieres seguir adelante, hay una gran depresión en profundidad detrás de la hermosa playa, comparable a C y Java.

"Conociendo Python, ¿es difícil cambiar entre profesiones, dónde se usa?"

Python tiene una amplia biblioteca. Si de repente te das cuenta de que no quieres tratar con sitios y backends, sino que quieres cambiar a inteligencia artificial, entonces conociendo la base, debes pasar varios meses para ajustar las matemáticas y aprender varios marcos adicionales.

Una situación similar con big data: debe recordar el curso de las estadísticas, análisis y mirar dos o tres bibliotecas nuevas. Es decir, los costos laborales se reducirán significativamente si ya conoce el idioma.

- ¿Qué es más difícil?

La analítica y el big data son programación más matemáticas. Si hay una predisposición a ello, entonces ¿por qué no tratar con redes neuronales, sistemas de reconocimiento? Si solo te gusta programar, pero no a un nivel alto, entonces es mejor ir a escribir servidores. También necesitan matemáticas, pero al menos no más. Sin integrales y factoriales. Suma y resta elementales.



- ¿Qué necesitas saber antes de ingresar a los cursos?

- Sería bueno saber de antemano si te gusta programar o no. Te aconsejaría que intentes escribir varios programas, prueba lecciones gratuitas. Es mejor comprender qué es una variable, cómo agregar dos variables.

- Si una persona ni siquiera ha comenzado, ¿dónde y cómo puede entender esto?

- Tenemos intensivos gratuitos sobre los conceptos básicos de programación y variables. Allí debe escribir en Javascript, porque en cualquier navegador moderno hay un intérprete, no tiene que instalar nada.

Con Python, Java y otros lenguajes, es un poco más complicado: debe instalar un entorno de desarrollo. Pero si entiendes que te gusta, entonces por qué no. Puedes pasar diez minutos y lentamente convertirte en programador.

- ¿Cómo aprender para que el curso no se convierta en una corteza inútil?

- Una palabra es práctica. Si solo miras y escuchas, no saldrá nada de eso. Para un novato, incluso es práctica reescribir el código que el profesor muestra en la pantalla. Reescribe y piensa en cómo funciona. Es necesario llevar a cabo tareas prácticas, como parte de los cursos, para buscar por ti mismo en Internet. Si la capacitación es por el bien del empleo, entonces la práctica es aún más necesaria. Es difícil de aprender, fácil en la batalla.

La práctica mínima requerida es de cuatro horas a la semana. Dos días bajo dos horas de práctica. Pero recomendaría pasar una hora al día escribiendo su propio código.

- ¿Qué es mejor aprender: cosas fundamentales o populares y aplicadas?

- Es mejor que un principiante entienda la sintaxis. Y cuando, para alguien después de una semana, para alguien después de un mes, una persona dirá "Conozco la sintaxis y puedo escribir construcciones y algoritmos elementales", solo entonces vale la pena considerar a dónde quieres llegar más lejos. Cuanto más estudies, más te alejarás de la sintaxis a bibliotecas individuales, patrones de diseño, plantillas individuales.

Lo principal es no sumergirse en la programación con la cabeza para que no haya disturbios de magia. Cuando aprendes todo durante tres días, y obtienes gachas en la cabeza.

- ¿Qué sutilezas necesitas saber para no darte la vuelta inmediatamente?

- Existe un Pep8 estándar: este es el acuerdo de los programadores que escriben en Python. Indica cómo escribir correctamente y qué tan incorrecto: si desea escribir una construcción con condiciones, escríbala de manera similar. Si hay algo más, por ejemplo, para crear una función, llámela con tal o cual estilo.

Si desea trabajar en equipo y mostrar el código a otra persona, si el código debe ser compatible en el futuro, debe conocer el estándar generalmente aceptado. Sería bueno para un principiante leerlo junto con el estudio de la sintaxis.

Los programadores novatos, sin conocer Pep8, escriben un programa que también funciona. Pero cuando, después de otra ocasión, otra persona trata de leerlo, surgen dificultades. Escriben el código una vez, lo leen diez veces.

- Algo mas? Versiones, por ejemplo?

- Hace unos años, se produjo una división en Python. Hubo Python 2.7, y luego salió la versión 3. La segunda versión todavía se usa, pero solo en las empresas más antiguas para mantener el código heredado. Si consigue un trabajo en una empresa de este tipo, tendrá que aprender Python 2, pero recomendaría aprender la tercera versión. Todos los proyectos modernos y las bibliotecas de terceros están escritos debajo.

Daré un ejemplo elemental. Payton de la tercera versión, un comando para mostrar un mensaje en la pantalla: escribimos print, abrimos el paréntesis y pasamos el texto y las variables dentro de los paréntesis.

En la segunda versión, escribimos print, sin corchetes, luego un espacio y una variable. Es decir, en un caso, un espacio, en los otros corchetes. No es importante que una persona entienda esto, pero el intérprete es importante: un espacio o paréntesis



- ¿Cuáles son las mejores formas de autoeducación que nombrarías?

- En paralelo con la capacitación, puede intentar implementar sus ideas y proyectos. Mientras aprende lo básico, resuelve acertijos y escribe programas simples. Por ejemplo, estudié ciclos y por qué no escribir un programa que muestre la tabla de multiplicar.

A continuación, aprende el marco de Django, que le permite crear sitios. ¿Por qué no tratar inmediatamente de escribir su propio sitio, que siempre he querido?

Todavía existe un sitio así: el proyecto Euler. Hay un conjunto de tareas para crear programas.
Una persona que sabe programar puede realizar la tarea, pero si escribe código de baja calidad, incluso una computadora moderna lo resolverá durante varios minutos, horas o incluso días. Es decir, el proyecto te hace pensar en la optimización. Porque el código correcto resuelve los problemas del proyecto Euler en segundos.

Del libro: "Learning Python" de Mark Lutz y "Pure Python". Dan Bader

- ¿Con qué herramientas y marcos debo comenzar?

Un programador novato puede tomar Flask por ejemplo. Es simple, no lleva información innecesaria, es fácil de aprender. De hecho, esta es una pequeña caja en la que no hay nada superfluo. Y ella escribirá los sitios más simples.

Si piensas en el futuro, entonces el monstruo entre los marcos es Django. Esto ya no es una caja pequeña, sino una caja enorme en la que hay mucho de todo. Al comprender gradualmente todas sus capacidades, puede escribir sitios buenos y escalables que puedan servir a miles de usuarios cada minuto.

- Paquetes, bibliotecas?

- Para los principiantes, te aconsejaría que te familiarizaras con la biblioteca estándar de Python. Estos son los mismos módulos que se instalan en la computadora junto con el intérprete. De hecho, la biblioteca estándar es muy grande. que incluso su estudio llevará más de una semana.

Algunos módulos de la biblioteca estándar nunca serán necesarios, pero es necesario tener una idea sobre ellos para que un día no comience a reinventar la rueda. Todas las bicicletas están ensambladas allí.

En la programación, a menudo se usa una estructura de datos como "colas". Y si una persona acaba de aprender la sintaxis, entiende que no hay colas en Python. Aunque en otros idiomas, las colas se usan activamente y permiten resolver grandes volúmenes de tareas.

Pero vale la pena profundizar en la biblioteca estándar, y encontramos el módulo de colecciones allí. Dentro de este módulo se encuentra la estructura de datos "cola" y resulta que se ha implementado durante mucho tiempo, solo un poco oculto. Está optimizado al máximo y funcionará de todos modos mejor que si escribieras tú mismo.

- ¿Y cosas elementales? ¿Qué IDE tomar?

- En esta ocasión, las opiniones difieren. Algunas personas piensan que un programador novato debería escribir en el bloc de notas (no en el curso estándar, pero al menos en el bloc de notas ++).

La idea es que cuando comienzas a programar, tienes que escribir todo el código manualmente. Esto le permitirá recordar la descripción de estructuras, funciones básicas. Pero el problema es que el cuaderno no le dice dónde cometió un error. Si un principiante no ve dónde están los errores, puede desesperarse de que nada funcione y dejar este negocio.

Por lo tanto, existe la opinión de que es mejor tomar IDEs modernos. Aquí tienes que dar crédito a jetbrains. Crearon PyCharm IDE, que tiene una versión comunitaria totalmente gratuita. Ella cuenta todos los errores elementales.

- ¿Qué enfoque tomas?

Estoy a favor del segundo enfoque, para no desanimar al principiante de escribir código. Cuando el código funciona, existe el deseo de seguir desarrollándose. Pero si ve un error, descubra cómo lo cometió y cómo solucionarlo.

Aunque, para ser sincero, yo mismo comencé con viejos cuadernos.



- ¿Cuál debería ser el nivel mínimo para conseguir un trabajo?

"Mi experiencia en Geekbrains muestra que algunos estudiantes encuentran trabajo antes de terminar su curso de un año". Todo depende de cómo estudió el estudiante, qué motivación tuvo, qué tan activamente invirtió.

Si hablamos sobre las habilidades que el empleador quiere ver con el desarrollador del servidor, este es un trabajo básico con sintaxis, conocimiento de cómo funcionan los sitios, el backend y Django. El programador debe saber cómo escribir código más rápido y más correctamente.

También agregaría trabajo en equipo y conocimiento de bases de datos, porque cualquier backend de cualquier sitio está inextricablemente vinculado con el almacenamiento de información.

- ¿Con qué dinero se puede contar en el nivel inicial?

- Depende de la región. Alguien consigue un trabajo por 40 mil como principiante, alguien puede por 100 mil. Mirando cómo se manifiesta. Para hacer esto, debe demostrar que no solo puede escribir código, sino que también comprende la arquitectura, puede esbozar todo el esquema del proyecto, los módulos, los servicios y sus esquemas de interacción.

- Tal vez esto es una rareza entre los principiantes?

- Pasamos por el diseño en el cuarto trimestre, casi al final del entrenamiento.

- ¿Cuánto necesitas balancear en el trabajo para subir de nivel?

- Puedes bombear hasta la mitad durante el año de estudio en Geekbrains. Hay cursos obligatorios y adicionales. El estudiante mismo elige cuándo tomarlos, pero los cursos principales y adicionales deben completarse para llamarse honestamente medio. Es decir, el año del programa principal y otros seis meses de programas paralelos.

- ¿Quién es el desarrollador firmante?

- Esta es una persona que tiene una rica experiencia. Esta es una persona que entiende diferentes marcos, es capaz de escalar tareas, entender qué recursos requieren. Un hombre que no inventa bicicletas. Quien, desde mi propia experiencia, entendió todos los aspectos y matices del trabajo.

"Si conoces a un hombre que no sabía nada hace tres años, y ahora se hace llamar firmante, ¿qué te parece?"

"¿Por qué no?" Depende de la empresa, aspiraciones y habilidades. Si una persona es superdotada, entonces lo creeré. Si él dice que conoce Python, no Python, entonces probablemente todavía tenga una oportunidad.

- Y si no eres tan genio, ¿cuánto necesitas en promedio de experiencia?

- Si una persona no tiene un propósito, entonces puede trabajar cómodamente a nivel medio, cinco y diez años. Realiza el volumen de tareas que te dan, disfrútalo.

- Es decir, ¿el medio es solo alguien que no se hace responsable?

- Sí, Signor está listo para asumir la responsabilidad de las decisiones, liderar equipos. Seamos honestos: hay líderes, hay seguidores. Alguien está listo para arriesgarse, participar en una startup, y si dispara en un año, la persona se llamará inmediatamente director, firmante y cualquier otra cosa.

Y hay programadores a los que les gusta programar, pero no están listos para tomar decisiones globales.

- Parece que la graduación junior middle middle no se trata únicamente de conocer el idioma.

- Esta gradación es generalmente arbitraria y difiere de una compañía a otra. Si es absolutamente elemental, un junior es una persona que conoce la sintaxis. Medio: conoce todas las bibliotecas, frameworks adicionales, sabe cómo usar todo esto. Signor: no solo sabe cómo usarlo, sino que tiene una rica experiencia en el desarrollo de diferentes cosas.

- ¿Qué tipo de trabajo buscar para no decepcionar de inmediato?

- Debemos hacer una nota de inmediato en mi cabeza: "Si nada funciona, no me enojaré". Vale la pena practicar en forma independiente o hacer proyectos conjuntos durante la capacitación.

- ¿Cómo no enfrentar la suciedad durante una entrevista?

- En primer lugar, no te quedes callado. Si le dan una tarea que no se puede responder de inmediato, razone en voz alta y demuestre cómo cree que es capaz de avanzar hacia una solución. En las entrevistas, también pueden dar preguntas básicas. Los estudiantes hablaron sobre cómo se les asignaron las tareas que resolvimos con ellos. Es decir, no escuches cursos más allá de tus oídos

Lo principal es no desesperarse si la primera entrevista no tuvo éxito. Al ir a dos o tres entrevistas, notará que las preguntas comienzan a repetirse. Y luego tú mismo elegirás dónde establecerte, porque en tres entrevistas regulares un día irás a todas partes.

- ¿Sobre qué temas entenderías que es mejor huir de esta empresa?

- Quizás si muestran el código, y entiendes que es ilegible. «-» , . , , . .

— ?

— . — . — , - .

.

Source: https://habr.com/ru/post/454182/


All Articles