
Traduje para usted
un artículo de Chuck Groom , un programador con 18 años de experiencia, que ahora trabaja como director técnico de una gran empresa de Nueva York. Chuck a menudo busca empleados para su empresa y en el artículo le dice qué cualidades y experiencia debe tener un graduado de un campamento de entrenamiento (así como una universidad o cursos) para poder ser contratado.
Como director técnico de mi propia empresa de TI, a menudo busco nuevos empleados. A menudo hablo con graduados de bootcamps que pasaron de 3 a 6 meses allí. La pregunta principal que les interesa es cómo obtener el lugar de un desarrollador.
Skillbox recomienda: Curso práctico de dos años "Soy un desarrollador web PRO" .
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".
Debo decir de inmediato que el entrenamiento en bootcamp o en otro lugar no es en absoluto una garantía de convertir a un mortal común en un programador experimentado. Para convertirse en desarrollador, se requieren miles de horas de capacitación y práctica independientes en la creación de software. Sí, bootcamp es un gran comienzo, pero luego debes continuar estudiando.
Esto es en lo que debe enfocarse un programador novato que quiera comenzar una carrera:
- Escribir mucho código mientras trabajas en un proyecto. La tarea que le gusta realizar es la clave para un aprendizaje rápido. Además, debe iniciar un repositorio en GitHub, esto es tanto una cartera como un argumento que le permite otorgar un cierto crédito de confianza a un principiante.
- Aprender las cosas básicas, los conceptos básicos de la programación. En primer lugar, durante una entrevista, a menudo les interesa saber si el solicitante conoce la base. En segundo lugar, es necesario que el propio especialista entienda lo que está haciendo.
- Redes Necesita reunirse con colegas y posibles empleadores, "venderse" a sí mismo. Las redes débiles a menudo conducen a dificultades para encontrar trabajo. Y viceversa, asistir a conferencias, hackatones, eventos para programadores permite no solo comunicarse con “hermanos en mente”, sino también establecer una conexión con un posible empleador
.

Resolver problemas reales
Cierta tarea que emprendió llevar a cabo significa mucho más que una simple codificación "en el vacío". El punto es que si estás aprendiendo algo, no solo lo hagas, trata de aplicar tus conocimientos. Por ejemplo, ayudar a la comunidad de código abierto a mejorar el proyecto. Todo lo que necesitas en la etapa de formación es elegir un proyecto interesante, una tarea donde puedas mostrar todo lo que eres capaz de hacer. Intente hacer algo único, no cree otro sitio con recetas.
Cuando trabaje en un proyecto, publique los resultados en GitHub
Publique los resultados de su trabajo en el repositorio abierto de GitHub. No se preocupe si su código es imperfecto, solo intente que sea lo más legible posible (y, por supuesto, que funcione). No te olvides de las pruebas automáticas y de agregar léame bien escrito a los proyectos.
Los empleadores a menudo califican a los programadores por su github. Quieren ver ejemplos de trabajo, y su tarea es darles.
Una idea para hacer: crear una habilidad para AlexaEsto es útil para mejorar las habilidades de un programador e indicativo, porque esta habilidad estará disponible para todos. El desarrollo de módulos para el asistente digital de Amazon es, por supuesto, un factor sorprendente que puede atraer a un empleador hacia usted.
Puedes comenzar con uno simple. Primero, deberías ver lo que ya existe. Luego, intente desarrollar su propia habilidad, hacerla funcional, pulirla. Entonces comprenderá cómo funciona el dispositivo IoT, obtendrá una experiencia invaluable y el primer (o segundo, tercer) trabajo en su cuenta para su cartera.
Y puede implementar algo para un posible empleadorEsta es una gran opción. Si desea obtener un trabajo en una empresa específica, intente hacer algo útil para ello. Por ejemplo, cuando trabajaba en Xmarks, un colega y yo entrevistamos a un buscador de empleo, un tipo que mostró una demostración de un proyecto que utilizaba nuestras API. El proyecto fue interesante, nos dimos cuenta de que el solicitante realmente lo intentó y, además, conoce nuestro producto, y lo contratamos.
Aprende lo básico
Tómese el tiempo para aprender los conceptos básicos del desarrollo de software: estructuras de datos comunes, métodos de programación y conceptos. Con preguntas sobre ellos, existe la posibilidad de reunirse en una de las entrevistas en el futuro. Pero, lo que es más importante, estas son herramientas comunes que todo ingeniero de software debería tener en su equipaje. Debe comprender claramente qué constituye un buen programa que funciona de manera correcta y rápida.
Estructuras de datosDebe estar bien versado en las listas y diccionarios de su lenguaje de programación elegido.
- En cuanto a las listas, debes saber:
- sintaxis para trabajar con cualquier elemento de la lista;
- sintaxis para obtener el enésimo elemento de una lista; concepto de indexación y 0 indexación;
- El principio de ordenar la lista es darse cuenta de que si la lista es larga, puede llevar algún tiempo;
- diferencias entre matrices y listas; pilas y colas.
Para los diccionarios, los elementos clave del conocimiento son:
- La sintaxis para usar un diccionario para buscar e insertar
- el concepto de un par clave - valor;
- buscar por clave;
- casos de uso común: "paquete de atributos" para describir cosas, tabla de búsqueda;
- la relación entre diccionarios y JSON (serialización);
- el concepto de funciones hash (y cómo están relacionadas con los diccionarios);
- principios para usar hashes criptográficos como SHA-1.
Conceptos de programación
Hay muchos conceptos que puedes estudiar. Pero lo principal es la comprensión de los principios de trabajar con funciones y lejos de un conocimiento similar al de la programación orientada a objetos y su lógica.
Las funciones son los principales componentes básicos de los programas. Hay muchos matices de su uso, desde una buena selección de nombres hasta la comprensión de qué función es mejor usar. Todo esto viene con experiencia.
En cuanto a la programación orientada a objetos, necesita:
- bien versado en instancias y clases;
- no menos bueno - en herencia (subclases);
- Sepa cómo definir una clase utilizando el método de inicialización en su idioma de elección.
- Prepárese para hablar sobre encapsulación, abstracción y polimorfismo.
Bases de datos (SQL)
Los alumnos de Bootcamp a menudo están poco familiarizados con las bases de datos. Si esto se aplica a usted, le aconsejo que comience a explorar bases de datos relacionales y SQL de inmediato. Además, intente configurar una base de datos PostgreSQL o MySQL en su computadora usted mismo.
También tenga en cuenta que MongoDB no es SQL, por lo que el entrevistador no siempre está interesado en la experiencia de la base de datos y pregunta sobre MongoDB.
Entrevista de trabajo
Aquí los consejos serán generales: vale la pena explorar los principales problemas que pueden surgir durante una entrevista en Internet. Además, unir fuerzas con tus amigos y tratar de entrevistarse entre sí.
Redes
El arte de interactuar con las personas aumenta las posibilidades de obtener un gran lugar en la empresa.
Un punto importante para la creación de redes de un programador, como dije, es su GitHub. Además, debe tener una cuenta actual de LinkedIn con muchos contactos. Utilizo LinkedIn como mi propio currículum, esta vez. Dos: con la ayuda de esta red social busco a las personas que necesito. Bueno, si tienes muchas conexiones en LinkedIn, puedes conocer a una gran cantidad de especialistas, entre los cuales habrá empleadores potenciales.
Internet no lo es todo. Es importante abandonar su zona de confort (no importa cuán maltratada pueda ser esta frase) y conocer a las personas cara a cara. Asista a reuniones, acérquese a extraños y preséntese, así como chatee con personas de su interés. Es bastante normal iniciar conocidos con aquellos a quienes desea conocer usted mismo. La lección de vida clave que he aprendido es que no debes avergonzarte de invitar a alguien a tomar una taza de café, aunque sea por un par de minutos.
Te sorprenderá la frecuencia con la que el azar y la buena voluntad abren puertas importantes.
Y lo principal, por supuesto, es continuar estudiando, mejorar su experiencia y conocimiento. La motivación es lo que buscan muchos empleadores. Al ver a un buscador de trabajo motivado, aunque novato, un líder experimentado puede hacer la vista gorda ante algunas deficiencias en términos de profesionalismo en aras del entusiasmo y la voluntad de aprender más.
Skillbox recomienda: