Question:
Serait-il éthique pour un doctorant en informatique d'embaucher un assistant (programmeur)?
Layla
2015-02-02 04:34:40 UTC
view on stackexchange narkive permalink

Je me demandais s'il serait éthique pour un doctorant dans le domaine de l'informatique d'embaucher un programmeur dans un domaine spécifique; afin qu'il puisse se concentrer davantage sur la partie algorithmique ou mathématique de la thèse. Serait-ce quelque chose d'éthique à faire? Le doctorant doit-il inclure cet assistant en tant que co-auteur dans les articles?

Votre deuxième question trouve sa réponse dans [Quand un assistant de recherche rémunéré devient-il co-auteur?] (Http://academia.stackexchange.com/questions/5827/when-does-a-paid-research-assistant-become-a -coauteur)
Connexes: [Est-il éthiquement discutable pour moi (un étudiant de premier cycle) d'embaucher des «assistants de recherche»?] (Http://academia.stackexchange.com/questions/30405/is-it-ethically-questionable-for-me-an- assistant à la recherche du premier cycle à l'embauchea)
Éthique mise à part, c'est un peu anormal. Habituellement, dans le milieu universitaire, ce genre de situation est résolu par la * collaboration *. Je vous recommande fortement de rechercher un autre universitaire avec lequel collaborer plutôt que de louer le travail - cela vous évitera de dépenser de l'argent et vous obtiendrez en prime une opportunité de réseautage. Double points, en fait, puisque vous serez à l'origine du projet et que vous apporterez cette opportunité à d'autres - le monde universitaire regorge de personnes talentueuses qui n'attendent que quelqu'un pour leur poser un nouveau problème.
En tant que programmeur, je pense que cela est lié à https://academia.stackexchange.com/questions/37370. Si vous craignez que votre code soit horrible mais que vous voudrez quand même le publier, alors embaucher quelqu'un qui peut le rendre non horrible * pourrait * être un investissement judicieux. Une question de combien cela vaut pour vous d'avoir du code non horrible par rapport au code que vous avez écrit vous-même. Étant donné que la réponse la mieux notée en fait dit "votre code horrible est bon, il n'y a aucun avantage majeur à ce qu'il ne soit pas horrible", peut-être que cela * ne devrait pas * valoir beaucoup :-)
Six réponses:
Pete L. Clark
2015-02-02 05:21:38 UTC
view on stackexchange narkive permalink

Je ne pense pas qu'il soit intrinsèquement contraire à l'éthique de faire cela. Si toutes les parties concernées sont au courant et que vous reconnaissez scrupuleusement le travail de cette autre personne, alors je ne vois pas de problème spécifique.

La question de savoir si c'est souhaitable est une autre question ... et vous devriez certainement la poser à votre conseiller. Je dois dire que cela ne me semble pas une si bonne idée. Votre travail de thèse est à vous de faire ... presque par définition. C'est parfaitement bien d'obtenir l'aide d'autres personnes sur votre thèse, et certaines personnes sont de meilleurs programmeurs que d'autres (même en CS, j'imagine), donc obtenir des conseils d'un ami est en fait une bonne idée. Mais payer quelqu'un pour faire une partie de votre travail de thèse ne me semble tout simplement pas bon. Soit la programmation est une partie importante de votre thèse, soit elle ne l'est pas. Si c'est le cas, vous devriez le faire vous-même. Si ce n'est pas le cas, vous n'avez peut-être pas besoin de le faire du tout, ou n'avez pas besoin de le faire dans la mesure où un professionnel extérieur le ferait.

Il y a aussi la question de l'impression que cette sous-traitance ferait sur les autres. Peut-être que les normes culturelles dans votre domaine sont très différentes des miennes (encore une fois: demandez à votre conseiller), mais j'aurais une impression plutôt négative d'un doctorant qui a fait cela: il ne semble pas très engagé dans son propre travail.

Ajouté : Pour être clair, j'interprète la question comme signifiant que le doctorant fait lui-même l'embauche: c'est-à-dire que c'est son idée et qu'il utilise la sienne fonds. (Si son université lui accorde un financement et lui demande simplement de choisir quelqu'un avec qui travailler, alors même lui poser la question «Est-ce éthique?» Devient moins plausible.)

Pour ce qui est de soupçonner que ce n'est pas une bonne idée, j'espère avoir été clair que c'est mon opinion personnelle, avec l'expérience d'un domaine (les mathématiques) qui est assez étroitement lié à la CS mais qui n'est pas nécessairement identique. Comme je l'ai dit, le PO devrait consulter son conseiller à ce sujet. Cependant, pour ce que ça vaut, j'ai du mal à croire que la réaction sera «Bien sûr, dépense ton argent». Bien que ce ne soit pas contraire à l'éthique de la part du PO, il semble, dirons-nous, sous-optimal si le conseiller et l'étudiant estiment que c'est la meilleure façon de procéder.

Les assistants de recherche sont très courants. Dans certaines choses, ils sont une nécessité. Et, après avoir subi un code de recherche horrible, j'aurais aimé que plus de gens aient embauché des développeurs professionnels pour au moins faire partie de leur conception.
Le plus gros problème est que le monde universitaire n'a pas décidé que le codage était 1) difficile et 2) intime avec le milieu universitaire. On dirait que l'OP est assez intelligent pour réaliser cela et c'est leur tentative de solution.
@Davidmh: Si le département ou l'université souhaite embaucher des assistants de recherche pour un projet (probablement un projet qui a une portée au-delà de celle du travail de thèse de l'OP, mais peut-être que certains doctorants ont leurs propres assistants rémunérés), ce serait très bien. Le PO dépensant son propre argent pour embaucher un étranger est une autre affaire. Mon principal conseil était de demander à son conseiller, mais j'ai du mal à croire que la réponse du conseiller sera «Bien sûr, dépensez votre propre argent sur ce projet».
@PeteL.Clark Je suis d'accord que le faire avec l'argent du PO est une très mauvaise idée. Mais je tenais à souligner que faire tout le travail soi-même n'est pas toujours possible ni forcément souhaitable.
@Davidmh Je pense qu'il ne faut pas tout faire soi-même est à peu près universellement accepté. Je pense que la question principale ici est de savoir si c'est une bonne idée d'externaliser une partie de votre (!) Travail de doctorat à un entrepreneur.
@AAA, Je ne pense pas que les universités ignorent à quel point le codage est difficile. Le fait est que si quelque chose est difficile, un professionnel peut facturer beaucoup d'argent pour le faire. Les étudiants diplômés, en revanche, sont bon marché.
@Shep ouais, penser que les étudiants diplômés font du bon travail, c'est simplement ignorer à quel point le codage est difficile. un professionnel peut le faire moins cher que la foule d'étudiants diplômés que vous embauchez pour le faire mal, mais personne ne remarque que c'est mal fait parce que c'est la norme ...
Peut-être que cela devrait être sa propre question, mais: Pete, je pensais qu'un de mes étudiants diplômés et moi pourrions superviser un REU / UROP pour automatiser un tas de calculs de géométrie algébrique; elle les fait actuellement à la main. Ce n'est pas anodin que ces calculs soient finis du tout - c'est son premier résultat. Elle m'a également déjà montré des modèles intéressants dans les données calculées à la main, où plus de données seraient utiles. Je pensais qu'avoir supervisé une REU plutôt que de faire le codage ne lui semblerait bien que sur le marché du travail. Pensez-vous qu'un nombre important d'écoles seraient en désaccord?
@David: Je n'ai pas vraiment de sentiments à ce sujet de toute façon. Je suppose que sans preuve spécifique du contraire, j'ai tendance à penser que ceux qui supervisent les REU sont «vraiment en retard» sur ce qui sort des REU. Donc, si votre étudiante a supervisé une REU et que votre lettre a documenté ses contributions au projet, cela me semble bien.
Shep
2015-02-02 06:44:08 UTC
view on stackexchange narkive permalink

Bien sûr, mais je doute que vous puissiez vous le permettre.

Voyons quelles sont les options:

  • Vous pouvez embaucher un étudiant de premier cycle à temps partiel pour écrire une partie de votre code, mais il y a de fortes chances que vous passiez plus de temps à rechercher leurs bogues et à leur apprendre qu'il faudrait écrire le code vous-même. Cela ne vaut probablement pas la peine. 1

  • Ou vous pourriez avoir un vrai programmeur, mais un bon programmeur professionnel va coûte beaucoup plus cher qu'un doctorat. les étudiants gagnent, et probablement même plus que ce qu'ils coûtent (aux États-Unis, l'université prend une énorme réduction pour chaque étudiant diplômé dans une subvention, à peu près égale à l'allocation de l'étudiant). Cela ne vaut probablement pas la peine, sauf si vous êtes indépendamment riche.

    Pour aggraver les choses, même un ingénieur logiciel professionnel n'est pas capable de lire dans vos pensées. Leur travail consiste à prendre des systèmes extrêmement volumineux avec de nombreuses pièces mobiles et à les rendre gérables. En tant que doctorant en informatique. vous vous concentrez probablement davantage sur un componnet particulier, que vous devrez comprendre suffisamment bien pour écrire le code vous-même.

Dans les deux cas, ce n'est pas le cas. Cela semble être une très bonne affaire pour vous.


1 Notez que cela ne s'applique que si votre objectif final est simplement d'éviter de coder vous-même. D'un autre côté, le conseil et la supervision sont des compétences extrêmement précieuses et en tant qu'universitaire, votre travail ne consiste pas seulement à faire votre travail, mais à soutenir le domaine dans son ensemble. En recrutant des étudiants de premier cycle, vous faites potentiellement plus pour le domaine que vous ne pourriez jamais faire en embauchant un professionnel, et les futurs employeurs en prendront note. De plus, si vous les traitez comme des chercheurs à part entière, ils pourraient avoir des idées précieuses, mais votre question portait spécifiquement sur les embaucher juste pour écrire du code.

+1 pour avoir mentionné le problème de coût. Un programmeur de niveau industriel (même à un stade débutant) gagne beaucoup plus d'argent qu'un doctorant. Cependant, si le programmeur est payé à l'aide de l'institution ou de la subvention du conseiller, il se peut que ce ne soit pas un problème.
En tant que développeur, je peux confirmer que nous faisons plus que des doctorants.
@AbbasJavanJafari,, il est vrai qu'une subvention pourrait inclure le salaire d'un programmeur. En pratique, je ne l'ai pas beaucoup vu, probablement parce que (en dehors du cas d'un énorme groupe de recherche) l'agence de financement va se demander pourquoi elle devrait payer deux fois le salaire d'un étudiant diplômé pour améliorer l'efficacité d'un étudiant diplômé de 50%. Ils verraient plus de résultats en embauchant deux autres étudiants diplômés. De plus, une grande partie de la subvention est censée payer pour «l'éducation» et non pour des logiciels professionnels.
@Shep, Je suis d'accord, c'est hautement improbable, à moins qu'il ne s'agisse d'un grand projet lié à l'industrie et que la programmation joue un rôle majeur. Sinon, il est extrêmement difficile de convaincre les autres de vous payer pour embaucher une aide supplémentaire lorsqu'ils vous paient pour le travail et si vous ne pouvez pas le faire, ils devraient peut-être trouver quelqu'un d'autre.
@itcouldevenbeaboat: En tant qu'ancien doctorant, je peux affirmer si douloureusement que nous faisons moins que les développeurs de logiciels! Malheur à nous etc ...
Certains étudiants de premier cycle sont meilleurs que beaucoup de * vrais * programmeurs.
Je dois dire que c'est un honneur d'être critiqué par @PeterShor.Je conviens que j'ai été un peu dédaigneux des étudiants de premier cycle, mais je n'ai jamais vu beaucoup de succès lorsque les chercheurs les traitent comme des outils pour «écrire simplement le code».En tant que chercheurs à part entière, je suis d’accord avec vous.
O. R. Mapper
2015-02-02 05:45:58 UTC
view on stackexchange narkive permalink

Je vais expliquer pourquoi je pense que c'est éthique et comparer cela avec le cas décrit dans la question Est-il éthiquement discutable pour moi (un étudiant de premier cycle) d'embaucher des «assistants de recherche»?. De plus, je réponds avec une perspective allemande.

tl; dr: Oui, c'est éthique et cela se fait régulièrement.

La question liée ci-dessus pose explicitement une question similaire du point de vue d'un étudiant de premier cycle. À ce stade de la formation, comme cela est également souligné dans la réponse de RoboKaren, certaines restrictions (peuvent généralement) s’appliquer (et dans de nombreux cas, continuer à s’inscrire jusqu’à un diplôme de maîtrise):

  • On s'attend à ce que l'élève travaille seul.
  • Les tâches sont raisonnablement "de bas niveau" de manière à être réaliste et à ce que tout soit fait par une seule personne.
  • Les tâches visent probablement à démontrer des compétences en mettant moins l'accent sur la production d'un produit réel. (Cela ne signifie pas que, par exemple, les thèses de licence ne peuvent pas produire un petit logiciel impressionnant. Mais en général, ce qui est créé est un prototype plutôt qu'un produit commercialisable à part entière.)

Une fois la candidature au doctorat introduite, cependant, certains changements se produisent:

  • Il n'est pas nécessairement obligatoire que le doctorant fasse tout seul. (Veuillez vérifier les règles spécifiques à votre université pour voir si cela s'applique à vous.) Le doctorant est censé choisir la direction et prendre des décisions aux niveaux supérieurs et inférieurs, mais cela ne signifie pas qu'il doit écrire chaque ligne de code eux-mêmes après que l'idée conceptuelle a été documentée, ou qu'ils doivent accompagner personnellement les 50+ participants à une étude utilisateur.
  • De ce fait, les tâches sont suffisamment importantes pour pouvoir être distribuées à plusieurs personnes. Si la recherche est financée par un tiers, il arrive souvent que plus d'une personne soit financée par ce projet, donc une bonne partie du travail est effectuée en collaboration.
  • Bien que le logiciel produit pendant la candidature au doctorat soit souvent encore dans un état très ... disons ... inachevé, on s'attend en effet à ce que de vrais résultats de recherche soient produits. Cela signifie (lié à l'exemple d'étude utilisateur susmentionné) qu'il ne suffit pas que le doctorant démontre une fois qu'il peut mener une étude utilisateur en observant cinq participants, mais des études utilisateur réelles avec plusieurs dizaines de participants, et plus d'une de ces études. , doit être fait. Il ne sert à rien de "torturer" une seule personne en lui faisant poser les mêmes questions 50 fois, alors que la même chose peut être obtenue en répartissant la charge de travail entre plusieurs personnes.

Par conséquent, tant le doctorant étant "en charge" du développement conceptuel de la recherche et de ses résultats, il est tout à fait acceptable d'externaliser certaines sous-tâches. Un autre point est que le doctorant est censé acquérir une première expérience pratique en matière d'embauche et de direction d'une équipe de personnes.

Cela dit, je reviens à mon affirmation ci-dessus selon laquelle cela se fait régulièrement, en afin de fournir des scénarios exemplaires du monde réel. Je peux penser à des variantes payantes et non payées de ceci:

  • Dans certains endroits, les doctorants peuvent souvent employer un ou plusieurs étudiants assistants de recherche (généralement des étudiants en licence / master), par exemple, pour aider au codage. A noter que ces étudiants ne sont pas payés personnellement par les doctorants, mais que leur financement est assuré par les mêmes sources que le financement des doctorants eux-mêmes. Par conséquent, ils ne sont pas seulement autorisés, mais explicitement destinés à travailler sur les mêmes projets que les doctorants. (Pourtant, ces étudiants assistants de recherche sont «embauchés» par le doctorant. Le doctorant aura l'idée que certaines tâches pourraient être déléguées, il conçoit et publie l'offre d'emploi, vérifie les candidats lors des entretiens et choisit le plus approprié, et ils décident de ce que ces étudiants assistants de recherche doivent faire. La seule fois où les étudiants assistants de recherche entrent en contact avec une personne autre que le doctorant qui les a embauchés est pour signer leur contrat, ce qui se passe dans un service des ressources humaines du De plus, lorsque les doctorants supervisent une thèse de licence ou de maîtrise, ils définissent souvent le sujet et les exigences de manière à ce que les résultats de cette thèse apportent une contribution à leur propre doctorat. thèse. Comme ça, c'est aussi une forme d'externalisation d'une partie du travail qui contribue finalement à la recherche doctorale.

EDIT: Enfin, je voudrais ajouter un exemple hypothétique plus concret pour illustrer ce types de tâches pourraient être effectuées par un tel "programmeur de soutien":

Imaginez un doctorant qui fait des recherches dans le domaine de l'IHM pour développer de nouveaux éléments d'interface graphique. La partie recherche créative du travail consiste à apprendre des travaux connexes, à développer un nouveau concept de contrôle GUI et à en dessiner quelques croquis sur une feuille de papier, ainsi qu'à concevoir / choisir des tâches de test pour valider les hypothèses sous-jacentes au conception.

Avant que cela puisse être converti en publication, il reste cependant beaucoup à faire. Un prototype interactif doit être programmé, basé sur la conception esquissée. Il faudra lui donner un aspect quelque peu sophistiqué (aspect 3D / brillant, animations, etc., quelle que soit la fantaisie que les interfaces graphiques logicielles contemporaines présentent habituellement), sinon les participants à l'étude ont tendance à être extrêmement distraits par un manque de fantaisie directement visible et incapables de le faire. voir à travers les nouveautés réelles du concept GUI testé, déformant ainsi totalement les résultats dans la partie qualitative de toute étude. Ensuite, pour s'assurer que les tâches ne peuvent pas être critiquées comme irréalistes, certaines données réelles, ou du moins d'aspect réel, doivent être intégrées dans le prototype. Cela signifie généralement ajouter du code pour charger (et éventuellement importer / convertir) un ou plusieurs ensembles de données existants. Si le comportement de l'utilisateur doit être enregistré et / ou chronométré, le prototype doit également être préparé pour cela, en écrivant certaines interactions dans une base de données, etc.

Le dernier paragraphe ne contient pas un seul " "recherche scientifiquement créative", ce n'est qu'un travail simple qui doit être fait, et il faut généralement quelques semaines pour réussir. Vers la fin du paragraphe, nous sommes même loin du domaine de recherche actuel de HCI et des choses de bas niveau telles que les E / S et l'accès aux bases de données. Tout ce dernier paragraphe convient parfaitement à l'externalisation, et on ne s'attendra pas automatiquement à ce qu'un doctorant ait fait tout cela de ses propres mains.

EDIT2: Une autre note, comme plusieurs des autres réponses se réfèrent à la qualité du code: il est vrai que dans le cas de l'embauche d'étudiants comme décrit ci-dessus, la qualité du code produit pourrait être inférieure à ce qui serait fourni par un programmeur professionnel (généralement non disponible dans les paramètres J'ai décrit dans cette réponse). Cependant

  • les élèves capables apprennent rapidement (en particulier lorsqu'ils reçoivent des tâches réelles et non des tâches pratiques)
  • même si le logiciel produit est censé être quelque peu stable, il restera généralement un "prototype" pour un nombre limité d’utilisations et n’a donc pas les mêmes attentes en matière de maintenabilité ou de sécurité que le code de production
  • les doctorants sont libres de choisir et de rejeter les candidats appropriés et inadaptés à leur poste d'assistant de recherche d'étudiant, respectivement (et il est tout à fait acceptable d'embaucher quelqu'un pour seulement un mois d'abord pour vérifier leurs performances)
  • en tant que personnel universitaire, le doctorant a également la responsabilité partielle de donner aux étudiants moins qualifiés une chance de s'améliorer et doit donc s'attendre à ce que tous les étudiants encadrés ou embauchés ne soient pas le plus grand génie du moment; cela revient à acquérir de l'expérience dans la direction d'une équipe, car cela signifiera souvent une combinaison de niveaux de compétences divergents au cours de la vie professionnelle ultérieure du doctorant.
"Notez que ces étudiants ne sont pas payés personnellement par les doctorants, mais que leur financement est assuré par les mêmes sources que le financement des doctorants eux-mêmes. Par conséquent, ils sont non seulement autorisés, mais explicitement censés travailler sur les mêmes projets. en tant que doctorants. " C'est un point important: j'ai pris la question du PO comme signifiant que le candidat paie la programmation de sa propre poche. Cela ne me semble pas une bonne idée. Si l'institution elle-même paie pour un assistant, c'est tout autre chose.
La question posée par le premier cycle concerne l'embauche d'un assistant pour poursuivre des intérêts de recherche «extérieurs», et non une recherche de thèse ou une recherche qui fait «officiellement» partie de sa formation. C'est donc très différent dans ce sens.
En fait, j'irais jusqu'à dire que «Ne dépensez pas votre propre argent pour vos recherches universitaires» est une bonne règle générale.
@PeteL.Clark: L'achat de livres pour former une bibliothèque de référence est une exception majeure à cela.
@aeismail: Je suis d'accord (plus que la plupart: j'ai ** beaucoup ** de livres).
@PeteL.Clark: En fait, je ne vois aucune différence entre (1) payer personnellement pour ce programmeur ou (2) utiliser un programmeur engagé par l'université concernant l'éthique. Pour moi, la différence entre ceux-ci est que (2) se produit très fréquemment, alors que (1) n'est pratiquement jamais réalisable financièrement pour le doctorant. Avec (2), c'est encore entièrement le doctorant qui publie l'offre d'emploi, qui choisit le programmeur et qui attribue les tâches au programmeur. Votre réponse ressemble plus à une opposition générale au concept d'externalisation de tout travail lié à la thèse de doctorat. J'ai ajouté ...
... un exemple concret d'un projet de recherche hypothétique où une telle externalisation serait appropriée à mon avis (ou, en particulier, une recherche CS qui repose essentiellement sur une programmation, ce qui doit donc être fait, tout en n'étant évidemment pas partie de la «contribution scientifique créative» qui devrait être le fait du doctorant).
@ff524: Vous avez raison; J'ai peut-être été distrait par le premier paragraphe de la réponse de RoboKaren à cette question, qui implique une recherche de thèse ou similaire.
@O.R. Mapper: Je ne pense pas que cela fasse une différence éthique de la part du PO: comme je l'ai dit, je ne trouve pas la pratique contraire à l'éthique. Cependant, plus j'y pense, plus je crains que ce ne soit, sinon contraire à l'éthique, alors certainement pas une bonne pratique, pour l'université de regarder joyeusement les étudiants dépenser leur propre argent dans leur recherche de thèse. En particulier, dans votre exemple concret, l'université ne semble pas très favorable au candidat s'il s'attend à ce que cela soit payé de sa poche.
@PeteL.Clark: C'est certainement vrai (et pour être clair, je n'ai jamais rencontré de cas où un doctorant aurait payé lui-même un tel assistant programmeur; en même temps, je n'ai pratiquement jamais rencontré de doctorants ici qui pas à un moment ou à un autre engager un étudiant assistant de recherche via l'université). Je conviens qu'en ce qui concerne le paiement, l'université pourrait être jugée différemment sur le plan éthique; la situation du doctorant et du programmeur serait tout à fait la même, à l'exception de différences formelles mineures (qui signe le contrat, qui transfère l'argent).
@O.R.Mapper: Les problèmes éthiques surviennent si l'assistant de recherche tente de cacher le fait qu'il ou elle ne fait pas le travail et passe le travail «sous-traité» comme le sien. En principe, payer l'étudiant avec des fonds universitaires devrait rendre cela beaucoup plus difficile.
+1. J'aime cette réponse pour l'exemple de projet de recherche GUI. En tant que premier cycle faisant du développement de logiciels indépendants, je ferais les choses ** beaucoup ** plus rapidement si j'avais encore une personne de plus travaillant sur mon projet actuel. Les tâches telles que la construction / gestion de bases de données, la construction d'API REST, la conception d'interface graphique côté client et les fonctions de contrôleur pour le serveur et le client sont toutes de ma responsabilité. En réalité, ces tâches pourraient être réparties. Je suis sûr que dans de nombreux types de recherche, des aspects spécifiques de la programmation peuvent être attribués à une autre personne sans avoir besoin de connaissances spécifiques au domaine.
Gary McNickle
2015-02-02 23:12:14 UTC
view on stackexchange narkive permalink

Je vous recommande de considérer vos objectifs de carrière. Si vous avez l'intention de faire carrière en tant que développeur de logiciels, je dirais que cela peut être éthique avec des crédits accordés, mais ce n'est pas une bonne pratique.

Je suis responsable du recrutement et instructeur en développement de logiciels depuis ces deux dernières décennies, et une constante que j'ai rencontrée est que plus les développeurs de logiciels sont éduqués, plus leur code est mauvais.

Ils peuvent résoudre des problèmes complexes dans le code mais leur code n'est généralement pas maintenable. C'est quelque chose que je n'ai eu aucun succès à corriger. C'est devenu un tel problème que les CV pour les développeurs de logiciels titulaires d'un doctorat ou d'un double master vont au bas de la pile de CV, sous des candidats sans diplôme.

[The Workplace] (http://workplace.stackexchange.com/questions/13191/can-a-ph-d-have-a-negative-impact-on-your-career-in-the-software-industry) a une question à ce sujet qui peut élaborer sur le sujet.
Alexandros
2015-02-02 23:33:55 UTC
view on stackexchange narkive permalink

Je ne suis presque pas d'accord avec les autres réponses. Si vous êtes dans un doctorat CS (sauf si vous êtes en informatique strictement théorique) et que vous ne pouvez même pas coder vos propres algorithmes pendant le doctorat, alors vous êtes dans le mauvais domaine. Il est parfaitement acceptable de collaborer (pas de payer) avec d'autres personnes sur l'écriture / le partage du code, mais mettre quelqu'un d'autre à coder pour vous (parce que vous ne pouvez pas le faire) est ridicule, voire dangereux. Vous ne pouvez pas séparer l'algorithme du code (à moins que vous ne soyez encore une fois en informatique strictement théorique) et la façon dont l'algorithme fonctionne (sur une expérience réelle) est en corrélation directe avec l'implémentation de l'algorithme.

Comment allez-vous vérifier si votre programmeur engagé a fait une implémentation correcte? Vous ne pouvez pas, à moins de parcourir son code de manière exhaustive, ce qui pourrait en fait vous prendre plus de temps que l'implémentation de votre version de l'algorithme. Mais même dans ce cas, vous ne serez jamais tout à fait sûr. Qu'allez-vous faire lorsque vous pensez à une nouvelle optimisation mineure? Écrivez-lui un mail, attendez qu'il le mette en œuvre et obtenez la réponse 2 jours plus tard? Bonne chance pour finir votre papier dans les 3 prochaines années pour un tel flux de travail. Mais même si vous parvenez à le terminer, il y aura toujours 1% de chance que quelque chose se passe mal dans son implémentation et toutes vos hypothèses partent en fumée, quand quelqu'un d'autre implémente votre algorithme seul et vous prouve que vous avez tort. Que feras-tu, alors? Le blâmer sur lui? Comment pourrez-vous répondre aux questions sur votre travail que quelqu'un d'autre a fait pour vous? Et disons que vous parvenez à terminer le premier papier avec l'aide embauchée et ensuite il va à un autre travail. Qu'allez-vous faire sur votre prochain article? Embaucher quelqu'un d'autre pour maintenir et développer le code du programmeur précédent?

Également en tant que doctorant ou post-doctorant, vous pouvez être chargé (en tant que responsable technique) d'un programme de recherche proche de votre expertise qui pourrait être d'une échelle beaucoup plus grande qu'un document de recherche. Comment allez-vous dire à vos pairs ou à vos collègues plus jeunes ce qu'ils doivent faire, si vous comptez toujours sur quelqu'un d'autre pour coder pour vous. Comment pouvez-vous séparer ce qui est faisable ou non dans le cadre du projet si vous n'avez jamais implémenté vous-même vos algorithmes?

Lorsque vous devenez plus senior (post-doctorant et au-delà), d'autres peuvent en fait écrire plus de code que vous sur vos articles co-rédigés. Mais même dans ce cas, vous devez être en mesure de vérifier leur code pour des erreurs, des incohérences et devez être capable de prédire comment le code / algorithme fonctionnera sur des cas de test sélectionnés (à moins que vous ne soyez à nouveau en informatique strictement théorique). Ce n'est pas quelque chose que vous apprenez par pseudocode, abstraction de haut niveau ou raccourcis, mais c'est quelque chose que vous apprenez en payant vos cotisations par des heures de débogage, de codage et d'expériences ratées. Vous ne pouvez pas obtenir un doctorat en mathématiques en laissant quelqu'un d'autre faire les preuves pour vous. Pourquoi pensez-vous que CS est différent?

Cette réponse mélange la capacité du doctorant à faire quelque chose avec la question de savoir s'il devrait / doit éthiquement ce quelque chose eux-mêmes qui sont à mon humble avis des problèmes très différents. OTOH il est vrai que l'externalisation ne réduit pas le travail à zéro pour le doctorant, et peut entraîner un gain net négatif. (± 0)
Je me demande d'où vous prenez la prémisse "ne peut même pas coder vos propres algorithmes". Dans la même logique, il faudrait conclure que chaque développeur de logiciel qui a progressé dans sa carrière pour devenir chef d'équipe ou quelque chose de supérieur est incapable de coder car il sous-traite une partie de ses tâches de codage à d'autres développeurs.
@O.R.Mapper. Pourquoi chaque étudiant en doctorat n'embauche-t-il pas son propre programmeur, selon l'idée d'OP? Ainsi, dans un laboratoire avec 5 étudiants en doctorat, nous pouvons avoir 5 "programmeurs personnels" supplémentaires. Bien sûr, ces programmeurs devraient assister aux réunions avec les superviseurs, car ils font tout le codage de toute façon et sont co-auteurs des articles connexes en même temps. Pour que les doctorants puissent réfléchir aux algorithmes pendant un mois et rester inactifs pendant les six prochains mois nécessaires à la mise en œuvre des algorithmes. Cela vous semble raisonnable?
@Alexandros: Comme je l'ai souligné dans ma réponse, il est tout à fait normal dans certains endroits que plus ou moins tous les doctorants embauchent un ou plusieurs étudiants pour le soutien, par ex. en programmation. Ils n'assistent pas aux réunions avec les superviseurs parce que les superviseurs ne se soucient pas ou ne parlent pas de programmation, donc ces réunions ne sont pas liées à la programmation. C'est la tâche des doctorants d'enseigner de manière appropriée aux étudiants qui les accompagnent comment effectuer ces tâches de bas niveau, après avoir discuté de la «vue d'ensemble» à un niveau supérieur avec leurs superviseurs.
@Alexandros: "Pour que les étudiants en doctorat puissent réfléchir aux algorithmes pendant un mois et rester inactifs pendant les six prochains mois" - ce n'est tout simplement pas ainsi que les choses fonctionnent. L'embauche et l'externalisation se font pour la raison même que généralement, les doctorants ne «restent pas les bras croisés» pendant un mois seulement et n'ont donc pas le temps de consacrer beaucoup de temps, mais finalement un travail simple comme la programmation basée sur une spécification claire.
@Alexandros: En tant qu'expérience de pensée, faites évoluer les choses d'un ou deux niveaux supplémentaires. Voyez-vous des professeurs passer des mois à écrire du code, à traquer les fuites de mémoire et à déboguer, sinon ils resteraient inactifs pendant des mois sans rien à faire?
Fabio Guerra
2015-02-03 16:54:32 UTC
view on stackexchange narkive permalink

Si la plupart des travaux de programmation peuvent facilement s'intégrer dans une bibliothèque générale, vous pouvez aider quelqu'un à créer une bibliothèque open source.

Ce n'est pas un problème éthique de réutiliser un logiciel open source.

Mais assurez-vous que ce logiciel sera bien documenté et disponible pour aider les autres personnes qui travaillent dans votre domaine.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...