Les débutants doivent-ils utiliser la complétion automatique IDE (Intellisense)? [fermé]

35

Je rencontre souvent cela lorsque j'aide quelqu'un qui est nouveau dans la programmation et que je l'apprends pour la première fois. Je parle de vraiment nouveaux débutants, toujours en train d’en apprendre plus sur OOness, de construire des objets, des appels de méthodes et des choses comme ça. Habituellement, ils ont le clavier et je ne fais qu'offrir des conseils.

D'une part, la fonctionnalité de saisie semi-automatique des IDE aide à leur faire savoir qu'ils le font bien et qu'ils l'apprécient rapidement et qu'ils s'y fient.

D'autre part, je crains qu'une dépendance précoce à l'auto-complétion de l'IDE ne les empêche de comprendre vraiment les concepts ou de ne plus pouvoir fonctionner s'ils se retrouvaient un jour avec un simple éditeur.

Quelqu'un ayant plus d'expérience à cet égard peut-il partager son opinion? Quel est le meilleur pour un débutant, la saisie semi-automatique ou manuelle?

Mise à jour

Merci à tous pour votre participation!

Beaucoup de réponses semblent se concentrer sur l'utilisation principale de l'auto-complétion, comme compléter des méthodes, fournir des méthodes de recherche, de la documentation, etc. Mais les IDE en font beaucoup plus aujourd'hui.

  • Lors de la création d'un objet de type Liste, un IDE complète automatiquement le nouvel ArrayList situé à droite. Un débutant ne comprendra peut-être pas immédiatement pourquoi il ne peut pas s'agir d'une nouvelle liste, mais bon, cela fonctionne, alors ils passent à autre chose.
  • Paramètres de la méthode de remplissage basés sur des variables locales en contexte.
  • Effectuer des lancers d'objets
  • Ajout automatique d'instructions 'import' ou 'using'

et beaucoup plus. Ce sont le genre de choses que je veux dire. Rappelez-vous que je parle des gens qui font Programmation 101, qui commence vraiment. J'ai regardé l'IDE faire ces choses dont ils n'ont aucune idée, mais ils continuent.

On pourrait soutenir que cela les aide à se concentrer sur le déroulement du programme et à bien comprendre avant de approfondir et de comprendre les nuances du langage, mais je ne suis pas sûr.

codinguser
la source
1
Je pense que cela tombe dans une injonction générale: Utilisez un outil. Ne soyez pas assez paresseux pour l'utiliser aveuglément.
Alex Feinman
Je pense qu'ils devraient utiliser « la norme éditeur de texte » ... gnu.org/fun/jokes/ed.msg
JoelFan
J'ai résumé ce que j'ai appris ici dans un article de blog: codinguser.com/2011/01/abstraction-is-good-magic-is-bad
codinguser

Réponses:

11

Je pense que l'utilisation de l'IDE facilite le processus d'apprentissage. Les méthodes, propriétés, paramètres, surcharges et autres sont découvrables. Grâce aux bibliothèques extrêmement volumineuses, Intellisense aide à diffuser les connaissances sur JIT. Dans l'environnement de codage actuel, il est impossible de tout apprendre à l'avance et l'apprentissage JAT est souvent le seul moyen pratique de devenir rapidement productif.

Je comprends que l’utilisation d’un IDE peut être une béquille si vous l’utilisez aveuglément, mais je pense que les avantages dépassent de loin les inconvénients.

Utiliser des modèles sans comprendre ce qui a été pré-construit pour vous est en revanche un problème. Je pense que ceux-ci peuvent être utilisés comme outil d'apprentissage si le développeur prend le temps de lire le code basé sur un modèle. Mais la plupart des gens ne s'en préoccupent pas. Ce pourrait être un excellent outil d'apprentissage, cependant.

Mark Freedman
la source
JIT? Ne voulez-vous pas dire le .NET FCL? =) Oui, je suis d’accord ... Au fil des années, intellisense s’est révélé être un outil d’apprentissage, j’ai appris à utiliser des tonnes de nouvelles classes, méthodes et propriétés.
Gideon
1
Je parlais d’apprentissage JIT - pas de compilation JIT;) Il ya tant à apprendre. Essayer de tout apprendre dès le départ n’est pas réaliste, aussi longtemps que vous comprenez les concepts, apprendre les spécificités de la mise en œuvre peut se faire "juste à temps".
Mark Freedman le
75

Comprendre les concepts et mémoriser des dizaines de centaines de stupides classes et méthodes de bibliothèques sont deux choses complètement différentes. Intellisense aide à éliminer complètement de votre esprit toute cette connaissance inutile. Plus vous le faites tôt, mieux c'est. Laissez plus d'espace pour les concepts utiles, ne gaspillez pas vos ressources limitées en API.

Pour répondre à une partie mise à jour d'une question: les petits détails de syntaxe, la disposition des fichiers, le compilateur et l'invocation de l'éditeur de liens sont également sans importance par rapport aux concepts de programmation génériques. Une fois qu'ils sont compris, un débutant peut approfondir sa compréhension du fonctionnement des éléments de bas niveau. Il est préférable de le faire lorsque vous connaissez déjà les bases, sinon vous risquez de prendre un certain nombre de superstitions magiques dangereuses.

Par exemple, DrScheme IDE a fait ses preuves en matière d’enseignement de la programmation et son succès est principalement dû à sa capacité à aider à se concentrer sur ce qui est vraiment important.

SK-logic
la source
30
+1 J'ai eu des entretiens à l'époque où ils me demandaient de citer la liste de paramètres pour certaines fonctions de l'API Win32. Jamais pu comprendre de quelle pertinence cette connaissance pourrait être.
4
@ codinguser: et ce n'est pas un problème non plus. Souvent, je ne me souviens même pas de la syntaxe d'une langue que j'utilise actuellement (même si je l'ai conçue moi-même). Il y a des choses beaucoup plus importantes à retenir que les instructions d'importation ou la façon d'écrire une paire getter / setter. Et les IDE font des choses plus utiles - montrant les types dans les info-bulles, par exemple.
SK-logic
4
@ Josh K, avez-vous déjà entendu le mot "abstraction"? Savez-vous pourquoi il existe différents niveaux d'abstraction? Faire attention à tout ce qui se situe en dessous du niveau d'abstraction de votre domaine de problèmes actuel est stupide et contre-productif. Et prendre cette habitude destructrice tôt dans une carrière est un désastre. Il m'a fallu plus de dix ans pour récupérer partiellement.
SK-logic
3
@ Josh K, insistez-vous pour comprendre ce qui se passe jusqu'aux appels système et plus loin? Il n'y a pas de valeur ajoutée dans cette compréhension. Bien sûr, un bon programmeur doit être capable d’opérer à tous les niveaux, y compris les codes machine, mais un bon programmeur doit également être capable d’abstraire complètement les choses qui ne sont pas pertinentes.
SK-logic
3
@ SK-logic: Je suis d'accord, et les appels d'importation et de fonction que vous utilisez directement ne sont pas des éléments abstraits.
Josh K
16

Utiliser l'auto-complétion n'est pas une mauvaise chose du tout.

C'est simplement pour la vitesse, et pour moi, ce serait le signe que quelqu'un commence à saisir l'IDE et à bien l'utiliser.

Je ne comprends pas comment NE PAS utiliser cela les aiderait à apprendre OO par exemple.

ozz
la source
1
Je suis tout pour l'auto-complétion lorsque vous maîtrisez les bases. La vitesse est bonne quand vous savez ce que vous accélérez. Mais lorsqu'un IDE remplit automatiquement un paramètre en fonction d'une variable locale du même type, ou ajoute une instruction d'importation, cela fonctionne et certains débutants ne le comprennent pas vraiment.
codinguser
J'ai lu votre édition, mais j'aimerais penser que les noobs que nous embauchons sont des personnes intelligentes qui vont regarder ce qui est rempli, les interroger et les comprendre. Une autre question est de savoir si cela se produit concrètement.
Ozz
13

Ayant enseigné et encadré des étudiants novices en programmation, je trouve que l'auto-complétion / intellisense fait parfois plus de mal que de bien. Oui, ils peuvent écrire un programme en l’utilisant. Oui, il compile et exécute et pourrait même faire ce que nous leur avons demandé de faire. Mais ils ne comprennent pas ce qu'ils font.

Quand ils ne comprennent pas ce qui se passe, cela devient moins de programmation et plus de piratage d'une solution ensemble pour obtenir des repères. J'ai constaté que cela arrivait souvent avec les étudiants et que ce que nous leur demandions de faire était devenu plus difficile: ils ont juste piraté jusqu'à ce que quelque chose fonctionne. Cela devenait toujours évident lorsque le milieu de la formation arrivait et que les étudiants étaient invités à écrire à la main des méthodes simples… ils ne pouvaient pas.

Oui, autocomplete / intellisense nous aide beaucoup (développeurs professionnels), car il nous accélère. Nous n'avons pas à mémoriser toutes les méthodes et listes de paramètres, mais nous pouvons également deviner quels paramètres une méthode va prendre car nous avons l'expérience de la programmation à connaître.

Les débutants n'en ont pas. Ils attendront que leur IDE établisse une liste de méthodes, ils la parcourront jusqu'à ce qu'ils en trouvent une qui leur convient peut-être, ils examineront les paramètres dont ils ont besoin et verront s'ils doivent les transmettre. ..et à la fin, ils auront piraté quelque chose ensemble qu'ils peuvent rendre.

Et, à la fin du parcours, quand ils ont obtenu leur laissez-passer, ils se retiraient de leur classe de programmation avec une victoire superficielle, beaucoup ne voulant jamais reprendre une autre classe de CS car ils ne comprenaient rien de ce qu'ils faisaient ou pourquoi ils le faisaient. il.

Tyanna
la source
2
Je serai cynique et dirai qu'il y a toujours eu ce type d'étudiant en CS. S'ils veulent apprendre, Intellisense les aide simplement à faire les choses plus rapidement, plutôt que de passer du temps à rechercher chaque nom de fonction dans Google ou dans un livre
user151019 Le
4
@ Mark, je suis d'accord. Je suppose que ma réponse a été trop large, impliquant tous les étudiants. Mais je dirai ceci, après avoir introduit et IDE avec l'auto-complétion à l'environnement de développement du cours, le nombre d'étudiants qui ne comprenaient pas à la fin, ainsi que le nombre d'échecs au premier semestre. Le nombre de questions que j'ai reçues a beaucoup diminué, mais j’ai appris que ce n’était pas b / c que les étudiants comprenaient mieux, mais b / c, ils pouvaient faire fonctionner les programmes sans prendre le temps de comprendre.
Tyanna
students were asked to write simple methods by hand...they couldn't.Cela dépend de ce que vous essayez de leur enseigner. Concepts généraux de programmation ou syntaxe spécifique à une langue?
pain d'épice
9

Le problème avec les IDE et les environnements de développement en général ne ressemble pas tant à la saisie semi-automatique qu'à l'utilisation de solutions basées sur des modèles (fichier | nouveau | projet) où de nombreuses choses "intéressantes" ont déjà été faites pour vous et sont, à des degrés divers, cachées. .

Ceci est utile pour quelqu'un qui comprend en gros ce qui se passe sous le capot, mais pour quelqu'un qui comprend ce dont ils ont besoin, c'est moins.

Il y a aussi la question du temps nécessaire pour lancer un IDE poids lourd ...

Je pense donc que le fait d'utiliser quelque chose de plus léger et de pouvoir exécuter des applications dans lesquelles vous avez écrit vous-même chaque ligne de code présente des avantages considérables - d'autant plus que l'utilisation d'un éditeur de texte et d'un compilateur démontre le fait important que vous n'avez pas besoin d'un logiciel. IDE etc. pour écrire un logiciel mais cela ne signifie pas que je veux utiliser un éditeur de texte pendant longtemps et que cela pose des défis en termes de débogage - vous voulez être capable de faire des points d'arrêt et de pouvoir parcourir le code en une seule étape car cela facilitera la compréhension de ce qui se passe.

Bien sûr, nous pouvons encore confondre le problème en considérant des choses comme Python où vous avez une ligne de commande "live" ...

Bonne question, pas une seule bonne réponse - sauf que vous voulez faire de l'apprentissage une progression et commencer avec un éditeur de texte et un compilateur (ou un interpréteur de ligne de commande) vous permettra de vous concentrer sur les bases de la syntaxe et de la logique avant de passer à la suivante. des tâches complexes qui seront plus faciles à faire avec un environnement de développement plus puissant.

Murph
la source
2
Honnêtement, je considère que le temps pris pour lancer l'IDE est négligeable. Je passe des dizaines d’heures à utiliser mon IDE entre les allumer. Cela permet certainement d’économiser plus de 30 à 45 secondes supplémentaires de temps pour commencer à compléter le code seul pendant cette période.
EricBoersma
@ Eric - dans votre contexte? Oui, 100%. Dans le contexte de la question c'est-à-dire débutants complets? Je soupçonne que l'IDE sera ouvert et fermé plus souvent pendant des sessions plus courtes et généralement tout ce qui peut gêner est un découragement.
Murph
En ce qui concerne les ORM, je pense que les débutants en base de données ne devraient pas être autorisés à les utiliser car ils ne comprennent pas suffisamment le développement de bases de données pour bien les utiliser. Excellents outils pour les gens qui savent ce qu’ils font, des catastrophes pour les débutants.
HLGEM
@HLGEM J'allais suggérer que c'est un peu plus compliqué que ça ... mais je ne pense même pas que je sois même assez qualifié pour commenter les débutants et les bases de données) -: (Et, pour plus de clarté, parce que je apprendre de nouveaux langages et de nouveaux frameworks Je pense pouvoir commenter le problème de l'EDI - je me souviens très bien des premiers problèmes avec .NET et Visual Studio qui en faisaient trop)
Murph le
4

Apprendre à la dure reste généralement avec vous.

En tant que débutant, veuillez NE PAS utiliser IDE. Utilisez la ligne de commande, apprenez de vos erreurs. Cela vous aiderait également à mieux comprendre les options du compilateur et de l'éditeur de liens.

Alors, quand utilisez-vous IDE? Lorsque vous concevez quelque chose d'énorme ou travaillez sur une base de code énorme avec des charges de classes, méthodes et variables.

Fanatic23
la source
7
Quel est l'intérêt de comprendre les options du compilateur et de l'éditeur de liens si vous ne savez pas encore ce qu'est un compilateur? Il finit normalement dans un désordre. J'ai passé plus d'une décennie à nettoyer mon propre gâchis créé au début par une exposition trop profonde et trop faible (MACRO32, Fortran, DCL ...).
SK-logic
2
D'accord. Par exemple, apprendre l'assemblage avant d'apprendre Python ou C # n'a pas de sens - cela vous frustre davantage. En règle générale, vous apprenez des concepts de haut niveau, puis vous filtrez en concepts de niveau inférieur, ou autres choses très pointilleuses.
DMan
4

Je serais le premier à dire que les IDE sont une aubaine pour la productivité, même si je me plains souvent de leurs bizarreries. Cependant, j'ai appris les langages BASIC, C, C ++, Java, Python, Perl, PHP et plusieurs autres langages sans autre chose qu'un éditeur de surlignage de texte et le compilateur / interprète du langage. J'ai réellement appris Java dans le Bloc-notes!

L’apprentissage d’un IDE est propice à la "magie" - l’idée selon laquelle "cela fonctionne; peu importe comment." L'abstraction est bonne; la magie est mauvaise. Un programmeur doit savoir ou savoir tout ce qui se passe dans un projet. Un bon IDE est conçu pour prendre en charge la gestion des livres, sans contrôler le projet. Correctement utilisé c'est un excellent outil. Mais quel artisan a commencé avec un routeur à commande numérique?

Je pense que la façon dont j'ai appris (taper tout et bien connaître le compilateur pour construire un projet) m'a énormément aidée lorsque j'ai finalement commencé à utiliser les IDE. Par exemple, un projet Java n'est pas un petit dossier dans un projet Eclipse, mais un ensemble de classes dans une structure de package avec des fichiers XML pour les chemins, la configuration et le déploiement. Je ne voudrais pas construire une grande application d'entreprise sans IDE, mais je peux en construire de petites. Cela facilite la compréhension de la structure des gros, et quand je veux un comportement spécifique dans la construction, par exemple, je sais comment javac fonctionne, je peux donc modifier l’invite de construction réel plutôt que d’essayer de trouver cette combinaison magique qui ne le fait pas. t existent dans la configuration de construction. Je pense aussi avoir une compréhension plus profonde des messages d'erreur et de la façon de les trouver et de les résoudre.

Je n'enseignerais pas en utilisant un IDE. Je pense que les projets de départ sont suffisamment petits pour que les arguments en faveur de la gestion de la complexité soient sans objet. Si vous enseignez Java, par exemple, vous pouvez placer toutes vos classes dans le même dossier et javac *.java. Vous n'avez pas besoin d'un IDE pour ça! Cela plaide pour que les projets restent petits, un peu plus que des preuves de concept. Minimisez les frais généraux et concentrez-vous sur l'enseignement du concept dont les élèves ont besoin. Les projets plus importants dans lesquels un IDE serait utile appartiennent soit à des classes SE plus avancées, soit à des projets dédiés.

En ce qui concerne l’aide à la recherche de classes et la recherche sur les API, encore une fois, j’estime que c’est inutile si les projets sont limités. Encore une fois en Java, javadoc est très facile à lire. De toute façon, personne ne peut garder l'intégralité de l'API, et il sera un temps où vous devrez rechercher une API sans le bénéfice d'un IDE. Comme dans d'autres langues, ou si vous vous connectez à un serveur sur lequel vous ne pouvez pas ouvrir l'EDI. Enseignez comment trouver de la documentation, pas "appuyez sur". et vous pouvez voir ce que sont les méthodes d'un objet. "

Tout programmeur peut apprendre un IDE, mais connaître un IDE ne fait pas de vous un bon programmeur. L'humour noir mis à part, "magie" n'est jamais un bon mot pour un programmeur.

Michael K
la source
Appris avec un texte soulignant ... punk chanceux. Certains d'entre nous ont juste une liste de mots-clés et une invite.
Matthew Whited
@Matthew: Java, j'ai commencé avec le bloc-notes ... :)
Michael K Le
LOL ... J'ai commencé avec Apple IIc avec Applesoft BASIC intégré à la ROM. : o)
Matthew Whited, le
Wow, je me sens chanceux d'avoir QBasic!
Michael K
4

Peut-être qu'un débutant devrait simplement travailler d'abord sur des problèmes plus faciles. Et non, ces problèmes ne devraient pas nécessiter ni encourager l'utilisation d'un IDE pour mener à bien la tâche. Il y a plus à gagner à long terme en comprenant les concepts de base. Les outils devraient venir après.

Aucun ouvrier du bois ne passerait directement à l’utilisation d’une raboteuse de grande puissance sans comprendre d’abord les subtilités du type de bois et de l’avion manuel.

(Remarque: la saisie semi-automatique et intellisense sont deux choses radicalement différentes).

Intellisense, en soi, n'est pas mauvais. C'est seulement mauvais quand on utilise une béquille pour deviner une fonctionnalité sans lire ou comprendre la documentation ou l'implémentation sous-jacente.

Point secondaire: Si le langage nécessite un IDE à coder pour vous, le langage est probablement au mauvais niveau d'abstraction pour les problèmes que vous essayez de résoudre.

Ryan McGeary
la source
2
+1 pour le point latéral. Je suis un passionné d’apprentissage de plusieurs langues. Vous savez donc quand une langue ne convient pas à une tâche.
Michael K
3

Lorsque nous grandissons en tant qu'enfant, on ne nous dit pas que nous devons comprendre les règles complexes de la langue anglaise avant de pouvoir parler. On ne nous dit pas que nous devons bien comprendre l'utilisation appropriée des prépositions, des conjonctions et éviter les fragments de phrase. Nous apprenons en faisant. Nous apprenons par le succès et l’échec.

Un IDE avec autocomplete aide le nouveau programmeur à gagner de la confiance en facilitant la création de programmes, tout en évitant de se souvenir de toutes les myriades de fonctions d'une multitude de bibliothèques.

Si l'on veut vraiment extrapoler la vue selon laquelle la saisie semi-automatique blesse le nouveau programmeur parce que cela le rend trop facile pour eux, vous pouvez alors affirmer que les ouvrages de référence ne doivent pas être utilisés lors de la programmation, car les concepts qu'il contient doivent d'abord être mémorisés, le fait de ne pas les mémoriser les ralentit et ne leur permet pas de comprendre d'abord les concepts.

La saisie semi-automatique est un outil utilisé pour rendre le programmeur plus productif. Tout comme pour l'apprentissage d'une langue pour la première fois, une fois que nous avons acquis de la confiance en nous et un niveau de succès avec ce que nous apprenons, nous travaillons ensuite à améliorer nos connaissances.

Facture
la source
C’est un excellent argument pour utiliser les IDE. Cela semble cependant échouer dans CS, car il me semble que beaucoup ne vont pas au-delà du simple "apprentissage de la parole". Cela exigerait que le programme soit refondu pour enseigner explicitement les choses que cache un IDE.
Michael K
2

Au début, il est déjà assez difficile de construire quelque chose qui fonctionne, donc tout ce qui peut aider la marque noobie est de meilleure qualité. Un nouveau programmeur aura besoin de quelqu'un de plus expérimenté pour qu’il réfléchisse à la question de savoir si les listes chaînées ou les listes chaînées seront mieux adaptées au problème à résoudre. Ils ont chacun leurs forces et leurs faiblesses.

Que le débutant ait un IDE ou qu'il navigue dans les documents de l'API en ligne, il n'y aura pas de réelle différence entre le code qu'ils créent. Bien qu'il soit difficile d'apprendre à écrire, les erreurs de syntaxe peuvent être une expérience d'apprentissage, mais il y a trop de choses à apprendre pour s'en préoccuper au tout début.

Vous n'apprenez pas à marcher sur la corde raide en allant directement au haut fil sans filet. Vous commencez par marcher sur une corde à quelques centimètres du sol. J'oserais dire que la plupart d'entre nous travaillons avec un IDE et une sorte de script de construction (le script de construction de Visual Studio est créé par l'EDI, mais il est là). La plupart d'entre nous ne construisons pas nos classes à la main avec un éditeur de texte, puis appelons le compilateur à la main. Pourquoi devrions-nous imposer cela à un débutant qui a beaucoup plus à apprendre?

Berin Loritsch
la source
2

Je ne vois aucun besoin de souffrir de la perte d'outils, même lorsqu'un développeur apprend. Je crois que le temps et les efforts supplémentaires nécessaires pour écrire le code sans les outils seraient mieux dépensés pour apprendre à écrire des tests unitaires et à déboguer. Une fois qu'un utilisateur sait comment tester son code et le suivre au fur et à mesure de son exécution, il en apprendra beaucoup sur ce qu'il fait réellement.

De plus, ce n'est pas comme si vous utilisiez un IDE, cela veut dire que le code s'écrit tout seul. Un développeur inepte ou débutant va écrire un code qui ne fonctionne pas, qu’il utilise un IDE ou non.

Je viens de voir l'IDE comme un autre niveau d'abstraction lors du codage. Si j'écris en Java, je n'ai généralement pas besoin de comprendre le fonctionnement du bytecode qu'il génère. Si un nouveau programmeur utilise des bibliothèques Java, il n'a pas besoin de savoir dans quel package il se trouve si l'EDI peut l'ajouter automatiquement. Dans les deux cas, si un bogue ou un problème de niveau inférieur peut survenir (par exemple, un conflit de noms de classe) provoquant une erreur, il est temps que le développeur le regarde manuellement.

Alb
la source
0

Beaucoup d'autres bonnes réponses ne sont donc pas considérées comme une réponse complète, mais il est bon que les débutants comme les utilisateurs expérimentés aient une vue complète des fonctions dont ils disposent.

Dans Delphi, je peux appuyer sur ctrl-j et je vais voir une liste de tout ce que je peux espérer syntaxiquement fonctionner.

Je ne suis pas nécessairement d'accord, mais j'ai lu des arguments selon lesquels les programmeurs ne devraient même pas regarder les membres de classes privées des objets qu'ils utilisent. De cette manière, l'auto-complétion donne à chaque utilisateur une référence instantanée à l'API.

Les nouveaux IDE permettent aux utilisateurs et aux développeurs de langages de placer des méta-données dans leur intellisense, ce qui améliore encore la capacité de lire et de comprendre le fonctionnement des fonctions, sans lire le code source (ce qu’ils ne devraient pas avoir à faire de toute façon).

Peut-être est-il préférable que les débutants lisent et comprennent tout ce qu'ils implémentent. Mais peut-être faudrait-il mieux se demander si les débutants devraient être autorisés à inclure ou importer les espaces de noms ou les unités de leur choix sans indiquer pourquoi ils l’incluent.

Peter Turner
la source
0

D'après mon expérience, utiliser un IDE pour apprendre les bases de OO est génial car il cache une partie de la complexité de l'écriture de code tout en permettant au nouveau développeur de se concentrer sur la logique du programme. Cependant, peu de temps après avoir appris à programmer et les principes de base de OO, j'étais obligé, par le biais de cours, de comprendre plus précisément quels éléments devaient interagir les uns avec les autres dans les fichiers source (sans oublier les instructions d'importation, instancier les bonnes classes, etc.) à l'aide d'un cours de programmation. où nous devions utiliser uniquement des machines Unix terminaux.

Cela est possible à l'école parce que quelqu'un a le «pouvoir» de vous forcer à utiliser des outils lo-fi. Il serait beaucoup plus difficile à réaliser dans une entreprise ou un environnement d'entreprise.

Bryan J Swift
la source
0

J'ai deux pensées à ce sujet. La première est que pour vraiment apprendre quelque chose, je pense qu'il faut savoir ce qui se passe réellement. De plus, grâce à la qualité d'IntelliSense, il peut en cacher une partie à un nouveau développeur. Par exemple, lors d’un cours d’ingénierie Web à l’université, nous avons créé nos propres infrastructures Web pour créer nos applications finales. Je suis sorti de cette classe avec cette capacité de m'adapter à presque n'importe quel framework web, car j'avais d'abord compris ce qu'il y avait en dessous. Utiliser un IDE n’atteint pas tout à fait ce niveau, mais je crois que le point est toujours là.

Cependant, l'utilisation d'un IDE peut également permettre d'ouvrir des API à de nouveaux développeurs. Lorsque j'ai commencé à coder sérieusement, l'EDI que j'ai utilisé m'aidait énormément, car je pouvais faire des choses comme taper dans un objet, utiliser l'auto-complétion pour voir quelles méthodes il utilisait, puis les rechercher à l'aide des documents disponibles. Tout cela a été fait dans l'IDE et était un excellent outil d'apprentissage.

Donc, oui, je pense que vous pouvez en utiliser un aussi longtemps que vous prenez également le temps de comprendre ce qui se passe. Utiliser un casting d'objet sans comprendre pourquoi vous y êtes obligé est vraiment mauvais, mais si un nouveau développeur voit que vous pouvez utiliser un casting d'objet et cherchez ensuite pourquoi je ne vois rien de mal.

Corv1nus
la source
0

Apprendre prend de la pratique. La programmation peut être une tâche très frustrante lorsque vous ne savez pas ce que vous pouvez faire ni comment les choses fonctionnent.

Par exemple, il est peu pratique de lire de nombreux livres sur les principes de programmation sans écrire une seule ligne de code; on n'apprend rien de cette façon.

Intellisense est très utile pour aider les nouveaux programmeurs à continuer à programmer, à s'entraîner et, partant, à apprendre.

Comme cela a déjà été dit, l'apprentissage d'API spécifiques n'est pas la même chose que l'apprentissage des principes de programmation. Ce qui va sûrement arriver, c’est que les nouveaux programmeurs commettront des erreurs (quel que soit Intellisense), et ce qui les conduira à devenir de bons programmeurs ou de pauvres, c’est pourquoi ils choisiront de les corriger.

Si vous essayez d'enseigner à quelqu'un comment programmer, je lui demanderais d'utiliser Intellisense et de jouer jusqu'à ce qu'il reste bloqué. C'est à ce moment-là que j'essayais de bâtir une fondation en leur expliquant la raison pour laquelle ils étaient bloqués.

Remus
la source
0

OMI, les IDE vont vous rendre plus productif. Mais pour les débutants, ce n'est généralement pas une bonne idée de commencer à programmer avec IDE. Des éditeurs de texte tels que notepad ++, notepad, etc. seraient suffisants.

En outre, il n'est généralement pas considéré comme une bonne idée de commencer à apprendre la programmation avec un langage de haut niveau. Je vous suggère de commencer par le langage assembleur. Cela vous enseignera les bases ainsi que la patience.

NinjaCoder
la source