Mahamadou Kanté

Apprendre À Programmer

06 Mar 2017

[ ]

Introduction à la programmation

Liste de ressources pour les développeurs en herbe

Sommaire

Introduction

Objectifs

La programmation et l’informatique sont de plus en plus populaires que jamais - des initiatives comme Une heure de code rendent l’apprentissage de la programmation plus populaire à travers le monde.

En conséquence, il ya un nombre de plus en plus important de ressources et de tutoriels produites pour les débutants qui veulent apprendre à coder, allant des livres aux tutoriels en ligne aux sites Web interactifs aux cours en ligne massifs ouverts (MOOCS) comme Codecademy, Coursera et OpenClassrooms

Bien que cela soit merveilleux, il peut également être un problème pour les débutants - il ya presque trop de ressources disponibles, et il est difficile de savoir par où commencer.

Cette page est destinée à aider à résoudre ce problème - pour présenter une liste de ressources pour les personnes qui sont soit nouvelles à la programmation, nouvelles à un sujet particulier, ou veulent faire progresser leurs compétences au-delà du stade débutant. Cette page n’essaie pas de répertorier toutes les ressources disponibles, mais plutôt des liens vers des ressources qui sont garanties d’être de haute qualité.

Par où commencer?

Si vous savez ce que vous voulez apprendre, c’est génial! Commencez à parcourir les liens dans cette section et trouvez quelque chose qui fonctionne pour vous.

Si vous ne savez pas par où commencer et quelle language apprendre, quelques bons langages pour débutants sont:

  • Golang (Go tente de combiner la facilité de programmation d’un langage interprété, dynamiquement typé, avec l’efficacité et la sécurité d’un langage statiquement typé, compilé.)
  • Python (À usage général; Informatique scientifique et mathématique.)
  • Java (À usage général; Développement Android)
  • HTML/CSS/JavaScript (Sites web et Applications web)
  • Scratch (pour les enfants)

Python et Java sont les deux langages les plus utilisés pour enseigner la programmation aux débutants dans les écoles et les universités, et il existe une grande variété de ressources disponibles pour vous aider à apprendre. Ils sont aussi largement utilisés dans l’industrie qui font d’eux des langages utiles à connaître.

Le développement Web a été très populaire ces derniers temps, il y’a donc de nombreuses ressources pour l’apprentissage du HTML, CSS et JavaScript, ce qui rend également l’apprentissage plus simple et éfficace. Il nécessite peu ou pas d’installation et de configuration sur votre ordinateur. Tout ce dont vous avez besoin est un éditeur de texte pour écrire du code – le code sera exécuté sur votre navigateur Web.

Scratch est un peu différent des autres langages. Il a été conçu à dès la base pour être facile à utiliser et à apprendre – au lieu de taper du texte, vous faites glisser et connecter un ensemble “blocs” pour former des programmes, ce qui en fait un langage très visuel. En conséquence, Scratch est une bon langage surtout pour les enfants plus jeunes (élèves du primaire, collège) ou pour les gens qui n’aiment pas taper.

Comment cette page est organisée?

Cette page est subdivisée en trois parties: premièrement, une section “Ressources générales” qui relie des sites qui offrent des contenus de haute qualité sur une variété de sujets et une section “Ressources spécifiques” qui fournit des ressources sur des langages de programmation ou des sujets spécifiques.

En général, la plupart des ressources disponibles se situent entre deux catégories – les cours en ligne, et les livres + didacticiels(tutoriels). Les cours en ligne ont tendance à enseigner en utilisant des conférences vidéo, essayant d’être interactif, essayant d’imiter la structure d’un cours semblable à ceux que vous pourriez prendre au collège. En revanche, les livres et les didacticiels enseignent par écrit et vous permettent de définir votre propre rythme.

Quelle ressource dois-je choisir?

Que vous préfériez apprendre en regardant une vidéo ou en lisant du texte est vraiment une question de préférence personnelle. Moi personnellement, c’est le visuel, mais votre style d’apprentissage pourrait être complètement différent. Vous devrez peut-être explorer et parcourir plusieurs ressources différentes avant de découvrir comment vous apprenez le mieux.

De plus, vous constaterez que la plupart des liens, qu’il s’agisse de cours en ligne, de didacticiels ou de livres, ont tendance à se concentrer sur l’un ou l’autre des trois éléments suivants:

  1. Certaines ressources se concentrent sur la programmation, la sémantique ou la théorie de l’informatique – en d’autres termes, comment utiliser un langage de programmation pour écrire quelque chose qui fonctionne.
  2. D’autres ressources se concentreront plus sur le codage et la syntaxe – les détails particuliers et les règles sur le fonctionnement d’un langage de programmation.
  3. D’autres ressources se concentrent sur l’enseignement idioms – l’enseignement des meilleures pratiques spécifiques à ce langage, la philosophie sous-jacente de ce dernier, ou vous faire découvrir les différentes bibliothèques à votre disposition: l’écosystème large.

Si vous êtes nouveau dans la programmation, le premier modèle sera le meilleur. La programmation concerne la résolution de problèmes appliqués: être en mesure de prendre un problème, et le briser en petits et petits morceaux jusqu’à ce qu’ils soient assez petits pour traduction en code informatique. Simplement mémoriser une collection de règles ne sera pas très utile pour vous. Vous devez également apprendre à appliquer ces règles.

Toutefois, si vous savez déjà comment programmer, alors vous savez très probablement déjà comment faire. Dans ce cas, vous allez vouloir utiliser le deuxième type, car il sera plus facile d’apprendre les différences entre le langage que vous apprenez et celles que vous connaissez déjà.

Quand je dis qu’une ressource est “lourde en théorie” ou “rigide”, c’est qu’elle se penche vers la première catégorie. Quand je dis qu’une ressource “se concentre sur la syntaxe”, je veux dire qu’elle se penche vers la seconde. Et quand je dis une ressource “se concentre sur des idiomes” ou “sur des applications pratiques”, je veux dire qu’il se penche vers le troisième.

ATTENTION!

Cette page est toujours un travail en cours! Certaines sections peuvent actuellement être incomplètes, et certains liens peuvent ne pas encore être complètement vérifiés.

Ressources générales

Autres

Vous pouvez trouver une énorme Liste de livres de programmation gratuits et des ressources sur github. (C’était hébergé sur StackOverflow, mais a été déplacé vers Github en octobre 2013).

Vous pouvez également trouver une méta “liste des ressources de programmation” agrégateur ici: http://resrc.io/

Cours en ligne

Les cours en ligne sont des moyens de plus en plus populaire pour les universités et les professionnels d’enseigner la programmation et l’informatique dans un format structuré. En conséquence, de nouveaux cours en ligne apparaîtront tout le temps, il est donc utile de vérifier périodiquement ces ressources pour voir les nouveautés.

  • Codecademy - Offre des cours gratuits en ligne dans plusieurs langages différents. Cependant, Codecademy a tendance à enseigner uniquement la syntaxe de base, donc vous pouvez avoir besoin de travail grâce à plus de tutoriels après avoir fini avec Codecademy. Il se concentre principalement sur le développement web, Ruby et Python.
  • OpenClassrooms - Offre des cours gratuits et ou payants en ligne dans plusieurs langages différents. Chaque visiteur peut à la fois être un lecteur ou un rédacteur. Les cours peuvent être réalisés aussi bien par des membres, par l’équipe du site, ou éventuellement par des professeurs d’universités ou de grandes écoles partenaires.
  • Coursera - Offre des cours gratuits en ligne dans de nombreux domaines différents de plusieurs universités bien connues. De nouveaux cours sont ajoutés tous les trimestres et le contenu des anciens cours est généralement archivé. Parce que beaucoup de cours semblent être nouveaux / peuvent être une chose ponctuelle, cette page ne liera pas aux cours sur Coursera à moins qu’il ne semble être stable.
  • Udacity - Offre des cours gratuits d’informatique dispensés par des experts de l’industrie. Udacity offre deux types de cours - cours réguliers et nanodégres. Les cours réguliers sont gratuits. Les cours réguliers avec un tutorat individuel / examen de code nécessite des frais mensuels. Les nanodégres sont généralement pour les personnes ayant une certaine expérience de codage préalable, et coûtent plus d’argent.
  • edX - Un effort conjoint entre le MIT, Harvard et Berkeley pour fournir gratuitement des versions en ligne de certains de leurs cours.
  • OpenCulture - Semblable à tout ce qui précède. Les conférences vidéo sont généralement disponibles sur iTunes ou Youtube. Généralement ** n’exigent ** pas que vous faites des devoirs, contrairement à de nombreux autres cours en ligne.
  • MIT OpenCourseWare - Offre des matériels de cours statique enseigné au MIT. Sauf indication contraire, la plupart du contenu de ce site Web tend à être très rigoureux et rapide.
  • Khan Academy - Contient quelques cours sur la programmation et l’informatique; Contient beaucoup plus de cours sur toutes sortes de sujets (en particulier les mathématiques).
  • Stanford Engineering Everywhere - Offre des matériels de cours statique enseigné a Stanford.

Les sites Web suivants contiennent également une grande variété de didacticiels pour de nombreux sujets différents, mais nécessitent un paiement et un enregistrement avant d’accéder à leurs cours.

  • Team Treehouse - Se concentre sur le développement web et iOS.
  • Lynda - Comprend des cours sur la conception, l’animation, la vidéo, les affaires et bien plus encore.
  • PluralSight - Similaire à Lynda, mais avec un accent sur les développeurs et les cours IT.
  • General Assembly - Comprend également des cours sur la conception, l’animation, la vidéo, les affaires et bien plus encore.

En général, edX, OpenCulture, MIT OpenCourseware et Stanford Engineering Everywhere ont tendance à contenir des cours plus rigoureux, approfondis et exigeants, tandis que Codecademy et Khan Academy ont tendance à se concentrer sur une introduction plus douce à la programmation. Coursera, Udacity et OpenClassrooms ont tendance à varier entre ces deux extrêmes.

Les Langages de programmation

C

NB: C peut être un langage difficile à enseigner. Bien que les cours en ligne et les livres soient un bon point de départ et peuvent vous prendre un long chemin, le consensus général est que la meilleure façon d’apprendre est de lire un livre réel.

C++

NB: Semblable à C, C ++ peut être un langage difficile à enseigner. Bien que les cours en ligne et les livres sont un bon point de départ et peuvent vous prendre un long chemin, le consensus général est que la meilleure façon d’apprendre est de lire un livre réel.

C-Sharp

C’est un langage de programmation multi-paradigme englobant des disciplines de typage forte, impérative, déclarative, fonctionnelle, générique, orientée objet (basé sur les class) et orientée composants.

  • Cours en ligne:
    • Microsoft Virtual Academy propose quelques cours gratuits:
  • Tutoriels interactifs: N/A
  • tutoriels videos: N/A
  • Livres tutoriels (online):
    • C# Programming Un des livres vedettes de Wikibook. Pour les débutants. Il se concentrer sur la syntaxe, et ferait également une bonne référence.
    • The C# Yellow Book Le texte introductif utilisé par l’Université de Hull.
    • C# Essentials Un texte d’introduction sur C #.Il comprend également des informations sur Windows Forms, Visual Studios et la création d’interfaces graphiques.
    • Visual C# resources Séries officielles de tutoriels et de guides Microsoft sur C# et .NET.
    • Plus de livres gratuit
  • Livres (papier):
  • Exercises: N/A

Haskell

Haskell est un langage polymorphiques statiquement tapé, purement fonctionnel, un peu different de la plupart des autres langages de programmation. La langue est nommée Haskell Brooks Curry, dont le travail en logique mathématique sert de fondement aux langages fonctionnels. Haskell est basé sur le lambda calculus, par consequent ils utilisent lambda comme logo.

  • Cours en ligne:
  • Tutoriels interactifs
  • tutoriels videos: N/A
  • Livres et tutoriels (En ligne):
    • Commencer avec Haskell Un méta-guide complet qui suggère l’ordre recommandé pour suivre les didacticiels Haskell du début à la fin.
    • Learn You a Haskell for Great Good Une introduction de débutant à Haskell. Tente de se concentrer sur la syntaxe.
    • Haskell Un des livres vedettes de Wikibook, du basic à avancé Haskell. Très complet.
    • Real World Haskell: Couvre comment utiliser Haskell pour des applications pratiques. C’est un bon deuxième livre à lire, après avoir terminé l’un des tutoriels ci-dessus.
    • Plus de livres gratuit
  • Livre (papier): N/A
  • Exercices:
    • H-99 Une collection de 99 problèmes conçus pour augmenter votre compétence dans Haskell.

HTML, CSS, et JavaScript

NB: HTML, CSS et JavaScript sont les trois technologies de base qui s’exécutent sur chaque navigateur Web et constituent chaque page Web.

HTML est un langage utilisé pour décrire la structure et le contenu d’une page web, CSS pour décrire le style and l’apparence et JavaScript pour le comportement et les interactivités.

L’ordre d’apprentissage recommandé est généralement de commencer par HTML et CSS, puis passez à l’apprentissage JavaScript une fois que vous vous sentez que vous avez acquis une compréhension de base des deux précédents.

Notez également que HTML et CSS sont des exemples de “langages de balisage”, pas de “langages de programmation” et donc assez différents de JavaScript. Si votre objectif est d’apprendre juste la programmation, vous voudrez peut-être sauter directement à JavaScript (ou choisir un autre langage de programmation!). Cependant, étant donné que la principale façon d’utiliser réellement JavaScript est à travers le navigateur Web, vous aurez besoin d’apprendre HTML et CSS à un moment ou un autre.

comments powered by Disqus