31 votes

Combien de temps faut-il pour qu'une personne soit capable de taper un code de mémoire ?

Je comprends que l'on puisse répondre à cette question par une simple phrase et qu'elle puisse être considérée comme subjective, mais je suis un jeune étudiant qui souhaite faire carrière dans la programmation et je me demandais combien de temps il avait fallu à certains d'entre vous pour atteindre le niveau d'expérience que vous avez aujourd'hui ?

Je pose cette question parce que je travaille actuellement à la création d'une application en Java sur la plate-forme Android et je suis gêné de devoir constamment chercher comment écrire une certaine section de code dans mon application, comme l'écriture dans une base de données, ou comment l'instruction if doit être structurée.

Ma question est la suivante : combien de temps vous a-t-il fallu pour devenir suffisamment expérimenté pour savoir exactement à quoi ressemblerait votre prochaine ligne de code, avant même de l'écrire ?

47voto

Andrew Hare Points 159332

La vitesse à laquelle vous pouvez vous souvenir rapidement de la syntaxe du langage, des fonctions courantes des bibliothèques et des modèles de meilleures pratiques est directement proportionnelle au temps que vous passez à les utiliser.

En d'autres termes, vous serez de plus en plus rapide au fur et à mesure que vous le ferez.

32voto

John Dibling Points 56814

Je suis programmeur C++ depuis 20 ans. Il m'a fallu tout ce temps pour arriver à ce niveau d'expertise. Je suis principalement un programmeur Windows, et je garde les site web msdn sur un de mes moniteurs tout le temps.

Peu importe depuis combien de temps vous le faites. Vous ne saurez jamais tout de mémoire. Ne vous inquiétez pas.

22voto

Donal Boyle Points 1518

J'ai programmé pendant près de la moitié de ma vie et je n'arrive toujours pas à me souvenir de la syntaxe simple, sans parler de pans entiers de code pour des tâches plus complexes. Si vous voulez mon avis, c'est à cela que servent les livres de référence et Google.

Une compétence bien plus importante à avoir est la connaissance générale de la programmation dans n'importe quel langage, c'est-à-dire la récursion, les boucles, la conception orientée objet, le travail avec les API, la gestion des erreurs, etc... Une fois que vous avez acquis toutes ces connaissances, vous pouvez les appliquer à n'importe quel langage et à n'importe quelle plate-forme.

14voto

SyntaxT3rr0r Points 10771

Je peux vous dire qu'après 25 ans, il y a des lignes de code dont je ne sais pas exactement à quoi elles vont ressembler.

Vous voulez un exemple ? Je programme en Java depuis le siècle dernier et je peux honnêtement encore faire une erreur si je tape hashcode() o hashCode() .

Pourquoi ? Parce qu'en fait en tapant une telle méthode s'appeler soi-même est tellement dernier siècle. Votre intention est de remplacer la méthode hashCode() de sorte que vous utilisez la programmation par intention.

Tu as frappé Ctrl-O puis h et vous obtenez une liste des méthodes commençant par un 'h' que vous pouvez remplacer. Ensuite, vous cliquez sur entrez . En prime, le "@Override" est également inséré pour vous.

4 touches. 4, pour obtenir ça :

@Override
    public int hashCode() {

    }

Et honnêtement, que hashCode prenne un 'c' majuscule ou non... Je ne pourrais pas m'en soucier moins. Ce n'est pas le but d'un hashcode et mon intention n'est pas de connaître toutes les incohérences que les langages et les concepteurs d'API ont inventé. Mon intention est de surcharger la méthode qui renvoie le hashcode d'un objet et mon IDE (moderne) me permet d'obtenir ce squelette en quatre les pressions sur les touches, y compris la frappe entrez .

Autre exemple : il y a des gens qui tapent vraiment ce genre de choses un nombre incalculable de fois par jour :

for (int i = 0; i < ; i++) {

}

ou les plus délicats :

for (int i = ; i >= 0; i--) {

}

Notez que dans ce dernier cas, je peux toujours vous vous trompez et tapez "i++" au lieu de "i--". (un "thinko" comme on l'appelle).

Mais je ne m'en soucie pas du tout, parce que je tape "fi<tab>" (trois clés) et j'obtiens la première ou "fir<tab>" (quatre touches, "for i (in) reverse") et j'obtiens le deuxième. Vous ne battrez pas ça (surtout vu que je suis une dactylo tactile donc je tape ces trois ou quatre touches rapide ). En plus de la rapidité, en bonus, l'autocomplétion ne vous gâchera pas "i--".

Dans de nombreux cas, je ne sais pas exactement quelle ligne je vais obtenir : bien sûr, je la connais "plus ou moins" et c'est exactement ce qu'il faut faire.

7voto

JohnFx Points 23761

Ne vous inquiétez pas trop. Comme d'autres l'ont mentionné, il devient de plus en plus facile d'écrire du code sans avoir à rechercher des informations au fur et à mesure que vous travaillez avec un langage particulier.

CEPENDANT, Il y a quelques raisons pour lesquelles même les programmeurs chevronnés se retrouvent à utiliser constamment du matériel de référence :

(1) Contrairement à ce qui se passait autrefois, la plupart des projets nécessitent aujourd'hui l'utilisation de plusieurs langues pour être menés à bien. Par exemple, un seul projet de site Web peut nécessiter l'utilisation de C#, XML, JavaScript, SQL, HTML, XHTML, RegEx et CSS, le tout dans le même projet. Passer d'un langage à l'autre peut parfois vous déconcerter, car beaucoup d'entre eux sont suffisamment similaires pour être familiers, mais suffisamment différents pour vous faire oublier les différences subtiles de syntaxe.

(2) Au moment où vous commencez à croire que vous connaissez parfaitement une langue, le fournisseur sort une nouvelle mise à jour qui modifie tout ce que vous saviez à son sujet. Par exemple ASP->ASP.NET.

Je recherche encore assez fréquemment des choses simples et cela fait presque 20 ans que je fais ce métier. L'important est que vous compreniez les concepts et les principes sous-jacents.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X