Fury Road: el viaje del desarrollador de facturación

El gerente de una empresa de desarrollo de facturación tiene dos formas de formar un equipo. El primero es reclutar "personas mayores" preparadas y crear continuamente condiciones de trabajo para que aprovechen al máximo sus habilidades y experiencia, se desarrollen y al mismo tiempo no se metan en peleas. El segundo es crear un equipo a partir de una combinación de recién llegados, medios y profesionales, para que se comuniquen, se influyan entre sí, aprendan y crezcan dentro de la empresa. Estoy en contra del círculo vicioso del estilo “sin experiencia, sin trabajo, sin experiencia” y no veo ningún problema en contratar a un desarrollador principiante. Forward Telecom cuenta desde hace tiempo con un programa de prácticas, que se ha convertido en un trampolín profesional para muchos empleados actuales.

Ahora te diré cómo veo el camino de desarrollo de un desarrollador de facturación y en qué secuencia debes dominar las habilidades profesionales.

1. Aprende un lenguaje de programación

Para empezar, cualquiera. La prioridad es Java, Python y JavaScript, pero Ruby, Go, C, C++ son adecuados para adquirir conocimientos básicos. ¿Como enseñar? Tome cursos gratuitos y pagos; puedo recomendar la capacitación de Golang. Si tu nivel de inglés lo permite, ver vídeos extranjeros es una buena habilidad adicional.

Fury Road: el viaje del desarrollador de facturación

2. Comprender los conceptos del sistema operativo

Los sistemas operativos se basan en siete componentes que es necesario conocer y poder explicar el principio de funcionamiento:

  • Gestión de proceso;
  • Hilos y código multiproceso;
  • Zócalo (interfaz de software);
  • despacho de E/S;
  • Virtualización;
  • Almacenamiento;
  • Sistemas de archivos.

Recomiendo tomar un curso básico de administración de Linux. Los segundos sistemas operativos son Windows y Unix.

3. Acostúmbrate al terminal

Por analogía con la fobia a una hoja en blanco, existe la fobia a una pantalla negra en blanco con un cursor parpadeante. Tendrás que superarlo para aprender a escribir buenos comandos en la línea de comandos.
Debe saber:

  • shells Bash y KornShell;
  • Los comandos encuentran, grep, awk, sed, lsof;
  • Comandos de red nslookup y netstat.

Fury Road: el viaje del desarrollador de facturación

4. Red y seguridad

La facturación está estrechamente relacionada con los requisitos de red y protección de datos. No se pueden escribir servicios en línea sin comprender cómo funciona la red, por lo que es necesario aprender los conceptos y protocolos básicos: DNS, modelo OSI, HTTP, HTTPS, FTP, SSL, TLS. Luego, cuando encuentre un error de Conexión rechazada, sabrá qué hacer.

5. Servidores

Después de estudiar los principios de la transmisión de información en la red, puede comenzar con los conceptos básicos del funcionamiento del servidor. Comience con servidores web: IIS, Apache, Nginx, Caddy y Tomcat.

Más abajo en la lista:

  • Proxy inverso;
  • Proxy anonimo;
  • Almacenamiento en caché;
  • Balanceo de carga;
  • Cortafuegos.

6. Aprenda la infraestructura como código

Creo que esta etapa es una de las más importantes. Tendrás que entender tres temas amplios:

  • Contenedores: Docker y Kubernetes
  • Herramientas de gestión de configuración: Ansible, Chef, Salt y Puppet
  • Copia de seguridad: Terraform, nubes.

7. Aprenda CI/CD

Otra habilidad útil para un desarrollador de facturación es poder configurar un canal para la integración y entrega continuas. En el área de CI/CD existen herramientas como Jenkins, TeamCity, Drone, Circle CI y otras. Spoiler: aprender el Jenkins ampliamente utilizado será suficiente al principio.

8. Control de software e infraestructura

El objetivo clave es comprender los conceptos básicos de la supervisión de aplicaciones. Las herramientas en esta área se dividen en tres grupos:

  • Monitorización de infraestructura: Nagios, Icinga, Datadog, Zabbix, Monit.
  • Monitoreo del rendimiento de aplicaciones: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. Servicios en la nube

En un futuro próximo, cada aplicación o software tendrá una contraparte en la nube. Tarde o temprano, los desarrolladores se encuentran con la nube, así que lea sobre los proveedores de nube populares (AWS, Google Cloud y Azure) y los conceptos básicos de la tecnología.

10. Trabajar con la base de datos

Todos los proyectos actuales utilizan bases de datos y la experiencia con DBMS y SQL facilitará el inicio. Aprenda a escribir consultas SQL, utilice explicaciones y aprenda cómo funciona el índice. La forma más sencilla es realizar un curso. También puedes practicar tus habilidades de documentación de Postgres y jugar con la replicación.

11. Mejora tus habilidades sociales

Un punto inesperadamente fuera de lo común, pero no menos importante. Para empezar, tenga paciencia. Te acostumbras rápidamente a situaciones como “arregla tu plancha, eres programador”, pero necesitas estar mentalmente preparado para los plazos de lanzamiento de nuevos proyectos. Si tienes entre cero y un año en programación y eres considerado Junior, prepárate para las críticas y aprende a aceptarlas, la revisión del código por parte de un mentor suele ser un proceso doloroso. Pero al mismo tiempo, una habilidad obligatoria es la capacidad de defender el propio punto de vista y argumentar de manera constructiva; a veces la verdad nace de una discusión. Los desarrolladores nunca dejan de aprender, prácticamente no hay techo en la profesión, por eso la capacidad de aprendizaje y el DESEO de aprender cosas nuevas son la base de su desarrollo.

Fury Road: el viaje del desarrollador de facturación

A menudo me preguntan cuándo un principiante alcanza el nivel medio y cuándo se le puede llamar con orgullo "senior". Creo que el momento de transición de un nivel a otro no está determinado por el número de años trabajados, aunque las habilidades prácticas son un criterio clave. Son precisamente las habilidades interpersonales las que a menudo determinan la velocidad de crecimiento de un desarrollador: un principiante capacitado y trabajador puede escribir código de alta calidad en varios idiomas y ser capaz de trabajar en equipo en tan solo unos meses. Es posible que un desarrollador con 10 años de experiencia no pueda resolver problemas no estándar, administrar un equipo y tener habilidades unilaterales.

Así es como veo el camino de desarrollo de un desarrollador de facturación, así es como formamos especialistas calificados en nuestro equipo de Forward Telecom. No parece que le falte nada, pero siempre agradezco las adiciones útiles al tema.

Fuente: habr.com

Añadir un comentario