Desarrollo de Software
Articulos generales sobre desarrollo de software
Articulos generales sobre desarrollo de software
Disclaimer: Esta es mi opinión personal y no refleja de ninguna manera la opinión o ideas de la empresa para la cual trabajo. Los casos, opiniones o consejos aquí descritos no se basan en mi experiencia en una sola empresa, sino a lo largo de mi carrera.
Los últimos 3 blog posts que leí trataron sobre las opiniones de 3 desarrolladores sobre el proceso de contratación de desarrolladores de software, y especialmente sobre sus aptitudes y actitud. Good to know I’m not alone.
Mi opinión y experiencia personal sobre todo esto es:
En casi cualquier país y tipos de empleo, hay demasiada gente que se termina sintiendo cómoda en su trabajo actual y dejan de aprender. Cuando tengan que buscar otro trabajo, puede que su experiencia les sirva, pero el no haber continuado aprendiendo cosas nuevas sobre su profesión les va a hacer más complicado competir contra gente nueva. Nunca dejes de leer y aprender sobre tu trabajo.
En México, en mi experiencia en personal, mucha gente va a una entrevista sin prepararse, solamente “a ver que sale”. Cuando alguien te pregunta sobre tu experiencia previa y no puedes dar un resumen conciso, eso dice mucho. Siempre hay que estar preparado para hablar sobre tu trabajo y tu experiencia laboral.
A pesar de que me ha tocado trabajar con mucha gente buena, he notado que la mayoría de los desarrolladores en las empresas en las que he trabajado, difícilmente hacen algo relacionado con su profesión en su tiempo libre. Estoy de acuerdo sobre los límites de la vida personal y el trabajo, pero creo que el 100% de la gente que es excelente en su trabajo (sea cual sea el puesto o nivel) es porque les gusta lo que hacen y no se limitan a aprender solamente en sus 8 horas de trabajo. Un programador que llega a su casa, y en cualquier momento, dedica 1 hora de su tiempo libre a aprender algo nuevo sobre programación (Sea leer un blog post, un libro, una certificación) tiene demasiada ventaja sobre cualquier otro desarrollador (del mismo skill-set), tanto para habilidad, como para promociones de puesto, aumentos, etc.
La actitud es importante, de ambas partes. Lo peor que puede pasar en una entrevista es que el entrevistador no sea consciente de la importancia del proceso. La empresa está confiando en él para que haga una recomendación sobre si emplear o no al entrevistado, y eso es crítico para ambos lados. La empresa se hace mejor cada vez que un buen candidato entra a la empresa. Y el entrevistado puede realmente merecer y necesitar el trabajo. Pocas cosas me desagradan como que un entrevistador no le de la importancia debida al proceso o sea arrogante al respecto. Por el otro lado, la actitud del entrevistado jamás debe ser de arrogancia. Nadie quiere contratar a alguien que no va a ser un buen team-player.
Algunas veces, muy pocas, he puesto a candidatos a escribir en una hoja de papel o un pizarrón una hoja de papel, un problema exageradamente sencillo de programación. No importa que tan nervioso estés durante la entrevista, si acaso lo estás, pero programar una función sencilla debería ser parte de la habilidad de cualquier desarrollador. No recuerdo alguien que lo haya contestado decentemente, o siquiera lo haya contestado bien.
A cualquier desarrollador que lea esto:
Evalúate. Si eres el weakest-link en tu equipo o empresa, haz algo por mejorar. Lee y/o solicita ayuda a los demás desarrolladores de tu equipo, consigue un mentor. Si no eres el weakest-link, aún así es seguro que hay alguien en tu equipo o empresa de quien puedes aprender. Hazlo, y además, hazte mentor de alguien que sepa menos que tú.
Ahora…algunas acciones que personalmente creo que mejorarían demasiado la calidad de desarrolladores y haría más fácil el proceso de entrevistar:
Les dejo las frases que se me hacen más notables de los 3 artículos…
Ligas a los posts:
Ranting about the quality of developers – Gabriel Schenker
Ya que de perdido paso 2 horas al día leyendo artículos técnicos sobre desarrollo de software o cosas relacionadas a sistemas, y durante los últimos 5 años la mayoría de lo que he aprendido ha sido en base a blog posts, he decido empezar una serie de posts recomendado uno o más artículo/posts que haya leído durante ese día, categorizados por tecnología o área.
No se si logre hacer esto diariamente, pero al menos el intento se hará. Aquí estan los primeros artículos interesantes que he leído el día de hoy:
SQL
Introduction to JOINS – Basic of JOINS: Escrito por Pinal Dave, un experto de SQL. Mucha gente no sabe explicar los JOINS en SQL o la diferencia exacta entre ellos, buen artículo.
Personal Improvement
Basic Presentation Skills Training – Notes from Joel Abrahamsson: Parte de mi rol de trabajo es dar algunas presentaciones técnicas, y la verdad es que la mayoría de la gente no somos buenos para esto. Buenas notas y tips de este desarrollador que está tomando un curso al respecto.
.NET / C# / ASP.NET
ALT.Next – ALT.NET es un “movimiento” o “corriente” integrado por varios desarrolladores enfocados en traer las mejores prácticas y herramientas de otras comunidades de desarrollo (Java, Ruby, Python, etc) a la comunidad de Microsoft y .NET en general. Aunque su auge más fuerte ya pasó, este artículo da una idea de hacia donde van.
Desarrollo de Sistemas en General
Metodologies at a Glance – J.D. Meier, un Principal Program Manager de Microsoft, en el equipo de Patterns & Practices, escribe posts muy útiles constantemente. Este post es un mapa de algunas actividades/artefactos clave en varios procesos de desarrollo de software.
That’s it. Read on.
Hace mucho tiempo que no tenía tiempo para postear en el blog. La carga de trabajo estuvo exageradamente pesada, pero una vez más ya estoy al corriente.
Durante los últimos dos años, en mi trabajo actual, he tenido que entrevistar a muchas personas para puestos de desarrollador de software, ya sean recién graduados, desarrolladores intermedios, líderes técnicos, etc. Probablemente he entrevistado a más de 200 personas en ese tiempo, y lamentablemente menos del 10% aprueba la entrevista. Probablemente sea entre el 5% y el 7% los que realmente pasan la marca.
Hay varios factores que afectan el resultado de la entrevista, como por ejemplo que es en inglés, o que somos 2 o 3 desarrolladores de la empresa entrevistando a la persona, etc. Pero aún asi, menos del 10% se me hace demasiado alarmante.
Si eres un experto en desarrollo y tienes constantemente frescos los conceptos de programación, puedes ir a una entrevista sin prepararte, pero es simplemente molesto ver que haya gente que no es tan buena técnicamente y va sin siquiera hacer un pequeño repaso de las cosas que se supone deben ser fundamentos conocidos, o cosas con las que trabajan todos los días.
Hace poco me topé con un artículo sobre tips de cómo prepararse para una entrevista técnica, del blog “Making Good Software“, de Alberto Gutiérrez, sobre como prepararse para una entrevista de trabajo del área de sistemas. Les comparto la liga por ahora, y luego haré mi propio artículo sobre esto.
Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia MIX10, que es una serie de conferencias de diseño y desarrollo web organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses anteriores al evento).
Las platicas de este año se ve que estuvieron muy interesantes…así que aquí les dejo las ligas a los videos de las pláticas y también a una muy buena sección de recursos que armaron en el site de MIX10, con ligas a guías de desarrollo para Windows 7 Phone Series, Silverlight 4, WCF RIA y otros tantos temas que son lo relevante de hoy en día.
Algunas de las pláticas fueron:
Ligas:
MIX10 – Resources Page (Windows 7 Phone Series, Silverlight 4, etc)