Soy un programador autodidacta a punto de ingresar al mercado laboral. Lo que quiero saber es cuál es la mejor manera de mostrar mi experiencia a los empleadores.
¿Qué quieren saber los empleadores sobre mi experiencia en programación? ¿Los empleadores quieren ver el código que escribí o podrían querer ver el software en acción? ¿O solo les importa cuánto se está utilizando mi software / cuánto ha generado ingresos? ¿Debo escribir sobre mi diseño y estilo de programación?
Mi experiencia: recientemente me gradué de una universidad donde estudié idiomas extranjeros, y fue durante este tiempo cuando descubrí que la programación es lo que realmente quiero hacer. Actualmente soy un programador de garaje, desarrollando un software para un cliente para uso comercial mientras continúo aprendiendo por mí mismo, pero mi objetivo es comenzar un empleo y una carrera "adecuados". Como un giro adicional, vivo en Finlandia en este momento, pero estoy buscando empleo en China o Japón (aprendí ambos idiomas mientras estudiaba en el extranjero).
Respuestas:
Diría que los empleadores buscan estas cosas en todos los solicitantes de programadores (esto proviene de mi propia experiencia como desarrollador principal que está evaluando a los solicitantes):
Capacidad para ser flexible y aprender nuevas tecnologías rápidamente (esto es especialmente importante para los programadores autodidactas)
Habilidad para comunicar problemas
Capacidad para resolver problemas algorítmicos y logísticos (importante para analistas programadores)
Capacidad para cumplir con los estándares y reglas de los negocios locales, es decir. no te quedes demasiado atrapado en tus caminos, asegúrate de seguir las convenciones de nomenclatura de la empresa para la que trabajas.
Honesto y trabajador.
En muchos casos, las compañías más grandes le pedirán que proporcione un ejercicio para el solicitante. Estos ejercicios varían en dificultad, pero un ejemplo podría ser codificar un módulo reutilizable que convierte una cantidad en dólares en una cadena de texto legible en inglés que se escribiría en un cheque por esa cantidad, es decir. "$ 999.34" a "Novecientos noventa y nueve dólares y treinta y cuatro centavos".
Es importante tener en cuenta que no es solo el código que verán en estos ejercicios, sino también la documentación que lo acompaña, es decir. doco que explica los problemas, los supuestos y el algoritmo utilizado. También analizarán sus convenciones de nomenclatura (principalmente para verificar la coherencia) y para verificar los comentarios claros del código.
fuente
Una pista
En serio, busco algunas cosas en un candidato:
Ejemplos: graduado de secundaria autodidacta que ha resuelto 50 problemas de Euler: contratación fácil. MSCS con 4.0 GPA que no puede explicar la diferencia entre TreeMap y HashMap: no contrate.
fuente
Otros ya respondieron su pregunta directa sobre los solicitantes autodidactas. Sin embargo, hay otra consideración que puede ser aún más importante que ser autodidacta o no. Estoy hablando de las culturas de los países en los que planeas trabajar y vivir.
En primer lugar, nunca escriba "empleo en China o Japón" . Suena como "Finlandia o Australia" (sin ofender). Son totalmente diferentes, y tienes que elegir.
Además, el empleo en otro país generalmente significa impuestos más altos para una empresa, varias limitaciones (por ejemplo, contratar a un extranjero, contratar a N nativos), etc. Entonces, para ser contratado en China, debes ser muy bueno en lo que estás haciendo .
De hecho, tienes dos mejores opciones:
fuente
Principalmente, que tienes un poco. Ponte en su lugar: si contrataras a alguien, elegirías al tipo que tal vez no sepa qué hacer con un compilador, o al tipo que ha estado en la cuadra varias veces, que aprendió a resolver problemas y puede obtener algunos trabajo útil hecho sin mucha mano?
Sí. Tener algo de código para mostrar puede ser útil. También puede ser útil tener un producto que mostrar y estar preparado para responder preguntas sobre cómo funciona, por qué lo hizo de esa manera, etc. Diferentes empleadores valorarán estas cosas de manera diferente, pero siempre es mejor tener algo que no tener nada.
Hay muchas personas en China y Japón que hablan chino y japonés, respectivamente. Probablemente no tantos que hablan inglés y finlandés con fluidez también. Use esa fortaleza para su ventaja: busque empresas que necesiten esas habilidades lingüísticas.
fuente
Diría que las habilidades más importantes que los programadores autodidactas pueden carecer sin saberlo son las relacionadas con la ingeniería de software y la arquitectura de software.
Asegúrese de saber más que solo escribir código, asegúrese de saber qué es mantenibilidad y cómo lograrlo; qué es SÓLIDO, por qué se considera bueno y necesario; patrones de diseño, etc.
Además, trate de arreglar cualquier parte mala de su proceso. Por ejemplo: pruebas automatizadas (¡algo que todos deberían hacer!), Seguimiento de errores, control de revisión de fuente (también obligatorio). Esta lista no pretende incluir todo, es solo un ejemplo.
fuente
Sí, estas son las mejores opciones. Las calificaciones no son un indicador particularmente bueno para la capacidad de escribir código. Lo mismo se aplica a empleadores anteriores: muchas personas pueden sobrevivir en un trabajo para el que no son aptos. Quiero ver qué tipo de código escribes y un historial de seguimiento de poder construir cosas que se han puesto en producción.
Eso está fuera de su área de responsabilidades, no me importan esas cosas a menos que vaya a un puesto de gerente de proyecto o superior.
No demasiado, pero tal vez las viñetas que muestran áreas de interés con sus ejemplos de código serían útiles.
fuente
Habilidades de autoaprendizaje
Sí, el autoaprendizaje es su habilidad competitiva de vanguardia que debe enfatizar y presentar con orgullo. Además, debe mostrar su pasión por la programación y su deseo de superación personal.
Quieren ver tus logros y tus habilidades de razonamiento analítico. Quieren ver: qué hiciste que benefició al proyecto, qué papel (s) has desempeñado en la realización de un proyecto si trabajaste en un equipo. Cómo solucionar los problemas y superar los problemas técnicos. Cómo trabajó con las universidades, cómo manejó la presión laboral.
Algunos otros puntos que pueden ser muy importantes para los empleadores:
fuente
Además de las otras respuestas, enumere las herramientas que aprendió mientras enseñaba.
He capacitado a graduados de escuelas de renombre con títulos de renombre que insistieron en escribir código Java en el bloc de notas de Windows y usar el compilador de línea de comandos ('es mejor así', para un programa de una clase). La mayoría de los lugares de trabajo utilizan IDEs y otras herramientas de programación. Y enseñarles cómo usar Eclipse fue más fácil que tratar de enseñarles SVN.
Al enumerar uno o más entornos IDE o (más importante) una o más herramientas de repositorio de código, demostrará que está listo para trabajar con un equipo.
Respuesta B: si puede llegar, pruebe la feria CEBIT en Hannover, Alemania. Solíamos hacer que la gente visitara nuestro stand pidiendo trabajo en nuestro país. La probabilidad es baja de que pueda conocer a la persona adecuada que pueda ayudarlo. O pregúnteles si necesitan una persona local / europea para ayudarlos.
fuente
Una vez que pueda demostrar que ha escrito un código de calidad, es menos importante cómo y dónde aprendió a programar. Creó toda la aplicación, por lo que debería poder explicar el diseño, los problemas que enfrentó y por qué eligió esas soluciones.
Si su aplicación no es conocida, tendrá que dar más explicaciones en su CV y cartas de presentación. Tener un gran número de usuarios es un beneficio porque muestra que puede manejar la escala, los ingresos generados serán difíciles de agregar. Alguien podría contratar a un programador para crear una aplicación utilizando horóscopos para ayudar a los cirujanos cerebrales. No estoy seguro de responsabilizar al programador por este producto inútil. Tal vez una startup preferiría un desarrollador con algo de sentido del producto, pero no puede mantenerlo en su contra porque necesita pagar sus facturas.
fuente
Si no hay títulos disponibles, las certificaciones conocidas son una ventaja. Algunas certificaciones no requieren un curso, solo puede tomar el examen.
Su experiencia en programación consiste en proyectos. En tu CV escribes tus habilidades. En la entrevista, se le preguntará sobre los proyectos en los que ha trabajado. Luego, hablará sobre lo que hizo, los problemas que encontró, las soluciones que encontró, etc.
Tal vez. Personalmente, no escuché que los empleadores pidieran ver el código (además del código que escribiste durante la entrevista técnica, como prueba). Si usted es diseñador web o diseñador de interfaz de usuario, en la mayoría de los casos querrán ver algunos sitios web que creó o diseñó.
La mayoría de los empleadores estarán interesados en los lenguajes de programación que codifica con fluidez, el conocimiento que tiene y las habilidades que adquirió. La cantidad de software utilizado y los ingresos generados son cosas de marketing, no cosas de programación. La mayoría de las empresas tienen su propio diseño y estilo de programación. Esperarían que un empleado esté familiarizado con técnicas como Agile, Scrum, Extreme dependiendo de lo que use.
fuente