web-dev-qa-db-fra.com

Je suis le programmeur .1x de mon entreprise. Comment puis-je contribuer au mieux?

Je travaille dans une start-up nouvellement créée de cinq personnes. Nous avons un doctorat en apprentissage automatique, un ancien membre de l'équipe de base RSpec et le gars qui compile le binaire Git pour OS X. Ce ne sont que les employés; le fondateur a un Ph. D et était CTO pour une société de plusieurs milliards de dollars avant de partir pour démarrer une startup (réussie), et a maintenant quitté cela pour démarrer celle-ci. Nous pourrions aussi avoir un gars avec un doctorat en mathématiques.

Aaaaaaaa et puis il y a moi, stagiaire décrocheur. Je pense que je suis assez intelligent et je lis sans arrêt, mais le delta d'expérience, de compétence et de connaissances entre moi et mes collègues est à couper le souffle.

Alors mettez-vous à leur place: vous avez un jeune stagiaire brillant qui a beaucoup à apprendre mais qui est au moins énergique. Qu'est-ce qui serait ennuyeux? Quelle utilité espérez-vous retirer de lui ici et maintenant? Qu'est-ce qui serait agréablement surprenant si cela se produisait?

62
invaliduser

Chose la plus importante:

Ne soyez pas impressionné par les titres. En peu de temps, vous vous rendrez compte que vos collègues Ph. D, eux aussi, ne sont que des humains. Et certaines personnes titulaires d'un doctorat n'ont jamais vraiment créé quelque chose d'utile. Souvenez-vous toujours de cela, ne vous sentez pas inférieur.

Qu'attendrais-je de toi? Pour écrire du bon code et faire avancer les choses. Les chances sont que vous êtes quelqu'un qui travaille vraiment, car vous vous décrivez comme énergique. J'ai vu beaucoup de personnes diplômées qui ont mis un temps fou à accomplir des tâches simples parce qu'elles se concentraient trop sur les détails, etc. Mettez cela à profit et fournissez un bon code dans un délai raisonnable et bientôt tout le monde vous respectera.

Mais ne manquez pas de respect aux autres. Ils sont probablement plus âgés et vous pouvez probablement en tirer des enseignements précieux. Mais ne prenez rien de stupide. Essayez toujours de comprendre et de penser par vous-même. Je m'attends à ce que vous copiez les comportements et les connaissances qui fonctionnent vraiment.

59
Falcon

L'humilité va loin

Avec votre humble attitude, je doute sérieusement que vous serez ennuyeux. L'humilité va très loin. (Cela vaut autant pour les hot-shots que pour les stagiaires.)

Si votre rôle est explicitement de soutenir les autres, vous pouvez être sûr d'être utile en demandant simplement. "Quelle tâche ennuyeuse puis-je retirer de votre assiette?"

Vous constaterez également que la plupart des gens aiment se sentir appréciés. Si vous admirez vraiment les membres de votre équipe, vous pouvez vous en sortir en leur demandant beaucoup et en apprenant beaucoup d'eux. Ils se sentiront flattés, mais ce sera authentique. Il vous aidera également à apprendre et à devenir plus utile.

Enfin, en savoir moins qu'eux peut être utile en soi. Par exemple, vous serez probablement mieux à même d'écrire de la documentation pour les API, car vous poserez les questions que les étrangers poseraient, mais qui semblent trop évidentes pour les autres.

Et qui sait? Vous pouvez constater qu'en étant serviteur, vous devenez un leader.

41
Nathan Long

Vous avez déjà beaucoup de bonnes réponses. Je pense que je peux contribuer en partageant mon expérience dans un poste similaire.

Contexte: Je travaille à temps partiel dans un département R&D d'une assez grande entreprise depuis quelques années alors que ma principale occupation est d'étudier le CS. Les gens avec qui je travaille la plupart du temps sont titulaires d'un doctorat ou d'une maîtrise en EE, CS, mathématiques et physique. J'ai commencé comme un noob complet mais j'ai beaucoup appris au cours de ces quelques années.

Qu'est-ce qui serait ennuyeux?

  1. Poser des questions auxquelles je pourrais facilement répondre moi-même en utilisant Google
  2. Interrompre les autres trop souvent en posant une question. Si vous avez une question qui n'est pas un bloqueur, faites un autre travail jusqu'à ce que vous puissiez poser votre question sans interrompre la personne que vous posez. Vous pouvez recueillir quelques questions, puis demander le temps de l'autre personne ou attendre que la personne vous demande vos progrès ou un bon moment pour aller lui parler, par ex. alors qu'il était déjà interrompu par un coup de téléphone, à la fin d'une pause, .. Alors dites-lui "j'ai fait ceci et cela, mais actuellement je suis coincé ici et là".
  3. Si vous êtes bloqué (après avoir épuisé google et d'autres ressources), assurez-vous de demander de l'aide. Rien de pire que de découvrir que quelqu'un est coincé depuis 2 jours sur quelque chose que vous auriez pu résoudre pour lui en 5 minutes (par Neil White, dans les commentaires)
  4. N'essayez pas d'être plus intelligent que tout le monde.

Quelle utilité espérez-vous retirer de lui ici et maintenant?

  1. Faites des choses que les autres trouvent faciles/ennuyeuses d'une manière qui aide réellement l'équipe. C'est vraiment tout.

Qu'est-ce qui serait agréablement surprenant si cela arrivait?

  1. Que vous faites la plupart de votre travail de manière satisfaisante et que vous vous impliquez de plus en plus dans le travail de l'équipe.

Quelques conseils supplémentaires:

  1. Être humble.
  2. Montrez de l'intérêt pour le travail des autres.
  3. S'ils vous expliquent quelque chose, assurez-vous que vous comprenez. Si vous ne le faites pas, demandez-leur de l'expliquer de manière à ce que vous ayez au moins l'idée de base.
  4. Soit fiable. Essayez de faire le travail aussi bien que possible.
17
mort

Bon conseil des autres jusqu'à présent. Pour répondre à vos questions spécifiques:

  • Qu'est-ce qui serait ennuyeux?

Ce serait ennuyeux si vous posiez des questions sans faire vos devoirs au préalable. Demander de l'aide après avoir fait ce que vous pouvez pour résoudre le problème en premier est très bien. Mais si quelqu'un est capable de trouver la réponse via une simple recherche Google ou en parcourant le manuel, c'est ennuyeux.

  • Quelle utilité espérez-vous retirer de lui ici et maintenant?

Je suppose que vous avez déjà une sorte de projet/affectation. J'espère que vous pourrez terminer cela avec un minimum de supervision.

  • Qu'est-ce qui serait agréablement surprenant si cela se produisait?

Une agréable surprise serait si vous terminiez votre travail tôt. Ensuite, vous seriez en mesure de travailler sur plus de projets avec une complexité croissante qui prouverait votre fiabilité. Une autre surprise serait si vous êtes en mesure d'anticiper les besoins de l'équipe et de travailler à les satisfaire en parallèle. Votre équipe a-t-elle besoin d'un environnement de construction automatisé, d'un cadre de test automatisé, de configurations informatiques/réseau spécifiques pour les tests, etc.? Ce peut être une chose périphérique

9
RonE

Réponse courte: Découvrez ce dont l'équipe a besoin, et peut-être ce que vous aimez le plus, et travaillez pour y répondre.

Réponse plus longue: aux premiers stades d'une start-up, la plupart du temps, tout le travail est "à gagner"; quelles que soient les tâches à effectuer ou les tâches que les gens veulent faire, elles sont à la disposition de tous les preneurs. Vos préférences peuvent littéralement façonner la direction que prend l'entreprise.

Intéressé par les RH? Prenez en charge les tâches d'embauche. Ou peut-être faire la paie. Intéressé par la programmation? Découvrez la langue que l'équipe souhaite utiliser. Essayez d'écrire des tests unitaires pour une partie du code. Vous détestez rédiger des rapports? Alors ne le fais pas. Voyez si vous pouvez déléguer cette tâche à quelqu'un d'autre et travailler à une solution constructive. Prenez un peu de temps et réfléchissez à ce que vous pourriez vouloir faire, puis essayez-le.

Une chose à garder à l'esprit que quand il s'agit de très petites start-ups, il y a beaucoup plus à faire que la simple programmation. Si vous voulez coder, tant mieux! Si vous préférez faire autre chose, c'est bien aussi! Apprenez vite, posez beaucoup de questions et mettez-vous au défi.

4
joshin4colours

Je ne sais pas à quel point ma réponse serait utile, mais je l'ai été si vous l'êtes maintenant. Entouré de gens que je sentais/connaissais avaient tellement plus à apporter que je n'aurais jamais pu. Comment agir dans cette position? Profitez-en plutôt que de souffrir. Au lieu de penser à ce que vous ne savez pas, pensez à ce que vous avez à apprendre et à vivre avec ces personnes. Utilisez-les comme ressource, soyez respectueux et essayez de leur glaner toute information et expérience - devenez une éponge ...

Maintenant, cela ne signifie pas que vous devez cesser d'essayer de faire des choses, mais quand vous le faites, essayez de les faire regarder par-dessus votre épaule et revoir votre travail au fur et à mesure. Essayez de terminer un travail, puis écoutez ce qu'ils ont à dire à ce sujet - notez les commentaires qu'ils vous donnent et essayez de les mettre en œuvre pour créer un meilleur code. N'ayez pas peur de poser des questions, soyez simplement respectueux et essayez de poser de bonnes questions - essayez d'absorber les données et réfléchissez à votre question immédiate avant de demander - peut-être que la réponse a déjà été fournie ... Les meilleurs gens aiment enseigner, et je Je parie qu'ils seraient heureux de partager leurs connaissances et leur philosophie de vie avec vous.

Dans ma situation, j'ai essayé de le faire, et chaque fois que cela a fonctionné pour moi, j'étais le plus heureux, je n'ai jamais compris pourquoi ils m'ont gardé, mais j'ai passé le meilleur moment, et j'aime penser que je suis devenu un meilleur programmeur et même un homme à la suite de cette expérience.

Tout cela ne veut pas dire que vous devriez vous sous-estimer - vous êtes probablement beaucoup mieux que vous ne le croyez, mais comme les gens l'ont écrit ici, les titres et les diplômes ne sont pas toujours aussi impressionnants dans des situations réelles et l'humilité va très loin. Soyez donc respectueux de tout le monde, écoutez, absorbez - mais prenez vos propres leçons de l'expérience - parfois, vous feriez mieux d'apprendre ce que pas à faire.

Bonne chance.

1
Moshe Eshel

Il y a déjà beaucoup de choses présentées ici, donc je ne répéterai pas ce qui a été dit.

En un coup d'œil, il me semble que vous avez des experts et un leader avec des compétences/idées de gestion. C'est bien, mais c'est incomplet .

Vous êtes pragmatique: simplifiez-vous la vie.

Vous pouvez couvrir au moins deux domaines:

  • approfondir les détails techniques de la langue choisie par la startup
  • améliorer la qualité du code et adoucir les coins difficiles de son utilisation

Technique

Ces gars-là sont des experts dans leur domaine, et c'est bien, mais cela ne signifie pas qu'ils savent comment se frayer un chemin hors d'un sac en papier. Honnêtement, j'ai vu des gens très brillants écrire un horrible code insaisissable.

Vous avez la possibilité de devenir le responsable technique ici. Apprenez la langue à l'intérieur/à l'extérieur, jusqu'à ce que vous connaissiez toutes ses subtilités. Apprenez les idiomes que la communauté utilise. Recherchez les bibliothèques utiles qui existent.


Qualité

Il y a des tâches ingrates mais utiles:

  • qui gère le référentiel de code source?
  • qui écrit/maintient les tests?
  • qui surveille la réussite de la suite de tests? et identifie le coupable commet? et cingler les contrevenants sans relâche?

Il y a quelques étapes qui peuvent aider, qu'elles soient très formelles ou non:

  • comment révisez-vous les commits? (Y a-t-il une propriété associée à certaines zones du code?)
  • comment planifiez-vous le travail/les tâches?

Il y a beaucoup d'activités périphériques autour d'avoir des idées et d'écrire du code.

Vous avez la possibilité de devenir le responsable qualité ici. Apprenez les meilleures pratiques de l'industrie (un peu de "Agile", un peu de mêlée, un peu de TDD, ...), et composez un processus qui convient à votre entreprise. Apprenez à construire des systèmes (make, cmake, ninja, que ce soit) et écrivez les scripts qui facilitent la construction/le déploiement. Vérifiez Jenkins (ou autre) et créez un serveur d'intégration continue.


Ils sont impressionnants dans leurs domaines respectifs et c'est super. Puisque pour le moment vous n'êtes pas spécialisé, je dirais qu'il est temps pour vous d'identifier les faiblesses (vous pouvez aussi demander leur avis) et de combler a(the) écart (s)!

1
Matthieu M.