it-swarm-fr.com

Que dois-je faire pour être un langage-agnostique?

À présent, je travaille avec ASP.NET et C #. J'ai fait un travail décent dans Java aussi. Je planifie ma carrière de telle manière que je devrais être un jour de langue-agnostique. Quelles sont les choses que j'ai besoin d'apprendre?

Premier serait OOP paradigmes comme son parle de la conception de la classe. Y a-t-il d'autres?

52
Gopi

Pour être un langage agnostique, vous devez avoir une expérience dans tous les styles et types de langues courants.

  • An impératif Langue (vous le direz quoi faire, étape par étape. EG - C)
  • A déclaratif Langue (vous dites-lui votre objectif, il chiffre quoi faire. Par exemple - SQL/HTML/prolog)

Aussi:

  • A fonctionnel Langue (les fonctions sont essentielles, en évitant les effets de l'état et du côté sont les objectifs. Par exemple - HASKELL/OCAML/LISP/F #)
  • An orienté objet Langue (architecture où les objets encapsulent des données connexes et les méthodes qui agissent sur eux). Par exemple - Java/C #)

Quelques styles de frappe:

  • A typée statiquement Langue (types de données sont définis et vérifiés à l'heure de la compilation. EG - C #)
  • A dactylographié dynamiquement Langue (types de données sont vérifiés au moment de l'exécution. Par exemple - Python/JavaScript)
    Expérience de fort vs. faible Typage est également utile.

Quelques styles d'exécution différents:

Stuff de niveau inférieur:

  • Quelque chose de niveau assez bas (par exemple - C)
  • Quelques dialectes de Assemblage (par exemple - nasm)

En plus de cela, je dirais que vous avez besoin d'expérience de certains Programmation simultanée et quelque chose Événement motivé . Vous devriez probablement aussi vous assurer de savoir quelque chose sur les différents domaines tels que la programmation Web (client et serveur), le développement de clients riches/desktop, les jeux. Vous voudrez peut-être également en savoir plus sur la programmation intégrée ou le 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é que cela vaut la peine d'avoir une expérience de programmation générique et Programmation Meta META Approches.

Lorsque vous apprenez ces paradigmes, évitez d'apprendre la syntaxe et l'écriture dans votre ancien style. J'ai vu de nombreux devs C # Écrivez JavaScript comme si elle est statiquement dactylographiée. Ne faites pas cela, essayez d'apprendre les paradigmes de la langue et de les embrasser.

Si vous avez fait tout cela, les différences entre les langues deviendront largement syntaxiques afin de devenir un exercice assez simple d'apprendre une nouvelle syntaxe.

N'oubliez pas que cette programmation moderne dépend presque toujours d'un cadre, alors vous familiariser avec les cadres communs et populaires de chaque langue que vous apprenez est également essentiel. Connaître C # n'est pas pertinent sans .NET.

67
Simon P Stevens

Je ne pense pas que vous puissiez devenir une langue véritablement agnostique. Je trouve que je "pense" dans ma langue actuelle (pour le moment C #).

Cependant, après avoir dit que, je pense que vous pourriez être capable de séparer la conception du code en essayant de penser au pseudo code plutôt que dans une langue spécifique et en l'écrivant en réalité dans ce format. Cela pourrait vous aider à vous concentrer sur les décisions de conception et d'architecture plutôt que de la mise en œuvre de votre langue actuelle. L'inconvénient avec celui-ci - Comme Simon souligne - est que la langue et le cadre que vous utilisez finalement influenceront inévitablement la conception. Ainsi, lorsque votre conception se développe, elle deviendra de plus en plus liée à la langue et au cadre.

4
ChrisF

Lire votre question et certaines des réponses que vous pouvez avoir l'impression que vous avez égal à "l'agnosticisme linguistique" avec "connaissant tous les paradigmes sur la terre".

Je ne sais pas si vous connaissez chaque paradigme qui existe ou connaissant une gamme assortie de langues, couvrant plusieurs paradigmes et types de langues vous rend "agnostic linguistique".

C'est comme dire qu'avoir pratiqué toutes les religions se rendent religieusement agnostique.

Je pense qu'une personne agneuse agnostique concernant les langages de programmation devrait être une personne qui ne sait pas comment programmer dans une langue ou ne se soucie pas de quelle langue il/elle est invitée à programmer.

Cela dit, certaines personnes disent qu'un véritable programmeur peut programmer dans n'importe quelle langue donnée à l'accès à la documentation de cette langue.

Si c'est ce que vous entendez par "langage agnostique", presque tout programmeur expérimenté peut programmer dans n'importe quelle langue qu'il/elle est obligée de travailler avec, étant donné l'accès à la documentation linguistique.

Peut-être que vous voulez être "polythéiste de langue".

Je suis moi-même compétent dans plusieurs paradigmes de langue, mais je préférerais OOP quand il aplie. Donc, je suppose que je ne suis pas agnostique.

Vous ne trouverez à peine quiconque qui ne préfère pas un certain paradigme ou une langue donnée à la liberté de choisir.

3
Tulains Córdova

Ce n'est pas seulement les langues, Java = il a tant de modes différents que vous pourriez passer des années que vous pouvez simplement les apprendre tout. Vous pouvez apprendre:

  • J2ee fonctionne comme la messagerie et la persistance et les différents serveurs
  • boîtiers à outils orientés JSP et Apache
  • ant, maven et autres systèmes de construction (langues elles-mêmes).
  • Tout le monde Groovy/Grails
  • toutes les API Apache Commons API
  • systèmes de test (moqueur, junit)
  • Constructeurs d'interface graphique comme Swing, GWT ...

Et cent choses qui me manquent - juste au sein de Java.

Si vous passez des années à couvrir la largeur (apprendre chaque langue), vous aurez du mal à gagner de la profondeur pour travailler efficacement dans l'une d'elles.

Je ne dis pas que l'apprentissage d'une nouvelle langue est toujours un problème, vous le ferez activement! J'essaie de choisir mon prochain emploi en fonction de ce que je peux apprendre (ce que je n'ai pas encore fait), mais je ne choisis pas souvent de langue aléatoire et que je l'apprends plus - la dernière fois que j'ai essayé avec =Scala et je suis parti un peu humilié ...

0
Bill K