Outils pour utilisateurs

Outils du site


issue73:c_c

Ceci est une ancienne révision du document !


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 vos compétences de programmateur à jour 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. Chacun des sujets énumérés possède 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 une très bonne base pour travailler avec n'importe quel autre langage et, pour ses raisons, il m'est impossible de le recommander de façon assez éloquente. Il y a également des projets créés pas des utilisateurs, en dehors des chemins typiques, dans lesquels vous pouvez vous lancer, si vous êtes le genre de programmateur qui n'arrive pas à décider où placer toutes vos énergies.

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 point (et des pourcentages) pour vous permettre de progresser entre les chemins, 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é.
  • Il donne le code complet, qui fonctionne, au début du projet, pour vous aider à comprendre le code d'autres gens, sans commentaires et sans que vous devez le compiler vous-même.

À qui le recommanderais-je ? Je le recommanderais à n'importe qui qui veut 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 ce 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 comprendra 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.

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!

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!

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!

issue73/c_c.1381509034.txt.gz · Dernière modification : 2013/10/11 18:30 de auntiee