¿Cómo encontrar tu primer trabajo como programador?

Recientemente, Alexey Parshukov, Líder de Unidad en SkyEng, ex CTO DocDoc, realizó un seminario web "Inicio rápido en la programación desde cero" y discutió las diferencias en el aprendizaje de lenguajes de programación, la esencia de la profesión de programador, cómo conseguir un trabajo y qué son los empleadores. Puede ver el seminario web en el enlace y leer el artículo ahora mismo :)



imagen




¿Qué es un trabajo como programador?



La profesión de programador tiene ventajas obvias que todos conocen:



  • Buenos salarios


Desde 100 tr. por regiones de Rusia, 250-300 tr en Moscú, en el extranjero desde 10 mil dólares;



  • Horario flexible


Un desarrollador es principalmente un trabajo remoto;



  • Demanda en el mercado internacional.


Este es uno de los trabajos más fáciles para la inmigración.



Pero no todas las personas pueden convertirse en desarrolladores, de lo contrario, todos se habrían vuelto a capacitar como programadores hace mucho tiempo. Siempre tienes que quedarte en la línea. No puede dominar ninguna tecnología, leer un libro, tomar un curso, dominar Python a la perfección y luego ganar 20 años con esto. La industria y las tecnologías se están desarrollando tan rápidamente que los enfoques, los marcos y los lenguajes de programación que son relevantes hoy en día seguramente cambiarán por completo en 4 años, y si abandonas la profesión durante un año, tendrás que comenzar prácticamente desde cero.



Por ejemplo, irse al ejército es un gran problema para los estudiantes, porque muchas cosas cambiarán en un año de ausencia del mundo del desarrollo. Esto no es muy crítico. Puede ponerse al día lo suficientemente rápido, pero, en cualquier caso, debe mantenerse constantemente en la línea de tendencia, aprender constantemente, estudiar enfoques modernos, observar qué está cambiando y cómo, y luego será un desarrollador exitoso que ganará mucho dinero.



Y un inconveniente más, del que pocas personas hablan, es la discriminación por edad bastante fuerte. Si eres estudiante, encontrar un trabajo será bastante fácil. Si tienes entre 30 y 40 años, eres bienvenido en cualquier empresa de tecnología. Si tienes más de 40 años, será más difícil. Pero si tiene más de 50 años, lo más probable es que no encuentre trabajo en ningún lado. Vale la pena recordar que existe.



¿Cómo saber si un trabajo como programador es adecuado para usted?



No es tan importante aquí qué educación tienes, si te graduaste de la universidad por profesión. Lo principal es que has desarrollado fuertemente la perseverancia. ¿Por qué es esto tan importante?



Imagine que se le asigna una tarea como desarrollador, por ejemplo, para mover un botón desde el lado izquierdo de la pantalla hacia la derecha en una aplicación móvil para que sea conveniente presionarlo con el pulgar. Te sientas y comienzas a hacer esta tarea. Le tomará un poco de tiempo entender la aplicación: dónde se encuentra, cómo se ensambla. Tomará un poco más estudiar el código que programa y muestra este botón en la pantalla. Tomará muy poco tiempo realizar cambios en este código y decirle al compilador o al teléfono móvil: "Por favor, muestre este botón no a la izquierda, sino a la derecha".



Pero entonces este código probablemente no funcionará. Y para los próximos intentos, no funcionará. Deberá leer un montón de documentación para descubrir cómo funciona la asignación de botones en Android o iOS. Tendremos que probar 10 formas diferentes: encontrar algunas rondas de trabajo, apuntalarlo todo con muletas, escribir al desarrollador, mirar los códigos fuente de Android y en 4-5 días, en el mejor de los casos, o incluso más tarde, este botón se mostrará según lo necesite.



Todo el trabajo consiste en esto: cada día, cada tarea. Es muy probable que cada línea de código que escriba no funcione o no funcione de la manera que desea, y no habrá una razón obvia por la que no funcione. Se necesita una cantidad increíble de tiempo para darse cuenta de lo que está sucediendo allí y cómo hacer que esto haga lo que desea.



Y el resultado final, en el que todo funcionó, debería traerte mucha alegría. Este es el principal motivador del desarrollador, lo que lo hace ir a trabajar y hacer algo día a día. La perseverancia le permitirá no derrumbarse, no rechazar, no cambiar de opinión, no distraerse con el café y las redes sociales, sino sentarse durante horas y pensar por qué esto no funciona y cómo hacerlo funcionar.



¿Qué tipo de empleadores hay?



Lanza libre



Como regla, estas son tareas pequeñas por poco dinero. Se pueden hacer lo suficientemente rápido. Se enumeran en los intercambios independientes. El principal intercambio en Rusia es freelance.ru. El principal internacional es upwork.com.



Los intercambios son adecuados para asumir algunas tareas prácticas que traen algún beneficio, por ejemplo, ganar su primer dinero. Es lo suficientemente simple. Nadie va a leer su currículum, verifique si tiene experiencia real, si puede realizar esta tarea o no. Este es un buen lugar para tener en tus manos y comenzar a programar algo, ganar dinero con ello. En teoría, hay personas que han estado haciendo esto toda su vida y ganan mucho más dinero que el empleador.



Pero también hay desventajas. La principal es que esto es más como crear su propio negocio que trabajar como programador, ya que pasa mucho tiempo buscando pedidos, comunicándose con el cliente, alineando procesos de manera efectiva, y no dedica mucho tiempo al desarrollo. Y, como regla, los productos para los que se asignan tareas en los intercambios utilizan una pila de tecnología bastante específica. Por ejemplo, muchas tareas estarán relacionadas con cambios en el motor de blogs de Wordpress. Raramente se usa en el desarrollo de productos, incluso con menos frecuencia en las empresas, pero habrá un millón de tareas sobre este tema en el trabajo independiente: arreglar algunos Landos, mover una imagen, escribir un complemento. Esta experiencia y estas tecnologías son poco aplicables en el trabajo para un empleador. Es difícil aprender algo en forma independiente porque no hay equipo. No hay personas con las que interactúes,de quien puedes aprender algo, que puede evaluar tu trabajo y compartir experiencias. Por lo tanto, trabajar independientemente es bueno para comenzar, pero no para el trabajo profesional.



Estudios / integradores / subcontratistas



Estas son compañías bastante diferentes, cuyas actividades son muy diferentes. Hay jugadores pequeños y grandes, pero generalmente comparten ventajas y desventajas.



De los profesionales:



  • Una gran corriente de proyectos completamente diferentes.


No te duermes en ninguna rutina de proyecto en particular. Estos son proyectos diferentes, están en constante cambio, tienes la oportunidad de aprender constantemente algo nuevo;



  • La mayoría de estas empresas tienen procesos bastante claros.


Tienen algoritmos para trabajar con documentación, un proceso de desarrollo integrado, interacción con un cliente, funcionan bien con estimaciones, saben cómo calcular la economía, porque esta es su actividad profesional.



  • Nivel alto


Puede aprender bien cómo desarrollar software a partir de ellos.



Contras:



  • No todas las empresas son geniales


A las principales empresas les va realmente bien. Tienen todo perfectamente construido, tienen dinero, clientes y proyectos interesantes. Pero hay muchas empresas de nicho con un pequeño equipo de 5 a 10 personas, en las que no existen procesos tan aceitados, pero en estas empresas puedes conseguir fácilmente un trabajo y aprender algo útil. Puede aprender a desarrollar software trabajando con ellos durante seis meses y trasladarse a otra compañía para obtener un trabajo mejor remunerado.



  • Poca libertad


El cliente, por regla general, sabe lo que necesita. Tiene un diseño, tiene una tarea claramente definida, a menudo viene con sus propias tecnologías. Y a pesar del hecho de que le parece que sería mejor hacer lo contrario, por lo general, estos temas no se discuten.



Para ingresar a estas empresas, debe conocer los lenguajes de programación aplicados. Por ejemplo PHP, Python, Java, Javascript.



Este es un buen lugar para comenzar una carrera.



Startups / Pequeñas Empresas



Hay cientos de tales empresas. Una docena de nuevos abren todos los días, pero nueve de ellos definitivamente cerrarán.



Hay muchas ventajas al intentar trabajar en una startup:



  • Es muy emocionante y divertido.
  • La forma más fácil es ganar mucho dinero.


En las primeras etapas, a menudo, el fundador comparte activamente sus acciones, especialmente si el inicio despega y crece rápidamente, muy pronto se convertirá en millonario;



  • No hay legado en los proyectos, no hay código antiguo que te haga llorar
  • Mucha libertad


Puede elegir tecnologías y programar de la manera que desee. Puede influir mucho en el producto.



Pero también hay desventajas:



  • 9 de cada 10 empresas están cerradas


Muchos de ellos cerrarán durante el primer año sin lanzar el producto;



  • Oportunidad de aprendizaje débil


Como regla general, no vienen los mejores especialistas a estas empresas, no siempre habrá algo que aprender allí;



  • Imprevisibilidad


A menudo, el flujo financiero de estas empresas es inestable. Puede trabajar para dicha empresa durante algún tiempo y no se le pagará su salario durante dos meses.



De hecho, la diversión supera todas estas desventajas. Pero ir a una empresa sin experiencia no será la mejor decisión. El nivel de estrés será muy alto, y el nivel de conocimiento práctico, muy probablemente, no será suficiente para arrastrar el proyecto.



Bancos / Empresa



Pros:



  • Estabilidad;
  • Buen salario;
  • Bajo nivel de responsabilidad


Nadie le pedirá que recicle y sea responsable de algo grande. Cualquier empresa de grandes empresas es un maestro en la distribución de la responsabilidad entre un grupo de gerentes.



Desventajas:



  • Muy baja velocidad


Puede cortar una función durante un año o dos sin liberarla, porque durante este tiempo perderá su relevancia. El salario, por supuesto, será pagado, pero esto es muy desmotivador;



  • Experiencia especifica


Como regla, este es algún tipo de software bancario. Básicamente, este es un código antiguo, que no es muy agradable ni muy interesante para trabajar;



  • Será bastante difícil cambiar el campo de actividad aquí.


En primer lugar, porque perderás tu salario. En Sberbank, siempre son más altos que en Yandex.



Una gran opción para un primer trabajo si aterrizas en una pasantía. En una gran empresa, durante una pasantía, puede obtener mucha información útil de naturaleza aplicada en poco tiempo: sobre cómo se desarrolla el software, qué herramientas necesita usar. Esta experiencia, en cualquier caso, será relevante.



Empresas alimentarias



Pros:



  • Tecnologías reales;
  • Procesos depurados;
  • Equipo de profesionales;
  • Alto nivel de estabilidad.


Desventajas:



  • Es difícil ganar mucho dinero;
  • Dificultad para conseguir un trabajo;
  • Una gran cantidad de herramientas para tratar.


Cada compañía tiene su propio conjunto de herramientas, y esta experiencia no será muy relevante para el mercado y para mudarse a otro lugar.



¿Cómo elegir un idioma?



Depende de lo que quieras hacer y a qué compañía quieras ir.



PHP, por ejemplo, es un lenguaje muy popular. Es utilizado por un grupo de empresas rusas y extranjeras, por ejemplo, Facebook. Pero no tiene sentido aprender PHP para conseguir un trabajo en Twitter, porque no se usa allí. Si quieres ir a Yandex, necesitas aprender Python o Java. Volver a aprender de PHP a Java no es un proceso fácil.



Es mejor determinar de inmediato por sí mismo 2-3 empresas en las que le gustaría trabajar. Descubra qué lenguajes de programación usan y apréndalos. O, comience desde el idioma que le gusta y luego busque empresas que lo usen.



¿Qué tipo de desarrolladores hay?



Backend



Este es el código que se ejecuta en el servidor. El backender, como regla, se comunica con la base de datos, con servicios externos y es responsable de la lógica empresarial. Por ejemplo, le permite registrar un usuario, guardarlo en la base de datos, cancelar su dinero, enviarle alguna notificación o SMS.



Lenguajes típicos: PHP o Python, así como el Ruby menos común.



Interfaz



Esto es lo que ves cuando visitas el sitio. Esta es una pieza del diseño. El diseño generalmente se realiza en el lenguaje de marcado HTML, que indica cómo se muestra el contenido en la página, en qué color se mostrará. Javascript es responsable de cómo se comportará esta página, cómo se animará, dónde se enviará el formulario, qué error se mostrará al cliente si el número de teléfono se ingresa incorrectamente. Casi todos los programadores necesitan este conocimiento. Prácticamente no hay áreas en las que no tenga que lidiar con el diseño. Este idioma es muy bueno para empezar, porque donde quiera que vaya, tendrá demanda en todas partes.



Completa pila



Este es un desarrollador que sabe cómo crear frontend y backend. Solo él puede presentar tanto en el lado del servidor como en el lado del cliente, hacer que todo funcione en conjunto, hacer que el proyecto funcione sin ninguna ayuda. Esto es acrobacia aérea. Tales desarrolladores generalmente ganan una vez y media más.



Desarrollo móvil



De hecho, esta es la misma interfaz, pero aquí se utilizan diferentes idiomas. No tiene sentido profundizar en los lenguajes de programación que se utilizaron hace 5 años, como Objective-C y Java. Swift y Kotlin ahora se usan. Todas las aplicaciones nuevas se escriben en estos idiomas, y las antiguas se reescriben para ellos.



Desarrollo de juegos



Esta es un área separada. Aquí, por regla general, se utilizan C ++ y bibliotecas especiales como Unity, etc. Un desarrollador que sabe cómo hacer una aplicación móvil en Kotlin no podrá escribir un juego, porque se usa una pila completamente diferente, tecnologías completamente diferentes.



Escritorio



Esto es lo que se ejecuta de forma nativa en su computadora. Por ejemplo, navegador, Word, etc. La mayoría de las veces se usa C ++, C #. Potentes aplicaciones están escritas en C ++. A veces, las aplicaciones de escritorio se escriben en Delphi porque es mucho más simple y económico.



1C



Este es el producto más popular en Rusia. Se utiliza, de una forma u otra, en cualquier empresa rusa. Su principal desventaja es que no se usa en ningún otro lugar que no sea Rusia. Es muy estrecho, es muy difícil dejar 1C, pero hay muchas vacantes y están bien pagadas.



DevOps



Son ingenieros de sistemas que configuran computadoras. Ahora necesitamos muchas computadoras, los productos son complejos. Facebook, por ejemplo, utiliza decenas de miles de servidores, y para facilitar su administración, de modo que el código se transfiere rápidamente de las computadoras de los desarrolladores al entorno productivo y se transfiere rápidamente a los usuarios, se necesitan ingenieros que puedan transformar, automatizar y comisionar automáticamente decenas de miles servidores Lo hacen con herramientas de software. El lenguaje más popular en esta área es Python y Bash. Estudiar python por cualquier administrador del sistema aumentará su salario al menos una vez y media o dos veces.



AI / ML / BigData / Criptomonedas



Muy a menudo, los desarrolladores de estas áreas usan los mismos idiomas. ML y el análisis de datos es principalmente Python y, a veces, un poco de Java. Las criptomonedas usan C ++. La peculiaridad aquí es que se requiere un buen conocimiento de las matemáticas y un profundo conocimiento de las herramientas aplicadas. Es poco probable que un desarrollador de Python normal pueda volver a entrenarse en un desarrollador de IA en una semana, ya que se requerirá una inmersión más profunda.



¿Cómo no elegir el idioma y la dirección?



  • No te enfoques en los salarios


Según una investigación publicada en Habr, el idioma mejor pagado es Eclipse. Es un lenguaje bastante moderno, juvenil, positivo y moderno. Pero, ¿qué pasa si comienzas a enseñarlo hoy? Ahora solo hay 11 vacantes publicadas en hh.ru. E incluso si va a un lugar con un salario alto, esto no significa que dentro de unos años seguirá siendo relevante. En este caso, es posible que no sea reclamado, y cambiar de un idioma a otro es una historia bastante complicada;



  • No elija idiomas elegantes, exóticos, limitados o en peligro de extinción


Hay muy pocas vacantes para idiomas exóticos (Scala, Eclipse) y, por regla general, todas son para desarrolladores experimentados. Los idiomas obsoletos generalmente se imparten en el instituto / escuela, por ejemplo, Pascal. No tienen aplicación aplicada, no tienen demanda en el mercado. Además, no vale la pena comenzar con 1C debido a sus limitaciones.



  • No comiences con idiomas difíciles


No es una buena idea comenzar con C / C ++. Incluso hay un meme en Internet: aprende C ++ en 40 días. Es un idioma difícil de aprender. Te lleva mucho tiempo comenzar a hacer algo y ser apreciado en el mercado. Si vas a entrar en el desarrollo del juego, entonces no hay alternativa, tendrás que aprender C ++. Pero, por ejemplo, puedes ingresar a Yandex como desarrolladores de Java y Python.



Buenos idiomas de inicio



  • HTML / JavaScript


Son fáciles de aprender. Son la forma más fácil de sentir si la programación es agradable y adecuada para usted. El conocimiento de estos idiomas le será útil en cualquier área elegida a continuación;



  • PHP / Python


También son fáciles de aprender. Hay muchas vacantes con un puesto junior. Y con el tiempo, podrá utilizar este conocimiento a medida que avanza hacia posiciones más pronunciadas. Puede hacer una carrera como desarrollador de junior a senior en 2-3 años, alcanzando altos niveles salariales;



  • Java / C #


Si necesita un trabajo estable y bien remunerado en un banco o una empresa, estos son los mejores idiomas para comenzar. Java ha sido un lenguaje muy popular en los últimos 20 años y probablemente seguirá siendo el idioma más popular en el mercado durante los próximos 20 años.



¿Dónde es más fácil comenzar?



  1. Crea tu propia página HTML.
  2. 1-2 JavaScript, , .
  3. . «PHP ». .
  4. . .
  5. , . , - , . fill-time .
  6. Toma el trabajo de tus sueños. Lo más probable es que la primera vez no tenga éxito. El primer trabajo suele ser estúpido. Pero después de seis meses o un año, ya puedes probar suerte en la empresa que más te guste. O comienza tu propio proyecto.


¿Cómo no hacerlo?



  • No debe entrar en profesiones relacionadas: pruebas o tecnología. apoyo


Si ya está en esta área, entonces, por supuesto, vale la pena probar suerte en el desarrollo, pero si es abogado o se acaba de graduar de una universidad y no sabe cómo desarrollar una carrera, entonces no necesita elegir un camino tan difícil y largo. Aprenda programación, herramientas aplicadas y busque un trabajo de programador de inmediato. Es muy posible hacer esto en poco tiempo;



  • No es necesario conseguir un trabajo en una empresa de TI para otro puesto


Por ejemplo, trabajar como mensajero en Yandex no te ayudará a conseguir un trabajo allí como programador;



  • No hay necesidad de molestarse con el empleo en una empresa superior


Lo más probable es que no puedas hacerlo como tu primer trabajo. Perderás mucho tiempo. Es mejor comenzar con compañías más simples, donde inmediatamente tendrá un salario, pasará medio año allí y luego pasar a la compañía soñada, con experiencia práctica a sus espaldas.



Los matices de trabajar como desarrollador



  • El primer trabajo no será largo.


No vale la pena considerar al empleador a largo plazo. En promedio, los desarrolladores se mueven de una compañía a otra cada tres años. Esto se debe al hecho de que muchas empresas no saben cómo aumentar los salarios de los empleados, por lo que la forma más fácil de ascender en la escala profesional es simplemente irse a otra empresa;



  • Tiene sentido mudarse a Moscú y más al oeste


Incluso si se encuentra en un trabajo remoto, es aconsejable avanzar en la dirección del desarrollo. De esta manera crecerás mucho más rápido. Y lo más importante, afecta directamente los salarios. La diferencia entre el salario en las regiones y en Moscú será de alrededor del 50%, y mucho más en los estados si te mudas allí;



  • No deberías elegir una especialización estrecha


En el mercado, los programadores con una amplia gama de habilidades tienen mucha más demanda que los especialistas limitados;



  • Desarrollar habilidades blandas


Esto le dará la oportunidad de comunicarse de manera efectiva en la empresa, comprenderse mutuamente. Cuanto más crezca profesionalmente, se requerirá menos conocimiento de la programación en sí misma, en lugar de saber cómo lograr resultados de manera efectiva en un equipo;



  • Comprende tu motivación


Le resultará más fácil crecer y elegir la empresa que le guste si comprende bien su motivación. Esto puede hacerte feliz en primer lugar.



¿Cómo prepararse para una entrevista?



No importa lo que sepas. Si pasa 20 entrevistas, será contratado para el 21. Independientemente de si usted es un programador, tiene conocimientos prácticos o nunca lo ha hecho.


Puede hacer un currículum en blanco, será invitado a diferentes compañías, pasará por entrevistas, comprenderá lo que le están pidiendo y a partir de la vigésima entrevista sabrá qué responder a estas preguntas. Vale la pena comenzar con algunas empresas simples en las que realmente no desea obtener un trabajo y después de un mes comenzar a ir a entrevistas en aquellas empresas en las que realmente desea obtener un trabajo. Lo más probable es que te lleven y luego todo dependerá de ti.



¿Qué preguntan los Juns en la entrevista?



  • Prueba


Casi todas las compañías le pedirán que haga una prueba, definitivamente será necesario hacerlo;



  • Códigos de muestra


Es mejor hacer una tarea independiente o un proyecto de mascotas por adelantado, trabajar bien, hacer que se vea hermoso;



  • Prepare respuestas a preguntas sobre su experiencia y sobre quién se ve en 5 años


Lo mejor es preparar una historia hermosa y verdadera para que sea interesante escucharla. Esto es importante porque estas preguntas dejan en claro si tiene algún incentivo para desarrollarse y en qué generalmente dedica su tiempo. Al entrevistar para el puesto de junio, el empleador ya comprende que realmente no sabe cómo hacer nada, el empleador quiere contratar a una persona prometedora, y estas preguntas solo mostrarán cuán prometedor es usted.



Vale la pena aprender los conceptos básicos sobre los siguientes temas:



  • Programación orientada a objetos;
  • Base de datos. No es necesario aprender un gran libro de dos volúmenes sobre optimización de SQL, pero vale la pena saber cómo hacer consultas SQL de forma básica;
  • Patrones de diseño;
  • Sistema de control de versiones (Git)
  • Capacidades básicas de lenguaje. Por ejemplo, cómo se conectan los paquetes PHP.


Con este conocimiento básico, puede resolver algunos problemas prácticos. Estas preguntas eran relevantes hace 5 años, son relevantes ahora y lo serán en el futuro cercano.



¿Quieres aprender más sobre trabajar como programador?



Regístrese en nuestro curso en línea de seis meses "Profesión: Programador" ¡ Obtenga más información!




All Articles