Outils pour utilisateurs

Outils du site


issue99:c_c

Ceci est une ancienne révision du document !


Over the course of time, I’ve picked up a lot of rudimentary skills in various programming languages. Some of them I chose to deepen, and others have stagnated. The largest problem I often run into is deciding what to program, and in what language. If you’re like me, and in need of some challenging exercises to work through, skip to part two. If you’re still trying to learn a language, stick with me.

Learning a language

There are various ways to learn a language - buy a book, take a course, or follow a tutorial online. However, some options can be expensive, or simply difficult to accomplish, as it removes the explanation factor of why one method is better than another (for example). Instead, here is a short list of online sites that offer free courses. Depending on what you want to learn, you may need to browse each in turn.

Code Academy http://www.codecademy.com/ learn The site offers a relatively small list of courses (though they keep expanding). However, they offer an interactive set of exercises that you can work through straight from the browser. As such, if you’re trying to learn a language that they offer, I would recommend starting there.

Khan Academy - https://www.khanacademy.org/computing/computer-programming This site follows the more traditional online university system - you watch a video with an explanation, and then do quizzes/exercises after each video. Currently their offering is mainly focused around JavaScript and HTML. They do, however, offer many other (non-programming) courses as well.

Coursera - https://www.coursera.org/ The offering here is typically segments or complete videos from actual university courses. They offer a good deal of options, but some of the videos can be out of date. If you’re looking to get into the more abstract discussions on programming or programming languages in general, this may be a good spot to start.

There are, of course, other options out there. However, I have actively tried each of these offerings, and come to see each of their strengths. If you’re looking for a programming language not listed, my suggestion is to check the language’s homepage. Most offer some sort of introduction or tutorial.

I’ve learned a language - now what?

Once you’ve learned a language, it’s time to put it into use. If you have ideas for programs, then that’s great. Sometimes, however, you won’t have a specific need to fill, or problem to fix. At times like that, I like to fall back to some form of programming challenge. This way, I improve my understanding and knowledge - and sometimes, you’ll end up with a reusable library of functions. Or, better yet, you’ll have an idea for a program yourself. Two of my favourite offerings are as follows:

Project Euler - https://projecteuler.net/ This site offers a massive number of math-related challenges. They are typically difficult questions that could not be reasonably answered with a calculator and patience - instead, the quickest solution is to write a program to test solutions until finding the correct one. If you absolutely loathe mathematics, or, after reading some questions, you feel Project Euler isn’t for you, then move on to my next suggestions. The major benefit to Project Euler is simply the fact that it is language agnostic - so long as you can calculate in a language, you can do the challenges. Some languages (such as Python) offer helpful mathematics functions, but if you keep track of your functions in a library, you shouldn’t be repeating yourself too often.

Exercism - http://exercism.io/ Exercism is a command-line tool, linked into a tiered library of exercises to be done in a variety of languages. The exercises don’t typically change between languages, but are good practice nonetheless. The way it works is by fetching the exercises, and then choosing a language to start with. You then get a README file, as well as a *_test file. The test file contains actual programmatic tests, to ensure that your answer is complete. If you’re never worked with tests before, I highly recommend Exercism as an introduction to tests. The actual submission is simple - if the test file clears without errors, and you’re happy with your file, you can submit it. It then appears on the Exercism site under your account’s name. Then other programmers can discuss it - where you may learn a new trick or two. You can, naturally, also check out other people’s submissions. If you later want to update your file, you can do so. It keeps track of your iterations, and each iteration has a separate discussion. And if you’re tired of having your code analyzed - you can mark a task as done, and close all discussions on it.

Extra: Dev Docs Sometimes, you’ll be working on a program, and realize you don’t remember the exact format of a function, or if the built-in function actually exists. This is where you can either turn to a manpage, the language’s documentation, or http://devdocs.io. Devdocs.io is a site that offers a huge library of documentation on various languages. The site itself will let you save the library for offline access, meaning you shouldn’t ever be without documentation. However, as it’s an open source project, you can also install a completely local instance of the site. Submissions are also accepted, and as such the information is usually up to date, and expanding at a brisk pace. It also includes some documentation for tools (SASS, Bower, npm, etc.).

Conclusion

I hope this article is helpful for anyone who wants to learn to program, or anyone who feels they are stagnating at their current level. If you know of another great site, or an awesome set of challenges, please let me know! As always - suggestions, comments, or requests can be sent to me at lswest34+fcm@gmail.com.

issue99/c_c.1438444788.txt.gz · Dernière modification : 2015/08/01 17:59 de auntiee