Outils pour utilisateurs

Outils du site


issue73:c_c

Table des matières

1

As many of you have probably heard at one point or another, an accepted practice for keeping your skills as a programmer sharp, is to learn a new language once a year. I do my utmost to stick to exactly that, and as such, I’m constantly on the lookout for ways to make it easier and less time-consuming. This month, I’d like to introduce you to two websites I’ve found, and give some general tips on how to go about learning new programming languages (whether you have any prior knowledge or not). Codecademy By far the most user-friendly option I’ve found is called Codecademy, and it offers an interactive editor/interpreter method for learning Web Fundamentals, jQuery, JavaScript, Projects (Web), Python, Ruby, PHP and APIs. Each of the listed topics has an entire track that is generally laid out nicely, and is focused towards teaching you very specific skills. Each of these offers a very good basis for working with any further language, and as such, I can’t recommend it highly enough. There are also a number of User-created projects, outside of the typical tracks, that you can jump into, in case you’re the sort of programmer who has trouble deciding what you want to focus on. http://www.codecademy.com

Vous êtes sans doute beaucoup à avoir entendu dire, à un moment ou un autre, qu'une pratique admise pour garder à jour vos compétences de programmateur est d'apprendre un nouveau langage une fois par an. Je m'efforce de faire exactement cela et, pour cette raison, je suis sans cesse à la recherche de moyens pour le rendre plus facile et moins long. Ce mois-ci, j'aimerais vous présenter deux sites Web que j'ai trouvés et vous donner quelques conseils sur comment apprendre de nouveaux langages de programmation (avec ou sans connaissances préalables).

Codecademy

L'option la plus conviviale que j'ai trouvée - et de loin - s'appelle Codecademy ; il propose une méthode éditeur/interpréteur interactive pour l'apprentissage de Web Fundamentals, jQuery, JavaScript, Projects (Web), Python, Ruby, PHP et les API. Pour chacun des sujets énumérés il y a un « chemin » complet, généralement présenté de façon compréhensible, dont le but est de vous apprendre des compétences particulières. Chacun propose de très bonnes bases pour travailler avec n'importe quel autre langage et, pour ces raisons, il m'est impossible de le recommander de façon assez éloquente. Il y a également des projets créés par des utilisateurs, en dehors des chemins typiques, dans lesquels vous pouvez vous lancer, si vous êtes le genre de programmeur qui n'arrive pas à décider où concentrer son énergie.

http://www.codecademy.com

2

Further features: • A point-based (and percentage-based) tracking system for progress between the tracks, to entice you to stick with it. • The ability for any user to create lessons (teaching is a great way to cement your understanding of any topic). • Quick, interactive online tools for programming. This avoids the hassle of setting up a programming environment, especially for those who have multiple devices. • A useful hint system that supplies just enough information to help you when stuck. • It presents the full, working code at the beginning of the project, to help you understand other people’s code without comments or compiling it yourself. Who would I recommend this to? I would recommend this to anyone who wants to learn a programming language. If you have no prior experience, it should offer you all the information you need, so long as you are willing to thoroughly read everything written. For those who already have one (or more) programming languages under their belt, and want to simply become more comfortable with another, Codeacademy is a great choice. It combines explanations and exercises, allowing you to fly through the tracks quickly. For example, it took me about 3 hours to get through the Ruby track, which consisted of 10 chapters, and about 238 exercises. They aren’t the most challenging exercises for those with experience, but they’re still enough to give you a grasp of the syntax and semantics of a given language.

D'autres fonctionnalités :

  • Un système de chemins basé sur des points (et des pourcentages) pour vous permettre de progresser entre les chemins et pour vous inciter à continuer.
  • La capacité pour n'importe quel utilisateur de créer des leçons (enseigner est une excellente façon de cimenter la compréhension de n'importe quel sujet).
  • Des outils de programmation rapides, interactifs et en ligne. Ainsi, vous évitez les tracas de la configuration d'un environnement de programmation, surtout si vous avez de multiples appareils.
  • Un système d'indice utile qui fournit juste assez d'informations pour vous aider quand vous êtes coincé.
  • Le code complet, qui fonctionne, est donné au début du projet, pour vous aider à comprendre le code d'autres gens, sans commentaires et sans que vous deviez le compiler vous-même.

À qui le recommanderais-je ? Je le recommanderais à n'importe qui désireux d'apprendre un langage de programmation. Si vous n'avez pas d'expérience, il devrait vous fournir toutes les informations dont vous pourrez avoir besoin, du moment où vous êtes d'accord pour lire très consciencieusement tout ce qui est écrit. Pour ceux qui connaissent déjà au moins un langage de programmation et ne veulent que devenir plus à l'aise avec un autre, Codecademy est un excellent choix. Il allie explications et exercices, ce qui vous permet de suivre tous les chemins rapidement. Il m'a fallu, par exemple, environ 3 heures pour terminer le chemin Ruby, avec 10 chapitres et environ 238 exercices. Ce ne sont pas les exercices les plus difficiles pour ceux qui ont de l'expérience, mais, après les avoir faits, vous comprendrez bien la syntaxe et les sémantiques du langage donné.

3

Khan Academy Khan Academy offers a fairly large selection of free online courses, covering a multitude of topics. This includes, but isn’t limited to, Computer Science, Math, and Science. It also offers a few test preparation options for those studying for exams. If you’re looking to learn more about programming (or other topics) in a typical classroom-type method, Khan Academy is for you. I haven’t personally done more than one or two courses, but it’s mainly due to the fact that I have covered these topics before – both in high school and university. From what I’ve seen, it’s well done, and should serve as a useful service for anyone interested in that sort of learning. https://www.khanacademy.org/ Who would I recommend this to? Anyone who learns well in a university-like environment with like-minded individuals and basic exercises and some lecture-type videos. It lends itself most to those people who haven’t studied courses like this before in high school or university, or who want a refresher for those classes. There isn’t, admittedly, a lot of content yet for Computer Science, but it appears to be growing steadily.

Khan Academy

Khan Academy propose un assez large choix de cours gratuits en ligne, traitant d'une foultitude de sujets, notamment, l'informatique, les maths et la science. Il propose également quelques options de préparation à un examen pour ceux qui les préparent. Si vous voulez en apprendre davantage au sujet de la programmation (ou d'autres sujets) avec une méthode typiquement scolaire, Khan Academy est pour vous. Moi, personnellement, je n'ai fait qu'un ou deux cours, mais cela est dû principalement au fait que j'ai déjà vu ces sujets-là - à la fois au lycée et à l'université. D'après ce que j'ai pu voir, c'est bien fait et devrait fournir un service utile pour ceux qui aiment ce genre d'apprentissage.

https://www.khanacademy.org/

À qui le recommanderais-je ? À n'importe qui sachant bien apprendre dans un environnement quasi universitaire avec des gens partageant le même point de vue et des exercices de base, ainsi que quelques vidéos de type cours magistral. Il se prête principalement aux gens qui n'ont jamais suivi de tels cours au lycée ou à l'université, ou à ceux qui veulent un cours de remise à niveau. Certes, il n'y a pas encore beaucoup de contenu pour l'informatique, mais il semble être en croissance soutenue.

4

Project Euler Project Euler is a website that has simply one goal: to supply you with mathematical problems. These problems range from the mundane, to mind-crushing feats of calculation. The kicker? Each problem is designed so that manually calculating the solution is so time-consuming as to be impossible. As such, you’re required to program an algorithm (in your language of choice) to calculate the answer. Many questions require you to find and implement the correct algorithm in order to reach a solution in a reasonable amount of time (under a minute). Their system allows access to the discussion thread of that problem only when you’ve solved it, meaning you can happily discuss and share your algorithms with others in that area. If you’re not a fan of mathematics, or don’t know any programming languages, or lack a firm grounding in mathematics as applied to programming (and aren’t willing to pick up any of these skills), then Project Euler isn’t for you. For anyone to whom this sounds like fun, I wish you luck with some of the more complex topics. http://projecteuler.net/ Who would I recommend this to? Fans of programming, mathematics, and/or problem solving. If you’re willing to learn, you can manage fairly well, but a certain degree of background knowledge is helpful. I will say this: The problems do not seem to be sorted by difficulty. So if you get stuck, try the next one – it might be easier!

Project Euler

Project Euler est un site Web qui n'a qu'un objectif : vous fournir en problèmes de mathématiques. Ces problèmes vont des plus banaux à des exploits de calcul, risquant de vous écrabouiller le cerveau. Le gros hic ? Chaque problème est conçu afin que le calcul manuel de la solution prenne tant de temps qu'il est rendu impossible. Ainsi, vous devez programmer un algorithme (dans le langage que vous voulez) pour calculer la réponse. Pour répondre à beaucoup des questions, vous devez trouver et implémenter l'algorithme juste afin de trouver une solution dans un laps de temps raisonnable (moins d'une minute). Leur système vous permet d'accéder au fil de discussion de ce problème-là, uniquement quand vous l'aurez résolu, ce qui veut dire que vous pouvez partagez et discuter de vos algorithmes avec d'autres dans le domaine.Si vous n'êtes pas amateur de mathématiques, ou ne connaissez aucun langage de programmation, ou n'avez pas de bases solides dans les maths appliquées à la programmation (et n'êtes pas disposé à développer ces compétences), alors Project Euler n'est pas pour vous. Pour quiconque croit que cela a l'air amusant, je vous souhaite bonne chance avec certains des sujets les plus complexes.

http://projecteuler.net/

À qui le recommanderais-je ? À des amateurs de programmation, des mathématiques et/ou de la résolution des problèmes. Si vous voulez bien apprendre, vous pourrez vous débrouiller assez bien, mais une certaine connaissance des bases vous serait utile. Je vais dire ceci : « Les problèmes n'ont pas l'air d'être triés par difficultés. Ainsi, si vous êtes bloqué, essayez le suivant, il pourrait très bien être plus facile ! »

5

General Tips For anyone looking for my advice on learning to program, or to keep your skills sharp, I have only one main piece of advice: Program! The more you use a language, the firmer a grasp you will have on the theory, and the theory is often the most difficult to understand. Once you understand the theory, you can generally apply it to any language, and learning the syntax and semantics of a language isn’t usually very difficult. If you’re not sure what to program, Project Euler can help. Or else writing small scripts for use in Conky can also be a great way to get into a habit of writing script. You do often learn the most from larger projects, but keeping up with the basics is useful until that flash of inspiration that leads to a large project comes along. What language should I learn? It depends entirely on what your goal is. If you’re trying to find a language that will help to automate your Linux environment (or else hoping for something to integrate into Conky), I could recommend Bash, Lua, or Python. If you’re into web programming, Ruby on Rails, PHP or Python could also be useful. If you’re hoping to jump into an open source project in order to help out, most are written in C or C++, though it depends on what project in particular you have your eye on. Whatever you learn, keep in mind that the theory behind the methods are mostly universal, so pick whatever feels most comfortable for you!

Conseils généraux

Pour quiconque aimerait avoir mes conseils sur l'apprentissage de la programmation, ou pour maintenir ses compétences à jour, je n'ai qu'un conseil principal : faites de la programmation ! Plus vous utilisez un langage et plus solide sera votre compréhension de la théorie, et la théorie est souvent la chose la plus difficile à comprendre. Une fois la théorie comprise, vous pouvez généralement l'appliquer à n'importe quel langage et apprendre la syntaxe et la sémantique d'un langage n'est ordinairement pas très difficile.

Si vous n'êtes pas certain de savoir quoi programmer, Project Euler peut vous aider. Et puis écrire de courts scripts à utiliser dans Conky peut aussi être une bonne façon de vous habituer à écrire des scripts. Souvent, il est vrai, vous apprenez le plus de grand projets, mais tenir ses connaissances fondamentales à jour est utile, jusqu'à ce que vous soyez tout d'un coup inspiré à tenter un grand projet.

Quel langage devriez-vous apprendre ? Cela dépend entièrement de votre objectif. Si vous essayez de trouver un langage qui aidera à automatiser votre environnement Linux (ou que, sinon, vous espérez quelque chose à intégrer dans Conky), je pourrais recommander Bash, Lua ou Python. Si c'est la programmation Web qui vous intéresse, Ruby on Rails, PHP ou Python pourraient aussi être utiles. Si vous espérez apporter votre aide à un projet Open Source, la plupart sont écrits en C ou C++, bien que cela dépende du projet précis auquel vous pensez. Quoi que vous apprenez, rappelez-vous que la théorie derrière les méthodes est universelle ou presque, alors choisissez celui qui vous met le plus à l'aise !

6

I’m stuck on an error, and can’t find a solution on Google! A lot of programming languages have IRC channels dedicated to them. In such rooms there are generally a few people who are happy to try to help you solve your issues. Sometimes you might even bump into the developer of the language! The best way to get an answer is to a) pastebin your code and b) be concise! I hope I’ve managed to give anyone who is interested in programming a starting point. There are probably many other relevant websites out there. If anyone has a personal favourite, feel free to email me at lswest34@gmail.com with the website, or any questions, comments or suggestions you have for C&C in general. If you do email me, please include “FCM” or “C&C” in the subject line!

Vous êtes bloqué sur une erreur et ne trouvez pas de solution sur Google ! Beaucoup des langages de programmation ont des canaux IRC dédiés. Dans de tels endroits, il y a en règle générale quelques personnes qui se feront un plaisir de vous aider à résoudre vos problèmes. Parfois, vous pourriez même croiser le développeur du langage ! La meilleure façon d'obtenir une réponse est a) de mettre votre code sur pastebin et b) d'être concis !

J'espère que j'ai réussi à fournir à quiconque s'intéresse à la programmation un point de départ. Il existe sans doute beaucoup d'autres sites Web pertinents. Si quelqu'un a des préférences personnelles, n'hésitez pas à m'envoyer un courriel à lswest34@gmail.com avec le nom du site, ou des questions, commentaires ou suggestions que vous avez sur C&C en général. Si vous m'envoyez un mail, veuillez mettre « FCM » ou « C&C » dans la case objet !

issue73/c_c.txt · Dernière modification : 2013/10/20 07:17 de fcm_-_ekel