¿Cuáles son las diferencias clave entre un programador y un desarrollador?

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

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.

Honestamente, los términos son bastante vagos y se usan informalmente. Alguien podría definirlos arbitrariamente con una definición rígida, pero eso no cambiaría el uso confuso para el que la mayoría de la gente los usa. Pero aquí está mi opinión:

  • Los programadores escriben código. Generalmente dentro de un proyecto, y generalmente en una aplicación de escritorio o línea de comando. No creo que los programadores hagan trabajos de GUI o hagan la mayoría de las aplicaciones web / móviles.
  • Los desarrolladores hacen proyectos. Manejan la totalidad o una parte significativa de un proyecto, lo que puede implicar conocer o elegir rápidamente muchos idiomas y marcos diferentes para hacer un solo trabajo.
  • Por si acaso voy a abordar mi punto de vista de los ingenieros de software aquí. Los ingenieros tienden a tener piezas específicas bien definidas en las que trabajan con rigor y una amplia planificación.

De acuerdo con Álvaro. Son 2 palabras para la misma cosa. No es inusual en el campo de la programación, donde los términos que han sido de uso común durante décadas de repente tienen un nuevo término inventado para significar exactamente lo mismo: inútil y confuso, pero parece suceder todo el tiempo. Tales como “aplicación” y “programa”, que son lo mismo. O un término como “Full Stack”, cuyas “capas” han existido siempre que haya computadoras para programar; sin embargo, solo en los últimos tiempos alguien decidió aplicar el término a algo que había estado con nosotros durante décadas. utilizando diferentes nomenclaturas Una gran mascota mía. ¿Por qué esta industria no puede simplemente usar los términos ya existentes para las cosas? Tal vez debido a la comercialización, cuando se te ocurre un nuevo nombre para algo que ya tiene un nombre (pero no es ampliamente conocido), puede parecer que has inventado algo nuevo, un poco engañoso, por lo que molesta yo.

Quieren decir lo mismo. Me gusta llamarme programador porque describe lo que hago sin sonar pretencioso. Yo escribo programas de ordenador. El desarrollador también está bien, pero para mí es demasiado vago. Alguien que lo ayude a configurar un blog en WordPress probablemente se llame a sí mismo desarrollador.

En los currículums me llamo ingeniero de software sénior, porque suena un poco más profesional, y tal vez arrojaré algunos números romanos para que coincidan con lo que estén pidiendo.

More Interesting

¿Cómo es trabajar en Pagalguy como desarrollador de software?

¿Cómo se mantienen actualizados los desarrolladores de software en la explosión de bases de datos "políglotas" y el espacio de marcos web?

Soy un desarrollador de software, con 3 años de experiencia en una base de productos de inicio en la India. ¿Cómo puedo obtener un trabajo de software permanente en Australia o Singapur?

¿Se sabe que los desarrolladores de software se angustian por cada decisión sobre el idioma y la pila que deberían usar para sus proyectos?

¿Dónde está el mejor lugar para encontrar desarrolladores investigados que hagan las cosas?

¿Cómo esperan las empresas que alguien obtenga 2 años de experiencia como desarrollador junior si casi todas las vacantes son para personas con 2 años de experiencia?

¿Cuáles son los diferentes tipos de contratos de desarrollo de software?

¿Cuáles son las cosas que un desarrollador de software debe saber aparte de los lenguajes de programación?

¿Cómo se mantienen los proyectos de software después de que los desarrolladores de software independientes construyen el producto inicial?

¿Por qué deberíamos elegir la compañía para desarrollar aplicaciones para iPhone y Android?

¿Qué aspectos debo tener en cuenta al decidir aceptar un puesto de gerente de desarrollo de software en Amazon (Seattle) en el equipo de AWS?

¿Cuál es la mejor manera de medir la productividad del desarrollador?

¿Puedo ser desarrollador de software toda mi vida?

¿Cuál es un buen sitio de recomendaciones para encontrar excelentes desarrolladores / codificadores de software en el Valle?

¿Puede un desarrollador de software usar stackoverflow en su lugar de trabajo?