Así que casi he terminado con mi MSc. Inteligencia artificial y comenzar a buscar posiciones en aprendizaje automático y ciencia de datos (en Alemania, ya que esto probablemente marque la diferencia).
Desafortunadamente, algunos de mis mejores trabajos han sido en proyectos de código cerrado con empresas. Sin embargo, tengo algunos trabajos de los que estoy bastante orgulloso o que son prueba de que sé programar algunos conceptos básicos. La mayor parte son varios cursos, hackathons o proyectos que he hecho para educarme. (Cosas básicas como programar un enjambre de boid y jugar con una representación gráfica, algoritmos evolutivos, redes neuronales, etc.)
Así que pensé, hagamos una página de github para mostrar mi trabajo. Pero antes de hacer eso busqué consejos en línea. Y me está confundiendo la verdad. Originalmente, mi idea era poner todo en él y clasificarlo por categoría, y asumí que un empleador entendería que no vale la pena revisar los casi cien scripts rápidos y sucios para limpiar algunos datos si lo indico como tal.
Pero incluso si hago una buena selección, el consejo aún decía que debería tener un historial de confirmación regular (que obviamente ninguno de ellos tiene) y debería ser un código de nivel de producción. Quiero decir que obviamente no lo es, fue principalmente un trabajo educativo. Quiero decir que tal vez sea un error, pero por lo general no me tomo mucho comentar este código y escribir pruebas unitarias, si solo quiero implementar un algoritmo genial y jugar con sus variables. También estoy seguro de que hay algún truco sucio ocasional en el que el plazo era ajustado o simplemente quería que el programa se ejecutara lo antes posible.
Llevar todo este trabajo a lo que yo consideraría calidad de nivel de producción sería sin duda un trabajo muy aburrido. Así que estoy bastante indeciso y preferiría gastarlo en mis nuevos proyectos.
Así que supongo que mi pregunta es:
¿Vale la pena poner ejemplos de mi trabajo en github, incluso si no son "perfectos"?
Desafortunadamente, algunos de mis mejores trabajos han sido en proyectos de código cerrado con empresas.
Siento que estás viendo un perfil de Github como demasiado importante en el proceso de contratación aquí. No hay nada desafortunado o inusual en eso: el 99% del código que escribe en un entorno profesional probablemente será de esta manera. Esto es genial: significa que puede enumerar la experiencia comercial que obtuvo mientras trabajaba en estos proyectos internos.
Así que pensé, hagamos una página de github para mostrar mi trabajo. Pero antes de hacer eso busqué consejos en línea. Y me está confundiendo la verdad.
En general, hay dos tipos de personas que tienen perfiles de Github en estos días: aquellos que contribuyen activamente a proyectos de código abierto y aquellos que simplemente lo crean para cargar un volcado de código que escribieron anteriormente. Diría que el primero es definitivamente un mejor escenario, pero ciertamente tampoco hay nada intrínsecamente malo con el segundo, siempre que:
Si alguien se toma el tiempo para ver los detalles de su código, entonces genial: ha causado suficiente impresión inicial para que lo vean más de cerca.
Asi que:
¿Vale la pena poner ejemplos de mi trabajo en github, incluso si no son "perfectos"?
Absolutamente. (Y aparte, ¡"código de nivel de producción" ciertamente no significa perfecto!)
Hay una extraña tendencia en los consejos en línea de decir que necesitas un perfil de github. tu no Tener algo que mostrar en tu perfil de github es un buen consejo si no tienes nada más . Entonces sí, por supuesto, demuestra algo .
Tienes un maestro y experiencia. Ambos deben ser documentos (Uni-Abschluß, Arbeits-/Praktikumszeugnisse) que pueda mostrar. Prueba contundente de que fuiste examinado y encontrado apto para el trabajo. No tienes necesidad de presentar nada menos que eso.
Imagínese lo extrañas que serían las entrevistas de trabajo si los empleadores no confiaran en los certificados y referencias:
Señor, en Garbage Inc estamos muy orgullosos de emplear solo a los mejores conductores de camiones de basura. Vemos que tiene una licencia válida, un certificado para reciclar materiales peligrosos y una brillante referencia de nuestro principal competidor... pero señor, notamos que no publicó ningún video privado de usted sacando la basura. Nos gusta contratar personas en función de su transmisión de youtube de eliminación de basura privada.
Si no.
Ve con lo que tienes. Eso es genial y debería ser suficiente. Si alguien no valora un máster sobre una página de github, no quiere trabajar allí.
Si desea incluir su perfil de github, debe pulirse al menos al nivel de su maestría/experiencia laboral. Cualquier cosa menos sería como servir papas fritas frías con una gran hamburguesa. Quieres ser recordado por lo que hiciste bien, no por los extras de mala calidad. Sin embargo, pulir hasta ese punto es difícil y no lo necesitas, así que piensa si deberías dedicar tiempo a pulirlo. Solo déjalo apagado.
Tienes que ver esto como un anuncio para ti. Así que sé muy crítico con lo que publicas. Es mejor tener 2-3 problemas de datos complejos y sus soluciones resultantes que 100 ejemplos de clase cortos.
Las soluciones reales tienen cosas como prueba unitaria y comentarios. Tienen documentos de requisitos. Si desea demostrar que es mejor que su competencia, debe demostrar que lo es haciendo que sus ejemplos de Git Hub sean lo mejor posible. Si estoy contratando y tengo dos personas con aproximadamente la misma experiencia y una muestra un centro de git de 100 proyectos pequeños, la mayoría de los cuales parecen ser ejemplos de clase y todos parecen código rápido y sucio y uno muestra tres proyectos complejos y el la presentación es profesional incluyendo hasta la prueba, comentarios, registro de errores, etc., ¿cuál me va a impresionar más como oficial de contratación?
En ciencia de datos en particular, quiero ver evidencia de que comprende el significado de los datos y que consideró cómo limpiar y transformar los datos, así como analizarlos. Me gustaría tener evidencia de las diferentes metodologías de análisis que usó y una discusión en alguna parte de por qué eligió la que eligió. Me gustaría ver documentos de presentación sobre cómo presentó sus resultados porque la presentación y la persuasión son dos de las habilidades más críticas que se necesitan en esta área.
Lo que más me preocupa es esta afirmación:
Llevar todo este trabajo a lo que yo consideraría calidad de nivel de producción sería sin duda un trabajo muy aburrido.
Gran parte del trabajo real en un entorno profesional es este tipo de trabajo aburrido pero necesario. Quiero contratar a alguien que entienda eso y que no vaya a ser un codificador vaquero. Así que sí, haz las partes aburridas primero en los ejemplos que elijas y luego hazlas con cualquier proyecto nuevo que agregues.
Sí, publícalo. Si no está avergonzado por al menos algunos aspectos de su código 2 años después, probablemente no esté progresando en sus habilidades de desarrollo, especialmente si es nuevo. Si bien cualquiera puede adivinar algunos ejemplos de currículums, una progresión del trabajo real es mucho más ilustrativa. Si saca un "hit", los empleadores en su mayoría examinarán el código en ese proyecto, no indagando en lo esencial. Las otras contribuciones aún rellenan los gráficos de su página de destino y lo hacen lucir más fuerte, así que obtenga algo lo antes posible.
En diez años, tendrás 10 años de proyectos para mostrar, pero no si no empiezas. No publique código descartable de revisión cero, pero no se obsesione con "¿debería haber doblado ese bucle?" o "¿son perfectos estos nombres de campo de documentos?". Git también es muy útil para desarrollar código, no solo para verse bien, así que no seas tímido.
Voy a repetir algo que he dicho en muchas respuestas. La contratación es un proceso de venta. Usted, como solicitante, tiene algo que está tratando de vender (usted mismo: o al menos, su capacidad para realizar un trabajo).
La forma de lograr esto es mediante el uso de herramientas de ventas: un currículum, una solicitud de empleo, una carta de presentación, referencias y (tal vez) una cartera de trabajo, es decir, una cuenta de github. Al evaluar cómo utiliza estas herramientas, debe centrarse en el hecho de que son herramientas para facilitar un proceso de ventas.
Para llegar a su pregunta específica:
¿Vale la pena poner ejemplos de mi trabajo en github, incluso si no son "perfectos"?
Prácticamente, para tomar decisiones sobre tu cuenta de github como herramienta de ventas, primero debemos preguntarnos: ¿qué busca un empleador cuando contrata a un desarrollador? Entonces, debemos preguntarnos: ¿Mi cartera de github ayuda a mostrar esas cualidades? Si la respuesta es afirmativa, inclúyala. Si la respuesta es no, no la incluya o modifíquela para que se ajuste mejor a esa perspectiva.
Creo que diste algunas pistas sobre las respuestas cuando dijiste:
Por lo general, no me tomo mucho comentar este código y escribir pruebas unitarias, si solo quiero implementar un algoritmo genial y jugar con sus variables. También estoy seguro de que hay algún truco sucio ocasional en el que el plazo era ajustado o simplemente quería que el programa se ejecutara lo antes posible.
Su cartera de github muestra una resolución de problemas rápida y sucia y fluidez en ciertos idiomas. Si bien ambas son cosas positivas para mostrar, existe una brecha potencial: como gerente de contratación responsable del desarrollo de software, más importante que esas características, busco personas que escriban código sostenible . Desarrolladores que piensan en el largo plazo y entienden por qué cosas como las pruebas unitarias son una buena idea, no solo las personas que hacen pruebas unitarias porque se les ha dicho que las hagan, o las personas que no las hacen en absoluto. En otras palabras, estoy tan interesado en el proceso y el enfoque (es decir, hiciste pruebas unitarias y comentaste adecuadamente) como en el resultado final (obtuviste la respuesta correcta para el desafío del hackatón rápido).Claramente, hay otros gerentes de contratación en diferentes tipos de organizaciones que pueden tener una perspectiva ligeramente diferente al respecto. No está claro en su pregunta exactamente qué tipo de trabajo está buscando. Si está buscando un puesto más centrado en la ciencia de datos, o un puesto en el que el software sea secundario al resultado final, su capacidad para escribir código que resuelva problemas puede resultar más importante que su capacidad para seguir procesos rigurosos de desarrollo de software.
Entonces, volviendo al proceso de ventas, su cartera de github definitivamente tiene valor, pero puede o no ser el valor más apropiado para la posición exacta que busca. Si tiene un currículum/carta de presentación/otro portafolio que muestre qué tan completo es usted y llene los vacíos en su github, entonces el trabajo de github puede permanecer como está de manera segura. Sin embargo, si notiene una manera de mostrar la imagen completa específica que necesita para venderse a sí mismo, entonces probablemente saldrá desequilibrado (por ejemplo: demasiado enfoque en apresurarse a un resultado versus comprender el valor de un buen proceso y enfoque) y debe considerar modificar sus ejemplos de código o agregar otros nuevos (que se enfatizan claramente cuando alguien mira su cuenta de github) que muestran su capacidad para escribir código de "nivel de producción".
En resumen:
mateusz stefek
bharal
Finanzas cuantitativas
Finanzas cuantitativas
nvoigt
más plano
Dan