Outils pour utilisateurs

Outils du site


issue73:c_c

Ceci est une ancienne révision du document !


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

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.

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.

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!

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!

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.1370529273.txt.gz · Dernière modification : 2013/06/06 16:34 de andre_domenech