13 étapes puor devenir qualifiés à l'apprentissage des langages de programmation

L'apprentissage des langages de programmation plus devient progressivement plus facile si vous connaissez les langages de programmation plus. Autrement dit, il devient plus facile et facile à apprendre de nouvelles langues, chaque fois que vous apprenez une nouvelle langue. Vous pouvez accélérer ce processus par l'apprentissage des différents types de langage.

  1. 1 Savoir quelque chose sur les algorithmes et structures de données. Tous les langages de programmation dans le monde ne vous bien bon si vous ne savez pas rien sur les structures de données et algorithmes. Ce sont des outils qui transcendant la langue, la plate-forme et vous apprendrez des outils de développement. Il est utile de savoir sur le tri, par exemple, même si vous aurez probablement des routines de la bibliothèque de faire le tri réel pour vous dans la plupart des langues.
    • Connaissant une base logique, mathématiques et la linguistique aussi, mais pas indispensable.
  2. 2
    Connaître les différents types de langue.
    • Connaître la différence entre un langage de script et une langue de systèmes. Ceci utilisé pour être plus importante qu'il est maintenant : beaucoup de gens utilisent les langages de script comme Python, Ruby et JavaScript (ECMAScript) pour les systèmes plus grands et plus complexes, tandis que la plate-forme API deviennent disponibles dans une variété de langues.
    • Connaître la différence entre les systèmes de types. Ce qui à savoir avant de débattre Type systèmes explique ce bien.
    • Connaître la différence entre la pile et de la programmation de tas.
    • Connaître la différence entre passer par valeur et passer par référence.
    • Connaître la différence entre la programmation structurée, orientée objet, fonctionnelle et procédurale. Une langue donnée habituellement mettra l'accent sur l'un d'eux, mais certains les mélangent.
    • Connaître la différence entre l'exécution du code compilé, code interprété, juste-à-temps compilé le code et le code sur une machine virtuelle. Ils ont des caractéristiques différentes et permettent ou exigent différents styles de programmation. Savoir quand utiliser une machine virtuelle et le moment d'exécuter du code natif d'architecture de la machine peut signifier la différence entre la réussite et l'échec d'un projet.
  3. 3
    Essayez les langues qui vous permettent d'utiliser des caractéristiques différentes et des styles de programmation.
    • Vous trouverez souvent que pour un style particulier de programmation, il y aura une langue très pure, mais assez peu pratique qui peut être utilisée pour apprendre ce style de programmation, puis une langue beaucoup plus pratique que vous pouvez utiliser dans la vie quotidienne. Mieux à l'apprentissage des langages de programmation, il convient de certaines de ces langues (recherche) pure d'apprentissage qu'ils aideront quand l'apprentissage des langues pratiques plus rapidement.
    • À titre d'exemple pour la programmation orientée objet, essayez d'apprentissage Smalltalk. Vous ne pourrez construire beaucoup en elle, mais c'était un des premiers langages de programmation orientée objet. Ruby conserve certains de l'héritage de Smalltalk, tout en étant un langage plus pratique que vous pouvez utiliser une grande variété de tâches de programmes. Java, c# et C++ sont des langages de haut niveau avec le soutien de programmation orientée objet.
    • Pour les langages qui utilisent les interfaces, essayez de Java, C# ou C++. Python, C++ et beaucoup d'autres langues permet l'héritage multiple, tandis que Scala utilise « caractères », une combinaison intéressante d'interfaces, héritage multiple et résumés.
    • Prototype de base object-oriented programming, en apprendre JavaScript (ECMAScript). JavaScript n'a pas les classes : au lieu de cela il a des prototypes. Self est la langue d'origine qui a commencé la programmation axée sur le prototype, et ActionScript, Lua et REBOL peuvent être utilisé pour ce genre de programmation.
    • Pour la programmation fonctionnelle, envisager l'apprentissage OCaml ou Haskell. Ce sont des langages de programmation fonctionnelle typé statiquement. Pour les langages fonctionnels un peu plus pratiques, considérer la Scala (sur la Machine virtuelle Java) ou F # (sur.NET).
    • Si vous voulez essayer un langage de programmation très dynamique, essayez Ruby, Python, Perl ou Lisp. Les systèmes de type de ces langues sont très différents d'un langage tel que Java ou c. Il est utile de tenter ces sortes de langues pour voir le genre de choses que vous devez faire pour code autour de ne pas avoir ce genre de système de type – unité de tests, techniques de métaprogrammation, tapant et ainsi de suite.
    • Essayez le domaine des langues, ce sont des langues construites à des fins très spécifiques, ou abstraction du langage construit au dessus d'un langage existant pour exprimer un ensemble spécifique de fonctionnalité. Certains d'entre eux sont plus SQL, XSLT, FreeMarker, ASP.net, c# LINQ, Scripts Shell, YACC, AWK, SED et des centaines. Ruby et Scala peuvent être utilisé pour créer le domaine des langues spécifiques. Notez que de nombreux langages spécifiques du domaine ne sont pas Turing Complete.
  4. 4
    En savoir plus sur les différentes approches de la simultanéité.
    • Simultanéité est un problème difficile dans le calcul, et plusieurs nouvelles langues offrent de nouvelles façons d'écrire les routines simultanées. Certaines de ces approches ne peuvent pas facilement être construit avec des bibliothèques et au lieu de cela nécessite le support de la langue elle-même.
    • Threading est le moyen le plus largement pris en charge de soutenir la concurrence, mais peut être très difficile à construire. Java, C++ et beaucoup d'autres langues en charge threading, tandis que certains langages comme Python et Ruby en charge uniquement des fils verts » plutôt que le véritable niveau de système de threading. Threading devient compliqué parce que tous les threads ont besoin d'accéder au même ensemble de données globales, qui peuvent conduire à des conditions de course et d'autres problèmes semblables. Ainsi, les autres approches ont été introduites...
    • Software transactional memory (STM) est la seule solution. Erlang et Clojure sont deux langues très différentes qui implémentent ceci.
    • Acteurs de la transmission de messages est une autre solution : Scala et Erlang valent regarde pour cela.
    • En Python et Ruby, jetez un oeil à Twisted et EventMachine qui fournissent des boucles de l'événement. Vous pouvez également regarder Node.js, un cadre de JavaScript (côté serveur) pour la construction des boucles de l'événement.
    • Co-routines sont une autre façon de résoudre les problèmes de concurrence : le Go de Google est une nouvelle langue systèmes statiquement typé, le type déduit destinée à être comme c en performance mais comme Python dans la syntaxe et la simplicité. Il utilise « goroutines », une mise en œuvre des co-routines. Une autre langue construite autour des co-routines est l'icône.
    • Files d'attente d'envoi sont une autre solution pour cela : sur Mac OS X 10.6 et supérieur, « Grand Central Dispatch » est un système de file d'attente, Apple ont créé pour C, C++ et objectif-c. La mise en oeuvre open source de GCD est disponible comme « libdispatch ». Il existe aussi une implémentation Java et Scala, appelée HawtDispatch.
  5. 5
    Lecture code. Une des meilleures façons d'apprendre une nouvelle langue et devenir qualifiés à l'apprentissage des langues est de lire le code. Il y a plein de code open source disponible, et une fois que vous avez lu le code de quelques applications, vous commencez à voir le bon et le mauvais code et développer le goût de ce que vous aimez et n'aimez pas, ainsi que comprendre pourquoi certains styles de programmation et les paradigmes sont bonnes pour différentes tâches.
  6. 6
    Trouver un projet tout d'abord il est généralement plus facile d'apprendre une nouvelle langue, s'il y a un projet spécifique ou dans un but à atteindre. Apprentissage d'une langue nouvelle en écrivant « Hello World » est beaucoup plus difficile et n'exercera pas les vraies capacités de langage.
  7. 7
    Isoler la différence entre la Bibliothèque et la langue il peut prêter à confusion dans certains langages de faire la distinction entre la « Bibliothèque » et la « langue ». Il peut aussi être la confusion entre « générateurs de code » et le « langage ». Quand l'apprentissage d'une langue nouvelle qui est semblable à celle déjà appris que c'est souvent le cas que présente l'apprentissage de la Bibliothèque et ses particularités est la plus grande tâche.
  8. 8
    Essayez différents outils. Certains langages de programmation sont conçus pour fonctionner avec des outils particuliers. Plusieurs langues peuvent être écrites avec juste un éditeur de texte comme Vim ou plus ou TextMate, mais travaillant en langage Lisp peut être rendue plus facile par à l'aide d'Emacs en raison de la prise en charge intégrée pour les environnements REPL. Lorsque vous travaillez en c# ou n'importe quel langage .net, Visual Studio ou MonoDevelop sont idéales. Lorsque vous travaillez en Java, il n'y a Eclipse, NetBeans, IntelliJ IDEA et beaucoup d'autres au choix. Même le choix de système d'exploitation et le système de contrôle de version peuvent changer la façon dont le code est écrit.
    • Ne laissez pas les outils de définir la programmation et ne laissez pas outil de commutation deviennent une obsession. L'apprentissage peut provenir d'essayer de nouveaux outils de pure curiosité. Souvent l'outil utilisé peut ralentir le processus et que cela ne devienne évident jusqu'à ce que par rapport à un nouvel outil. Cependant, changer les outils juste par souci de « progrès » peut réellement ralentir en raison de la courbe d'apprentissage, bugs ou simple incompatibilité avec les processus existants. Parfois de vieux outils compris sont mieux que brillants nouveaux outils choisis parce qu'ils sont à la mode.
  9. 9
    Apprendre dans la vraie vie. Coding dojos, conférences, BarCamps, hack jours, groupes d'utilisateurs et les camps de code sont d'excellents moyens d'apprendre. Ces groupes peuvent être utiles, même si fréquente que rarement, pour introduire de nouvelles idées et identifier les nouvelles méthodes de faire les choses. Il y a un avantage à être contesté dans un nouvel environnement.
  10. 10
    Apporter vos nouvelles langues à. Programmeurs professionnels peuvent trouver des occasions d'utiliser les nouvelles connaissances de langue programmation au travail. Essayez de ne pas devenir un évangéliste fou, mais les possibilités spots où autres langues peuvent résoudre le problème mieux. Cependant, fonctionnements d'une langue dans un projet où il ne tient pas seulement par souci d'à l'aide d'une nouvelle langue est une recette pour l'échec. Avoir plus d'outils dans la boîte à outils toujours offre plus de possibilités et de souplesse.
    • Par exemple, alors qu'il travaillait sur un projet Java au travail, être capable d'utiliser des moyens rubis scripts de compilation peuvent être écrites en Buildr et bibliothèques existantes de test peuvent être utilisés pour écrire le code de test (test/ruby, shoulda, RSpec etc.) et s'exécuter avec l'application Java à l'aide de JRuby.
    • Les langages de script peuvent toujours être incorporés dans des applications existantes afin de permettre de script pour le code dynamique, généré ou de liaison tardive. Ruby, Python, JavaScript, XSLT et Lua sont tous de bons candidats.
    • Éditeur de plug-ins, crochets de contrôle de version et ainsi de suite peuvent souvent être écrit plus rapidement dans une langue légère et souvent faiblement typée, comme JavaScript, Perl ou Ruby qu'elle peut en Java ou c.
    • Si vous devez écrire un frontal pour une application simple, essayez d'utiliser un langage de script comme IronPython ou MacRuby.
    • Si vous avez besoin d'écrire un complexe back-end pour une application de haute performance, retirer l'une des langues qui vous donne une meilleure prise en charge de simultanéité : Erlang, Scala, Clojure et ainsi de suite.
    • Attention : pas de toutes les entreprises apprécieront le vous se faufilent dans les langages de programmation non approuvés. Et si tout va mal, vous allez être celui qui obtient le reprocher !
  11. 11
    Contribuer à ouvrir source. Si vous ne peut pas furtivement vos nouveaux langages de programmation dans le travail, vous pouvez toujours travailler sur des projets open source. Il y a de nombreux fun demandes sera construit à n'importe quelle plateforme (Linux, Windows, Mac, etc.) ainsi que les outils de ligne de commande, les bibliothèques, les fonctionnalités de langage ou même une nouvelle langue. Un projet open source peut être un substitut grand si un projet personnalisé est introuvable lorsque vous essayez d'apprendre une nouvelle langue.
  12. 12
    Apprendre de nouveaux trucs de langage de programmation non. Apprendre une nouvelle base de données chaque année, ou une nouvelle API. Ou encore mieux, apprendre des compétences hors programmation. Cuisson, musical instruments et la photographie sont toujours populaires dans les cercles de geek. Une donne sport ou activité vous le temps de penser et d'idées sur la programmation de laisser percoler. C'est tout aussi important.
  13. 13
    Un nouveau langage chaque année? Le livre de programmeurs pragmatiques suggère que vous devez apprendre un nouveau langage de programmation chaque année. Chaque année pourrait être trop souvent, mais essayez de s'engager à l'apprentissage de nouvelles langues périodiquement et de suivre les derniers développements. Même si vous ne finissent par en utilisant les langues de travail, ou ouvrez la source ou projets personnels, les savoir encore vous rend les deux plus utiles pour l'emploi et devraient vous donner également une satisfaction personnelle.

Enregistrer un commentaire

Plus récente Plus ancienne