Comment apprenez-vous le framework / API / fonctionnalité standard d'un langage? [fermé]


14

Je comprends comment coder. Je sais contourner les bases des langues que j'utilise régulièrement. Je sais comment écrire des expressions régulières légèrement supérieures à la base, je peux parler aux bases de données, je peux accepter des entrées, des sorties d'impression, gérer des fichiers, etc. Je suis plus ou moins assuré de ma capacité de base à cracher le code source de programme modérément complexe.

Mon problème est que je n'ai jamais l'impression que c'est suffisant. J'ai l'impression que je ne connais qu'une petite partie de la bibliothèque standard de ma langue, et que jusqu'à ce que je comprenne tout, du moins en passant, je n'ai même pas le droit d'essayer d'obtenir un emploi en l'utilisant. Je viens juste de quitter le collège (communautaire / junior / whathaveyou), et mes amis obtiennent des emplois dans l'industrie, mais je me sens toujours comme un faux ou un poseur et je ne suis tout simplement pas assez bon.

Existe-t-il un marqueur décent pour «j'en sais assez» que je pourrais utiliser pour m'assurer que je peux coder? Dois-je prendre le fait que je suis au moins capable de coder un FizzBuzz comme un indicateur que c'est bien de postuler pour des choses? Comment puis-je en savoir plus facilement sur ces bibliothèques, frameworks et / ou API standard? Je code régulièrement, je lis des livres, mais mes connaissances me semblent encore superficielles.

AIDEZ-MOI!


3
plus vous en apprenez, plus vous vous rendez compte du peu que vous en savez. +1 pour une très bonne question.
devnull

Je ne suis pas sûr que ces trucs méritent d'être mémorisés. Après tout, vous disposez d'une documentation consultable, d'IDE intelligents, etc. Il est préférable d'utiliser votre cerveau pour des choses importantes, pour des connaissances fondamentales, en gardant toutes ces API volatiles à l'extérieur.
SK-logic

I feel like I only know a small portion of the standard library of my languagecette phrase devrait être la devise officielle de C ++ .
ZJR

Réponses:


8

Mon copain de recommandation:

arrêter de penser binaire (0/1, ne pas savoir / savoir, analphabète / alphabétisé) et commencer à penser flou (je sais dans une certaine mesure). Nous savons tous quelque chose et dans une certaine mesure. La connaissance est un continuum et chacun est placé quelque part entre la personne la plus analphabète et le gars le plus compétent et sophistiqué. Vous pouvez faire le travail, mais à votre niveau et en dessous . Telle est la règle. N'ayez pas peur. N'attendez pas un jour où vous aurez tout appris de votre cadre, et à mon humble avis, ce jour ne viendra jamais. Même les développeurs de 20 ans d'expérience lisent encore pour apprendre de nouvelles choses. La programmation est si vaste que vous ne devriez pas (ou ne pouvez pas) tout saisir.

Plongez dans l'environnement de travail et n'ayez pas peur. Nous avons tous eu des jours où nous ne pouvions pas faire quelque chose. Ce n'est pas un crime. Cela fait partie de notre travail. Vous ne savez pas, vous apprenez, vous essayez de faire le travail et vous le faites.

Je pense que ce que vous devez avoir maintenant, ce n'est pas plus de connaissances. C'est simplement de la confiance en soi.

Bonne chance


Je comprends que ce sont toutes des connaissances floues et un apprentissage JIT des détails. Je ne sais tout simplement pas comment m'assurer que j'ai même une compréhension floue des bases. Je crains de manquer complètement des choses vraiment importantes.
Throwaway

2

Je pense que vous posez la mauvaise question ici, et si vous me permettez un peu de psychologie injustifiée, je pense que c'est parce que vous êtes en proie à un peu de doute de soi et une faible confiance en soi.

Arrêtez de vous comparer largement aux autres

Tout d'abord, vous ne pouvez pas vous comparer globalement à d'autres programmeurs. Même les stars du rock auxquelles vous pouvez vous adresser en ce moment ont probablement des problèmes (négligence, encore une autre façon de faire les choses et problèmes d'attitude), alors ne vous inquiétez pas si vous vous comparez à elles. Au lieu de cela, votre approche devrait être d'acquérir autant de mentors que possible, de glaner toutes les connaissances possibles et de devenir meilleur en observant et en imitant des experts.

Apprendre pour apprendre

De plus, la meilleure approche pour devenir un meilleur programmeur et apprenant en général n'est pas d'apprendre des choses spécifiques ou de comprendre par la mémoire. OMI, la mémorisation par cœur est la forme d'apprentissage la plus basse. C'est comme un programme qui manque l'étape cruciale de "traitement" de Input-> Process-> Output. Enseignez-vous des concepts comme ceux que vous avez mentionnés dans votre question. Une large compréhension de la programmation est l'endroit où vous offrez le plus de valeur. Apprendre une nouvelle langue dans des paradigmes que vous connaissez est un jeu d'enfant par rapport à apprendre à résoudre des problèmes.

Et maintenant, pour quelques mauvais conseils de quelqu'un un peu plus âgé que vous

L'une des plus grandes erreurs que j'ai commises en tant que jeune homme était que je prenais les décisions de tous les autres pour eux en supposant que je n'étais pas assez bon, et que mon temps et mon talent ne valaient pas leur temps et leur argent. Je sous-estime constamment mes capacités et mon talent, si rares qu'ils aient pu être à l'époque. C'était une énorme erreur.

Ce que vous devez comprendre, c'est que même un programmeur modérément décent semble être un assistant pour joe moyen quotidien. Ils peuvent vous détester, ils peuvent en avoir assez de devoir toujours demander à un nerd local comment allumer leur ordinateur, mais parce qu'ils manquent de perspicacité et de compréhension de ce que vous faites, aussi banal et simple que cela vous semble, c'est impossible pour eux.

Les gens vous paieront votre temps, votre talent et votre énergie. Il y a suffisamment de programmeurs absolument terribles dans notre industrie qui tuent simplement parce qu'ils peuvent s'asseoir sur un siège et (sans doute) écrire des programmes de base. Jouez vos cartes correctement en développant une certaine confiance en vous par la réalisation, pratiquez votre langage et votre langage corporel, continuez à maîtriser votre art en recherchant toujours des choses que vous ne savez pas, et courez vers ces choses pour rechercher plus de compréhension, et enfin: arrêtez de minimiser les compétences que vous avez développées.


2

«J'en sais assez» et «je suis bon pour ce travail» sont complètement différents.

IMO "Je suis bon pour ce travail" est plus proche de "Je connais les bases et je sais - quoi apprendre / où chercher / à qui demander / quoi lire - pour terminer mes tâches".

(cela ne signifie pas qu'ils vous embaucheront si vous avez besoin de 1-2 mois pour apprendre par exemple: écrire / lire dans des fichiers XML. J'espère que vous comprenez ce que je veux dire.)

De plus, je pense qu'aucun programmeur ne dirait jamais «j'en sais assez». (peut-être "assez pour obtenir le travail", "assez pour être riche", "assez pour ...", mais pas "assez" :))

EDIT: Quand je dis «basiques», je veux dire

  1. Bases de la programmation (bit, octet, variables, fonctions, paramètres, boucles, conditions, récursivité)
  2. Notions de base du langage de programmation avec lequel vous travaillerez (comment compiler un programme, comment déboguer un programme; comment utiliser l'IDE; 90% des mots-clés et savoir ce qu'ils font, quand les utiliser, comment les utiliser; variable types; comment utiliser les choses de 1 dans la langue; bibliothèques les plus utiles; gestion des erreurs)
  3. "Connectez 1 et 2 avec votre sang" :)

(Vous devrez peut-être utiliser 2-3 langues dans votre travail)

Je suis d'accord avec Saeed, plongez dans le travail, travailler est la meilleure façon d'apprendre des choses, vous travaillez avec des gens qui en savent plus que vous, vous apprenez d'eux, voyez comment ils fonctionnent, mais ils ont commencé comme vous (ou peut-être qu'ils ont commencé avec moins de connaissances que vous en avez actuellement).


Cela ne me prendrait pas un mois pour lire et écrire des fichiers XML, même si je pense toujours que cela me prendrait probablement un jour. Pouvez-vous élaborer sur "les bases"? C'est le principal objectif de ma question, car je ne sais pas si je connais les bases. Je connais certainement certaines bases, mais je crains vraiment de manquer des lacunes vraiment fondamentales.
Throwaway

1

Vous avez une super attitude! L'un des facteurs fondamentaux pour réussir est de ne jamais faire preuve de complaisance. Ne vous contentez jamais. Ne vous compromettez jamais. Cela dit, il est très difficile de discerner comment faire exactement cela (par exemple, connaître la «meilleure pratique» pour effectuer la tâche X n'est pas aussi simple que de la rechercher sur Google car tout le monde a sa propre opinion).

Il est préférable d'apprendre à identifier le bon code et la raison d'être ( comment et pourquoi ). Pour cela, je vous recommande de lire des blogs de professionnels réputés dans notre domaine, car cela vous exposera au type de mentalité à rechercher. Contribuer à un projet open-source est aussi une façon de sauter dans le grand bain, cependant, il vous donnera l'occasion d'apprendre des autres comme actuellement progresse.


Merci. Je ne pense pas avoir réalisé à quel point j'avais besoin d'entendre de tels éloges.
Throwaway

0

Je pense que la plupart d'entre nous ont été dans cette situation à un moment ou à un autre de leur carrière. Et chaque fois que vous choisissez une nouvelle langue, tout recommence. Donc, le premier conseil de ma part serait: Ne désespérez pas, vous n'êtes pas seul. Et: vous êtes probablement meilleur que vous ne le pensez, ne serait-ce que pour le fait que vous réfléchissez vous-même. Rappelez-vous le vieil adage: les imbéciles se précipitent là où les anges ont peur de marcher.

De nos jours, la plupart des langues ont des bibliothèques standard qui sont tout simplement trop grandes pour qu'un seul individu puisse les connaître par cœur. Ajoutez des cadres et des API par-dessus, et vous ne pourrez peut-être pas tout savoir. Le mieux que vous puissiez faire est de connaître les bases puis de savoir où en savoir plus. L'expérience s'améliore, donc le meilleur conseil est probablement: allez-y et utilisez-le!

Il n'y a pas de marqueur "décent" unique. Tout dépend de l'environnement. Ce qui serait parfaitement suffisant pour une entreprise / un projet, peut être loin pour une autre. Si vous pouvez vraiment faire ce que vous dites, je vous classerais un junior plutôt décent et vous ne devriez avoir aucun mal à trouver un travail décent.


[Copier / Coller de mon commentaire sur le commentaire de @ e-MEE ci-dessus] Cela ne me prendrait pas un mois pour lire et écrire des fichiers XML, même si je pense toujours que cela me prendrait probablement un jour. Pouvez-vous élaborer sur "les bases"? C'est le principal objectif de ma question, car je ne sais pas si je connais les bases. Je connais certainement certaines bases, mais je crains vraiment de manquer des lacunes vraiment fondamentales.
Throwaway

0

Sur la base de ce que vous écrivez dans votre question, vous pouvez réellement coder et vous êtes prêt à améliorer vos compétences et vos connaissances.

Tout le monde, dans chaque travail, doit commencer peu, en tant que débutant, puis grandir avec l'expérience.

La vitesse à laquelle votre croissance dépend de vous, tout le monde grandit à des vitesses différentes, la seule chose importante est que vous ne demandez pas trop à vous-même maintenant.

Si vous sentez que vous ne comprenez pas encore quelque chose, ne vous inquiétez pas. Bientôt, vous pourrez obtenir l'image.

Vous voudrez peut-être commencer à travailler dans l'industrie dès que possible. Puisque vous pouvez déjà coder, vous pouvez déjà commencer à travailler. C'est parce que la théorie n'est pas assez bonne, vous avez besoin de pratique et de problèmes réels pour les résoudre.

Quant aux problèmes de connaissance du code de votre bibliothèque, ils viendront avec le temps, tant que vous continuez à l'étudier, à lire la documentation et à vous entraîner à l'utiliser. Des sites comme celui-ci sont également très utiles et vous apprendrez plus rapidement si vous posez et répondez activement à des questions connexes.

Un conseil personnalisé: si vous voulez vraiment vous démarquer des nombreuses personnes qui font du code spaghetti, se faisant appeler programmeurs, apprenez les meilleures pratiques. Peu importe la langue ou la bibliothèque avec laquelle vous apprenez ou codez, découvrez les meilleures pratiques. Cela vous fera gagner beaucoup de temps, des bugs, des problèmes, des maux de tête et vous aidera à vous sentir mieux programmeur.

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.