Comment pouvons-nous améliorer l'éducation et la formation générales des programmeurs? [fermé]


13

La semaine dernière, je regardais juste cette incroyable interview de Kevin Rose de Phillip Rosedale, de Second Life.

Et ils ont eu une discussion incroyable sur la façon de trouver, d'embaucher et d'identifier de bons programmeurs, et combien il est difficile d'en trouver de bons.

Ce qui m'a amené à vraiment réfléchir à la façon dont les programmeurs apprennent, sont enseignés. Pour la majorité d'entre nous, moi y compris, nous sommes autodidactes. Ce qui est génial d'être programmeur, tout le monde peut apprendre et développer des compétences.

Mais cela signifie également qu'il n'y a pas de normes réelles de ce qu'est un bon programmeur et quels types d'environnements encouragent la croissance des compétences en programmation.

Ce n'est pas tellement une question, mais juste un désir en moi, de voir comment nous pouvons changer la culture de la programmation, et celle du gestionnaire de la programmation, afin que l'éducation et l'amélioration de soi soient encouragées.

Il existe de nombreuses pistes pour la formation continue, des vidéos YouTube, des livres, des conférences, mais en raison de la nature expérientielle de ce que nous faisons, il n'est pas toujours clair ce qui est important à apprendre et à maîtriser.

Regardons les 12 étapes de Joel.

Le test Joel

Utilisez-vous le contrôle de code source?

Pouvez-vous créer un build en une seule étape?

Faites-vous des builds quotidiens?

Avez-vous une base de données de bogues?

Corrigez-vous les bugs avant d'écrire un nouveau code?

Avez-vous un calendrier à jour?

Avez-vous une spécification?

Les programmeurs ont-ils des conditions de travail tranquilles?

Utilisez-vous les meilleurs outils que l'argent peut acheter?

Avez-vous des testeurs?

Les nouveaux candidats écrivent-ils du code lors de leur entretien?

Faites-vous des tests d'utilisabilité des couloirs?

Je pense que tous ces éléments ont une valeur importante, mais à cause de quelque chose que j'appelle l'écart expérientiel, si un programmeur ou un gestionnaire n'a jamais connu l'une des conséquences négatives de ne pas avoir fait les éléments de la liste, il ne verra jamais la nécessité d'en faire d'eux.

The Experiental Gap, est ma théorie de base, que chacun de nous a des emplois différents et des expériences différentes. Donc, pour certains d'entre nous, qui ont toujours travaillé avec des dizaines de programmeurs, le contrôle des sources est un must have. Mais pour les gens qui ont toujours été le seul programmeur, ils ne peuvent pas imaginer le besoin de contrôle de source.

Et c'est à cause de cette faille majeure dans la façon dont nous apprenons, que nous évaluons les gens selon les meilleures pratiques qu'ils font ou ne font pas, et la raison de l'un ou l'autre peut déclencher une guerre des flammes.

Nous évaluons toujours les gens dans notre domaine par ce qu'ils font et pensons "Oh si ce gars / fille ne fait pas les meilleures pratiques xyz, il / elle ne peut pas être un bon programmeur, alors ne perdons pas de temps ou d'énergie à leur parler . "

C'est exactement pourquoi nous avons tant de guerres de flamme de programmation, que cela devient, à cause de l'écart expérientiel, nous ne pouvons pas imaginer que les gens n'aient pas pris les décisions que nous avons dû prendre.

Cela m'a donc amené à penser que nous devons totalement repenser la façon dont nous formons, éduquons et gérons les programmeurs.

Par exemple, quel pourcentage d'entre vous a été encouragé par votre manager à aller à des conférences, et même à le faire payer?

Pour moi, et pour beaucoup de gens, c'est extrêmement rare, beaucoup d'entre nous aimeraient aller à des conférences, pour en savoir plus, mais l'argent n'est pas là pour le faire.

Donc, le point de cette question est vraiment de susciter beaucoup de comment pouvons-nous former, apprendre et mieux gérer?

Comment pouvons-nous créer une nouvelle culture d'apprentissage qui n'insulte pas les gens pour ne pas avoir les mêmes expériences de travail.

Oui, nous avons tous du travail et du travail à faire, mais notre capacité à bien faire notre travail dépend de notre désir, de notre intérêt et de notre soutien pour améliorer notre maîtrise de nos compétences.

En ce moment, je vois que notre culture est plutôt désorganisée, nous soutenons l'élite, mais ces tonnes d'entre nous qui veulent s'améliorer, n'ont tout simplement pas assez de soutien pour apprendre et s'améliorer.

Je veux dire, en tant qu'industrie, voulons-nous être perçus comme de simples rouages ​​remplaçables?

Je vous remercie...


+1: Je pense que c'est Carl Franklin de .NET Rocks qui a un jour noté que l'industrie de la programmation "craint les apprentissages". J'espère avoir correctement attribué cette citation; mais, pour ma part, je suis totalement d'accord avec ce sentiment. Je ne sais pas vraiment comment les candidats au niveau d'entrée progressent ces derniers temps.
Jim

Merci pour les bons commentaires. Mais une partie de mes objectifs est d'aider à réveiller les géants de notre industrie, car nous avons besoin de meilleurs mécanismes d'éducation, et je ne pense pas que les conférences et les collèges soient suffisants. Je ne sais pas quelle est la bonne réponse.
crosenblum

Mon objectif n'est pas de pousser un cadre ou des méthodologies spécifiques, mon objectif est de pousser plus d'éducation et de m'assurer que les programmeurs obtiennent du soutien.
crosenblum

Tout le monde peut essayer d'apprendre et de développer les compétences, la plupart n'ont pas les attributs requis; mais faites-le quand même, au coût de nos industries.
Orbling

Avez-vous un lien vers l'entretien? youtube.com/watch?v=irF-V9RUuXo celui-ci?
Lukasz Madon

Réponses:


13

Wow, excellente question à laquelle il est difficile de répondre. Parce que nous avons tous des expériences et des désirs différents, il est difficile de trouver une solution unique. Mais je vais jeter quelques opinions que j'ai eues au fil des ans sur ce même sujet.

1) Arrêtez de voir le changement d'emploi comme mauvais et encouragez-le. Changez de société toutes les quelques années. Le programmeur est exposé à de nombreuses technologies, méthodologies et entreprises différentes au cours de sa carrière. Les entreprises reçoivent un flux constant de nouvelles idées.

2) Arrêtez de vous voir comme programmeur dans l'entreprise X et voyez-vous comme un professionnel fournissant un service à l'entreprise X. Si vous pensez comme un professionnel, vous serez traité comme un professionnel. Si nous sommes considérés comme des rouages ​​remplaçables, c'est parce que nous agissons comme des rouages ​​remplaçables.

3) Les universités doivent changer. Ils devraient avoir une période initiale de 2 ans d'enseignement de base en informatique suivie d'un choix. Informatique ou génie informatique. Et la voie de l'ingénierie a besoin de professionnels qui travaillent dans le domaine tous les jours, pas de quelqu'un qui rédige des articles. Et ce qui est enseigné doit être pratique, afin que vous puissiez vous mettre au travail le lendemain de la remise des diplômes. Peut-être avoir un programme d'apprentissage pour ceux qui ne suivent pas un programme d'études.

4) Edit: c'était un peu délirant. Ce que je voulais dire, c'est que nous avons tous beaucoup à apprendre les uns des autres, indépendamment de l'âge et de l'expérience.

5) Assez lié au point 2. Arrêtez de voir votre employeur comme responsable de votre carrière. Tu es. Et seulement toi. Si vous souhaitez assister à une conférence, payez-le vous-même si votre entreprise ne le souhaite pas. Mettez de l'argent de côté chaque année spécifiquement pour les livres et la formation et le développement professionnel. Si vous attendez de votre employeur qu'il vous envoie en formation, vous attendez longtemps. Le temps passé à regarder vos compétences devient inutile. Vous n'en faites pas assez pour vous le permettre? Changer d'emploi.

6) Nous devons être honnêtes avec nous-mêmes et avec nos collègues programmeurs. La programmation est difficile. Très dur. Je vois toujours de la publicité pour la formation en informatique avec des richesses garanties après l'obtention du diplôme. Cela amène beaucoup de gens sur le terrain qui ne sont tout simplement pas qualifiés ou, pire encore, n'ont aucun intérêt réel au-delà de l'argent. Nous devons trouver un moyen de les encourager à repenser leurs plans de carrière.

À ce stade, je pense que ma tête est sur le point d'exploser, alors je vais conclure.

Grande question! J'ai très hâte de lire plus de réponses.


3
+1 pour les points 2 et la plupart des 5. C'est un moment révélateur où vous réalisez que votre employeur a plus besoin de vous que vous n'en avez besoin.
Carl Norum

@Carl, c'est vraiment un grand sentiment.

+1 pour les remarques de grande question. Entièrement d'accord. Je suis également totalement d'accord avec les points 2 et 3.
KeesDijk

Je ne vois pas la tendance à la marchandisation s'inverser dans un avenir proche. La tendance dans la plupart des magasins de logiciels d'entreprise est vers l'hyperspécialisation des rôles (alias pigeonholing).
bit-twiddler

1
Mais l'économie peut nous pousser à avoir des emplois, où nous n'avons pas autant de liberté ou de choix.
crosenblum

1

Je ne pense pas que ce soit désorganisé uniquement en raison d'un manque d'enseignement. Je pense qu'il est en fait révélateur que les «meilleures pratiques» diffèrent d'un emploi à l'autre. Les «meilleures pratiques» seront toujours basées sur un contexte particulier.

Il se trouve qu'il y a beaucoup de croisements pour certains des domaines de travail les plus courants, à savoir. développement web. Cependant, je pense que c'est une erreur de croire que, simplement parce qu'il est bon de s'engager dans une pratique particulière dans la plupart des emplois, il devrait être utilisé dans tous les emplois.

Les pratiques que vous engagez doivent découler d'une analyse et d'une expérimentation de ce qui vous fait mieux travailler. Ils ne doivent pas être choisis par une croyance aveugle. Le simple fait que quelque chose se répète souvent sur le net n'en fait pas une vérité dans votre situation, ni une vérité (pour toutes les situations).


0

Grande question pour exercer l'esprit, je suis d'accord que quelque chose doit être fait, mais je pense impossible de répondre. Mon essai:

Tout d'abord Ne tuez pas la créativité en général. Je dois dire que je suis d'accord avec Sir Ken Robinson, regardez ce grand discours TED . Notre système éducatif tue la créativité et cela doit être modifié. Surtout pour les programmeurs.

Second Teach like patternsnotre domaine professionnel n'est pas assez mature. Nous avons beaucoup de choses différentes que nous pensons être la voie à suivre, mais nous ne pouvons pas vraiment nous mettre d'accord sur elles. (pensez TDD, BDD, Agile vs Waterfall, la quantité de documentation nécessaire, Java ou .Net) Dans mon esprit, cela est dû à une discussion sans contexte et à une grande spécialisation. Vous ne pouvez pas faire le bon choix sans savoir dans quel contexte la question est posée et vous ne pouvez pas faire le bon choix si vous ne connaissez qu'une seule option. Lorsque vous ramenez cela à l'éducation, cela semble impossible à résoudre. Vous ne pouvez pas vous attendre à ce que quelqu'un connaisse tous les contextes possibles et toutes les solutions possibles. Mais avec les modèles, ils ont maintenant des solutions générales et les contextes s'appliquent et les contextes lorsque les solutions tombent en panne. À mon humble avis, c'est la façon dont nous devons enseigner,

Troisième mise en exonération de responsabilité sur les exemples Je pense qu'il y a un problème avec les exemples que nous montrons sur MSDN, sur les blogues, dans les livres, etc. Mais dans les exemples les plus élémentaires, il existe déjà des décisions à plusieurs niveaux. Ces exemples enseignent mal toutes ces autres décisions. Je pense que chaque exemple doit être accompagné d'une clause de non-responsabilité indiquant ce qu'est le point et ce que vous ne devriez pas faire en général. Un excellent exemple de cela a été blogué aujourd'hui ici .

Last Do Do Do Je pense qu'il faut faire plus. J'ai appris à faire, échouer, réparer et discuter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.