¿Sería ético que un estudiante de doctorado en informática contratara a un asistente (programador)?

Me preguntaba si sería ético que un estudiante de doctorado en el campo de la informática contratara a un programador en un dominio específico; para que pudiera centrarse más en la parte algorítmica o matemática de la tesis. ¿Sería eso algo ético de hacer? ¿Debe el doctorando incluir a este asistente como coautor en los artículos?

Dejando de lado la ética, es un poco anormal. Por lo general, en la academia este tipo de situaciones se resuelve a través de la colaboración . Recomiendo encarecidamente que busque a otro académico para colaborar en lugar de contratar el trabajo; le ahorrará tener que gastar el dinero y obtendrá la ventaja de una oportunidad de establecer contactos. Puntos dobles, de hecho, ya que usted será el creador del proyecto y brindará esta oportunidad a otros: la academia está llena de personas talentosas que esperan que alguien les presente un nuevo problema.
Como programador, siento que esto está relacionado con academia.stackexchange.com/questions/37370 . Si le preocupa que su código sea horrible pero desea publicarlo de todos modos, entonces contratar a alguien que pueda hacer que no sea horrible podría ser una inversión sensata. Una cuestión de cuánto vale para usted tener un código no horrible frente al código que escribió usted mismo. Dado que la respuesta mejor calificada en efecto dice "su código horrible está bien, no hay un gran beneficio en que no sea horrible", tal vez no debería valer mucho :-)

Respuestas (6)

No creo que sea inherentemente poco ético hacer esto. Si todas las partes relevantes lo saben y usted reconoce escrupulosamente el trabajo de esta otra persona, entonces no veo ningún problema específico.

Si es aconsejable es una pregunta diferente... y una que sin duda debería preguntarle a su asesor. Debo decir que no me parece tan buena idea. Tu trabajo de tesis es para que lo hagas... casi por definición. Está perfectamente bien obtener ayuda de otros en su tesis, y algunas personas son mejores programadores que otras (incluso en CS, me imagino), por lo que obtener algunos consejos de un amigo es realmente una buena idea. Pero pagarle a alguien para que haga una parte de su trabajo de tesis simplemente no me parece bien. O la programación es una parte importante de tu tesis o no lo es. Si es así, debe hacerlo usted mismo. Si no es así, tal vez no necesite hacerlo en absoluto, o no necesite hacerlo en la medida en que lo haría un profesional externo.

También está la cuestión de la impresión que esta subcontratación causaría en los demás. Tal vez las normas culturales en su campo sean muy diferentes a las mías (de nuevo: pregunte a su asesor), pero tendría una impresión bastante negativa de un estudiante de doctorado que hiciera esto: no parece estar muy comprometido con su propio trabajo.

Agregado : Para ser claro, estoy interpretando la pregunta en el sentido de que el estudiante de doctorado mismo está haciendo la contratación: es decir, que esta es su idea y está usando sus propios fondos. (Si su universidad le da fondos y simplemente le pide que elija a alguien con quien trabajar, incluso hacer la pregunta "¿Es ético?" se vuelve menos plausible).

En términos de sospechar que esto no es una buena idea, espero haber dejado claro que esta es mi opinión personal, con experiencia en un campo (matemáticas) que está bastante relacionado con la computación pero que no es necesariamente idéntico. Como dije, el OP debería consultar a su asesor sobre esto. Sin embargo, por lo que vale, me resulta difícil creer que la reacción será "Claro, gasta tu dinero". Si bien no es poco ético por parte del OP, parece, digamos, subóptimo si tanto el asesor como el estudiante sienten que esta es la mejor manera de proceder.

Los asistentes de investigación son muy comunes. En algunas cosas, son una necesidad. Y, después de haber sufrido un código de investigación horrible, desearía que más personas hubieran contratado a desarrolladores profesionales para hacer al menos parte de su diseño.
El mayor problema es que la academia no ha decidido que la codificación es 1) difícil y 2) íntima para la academia. Parece que el OP es lo suficientemente inteligente como para darse cuenta de esto y este es su intento de solución.
@Davidmh: Si el departamento o la universidad quiere contratar asistentes de investigación para un proyecto (presumiblemente uno que tiene un alcance más allá del trabajo de tesis del OP, pero tal vez algunos estudiantes de doctorado tengan sus propios asistentes pagados), estaría bien. El OP gastando su propio dinero contratando a un extraño es un asunto diferente. Mi principal consejo fue preguntarle a su asesor, pero me cuesta creer que la respuesta del asesor sea "Claro, gasta tu propio dinero en este proyecto".
@ PeteL.Clark Estoy de acuerdo en que hacerlo con el propio dinero del OP es una muy mala idea. Pero quería señalar que hacer todo el trabajo uno mismo no siempre es posible ni necesariamente recomendable.
@Davidmh Creo que uno no debe hacer todo por sí mismo es aceptado universalmente. Creo que la pregunta principal aquí es si es una buena idea externalizar parte de su (!) trabajo de doctorado a un contratista.
@AAA, no creo que la academia esté a oscuras sobre lo difícil que es la codificación. La cuestión es que si algo es difícil, un profesional puede cobrar mucho dinero por hacerlo. Los estudiantes de posgrado, por otro lado, son baratos.
@Shep, sí, pensar que dicho estudiante de posgrado está haciendo un buen trabajo es simplemente estar en la oscuridad acerca de lo difícil que es la codificación. un profesional lo puede hacer mas barato que la horda de estudiantes de posgrado que contratas para hacerlo mal, pero nadie se da cuenta de que se hace mal porque esa es la norma...
Tal vez esta debería ser su propia pregunta, pero: Pete, había estado pensando que uno de mis estudiantes de posgrado y yo podríamos supervisar un REU/UROP para automatizar un montón de cálculos de geometría algebraica; actualmente los está haciendo a mano. No es trivial que estos cálculos sean finitos en absoluto; ese es su primer resultado. También me ha mostrado patrones interesantes en los datos calculados a mano, donde más datos serían útiles. Pensé que haber supervisado un REU en lugar de haber hecho la codificación solo se vería bien para ella en el mercado laboral. ¿Cree que un número significativo de escuelas no estaría de acuerdo?
@David: Realmente no tengo sentimientos fuertes sobre esto de ninguna manera. Supongo que sin evidencia específica en contrario, tiendo a pensar que quienes supervisan las REU están "realmente detrás" de lo que sale de las REU. Entonces, si su estudiante supervisó un REU y su carta documentó sus contribuciones al proyecto, entonces me parece bien.

Claro, pero dudo que puedas permitírtelo.

Veamos cuáles son las opciones:

  • Puede contratar a un estudiante universitario a tiempo parcial para que escriba parte de su código, pero lo más probable es que pase más tiempo desenterrando sus errores y enseñándoles lo que se necesitaría para escribir el código usted mismo. Probablemente no valga la pena. 1

  • O podría obtener un programador real , pero un buen programador profesional costará mucho más que un doctorado. gana el estudiante, y probablemente incluso más de lo que cuestan (en los EE. UU., la universidad toma una gran parte de cada estudiante de posgrado en una subvención, aproximadamente igual al estipendio del estudiante). Probablemente no valga la pena a menos que seas rico de forma independiente.

    Para empeorar las cosas, incluso un ingeniero de software profesional no puede leer tu mente. Su trabajo es tomar sistemas extremadamente grandes con muchas partes móviles y hacerlos manejables. Como un doctorado en ciencias de la computación. probablemente se esté enfocando más en un componente en particular, que tendrá que entender lo suficientemente bien como para escribir el código usted mismo.

En cualquier caso, no parece un buen negocio para ti.


1 Tenga en cuenta que esto solo se aplica si su objetivo final es simplemente evitar codificarse usted mismo. Por otro lado, asesorar y supervisar son habilidades extremadamente valiosas y, como académico, su trabajo no es solo hacer su trabajo, sino apoyar el campo en su conjunto. Al aceptar a estudiantes universitarios, potencialmente está haciendo más por el campo de lo que podría hacer contratando a un profesional, y los futuros empleadores tomarán nota. Además, si los trata como investigadores por derecho propio, es posible que tengan algunas ideas valiosas, pero su pregunta era específica para contratarlos solo para escribir código.

+1 por mencionar el problema del costo. Un programador de nivel industrial (incluso en una etapa de principiante) gana considerablemente más dinero que un estudiante de doctorado. Sin embargo, si el programador está siendo pagado por la institución o por la subvención del asesor, entonces podría no ser un problema.
Como desarrollador, puedo confirmar que ganamos más que estudiantes de doctorado.
@AbbasJavanJafari, es cierto que una subvención podría incluir el salario de un programador. En la práctica, no lo he visto mucho, probablemente porque (fuera del caso de un gran grupo de investigación) la agencia de financiamiento se preguntará por qué deberían pagar el doble del salario de un estudiante de posgrado para mejorar la eficiencia de un estudiante de posgrado en un 50%. Verían más resultados si contrataran a dos estudiantes de posgrado más. Además, gran parte de la subvención supuestamente paga por "educación", no por software profesional.
@Shep, estoy de acuerdo, es muy poco probable, a menos que sea un gran proyecto relacionado con la industria y la programación desempeñe un papel importante. De lo contrario, es extremadamente difícil convencer a otros de que le paguen para contratar ayuda adicional cuando le están pagando por el trabajo y, si no puede hacerlo, entonces tal vez deberían encontrar a alguien más.
@itcouldevenbeaboat: Como exestudiante de doctorado, ¡puedo confirmar dolorosamente que ganamos menos que los desarrolladores de software! ¡Ay de nosotros, etc.!
Algunos estudiantes universitarios son mejores que muchos programadores reales .
Debo decir que es un honor ser rechazado por @PeterShor. Estoy de acuerdo en que desdeñé un poco a los estudiantes universitarios, pero nunca he visto mucho éxito cuando los investigadores los tratan como herramientas para "simplemente escribir el código". Como investigadores por derecho propio, estaría de acuerdo con usted.

Voy a esbozar por qué creo que es ético y contrastarlo con el caso descrito en la pregunta ¿Es éticamente cuestionable para mí (un estudiante universitario) contratar “asistentes de investigación”? . Además, estoy respondiendo con una perspectiva de Alemania.

tl; dr: Sí, es ético y se hace de forma rutinaria.

La pregunta vinculada anteriormente hace explícitamente una pregunta similar desde el punto de vista de un estudiante universitario. En esa etapa de la educación, como también se señala en la respuesta de RoboKaren allí , se aplican ciertas restricciones (generalmente) (y en muchos casos, seguir aplicando hasta una maestría):

  • Se espera que el alumno trabaje por su cuenta.
  • Las tareas son razonablemente de "bajo nivel" de manera que es realista y se espera que todo lo haga una sola persona.
  • Es probable que las tareas apunten a demostrar habilidades con un énfasis menor en la producción de un producto real. (Eso no significa que, por ejemplo, las tesis de licenciatura no puedan producir un pequeño software impresionante. Pero, en general, lo que se crea es un prototipo en lugar de un producto comercializable completo).

Sin embargo, una vez que ingresa a la candidatura doctoral, ocurren algunos cambios:

  • No existe necesariamente el requisito de que el doctorando haga todo por su cuenta. (Consulte las reglas específicas de su universidad para ver si esto se aplica a usted). Se supone que el candidato a doctorado debe elegir la dirección y tomar decisiones en niveles superiores e inferiores, pero eso no significa que tenga que escribir cada línea de código. ellos mismos después de que la idea conceptual ha sido documentada, o que tienen que acompañar personalmente a los más de 50 participantes de un estudio de usuarios.
  • Relacionado con eso, las tareas son lo suficientemente grandes como para que puedan distribuirse entre varias personas. Si la investigación es financiada por un tercero, a menudo ocurre que más de una persona es financiada por ese proyecto, por lo que se realiza bastante trabajo en colaboración.
  • Si bien el software producido durante la candidatura doctoral a menudo se encuentra todavía en un estado muy... digamos... sin terminar, de hecho se espera que se produzcan resultados de investigación reales. Eso significa (relacionado con el ejemplo de estudio de usuarios mencionado anteriormente) que no es suficiente que el candidato doctoral demuestre una vez que puede realizar un estudio de usuarios observando a cinco participantes, sino estudios de usuarios reales con varias docenas de participantes y más de uno de esos estudios. , hay que hacerlo. No tiene sentido "torturar" a una sola persona haciéndole hacer las mismas preguntas 50 veces, cuando se puede lograr lo mismo distribuyendo la carga de trabajo entre varias personas.

Por lo tanto, siempre que el doctorando esté "a cargo" del desarrollo conceptual de la investigación y sus resultados, es completamente aceptable subcontratar algunas subtareas. Un punto más es que se supone que el doctorando debe adquirir una primera experiencia práctica en la contratación y dirección de un equipo de personas.

Dicho esto, vuelvo a mi declaración anterior de que se hace de forma rutinaria, para proporcionar algunos escenarios ejemplares del mundo real. Puedo pensar en variantes pagadas y no pagadas de esto:

  • En algunos lugares, los candidatos a doctorados a menudo pueden contratar a uno o más estudiantes asistentes de investigación (generalmente estudiantes de licenciatura/maestría), por ejemplo, como apoyo en la codificación. Tenga en cuenta que estos estudiantes no son pagados personalmente por los doctorandos, sino que su financiación proviene de las mismas fuentes que la financiación de los propios doctorandos. Por lo tanto, no solo están permitidos, sino que están explícitamente destinados a trabajar en los mismos proyectos que los doctorandos.(Aún así, estos estudiantes asistentes de investigación son "contratados" por el doctorando. El doctorando tendrá la idea de que algunas tareas se pueden delegar, diseñará y publicará la oferta de trabajo, verificará a los solicitantes en las entrevistas y elegirá al más adecuado, y ellos deciden lo que esos asistentes de investigación estudiantiles pueden hacer. La única vez que los asistentes de investigación estudiantiles normalmente se ponen en contacto con alguien además del doctorando que los contrató es para firmar su contrato, lo que sucede en algún departamento de recursos humanos de la universidad.)
  • Además, cuando los candidatos a doctorado supervisan una tesis de licenciatura o de maestría, a menudo definen el tema y los requisitos de manera que los resultados de esa tesis proporcionen información para su propia tesis doctoral. Así, también es una forma de subcontratar parte del trabajo que eventualmente contribuye a la investigación doctoral.

EDITAR: Por último, me gustaría agregar un ejemplo hipotético más concreto para ilustrar qué tipo de tareas podría realizar un "programador de apoyo" de este tipo:

Imagine un candidato a doctorado que investiga en el área de HCI para desarrollar algunos elementos nuevos de GUI. La parte de investigación creativa del trabajo consiste en aprender sobre el trabajo relacionado, desarrollar un nuevo concepto para un control GUI y dibujar algunos bocetos del mismo en una hoja de papel, así como diseñar/elegir algunas tareas de prueba para validar las hipótesis subyacentes al diseño.

Sin embargo, antes de que esto pueda convertirse en una publicación, se debe trabajar mucho más. Se tiene que programar un prototipo interactivo, basado en el diseño esbozado. Tendrá que hacerse para que se vea un poco elegante (aspecto 3D/brillante, animaciones, etc., cualquiera que sea la fantasía de las GUI de software contemporáneas), ya que, de lo contrario, los participantes del estudio tienden a estar extremadamente distraídos por una falta de fantasía directamente visible y no pueden ver a través de las novedades reales del concepto de GUI que se está probando, distorsionando así totalmente los resultados en la parte cualitativa de cualquier estudio. Luego, para garantizar que las tareas no se critiquen como poco realistas, algunos datos reales, o al menos que parezcan reales, deben integrarse en el prototipo. Eso generalmente significa agregar código para cargar (y posiblemente importar/convertir) uno o más conjuntos de datos existentes. Si se va a registrar y/o cronometrar el comportamiento del usuario,

Todo el último párrafo no contiene una sola pieza de investigación "científicamente creativa", este es solo un trabajo sencillo que debe hacerse y, por lo general, lleva algunas semanas hacerlo bien. Hacia el final del párrafo, estamos incluso fuera del dominio de investigación real de HCI y profundizamos en cosas de bajo nivel como E/S y acceso a bases de datos. Todo el último párrafo es perfectamente adecuado para la subcontratación, y no se esperará automáticamente que un candidato a doctor haya hecho todo esto con sus propias manos.

EDIT2: Otra nota, ya que varias de las otras respuestas se refieren a la calidad del código: es cierto que en el caso de contratar estudiantes como se describe anteriormente, la calidad del código producido puede ser menor que la que proporcionaría un programador profesional (normalmente no disponible en la configuración que he descrito en esta respuesta). Sin embargo

  • los estudiantes capaces aprenden rápidamente (en particular cuando se les asignan tareas reales, no tareas de práctica)
  • aunque se supone que el software producido es algo estable, por lo general seguirá siendo un "prototipo" para una cantidad limitada de usos y, por lo tanto, no tiene las mismas expectativas de mantenimiento o seguridad que el código de nivel de producción
  • Los candidatos al doctorado son libres de elegir y rechazar candidatos adecuados e inadecuados para su trabajo de asistente de investigación estudiantil, respectivamente (y está totalmente bien contratar a alguien por solo un mes primero para ver cómo se desempeña)
  • como personal universitario, el candidato a doctorado también tiene una responsabilidad parcial de dar a los estudiantes menos calificados la oportunidad de mejorar y, por lo tanto, debe esperar que no todos los estudiantes supervisados ​​o contratados sean los mejores genios; esto se remonta a la recopilación de experiencia en la dirección de un equipo, ya que a menudo también significará una combinación de niveles de habilidad divergentes durante la vida laboral posterior del candidato a doctorado.
"Tenga en cuenta que estos estudiantes no son pagados personalmente por los doctorandos, sino que su financiación es proporcionada por las mismas fuentes que la financiación de los propios doctorandos. Por lo tanto, no solo están permitidos, sino que están explícitamente destinados a trabajar en los mismos proyectos. como los candidatos al doctorado". Este es un punto importante: interpreté la pregunta del OP en el sentido de que el candidato está pagando la programación de su propio bolsillo. Esto no me parece una buena idea. Si la institución misma está pagando por un asistente, eso es algo completamente diferente.
La pregunta que hace el estudiante es sobre la contratación de un asistente para que se dedique a intereses de investigación "externos", no a una investigación de tesis o una investigación que sea "oficialmente" parte de su educación. Así que es muy diferente en ese sentido.
De hecho, iría tan lejos como para decir que "No gastes tu propio dinero en tu investigación académica" es una buena regla general.
@PeteL.Clark: Comprar libros para formar una biblioteca de referencia es una gran excepción a eso.
@aeismail: Estoy de acuerdo (más que la mayoría: tengo muchos libros).
@PeteL.Clark: En realidad, no veo ninguna diferencia entre (1) pagar personalmente por ese programador o (2) usar un programador contratado por la universidad con respecto a la ética. Para mí, la diferencia entre estos es que (2) sucede con mucha frecuencia, mientras que (1) casi nunca es factible financieramente para el candidato a doctorado. Con (2), sigue siendo completamente el doctorando quien publica la oferta de trabajo, quien elige al programador y quien le asigna tareas al programador. Su respuesta suena más a que se opone en general al concepto de subcontratar cualquier trabajo relacionado con la tesis doctoral. Yo he añadido ...
... un ejemplo concreto de un proyecto de investigación hipotético donde, en mi opinión, tal subcontratación sería apropiada (o, en particular, alguna investigación de CS que se basa de manera crucial en alguna programación, que por lo tanto debe hacerse, mientras que al mismo tiempo obviamente no se hace parte de la "contribución científica creativa" que debe ser propia del doctorando).
@ ff524: Tienes razón; Es posible que me haya distraído el primer párrafo de la respuesta de RoboKaren a esa pregunta, que implica una investigación de tesis o similar.
@OR Mapper: No creo que haga una diferencia ética por parte del OP: como dije, no encuentro que la práctica no sea ética. Sin embargo, cuanto más lo pienso, más me preocupa que pueda ser, si no poco ético, ciertamente no una buena práctica, que la universidad observe alegremente a los estudiantes gastar su propio dinero en la investigación de su tesis. En particular, en su ejemplo concreto, la universidad no parece apoyar mucho al candidato si espera que se pague de su bolsillo.
@PeteL.Clark: Eso es ciertamente cierto (y para ser claros, nunca me he encontrado con un caso en el que un candidato a doctorado le hubiera pagado a un programador asistente; al mismo tiempo, casi nunca he conocido a ningún candidato a doctorado aquí que no contrató en un momento u otro a un estudiante asistente de investigación a través de la universidad). Estoy de acuerdo en que en cuanto al pago, la universidad podría ser juzgada éticamente de manera diferente; la situación del doctorando y del programador sería totalmente la misma, salvo pequeñas diferencias formales (quién firma el contrato, quién transfiere el dinero).
@ORMapper: Los problemas éticos surgen si el asistente de investigación trata de ocultar el hecho de que él o ella no está haciendo el trabajo y pasa el trabajo "subcontratado" como propio. En principio, pagar al estudiante con fondos de la universidad debería hacer esto mucho más difícil.
+1. Me gusta esta respuesta para el proyecto de investigación de GUI de ejemplo. Como estudiante universitario que se dedica al desarrollo de software independiente, haría las cosas mucho más rápido si tuviera al menos una persona más trabajando en mi proyecto actual. Tareas como la construcción/administración de la base de datos, la construcción de la API REST, el diseño de la GUI del lado del cliente y las funciones del controlador para el servidor y el cliente son responsabilidad mía. En realidad, estas tareas podrían distribuirse. Estoy seguro de que en muchos tipos de investigación, los aspectos específicos de la programación se pueden asignar a otra persona sin mucha necesidad de conocimientos específicos del dominio.

Te recomiendo que consideres tus metas profesionales. Si tiene la intención de ingresar a una carrera como desarrollador de software, diría que puede ser ético con los créditos otorgados, pero no es una buena práctica.

He sido gerente de contratación e instructor en desarrollo de software durante las últimas dos décadas, y una constante que he encontrado es que cuanto más educados son los desarrolladores de software, peor es su código.

Pueden resolver problemas complejos en el código, pero su código generalmente no se puede mantener. Esto es algo que no he tenido éxito en corregir. Esto se ha convertido en un problema tal que los currículos de los desarrolladores de software con un doctorado o doble maestría van al final de la pila de currículos, debajo de los candidatos sin títulos.

The Workplace tiene una pregunta sobre esto que puede profundizar en el tema.

Estaré en desacuerdo con las otras respuestas casi por completo. Si está en un PHD de CS (a menos que esté estrictamente en Ciencias de la Computación Teórica) y ni siquiera puede codificar sus propios algoritmos durante el PHD, entonces está en el negocio equivocado. Está perfectamente bien colaborar (no pagar) con otras personas para escribir/compartir el código, pero poner a otra persona a codificar por usted (porque usted no puede hacerlo) es una tontería o casi peligrosa. No puede separar el algoritmo del código (a menos que nuevamente esté estrictamente en Ciencias de la Computación Teórica) y el rendimiento del algoritmo (en un experimento real) está en correlación directa con la implementación del algoritmo.

¿Cómo va a verificar si su programador contratado hizo una implementación correcta? No puede, a menos que revise exhaustivamente su código, lo que en realidad podría llevarle más tiempo que implementar su versión del algoritmo. Pero incluso entonces, nunca estarás completamente seguro. ¿Qué vas a hacer cuando pienses en una nueva optimización menor? ¿Escribirle un correo electrónico, esperar a que lo implemente y obtener la respuesta 2 días después? Buena suerte al terminar su trabajo en los próximos 3 años para tal flujo de trabajo. Pero incluso si logras terminarlo, siempre existirá ese 1% de posibilidades de que algo salió mal en su implementación y todas tus hipótesis se esfumarán, cuando alguien más implemente tu algoritmo por su cuenta y demuestre que estás equivocado. ¿Qué harás entonces? ¿Echarle la culpa a él? ¿Cómo podrá responder a las preguntas sobre su trabajo que alguien más hizo por usted? Y digamos que te las arreglas para terminar el primer papel con el ayudante contratado y luego se va a otro trabajo. ¿Qué vas a hacer en tu próximo trabajo? ¿Contratar a alguien más para mantener y expandir el código del programador anterior?

Además, como doctorado o posdoctorado, puede estar a cargo (como gerente técnico) de un programa de investigación cercano a su experiencia que podría ser de una escala significativamente mayor que un trabajo de investigación. Cómo le dirás a tus compañeros o colegas más jóvenes qué hacer, si siempre confías en alguien más para que codifique por ti. ¿Cómo puede separar lo que es factible o no dentro del marco de tiempo del proyecto si nunca implementó ni siquiera sus algoritmos usted mismo?

Cuando sea más senior (posdoctorado y más allá), es posible que otros escriban más código que usted en sus documentos de coautoría. Pero incluso entonces, debe poder verificar su código en busca de errores, inconsistencias y debe poder predecir cómo funcionará el código/algoritmo en casos de prueba seleccionados (a menos que nuevamente esté estrictamente en Ciencias de la Computación Teórica). Esto no es algo que se aprende mediante pseudocódigo, abstracción de alto nivel o atajos, sino algo que se aprende pagando horas de depuración, codificación y experimentos fallidos. No puedes obtener un doctorado en Matemáticas dejando que otra persona haga las pruebas por ti. ¿Por qué asumes que CS es diferente?

Esta respuesta combina la capacidad del estudiante de doctorado para hacer algo con si éticamente debería / tener que hacerlo ellos mismos, que en mi humilde opinión son cuestiones muy diferentes. OTOH es cierto que la subcontratación no reduce el trabajo a cero para el estudiante de doctorado y puede resultar en una ganancia neta negativa. (±0)
Me pregunto de dónde sacas la premisa "ni siquiera puedes codificar tus propios algoritmos". Con la misma lógica, tendría que concluir que todos los desarrolladores de software que han progresado en su carrera para convertirse en líderes de equipo o algo más alto son incapaces de codificar porque subcontratan una parte de sus tareas de codificación a otros desarrolladores.
@ORMapper. ¿Por qué no cada estudiante de doctorado contrata a su propio programador, según la idea de OP? Entonces, en un laboratorio con 5 estudiantes de doctorado, podemos tener 5 "programadores personales" adicionales. Por supuesto, esos programadores deben asistir a las reuniones con los supervisores, ya que de todos modos hacen toda la codificación y son coautores de los documentos relacionados al mismo tiempo. Para que los estudiantes de doctorado puedan pensar en algoritmos durante un mes y permanecer inactivos durante los próximos seis meses necesarios para la implementación de los algoritmos. ¿Te parece razonable?
@Alexandros: Como señalé en mi respuesta, es absolutamente normal en algunos lugares que más o menos todos los doctorandos contraten a uno o más estudiantes como apoyo, por ejemplo, en programación. No asisten a las reuniones con los supervisores porque a los supervisores no les importa ni hablan de programación, por lo que esas reuniones no están relacionadas con la programación. Es tarea de los candidatos de doctorado instruir adecuadamente a los estudiantes de apoyo sobre cómo realizar esas tareas de bajo nivel, después de haber discutido el "panorama general" en un nivel superior con sus supervisores.
@Alexandros: "Para que los estudiantes de doctorado puedan pensar en algoritmos durante un mes y permanecer inactivos durante los próximos seis meses", simplemente no es así como funcionan las cosas. La contratación y la subcontratación se realizan precisamente por la razón de que, por lo general, los doctorandos no "se quedan de brazos cruzados" ni siquiera durante un mes y, por lo tanto, no tienen tiempo para un trabajo que requiere mucho tiempo, pero que en última instancia es sencillo, como la programación basada en una especificación clara.
@Alexandros: como experimento mental, escala las cosas uno o dos niveles más. ¿Ves algún profesor que pase meses escribiendo código, buscando fugas de memoria y depurando, porque de lo contrario estarían inactivos durante meses sin nada que hacer?

Si la mayor parte del trabajo de programación pudiera caber fácilmente en una biblioteca general, puede apoyar a alguien para que haga una biblioteca de código abierto.

No es una cuestión ética reutilizar software de código abierto.

Pero asegúrese de que este software esté bien documentado y disponible para ayudar a otras personas que trabajan en su dominio.