A menudo he usado esos tres términos casi indistintamente, sí, incluso informático. Después de todo, la mayoría de nosotros tenemos un título en informática, entonces, ¿qué nos hace eso? Sin embargo, recientemente descubrí que esas tres cosas han adquirido cada vez más personalidades distintas en mi mente. Llegó al punto en que si pienso en alguien que conozco, o conozco, dentro de la industria, inmediatamente caen en una de esas tres categorías. Lo que no quiere decir que una persona no pueda tener atributos de los tres, pero de todos modos, siempre tienden a favorecer uno con más fuerza, por lo que los encajo en esa categoría, programador, desarrollador o informático.
Es difícil definir qué debe ser cada uno (es más una sensación instintiva que una delineación estricta) son muy similares (y con razón), pero intentaré hacerlo de todos modos :).
Científico de la computación
- ¿Cuáles son algunos ejercicios cortos de programación diaria para desarrolladores de software .NET?
- ¿Cómo se sienten los desarrolladores mayores al competir con desarrolladores jóvenes?
- ¿Me puede dar un ejemplo específico de lo que hace su equipo de desarrollo de software y cuál es su función?
- ¿Cuál es la diferencia entre el ingeniero de I + D y el desarrollador de software?
- ¿Qué programas de software comunes aparte de los IDE debe conocer un programador?
Escriben código (sí, sé que es una bomba). Puede que no sea el código más bonito o mejor factorizado, pero hace el trabajo. No se trata del diseño del código o de las “buenas” prácticas, se trata de probar lo que se propusieron probar. Un informático es tanto un matemático como un tecnólogo (tienen 31337 habilidades matemáticas), no solo necesitan saber que las cosas funcionan, sino que tienen que demostrarlo. La comunicación y las habilidades de las personas son rasgos deseables, pero no se enfatizan. El proceso de software y las habilidades de dinámica de equipo son rasgos deseables, pero no se enfatizan. Tienen una gran amplitud de conocimiento general de todo su campo, pero se especializan profundamente en una o varias áreas estrechas. En estas áreas son considerados expertos de clase mundial. Trabajan en cosas relacionadas con su investigación en su tiempo personal.
Programador
Los programadores escriben código increíble. Hacerlo limpio, bien factorizado y sin errores son preocupaciones muy importantes, pero no a expensas de hacer el trabajo. Se trata de conocer el significado de “buen código” dentro de su dominio. Necesitan tener algunas habilidades matemáticas, pero esto no es una preocupación primordial. Necesitan conocer buenas (mejores) soluciones a los problemas, pero no necesitan demostrar que es la mejor solución. Una buena amplitud de conocimiento algorítmico es imprescindible. Tienen una gran habilidad en un área amplia de experiencia y también tienen un conocimiento razonablemente bueno de áreas relacionadas. La comunicación y las habilidades de las personas son rasgos deseables, pero no se enfatizan. El proceso de software y las habilidades de dinámica de equipo son rasgos deseables, pero no se enfatizan. Trabajan en proyectos de software personal que les interesan en su tiempo libre.
Desarrollador
Ellos escriben el código. Es importante que esté bien factorizado y limpio, pero otros factores a menudo tienen prioridad. Las habilidades matemáticas son muy opcionales, pero ayuda a ser consciente de los problemas comunes y las soluciones relacionadas con el dominio en el que se encuentran. Las habilidades de comunicación y de las personas son primordiales. La dinámica del proceso y del equipo son habilidades básicas. Son generalistas consumados sin ninguna especialización verdaderamente profunda. Son expertos en encontrar formas de evitar problemas y conectar componentes para cumplir un conjunto de requisitos. En su tiempo personal, están tratando de construir el próximo Facebook o participar en actividades que no tienen nada que ver con la programación, el desarrollo o la informática.