Apprendre à programmer signifie non seulement développer une compétence utile, mais également acquérir un type de pensée particulier. Les programmeurs sont bons pour résoudre des problèmes mathématiques et logiques. Ils prêtent également attention aux détails, simulent des situations de la vie quotidienne et donnent une évaluation basée sur un grand nombre de facteurs.

En prévision de notre cours
Go Workshop , nous vous disons que les psychologues, les linguistes et les éducateurs pensent aux effets du codage sur le cerveau, et qu'est-ce que les Indiens d'Australie et l'hypothèse de Sepir-Whorf ont à voir avec cela.
Dans les années 30 du siècle dernier, la théorie de la relativité linguistique est apparue, nommée par analogie avec la découverte d'Einstein. Il dit: le langage définit la conscience, c'est-à-dire que les gens perçoivent le monde différemment, car les catégories linguistiques de la langue maternelle imposent des restrictions et déterminent même la pensée.
Cette idée a été formulée par Edward Sepir et son élève Benjamin Wharf, mais ils avaient tort. Toute idée peut être véhiculée dans n'importe quelle langue. Ils ont attribué l'énorme influence sur les processus cognitifs à de simples différences de grammaire, mais le concept contenait également un grain sain. Guy Deutscher dans son livre Through the Mirror of Tongue explique lequel:
«Si différentes langues influencent différemment la pensée de leurs locuteurs, le fait n'est pas que chaque langue permet à ses locuteurs de penser, mais plutôt les parties du sens auxquelles chaque langue vous fait habituellement penser. Lorsqu'une langue force ses locuteurs à prêter attention à certains aspects du monde ... de telles habitudes de parole peuvent éventuellement devenir des habitudes de pensée avec des conséquences sur la mémoire, la perception, les associations et même les compétences pratiques. »
La vérité est quelque part au nord
Il a été prouvé de manière convaincante que le système de genre des noms influence les séries associatives, forçant à doter certains objets inanimés de traits imaginaires féminins ou masculins.
Un effet similaire est associé à des différences de sensibilité aux nuances de couleurs, pour lesquelles la langue a un nom.
Mais ce sont des bagatelles par rapport au fait que la langue peut former des compétences. Cela a été révélé lors de l'étude d'une des langues des aborigènes australiens. Au lieu des habituels «avant» et «arrière», «gauche» et «droit», ils n'utilisent que des points cardinaux pour indiquer la direction.
Cela peut sembler être un canular, mais si un locuteur natif de cette langue vous demande de faire de la place sur le banc, cela sonnera comme «déplacez-vous vers l'est, s'il vous plaît». Si en même temps vous lisez un livre, assis face au sud, et que le natif veut que vous tourniez quelques pages en avant, alors vous entendrez «retourner plus à l'ouest». Si vous vous tournez pour faire face au nord, la demande retentira différemment - il vous sera demandé de retourner à l'est.
Pour parler cette langue, vous devez surveiller en permanence l'emplacement des points cardinaux, qui forme une mémoire géographique et ne nécessite pas de contrôle conscient d'un sens de l'orientation. Ainsi, l'apprentissage profond des langues est plus qu'une simple connaissance de la grammaire et du vocabulaire.
L'étude de l'influence du langage sur la pensée vient de commencer, mais des études similaires sur les langages de programmation sont déjà en cours, dont le nom n'est pas seulement lié aux langages naturels.
Programmation ≥ parole
Contrairement aux stéréotypes, dans la programmation, les plus importantes ne sont pas les capacités mathématiques, mais linguistiques. C'était en 1982 dans ses Etudes pour programmeurs de Charles Wesrel. Il a attiré l'attention sur les capacités verbales comme un aspect important de la personnalité d'un programmeur à succès, en gardant à l'esprit la capacité de travailler avec la grammaire des langues artificielles et naturelles.
Ses observations sont confirmées. Des
études statistiques
ont révélé une corrélation entre la programmation et des capacités linguistiques élevées. Des observations directes de l'activité dans différentes zones du cerveau à l'aide de l'IRM ont
établi que, tout en travaillant sur le code, les mêmes parties du cerveau responsables des langues naturelles sont activées.
Sans surprise, de nombreux programmeurs considèrent l'hypothèse Sapir-Whorf applicable à leur travail. Kenneth Iverson, créateur d'APL, a exprimé des vues similaires. Yukihiro Matsumoto a admis que lors du développement de Ruby, il s'était inspiré du roman "Babel-17", basé sur l'hypothèse de la relativité linguistique.
Des motifs similaires sont développés
dans l'essai de Paul Graham «Conquering Mediocrity», dans son paradoxe «Blub», selon lequel un programmeur qui a maîtrisé une langue et résolu tous les problèmes avec elle ne comprend pas la valeur d'outils plus efficaces d'autres langages de programmation, les percevant comme quelque chose d'étrange inhabituel et inutile.
La première tentative de résumer les données disponibles sur l'impact de la programmation sur les processus cognitifs a été faite en 1987
dans le numéro de mai de Educational Computing Research .
Ensuite, les chercheurs ont remarqué que la programmation avec ses diverses tâches peut affecter positivement la capacité de résoudre stratégiquement des problèmes, la capacité de la logique formelle, les compétences de modélisation et les styles cognitifs, mais ils ne sont pas arrivés à des conclusions sans ambiguïté et concluantes en raison du manque de données.
Six autres années se sont écoulées avant la collecte des statistiques, ce qui a permis de concrétiser les idées sur l'impact du codage sur la pensée. Il est présenté
dans une méta-analyse de soixante-cinq études sur les effets de la programmation sur les processus cognitifs , publiée en 1991.
Il s'est avéré que dans la plupart des cas, la programmation a un effet positif sur diverses compétences cognitives qui sont en corrélation avec la durée de l'étude du langage de programmation et son succès. «Les implications de l'apprentissage d'un langage de programmation vont au-delà du contenu d'un langage informatique particulier», expliquent les scientifiques. Avec la capacité de programmer, les compétences en planification, la capacité à construire le raisonnement, la pensée logique, ainsi que les compétences générales pour résoudre les problèmes à l'aide de programmes informatiques sont améliorées.
Des études comparatives de l'impact de divers langages de programmation sur les processus cognitifs se poursuivent. Une subvention de
750 000 $
a été allouée pour analyser le contenu des référentiels Github et BitBucket en ligne, les questions et réponses publiées sur StackExchange. Selon eux, le
Knowledge Lab et le
Département de psychologie de l'Université du Wisconsin Madison restaureront l '«histoire naturelle» des langages de programmation, et suivront la fréquence et dans quel but chacun d'eux est utilisé.
D'ici 2020, les chercheurs prévoient de découvrir comment les caractéristiques spécifiques des langages de programmation affectent le nombre de chemins et la vitesse de résolution de divers problèmes, d'analyser dans quelle mesure un langage particulier convient à la programmation collective.
Le projet a une tâche ambitieuse: fournir des informations sur les langues à choisir pour des projets spécifiques et découvrir comment ce choix affecte la façon dont les développeurs pensent et travaillent.
Plus qu'une compétence
En plus des compétences de programmation réelles, l'apprentissage des langues est une habitude de ce que le mathématicien, psychologue et programmeur Seymour Papert appelle la «pensée informatique» dans son travail.
Il s'agit d'un
ensemble flexible de compétences visant à résoudre des problèmes algorithmiques , l'habitude d'utiliser de manière complexe l'abstraction, la décomposition, l'évaluation, la pensée logique, la précision et l'habitude de remarquer les détails de la vie quotidienne.
Le concept de la pensée informatique a gagné en autorité dans la pédagogie, a formé la base de nombreux programmes éducatifs, mais au fil du temps, comme prévu dans les années quatre-vingt du siècle dernier, son influence
s'est étendue bien au-delà des collèges et des universités .
En utilisant une méthodologie de programmation, une grande variété de problèmes sont résolus avec succès. Un exemple de cela n'est pas seulement la modélisation informatique, la collecte de mégadonnées, l'introduction de systèmes automatisés, le succès de la fintech.
La pensée informatique est applicable et utile dans la vie quotidienne et pour les professionnels éloignés des technologies informatiques. L'apprentissage de la programmation vous aide à trouver de nouvelles approches et solutions, quoi qu'il arrive. Que ce soit la physique, la biologie, la chimie, la sociologie, la pédagogie, les affaires ou les soins de santé.
C'est ainsi que le concept d'altruisme efficace est apparu, la recherche des stratégies caritatives les plus efficaces a commencé. Grâce à ces études, il s'est avéré, par exemple, que dans la lutte contre le paludisme, il est plus efficace de donner de l'argent aux
moustiquaires plutôt qu'aux médicaments coûteux.
Une autre conséquence de la pensée informatique est l'idée d'utiliser des
outils pour l'analyse mathématique des transactions
de troc et des mégadonnées pour résoudre le problème de la sélection des donneurs d'organes. En conséquence
, une conception a été
développée pour le système complexe et à la fois fiable et efficace d'échange de rein de donneur "dans la chaîne" pour les États-Unis pour lequel le professeur de l'Université de Harvard, Alvin Roth, a reçu le prix Nobel en 2012.
Dans le cadre de nouvelles recherches, l'apprentissage d'un langage de programmation ne consiste pas seulement à acquérir une compétence, mais aussi un moyen de repenser la vie et de relever les défis qu'elle pose.
Très bientôt, le cours
Go Workshop débutera dans le quartier binaire - un excellent début pour les programmeurs débutants et une suite logique pour ceux qui sont déjà confrontés à la conception de leurs propres services Web.