Et pourtant ! On m'a déjà demandé (en entretien) de détailler l'ordre des arguments d'une fonction ! J'ai justement répondu que la doc était mon amie, mais la réponse n'a pas plu.
Ma mémoire
Plutôt ma mémoire, et un peu de copier-coller
Plutôt du copier-coller, et un peu ma mémoire
Moteur de recherche - Google ou autres
Codes existants
Et pourtant ! On m'a déjà demandé (en entretien) de détailler l'ordre des arguments d'une fonction ! J'ai justement répondu que la doc était mon amie, mais la réponse n'a pas plu.
Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
Mes cours/tutoriaux
Personnellement j’utilise toujours ma mémoire pour la syntaxe du langage, mais je m'embête rarement à mémoriser toutes les fonctions disponibles. Ensuite ça dépend, si c'est une fonction importante, je me sens obliger de retenir son prototype, ça permet de programmer plus rapidement.
En général, je mémorise les algorithmes pour réaliser des tâches typiques et des fonctions usuelles (ou des méthodes dans le cas de frameworks objet) nécessaires à leur implémentation. S'il me faut une fonction rarement utilisée, alors je jette un oeil dans le manuel utilisateur, sachant plus ou moins où chercher.
Je déteste copier-coller des bouts de code parce que ça ne me permet pas de maitriser l'essentiel des fonctionnalités courantes, au cas où je me trouvais à coder un truc sans la doc à côté... Mais aussi acquérir des compétences sur une techno, c'est être en mesure de développer une autonomie.
Parfois, en absence d'une vraie doc, quand cela est possible, j'inspecte les signatures des fonctions directement dans les fichiers sources.
Je pense qu’aujourd’hui, il y a une telle panoplie de générateurs de codes et d'outils d'aide qui font qu'on se posent de moins en moins de questions et peut-être nous "abrutit" un peu plus.
Comme tout le monde, j'utilise le copier-coller mais j'essaye de le faire le moins possible car c'est lui qui m'a causé mes plus gros bugs lors de mes développements.
Malgré tout, le copier-coller reste un gage de rapidité à partir du moment ou l'on reste vigilant et qu'on prenne bien soin de tester le logiciel.
La memoire est l'arme principal d'un développeur. Quand on dis memoire on dis la raison et la faculté de réflechir et imaginer les algorithmes.
Aucun developpeur ne peux nier le fait qu'il recourt à une gogole plusieurs fois la journée pour chercher un bout de code diffusé par la communauté qui peux répondre partiellement ou entierement à son besoin surtout quand il s'agit d'un code qu'il le vois pour la premiere fois. L'operation de copier collant est indispensable pour un developpeur ( copier à partir de gogole ou de ses anciens codes ). Perso , sans gogole , j'avance moins. Mais j'utilise evidemment la mémoire pour organiser les bouts de code trouvés sur internet.
Merci Gogole.
Si c'est dans un langage que j'utilise tous les jours oui sinon la doc ou des recherches.Sauriez-vous, par exemple, coder une connexion à une base de données et effectuer des requêtes simples de type create table, alter table, insert, etc avec du mysqli orienté objet, le tout de mémoire ?
Drôle de question , je crois que personne ne connait toutes les fonctions du PHP par coeur ou du framework .NET pour du C# si tu connais vraiment bien un langage c'est que tu programmes 8h/jours et encore tu connais plus que la moitié mais toutes les fonctions c'est impossible à moins de se spécialiser que sur ce langage pendant des années.Si non, pourquoi ? Éprouvez-vous des difficultés à mémoriser les fonctions et syntaxes des langages que vous utilisez ?
Si le code existe et qu'il a déjà été écrit et qu'il est bien structuré et fonctionnel pas besoin de refaire la roue que se soit du code existant où écrit par soi-même dans des autres projets.Êtes vous, plutôt, de ceux qui sont obligés de recourir à du code existant, Google, et au copier-coller ?
En général les IDE ont des autocomplétions efficaces et des docs.Avez-vous une autre méthode ? Si oui, laquelle ?
Un développeur n'est pas celui qui connait tout par coeur tout le temps.
Et les entretiens d'embauches qui demandent du par coeur c'est qu'ils ont rien compris sur le métier.
Pour ma part si on me retirait l'autocompletion de l'ide et les pages de doc je me retrouvait bien penaud ...
Je sais que les fonctions existes et pourquoi elles sont fait mais je n'ai jamais fait l'effort de retenir la syntaxe exacte , sans doute parce que justement les outils à notre disposition nous en dispense .
Non absolument pas d'ailleurs on ne demande pas à un développeur de savoir réciter de mémoire des bouts de code pour ensuite interpréter une sorte de pièce de théâtre écrite à l'avance n'est-ce pas ?Sauriez-vous, par exemple, coder une connexion à une base de données et effectuer des requêtes simples de type create table, alter table, insert, etc avec du mysqli orienté objet, le tout de mémoire ?
La syntaxe du langage peut être mémorisée facilement et ce d'autant plus que les langages modernes et complet (Java, C#) sont très concis et ne requièrent pas beaucoup d'effort pour mémoriser leurs mots clés. Enfin les IDE permettent d'aller encore plus vite avec l’auto-complétion.Si non, pourquoi ? Éprouvez-vous des difficultés à mémoriser les fonctions et syntaxes des langages que vous utilisez ?
Oui mais le copier / coller "intelligent" qui consiste à reprendre un existant que ce soit à partir de ses propres bout de codes, tiré d'une recherche de google, ou d'un tutorial et les remanier à sa manière soit pour les améliorer soit pour les adapter dans un projet spécifique.Êtes vous, plutôt, de ceux qui sont obligés de recourir à du code existant, Google, et au copier-coller ?
Oui bien sûr je mémorise aussi les pattern de conception classiques qui eux ne dépendent d'aucun langage (le Gang Of Four vous connaissez ?) et puis avec les années on invente ses propres pattern adaptés a une situation ou une problématique donnée. Les diagrammes de classe UML sont bien pratique pour les garder au chaud le jour où il resservirons.Avez-vous une autre méthode ? Si oui, laquelle ?
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
La première fois je cherche, et je code. La deuxième fois, je recopie ce que j'ai fais.
La productivité a tué ma mémoire.
J'essaie de faire au maximum avec ma connaissance seule du code, mais je me laisse souvent guider par l'autocomplétion de Dreamweaver ; ce qui n'empêche pas de devoir comprendre ce qu'on fait, ça évite juste les fautes de frappe.
Hello,
Pour ma part tous mes codes ont été écrit au moins une fois "à la main" même si je me suis inspiré ici ou là.
Par contre, si une partie de l'un de mes codes est transposable alors j'avoue ne pas trop chercher la complication... ctrl+c / ctrl+v fonctionne très bien.
Mais dans la quasi totalité des cas, le code est à reprendre au moins un minimum.
Et puis il faut de la mémoire pour savoir où trouver la partie de code chercher pour faire le copier-coller![]()
Initiation à Qt Quick et QML : Partie 1 - Partie 2
En cas de besoin, pensez à la
Mon site et mes tutoriaux sur Developpez.com
Pas de question technique par MP... Les forums sont là pour ça
Tout dépend pour quoi.
Il y a le genre de code que j'écris tous les jours: ce n'est ni de la mémoire, ni du copier/coller: juste des réflexes, je n'y pense même pas.
Quand j'utilise des fonctionnalités du framework que je ne connaissais pas: je cherche d'abord dans la doc et ensuite sur google. Une fois la fonctionnalité repérée je préfère toujours prendre l'exemple fournit avec la doc officielle comme base mais aussi allez voir les exemples sur le web pour voir si c'est très différent de ce que j'ai compris par moi-même.
Pour les algorithmes un peu plus complexes, je préfère généralement les récupérer depuis un bouquin d'algorithmique un peu sérieux, ça évite de faire les petites erreurs auxquelles on ne pense pas automatiquement.
Quand j'ai envie de récupérer du code "tout fait", j'ai plutôt tendance à aller chercher dans les sources de logiciels open-source que je connais.
En dernier lieu seulement il peut m'arriver de récupérer du code sur des forums ou des pages "pour les nuls". C'est surtout pour le genre de code que je vais écrire très peu souvent (genre requêtes SQL qui ne sont pas les mêmes entre MysQL et Oracle), mais j'ai peu confiance en ce qu'on trouve. La majorité des réponses ne sont manifestement pas données par ceux qui s'y connaissent le plus et le code qu'on trouve sur les forums à souvent l'air écrit rapidement.
Au final je pense qu'il ne m'est jamais arrivé de réellement récupérer du code "tel quel". D'une part je fais un relecture attentive pour comprendre, adapter et valider le code. Le code a toujours besoin d'être modifié de toute façon et je le remet à ma sauce, avec mes commentaires, mes noms de variables etc.
Bref, au final je pense que ce que j'utilise le plus n'est ni ma mémoire ni le copier/coller mais ma réflexion.
Mémoire ou copier/coller ? Aucun des deux..
Et j'espère franchement qu'aucun développeur digne de ce nom ne rentre dans ces catégories.
Je mémorise l'organisation, des façons de faire, des algorithmes à essayer en priorité, ect.
Et pour coder ensuite j'ai en mémoire des fonctions utiles du langage en question (bien que ça se limite aux langages que j'utilise couramment, pour les autres j'ai pas assez de mémoire...), mais je ne les code pas de tête, je vais lire leur prototype dans la documentation.
Savoir ce qui se fait (veille technologique) et savoir s'organiser pour le faire (algorithmie, trouver la bonne documentation, savoir la lire correctement, avoir de bonnes règles de codage, ect), c'est amplement suffisant.
![]()
« Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
« Le watchdog aboie, les tests passent »
Généralement j'utilise ma mémoire pour analyser un problème et trouver les meilleurs outils pour y apporter réponse adéquate. En suite avec l'aide de l'intellisense dans VS je code avec la mémoire lorsqu'il s'agit de mon principal langage (C#).
Pour des langages que j'utilise rarement, un coup d’œil dans le manuel est très efficace.
Dans les deux cas, je n'hésite pas à faire appel à mon ami google lorsque je bloque sur un point donné. Une fois la solution trouvé, je copie généralement le bout de code qui m’intéresse et l'édite dans un éditeur autre que VS (notepad++ou scite) puis le colle dans ma fonction (c'est rare que je copie des classes ou fonctions entières).
Cela dit, avec les ressources disponibles de nos jours (internet, capacité de stockage de nos machines, manuels et bouquins) et les délais de plus en plus serrés, il serait contre-productif de vouloir tout mémoriser et coder tout par soi même.
certes l'usage du CTRL+C, CTRL+V nous abrutis un peu mais c'est aussi cela la raison d'être de notre métier ... Faciliter le travail et gagner du temps et des $.
Sinon chacun n'aurait qu'à créer son langage de programmation, puis son langage machine et son compilateur.
Merde! il faudrait ensuite créer son processeur, sa carte mère, bref sa plateforme matérielle pour éxécuter Son programme, histoire de ne rien copier.
En gros, je pense que l'important est de mémoriser la philosophie d'un langage, la syntaxe, les mots clés (s'il n'y en a pas un million) et éventuellement les principaux éléments du framework. Pour le reste, il y a la doc, internet et cie.
bah perso je passe pas mal de temps sur google pour trouver le nom de la fonction qui va bien pour faire ce que je veux.
par contre je ne copie/colle jamais un bout de code trouvé sur internet pour la simple raison qu'il ne fait jamais exactement ce que je veux.
en général, quand j'ai besoin de résoudre un problème pour lequel je me doute bien qu'il existe une fonction toute faite dans le langage que j'utilise (en ce moment python):
- je tape quelques mot clés dans le moteur de recherche qui me semble efficace
- s'il y a des réponse hébergées sur stackoverflow, je vais d'abord voir celles-ci (je sais pas depuis combien de temps existe stackoverflow, mais ces derniers mois, ou peut être années, c'est presque toujours sur ce site que je trouve les réponses les mieux expliquées à mes interrogations), sinon je me contente de ce qu'il y a, et au besoin j'essaye d'autres mots-clés.
- si la réponse est prometteuse, je copie le nom de la fonction qui va bien et je la colle dans la recherche de la doc du langage
- je lis la doc de la fonction
- j'utilise la fonction dans mon code
pas réellement pas de mémoire donc (je ne suis pas un annuaire), pas de copier/coller non plus (je ne suis pas une bête photocopieuse), surtout de la recherche d'info et de la mise en pratique des infos trouvées (je suis développeur quoi).
Tu serais à mon avis surpris du nombre d'entretiens où on te demande les paramètres d'une fonctions obscures , avec le bon type et dans l'ordre.
Et même pour les fonctions courantes en php t'as une chance sur deux de te planter ^^ (needle <=> haystack ; haystack <=> needle)
Par contre si tu sais pas réfléchir c'est pas grave au moins tu connais la doc par coeur donc t'es forcément un bon développeur ...![]()
Je ne refais jamais un travail que j'ai déjà fais, mais je peux l'optimiser. En tout cas vive le Ctrl+C et Ctrl+V. Quand c'est nouveau je démarre avec une doc ou Google et j'ajuste à son cas.
![]()
Si vous avez de l'Amour, vous ne ferez du mal à personne et personne ne vous fera du mal. W M Branham
La magie de l'informatique réside dans le copier coller selon moi. Je m'explique.
Lorsque j'importe une librairie dans un projet j'y voie un énorme copier coller!
Même chose lorsque j'utilise un langage. J'y vois un copier coller du travail de centaines d'ingénieurs qui ont cherchés à nous rendre la vie plus facile.
Depuis les balbutiement de l'informatique nous nous somment reposé sur les technologie déjà existante afin d'en crée de nouvelles. En évitant de réinventer la roue.
En réalité il faut définir ce que l'on entend par "copier coller".
Si il s'agit de code snippet, alors évidement oui je google et copie/colle allègrement. Même lorsque j'aurai pu écrire le code par moi même lorsque je sais où chercher et que je gagne du temps.
Martin Magakian
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager