Je travaille maintenant avec asp.net et C #. J'ai également fait un travail décent en Java. Je planifie ma carrière de telle manière que je devrais être un jour agnostique envers les langues. Quelles sont les choses que j'ai besoin d'apprendre?
Premièrement, les paradigmes de la POO car ils parlent de la conception de la classe. Y en a-t-il d'autres?
Réponses:
Pour être agnostique, vous devez avoir une expérience de tous les styles et types de langages courants.
Aussi:
Quelques styles de frappe:
expérience du typage fort par opposition au typage faible est également utile.
Quelques styles d'exécution différents:
Trucs de niveau inférieur:
En plus de cela, je dirais que vous avez besoin d’expérience de la programmation concurrente et de quelque chose d’ événementiel . Vous devriez probablement aussi vous assurer de connaître les différents domaines tels que la programmation Web (client et serveur), le développement de client enrichi / le bureau, les jeux. Vous voudrez peut-être aussi en savoir plus sur la programmation intégrée ou sur du matériel dédié (comme les consoles de jeux), et le développement mobile devient un domaine de plus en plus pertinent.
D'autres ont également mentionné qu'il valait la peine de se familiariser avec les approches de programmation générique et de méta-programmation .
Lorsque vous apprenez ces paradigmes, évitez simplement d’apprendre la syntaxe et d’écrire dans votre ancien style. J'ai vu de nombreux développeurs C # écrire du code JavaScript comme s'il était typé de manière statique. Ne faites pas cela, essayez d'apprendre les paradigmes de la langue et de les adopter.
Si vous avez fait tout cela, les différences entre les langues deviendront en grande partie syntaxiques et le changement deviendra un exercice assez simple d'apprentissage d'une nouvelle syntaxe.
N'oubliez pas cependant que la programmation moderne dépend presque toujours d'un cadre, il est donc également essentiel de se familiariser avec les cadres communs et populaires de chaque langue que vous apprenez. Connaître C # n'est pas pertinent sans .net.
la source
Je ne pense pas que vous puissiez devenir vraiment agnostique envers les langues. Je trouve que je "pense" dans mon langage courant (en ce moment C #).
Cependant, cela dit, je pense que vous pourrez peut-être séparer la conception du code en essayant de penser en pseudo-code plutôt qu'en un langage spécifique et de l'écrire dans ce format. Cela pourrait vous aider à vous concentrer sur les décisions de conception et d'architecture plutôt que sur la mise en œuvre dans votre langage actuel. Comme le souligne Simon, l'inconvénient, c'est que le langage et le cadre que vous utilisez en fin de compte vont inévitablement influencer la conception. Ainsi, à mesure que votre conception évoluera, elle deviendra de plus en plus liée au langage et au cadre.
la source
En lisant votre question et certaines des réponses, vous pouvez avoir l’impression que vous égalez "agnosticisme linguistique" avec "connaître tous les paradigmes de la planète".
Je ne sais pas si connaître tous les paradigmes existants ou connaître une gamme de langues variée, couvrant plusieurs paradigmes et types de langues, vous rend "agnostique des langues".
C'est comme dire qu'avoir pratiqué toutes les religions vous rend agnostique sur le plan religieux.
Je pense qu'une personne agnostique en matière de langages de programmation devrait être quelqu'un qui ne sait pas programmer dans une langue du tout ou qui ne se soucie pas de la langue dans laquelle on lui demande de programmer.
Cela dit, certaines personnes disent qu'un vrai programmeur peut programmer dans n'importe quelle langue avec un accès à la documentation de cette langue.
Si c'est ce que vous entendez par "langue agnostique", alors presque tout programmeur expérimenté peut programmer dans n'importe quelle langue avec laquelle il / elle est contraint de travailler, en ayant accès à la documentation linguistique.
Peut-être que vous voulez être un "langage polythéiste".
Je suis moi-même compétent dans plusieurs paradigmes linguistiques, mais je préférerais la programmation orientée objet quand cela s’applique. Donc je suppose que je ne suis pas agnostique.
Vous trouverez difficilement quelqu'un qui ne préfère pas un paradigme ou une langue donnée, mais qui a la liberté de choisir.
la source
Il n’ya pas que les langues, Java en soi a tellement de modes différents que vous pourriez passer des années à les apprendre tous. Vous pourriez apprendre:
Et cent choses me manquent - JUST in java.
Si vous passez des années à couvrir toutes les langues (apprendre toutes les langues), vous aurez du mal à acquérir la profondeur nécessaire pour travailler efficacement dans l’une d’elles.
Je ne dis pas qu'apprendre une nouvelle langue est un problème, vous devriez le faire activement! J'essaie de choisir mon prochain travail en fonction de ce que je peux apprendre (ce que je n'ai pas encore fait), mais je ne choisis pas souvent une langue au hasard et ne l'apprends plus - La dernière fois que j'ai essayé, c'était avec Scala et moi laissé un peu humble ...
la source