web-dev-qa-db-fra.com

Comment récupérer mon stage?

Je travaille actuellement en tant que stagiaire dans une très grande entreprise de développement non logiciel. Le poste pour lequel je postulais n'était pas spécifiquement un poste de développement, mais l'équipe qui m'a embauché voulait un major CS pour aider à développer des projets internes pour eux. Je suis ici depuis quatre semaines et la perplexité initiale commence à s'estomper. Cependant, je suis le seul CS majeur dans tout le bureau - personne dans mon équipe, dans le bâtiment ou même dans les sites voisins n'a de formation en développement de logiciels. Le meilleur que j'ai est un gestionnaire de base de données et leur service est trop occupé pour me soutenir dans mes projets. Mes coéquipiers m'aident à apprendre comment ils font leur travail (ce qui est important pour moi de faire mon travail), mais il n'y a personne pour m'aider à faire mon travail c'est-à-dire le développement.

Les projets qu'ils m'ont donnés sont plus vastes que tout ce que j'ai fait à l'école. Cela, combiné avec le fait que je travaille seul, en essayant de développer des applications à partir de zéro sans aucune forme d'orientation ou même des objectifs clairement définis, m'inquiète beaucoup de ma capacité à réussir. Je sais à peine par où commencer, et maintenant il me reste probablement moins de deux mois.

J'ai l'impression que je devrais apprendre le processus de développement de logiciels, mais en ce moment, c'est comme si je me sentais dans l'obscurité. C'est particulièrement troublant pour moi car je ne suis pas très confiant avec mes compétences de développement en premier lieu. Je fais des recherches et j'enseigne moi-même, mais je ne reçois que des morceaux. Ils attendent beaucoup de moi, mais je ne suis pas sûr de ma capacité à livrer. De toute évidence, je dois m'asseoir et parler à mes gestionnaires de la position dans laquelle je suis et j'ai l'intention de le faire dès que possible (ils voyagent souvent et en dehors du bureau).

Comment dois-je gérer cela? Ce stage sera terminé avant que je le sache, et je ne veux pas repartir avec rien à montrer pour mon temps ici. Ils ne le veulent pas non plus, et ils sont toujours disponibles pour m'aider, mais sans connaissance de la programmation, ils ne peuvent pas faire grand-chose. J'ai peur de leur dire que je suis incapable de produire ce qu'ils veulent. Comment dois-je leur raconter cela? Je vois les stagiaires en ingénierie obtenir de l'aide d'autres ingénieurs, apprendre à faire leur travail et j'ai l'impression d'être assis ici en attendant mon temps. Tout conseil sur la façon de rectifier ma situation serait grandement apprécié.

Mise à jour

J'apprécie tous les commentaires utiles de tout le monde, cela m'a aidé à me rassurer. La première chose que j'ai faite a été de rencontrer mes gestionnaires et mes superviseurs. Nous avons discuté de ce qui était attendu de mon séjour ici. Ils comprennent que je n'ai pas beaucoup de temps en tant que stagiaire, ce qui a aidé à définir le type de cadre que nous voulons accomplir, ce qui permettra aux futurs stagiaires ou employés de s'appuyer, espérons-le, sur ce que je quitte. J'ai également abordé mes préoccupations concernant mes capacités avec le temps imparti, qu'ils ont compris et attendu.

J'ai reçu un appel de l'administrateur de la base de données à un autre endroit - mon responsable a parlé à son superviseur et ils vont soutenir mon projet, qui va maintenant me donner une ressource à utiliser, donc je ne suis pas assis sans aucune idée de ce que je '' Je fais. Mais ce n'est qu'une moitié. De tous les projets possibles, nous l'avons réduit aux deux plus importants sur lesquels travailler. Quant à mon autre projet, comme quelqu'un l'a mentionné, je suis essentiellement l'architecte logiciel principal, ce qui est une situation unique pour un stagiaire. Si les choses se passent au moins de façon semi-réussie, je pense que j'aurai acquis beaucoup de connaissances et d'expérience qui pourront m'aider avec de futurs employeurs. Pour l'instant, je pense avoir une base solide pour commencer la recherche et le développement de mes projets. Merci encore pour les réponses de tout le monde!

65
bhamlin

J'ai de mauvaises nouvelles pour vous bhamlin:

Vous n'êtes pas un stagiaire. Vous êtes plutôt un employé non rémunéré/bon marché.

Un stage est un poste non rémunéré ou peu rémunéré où vous pouvez mettre en pratique vos compétences nouvellement acquises dans un environnement sûr (généralement) détendu, et avoir la chance d'observer de "vrais" professionnels de votre domaine faisant un "vrai" travail, tout en obtenant des commentaires sur les pièces qu'ils vous permettent de modifier (généralement sous surveillance et/ou approbation).

Ce que votre entreprise voulait, ce n'était pas en fait un stagiaire, mais plutôt une source gratuite/bon marché de développement de logiciels. C'est assez courant, à mon avis. J'habite dans une ville universitaire, et sur mon dernier lieu de travail, on a souvent entendu des gestionnaires dire "Hé, le département informatique est trop occupé pour faire le projet X, voyons si nous pouvons faire venir des stagiaires de l'Université de l'écrire gratuitement/pas cher! " Nous grommelions et gémissions et grincions des dents vers le ciel, mais c'était la réalité de l'endroit, et je pouvais comprendre pourquoi les gestionnaires suggéraient une telle chose. Malheureusement, les résultats n'étaient pas excellents: le logiciel fourni par les stagiaires n'a jamais été cohérent/évolutif/propre/etc. (mais pour être honnête, le service informatique n'a pas non plus publié de toute façon ...)

C'est à vous de décider ce que vous faites. Mon conseil est de développer tout ce que vous pouvez (parfois la pression est un grand facteur de motivation), MAIS vous devez également prévoir de faire un "vrai" stage ailleurs lorsque celui-ci sera terminé si possible.

Alors ne vous en voulez pas, mais ce dans quoi vous êtes entré n'était PAS un vrai stage.

124
Graham

En tant que major CS, vous avez des compétences en résolution de problèmes à votre disposition. On ne sait pas quel type de projets ils veulent développer. Si je devais deviner, ils veulent probablement que vous aidiez à automatiser certains des processus internes. Je commencerais par essayer d'obtenir un schéma d'ensemble des processus actuellement en place et des dépendances entre les services pour chacun de ces processus.

Ensuite, je chercherais des fruits bas qui pourraient être automatisés ou au moins rationalisés.

Manière infaillible de documenter n'importe quel processus

Posez ces questions dans l'ordre suivant:

  1. Quelle est la sortie? (Obtenez une réponse aussi précise que possible)
  2. Quelles sont les entrées?
  3. Y a-t-il suffisamment d'entrées pour créer la sortie?

Si la réponse au numéro 3 est NON , alors allez chercher les pièces manquantes. Cela pourrait être des formules ou des règles commerciales ou autre chose.

Si la sortie de la première étape est trop compliquée, décomposez-la en morceaux gérables et attaquez chaque morceau comme un processus distinct.

Documentez ce que vous avez découvert. Identifiez les points de défaillance uniques potentiels. Identifiez les faiblesses ou les dépendances rares.

Je sais que cela semble écrasant, mais vous avez l'ensemble des compétences. Il suffit de le transformer en morceaux de la taille d'une bouchée. Si vous pouvez apprendre à expliquer les "trucs de geek" en utilisant "parler non-geek", alors vous valez votre pesant d'or.

Voici mon point de vue sur toute cette situation: ils demandent plus que ce que vous pouvez raisonnablement accomplir, ne vous donnent pas de commentaires ou de conseils et rendent généralement votre travail moins agréable. Mais il y a une doublure argentée dans ce nuage vous apprenez quelque chose.

En particulier, vous apprenez le type d'environnement dans lequel vous NE PAS voulez travailler lorsque vous obtenez votre diplôme. Vous apprenez également à gérer un projet trop volumineux pour que vous puissiez le réaliser. Ces deux éléments sont des connaissances importantes à conserver, car personne ne va vous donner un travail qui, selon eux, est inférieur à vos capacités. Ils demanderont toujours plus que ce que vous pouvez donner, et c'est votre travail de travailler avec eux pour gérer les attentes et livrer quelque chose qu'ils veulent.

Sur ce que vous pouvez faire ici et maintenant. Je commencerais par tenir un journal de tout ce que vous faites chaque jour. Cela vous donne la responsabilité. Même une simple fin de journée "c'est ce sur quoi j'ai travaillé aujourd'hui" vous donnera quelque chose sur lequel se rabattre lorsqu'ils n'obtiennent pas ce qu'ils veulent et viennent chercher des réponses.

Je voudrais également parler à votre supérieur immédiat et voir s'il existe un moyen de décomposer l'un de ces grands projets. Si vous ne vous sentez pas à l'aise pour faire le tout, peut-être qu'ils vous demanderont simplement de faire des recherches et l'architecture du projet, et peut-être qu'un autre stagiaire le mettra en œuvre plus tard. Soyez juste clair sur ce que vous pensez que vous pouvez raisonnablement accomplir dans le temps que vous avez laissé dans le stage, et faites-en votre objectif. De cette façon, vous livrez toujours quelque chose de pertinent à votre employeur à la fin de la journée.

Enfin, voyez si vous pouvez rejoindre les stagiaires en ingénierie. Je vais supposer que ces stagiaires développent également des logiciels, et je ne vois aucune raison pour laquelle ce que vous faites et ce qu'ils font sont si éloignés que vous ne pouvez pas apprendre les uns des autres. Je travaille avec des ingénieurs électriciens, des ingénieurs logiciels, des ingénieurs informaticiens et des informaticiens sur mes projets, et chaque personne apporte ses propres forces à l'équipe. Identifiez où vos forces résident dans le développement et essayez de démontrer pourquoi ces capacités se prêtent bien à l'équipe d'ingénieurs.

18
Ampt

Parlez à votre conseiller de stage

Toutes les réponses que j'ai vues jusqu'à présent semblent se concentrer sur l'employeur, ce qui est important.

Cependant, vous devez avoir été mis en place avec ce stage par le biais d'un programme ou d'un bureau de votre école. Je ne peux pas imaginer que vous seriez le premier élève qu'ils ont eu à se retrouver dans ce genre de situation. Ils devraient pouvoir vous guider dans une certaine direction.

Même s'ils ne peuvent pas vous aider maintenant (ce que je trouve difficile à croire), alors vous aiderez le prochain étudiant qui se trouvera dans cette situation, ce qui ne peut pas être sous-estimé.

13
Wonko the Sane

J'ai eu deux stages comme ça et j'en ai énormément apprécié. Il y a des côtés brillants importants que vous semblez manquer:

  • En ce moment, vous profitez du genre de liberté créative dont les programmeurs travaillant sur de grandes équipes de programmeurs ne peuvent que rêver. Tout dépend du choix de la langue, du contrôle des sources, des éditeurs et de l'architecture logicielle. Croyez-moi, ça vous manque quand c'est parti.
  • Travailler avec des gens qui ne connaissent pas grand-chose aux logiciels est une partie importante du processus de développement logiciel. Les conditions scolaires vous permettent de vous attendre à des missions bien définies de personnes ayant beaucoup d'expérience dans l'enseignement du développement de logiciels. Même dans des équipes de programmeurs, vos missions ne sont jamais aussi claires. Apprendre à y faire face maintenant vous donnera un avantage.
  • L'acquisition de connaissances dans le domaine sans le bénéfice de mentors est une partie importante du processus de développement logiciel. Une fois par an ou deux, je reçois une mission comme "Devenez notre expert en matière de technologie X". Quelqu'un doit être le premier d'une entreprise à apprendre une nouvelle technologie. Vous obtiendrez des missions plus intéressantes si vous pouvez montrer que cette personne peut être vous.
  • De votre point de vue, cela ressemble à beaucoup de pression, mais vous devez savoir que leurs attentes envers vous sont vraiment très faibles. Ils savent que c'est plus difficile pour vous sans un mentor approprié. Faites de votre mieux et tout ira bien.

Cela dit, s'attaquer à votre premier grand projet peut être écrasant. Les éléments suivants peuvent être utiles:

  • Essayez de ne pas penser à l'ensemble du projet à la fois. Pensez à ce que vous devez faire dès maintenant.
  • Obtenez une liste des fonctionnalités qui doivent être effectuées et demandez-leur de les mettre dans l'ordre de priorité. De cette façon, si vous ne terminez pas l'application entière, les fonctionnalités les plus importantes seront toujours là.
  • Décomposez la première fonctionnalité en tâches de plus en plus petites, jusqu'à ce que vous arriviez à des tâches que vous pouvez terminer en un jour ou deux. N'ayez pas peur de les faire sonner bêtement simple. Ma première tâche sur de nouveaux projets est toujours de faire fonctionner le monde du bonjour et de le contrôler en source. Surtout s'il s'agit d'un nouveau langage, ou d'un langage que je n'ai pas utilisé depuis un certain temps, qui me dit que mon environnement de construction et mes outils sont correctement configurés.
  • Faites régulièrement réviser vos progrès. N'essayez pas de jeter un produit fini sur eux à la fin de l'été. Montrez-leur au moins une fois par semaine ce que vous avez jusqu'à présent.
  • Faites des efforts pour essayer de trouver des projets et des composants existants qui peuvent répondre à vos besoins. Il est beaucoup plus facile de personnaliser un système existant que d'en créer un à partir de zéro. De nombreuses entreprises ont besoin de types d'applications internes similaires. C'est celui que j'aurais aimé connaître par moi-même. Un de mes projets de stage a fondamentalement réinventé (mal) un CRM .

Alors, détendez-vous, faites de votre mieux et apprenez autant que vous le pouvez, qu'il s'agisse de logiciels ou non.

10
Karl Bielefeldt

Les autres réponses ici sont très bonnes, lisez-les encore et encore et essayez vraiment de les comprendre. Si vous le faites alors, avec un effort plus que moyen, vous pourrez émerger "vivant" de l'autre côté de votre stage. Compte tenu de votre situation, ce sera plus difficile que prévu, mais cela en vaut la peine.

Ceci est crucial car, lorsque vous postulerez pour un poste dans une autre entreprise1, l'une des questions clés sera:

Je vois ici que tu as fait un stage dans l'entreprise X. Comment c'était? Pourquoi es-tu parti ?

Si vous pouvez leur montrer que vous avez géré votre situation difficile de manière professionnelle, cela comptera BEAUCOUP, les employeurs sont généralement très impressionnés par quelque chose comme ça.

Même si ça craint, vous pouvez en faire une expérience précieuse à partir de laquelle vous avez la possibilité d'apprendre ce que vos camarades de classe ne pourront jamais ...

1 = J'espère que vous le ferez, car y rester entraînera un suicide de carrière (tôt ou tard ... probablement plus tôt)

6
Radu Murzea

J'étais dans une position similaire l'année dernière, où je devais tout développer de fond en comble et n'avais personne d'autre avec une expérience de développement. J'ai fini le projet qu'ils m'ont donné mais je n'appellerais pas cela une application raffinée ou même maintenable (puisque la seule personne qui sait comment cela fonctionne est moi et personne dans l'entreprise n'a regardé le code.)

Voici certaines choses que j'ai faites et que je ferais si j'étais dans cette situation. Certains d'entre eux ont déjà été mentionnés dans les réponses précédentes

Comprendre:

  • Que veulent-ils que le produit fasse (entrées et sorties, le strict minimum)
  • Quelles sont tes limites? (c'est-à-dire quels programmes pouvez-vous/ne pouvez-vous pas utiliser?)

Cela vous donnera une image dans votre tête sur l'apparence du produit. Dessinez ceci sur un morceau de papier et montrez-le à votre manager/superviseur. Voyez ce qu'ils en disent. S'ils ne l'aiment pas, demandez-leur ce qu'ils veulent changer, changez-le et répétez le processus. S'ils l'aiment, faites le minimum de codage et créez une démo simple.

Montrez la démo pour eux (demandez-leur si c'est ce qu'ils ont en tête), cela leur montrera vos progrès et vous aidera à comprendre ce qu'ils veulent.

Chaque fois que vous avez besoin d'aide pour le codage, lisez les manuels/tutoriels, la recherche Google et enfin publiez sur le débordement de la pile pour obtenir de l'aide.

Ne vous attardez pas sur les petits détails. Vous perdrez beaucoup de temps si vous faites cela.

Code en petits morceaux, chaque morceau étant une fonctionnalité majeure pour l'application.

Commentez votre code. S'ils prévoient de le transmettre à un autre stagiaire ou à un employé, cela leur sera d'une grande aide.

Continuez à communiquer avec votre gestionnaire/superviseur au sujet du projet et de vos progrès.

Et ne vous inquiétez pas si vous ne pouvez pas terminer le projet, vous êtes stagiaire et vous avez fait de votre mieux. Ils sont coupables d'avoir embauché quelqu'un qui est sous-expérimenté pour un tel projet.

TL; DR

  • Communiquez avec votre manager à chaque étape

  • Codez la fonctionnalité principale

  • Obtenez de l'aide de Google et échange de pile

  • Ne vous inquiétez pas si vous ne pouvez pas terminer

5
stackErr
  1. Demandez des éclaircissements sur les objectifs du stage - pourquoi vous a-t-on attribué autant de projets?
  2. Précisez à la direction que dans le temps imparti, vous ne pouvez pas terminer les projets demandés
  3. Préparez une analyse de la meilleure façon d'utiliser votre temps. Par exemple, suggérez de travailler uniquement sur un projet et de supprimer les autres.

Votre temps aiderait mieux votre entreprise si vous ne travailliez que sur un seul petit projet. Assurez-vous de le garder bien documenté. Concentrez-vous sur la création d'une documentation utile sur l'architecture, les objectifs du projet, l'avancement du projet et le code source.

1
KyleM