Recently, I’ ve find something intersting and easy to go to build basic skills for programming training — it’s Project Euler !
As you can read from their homepage,
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.
The intended audience include students for whom the basic curriculum is not feeding their hunger to learn, adults whose background was not primarily mathematics but had an interest in things mathematical, and professionals who want to keep their problem solving and mathematics on the edge.
I was wandering on StackoverFlow reading some advices about Python learning, and someone came across to point out that one may try to solve problems on Project Euler to improve his/her skill.
I think it’s just for me when I took a look at their website!
Being a student not majored in computer science, I know clearly I myself is lack of programming training. Althought I always take it as a hobby to learn Python, but after getting to know Python for about two years, i still wander around outside the way of programming. The problem is that I’m lack of practices. What I’ve been taught in college require little of programming. And also being a lazy man, I have to admit I really not spend much time on it.
But now, I want to make a change!
Since May 20, up to now, i’ve tried to solve a problem everyday. It’s been 4 days, and I finished it well.
I use Python to solve these problems and maybe I can try some kind of ‘usefull’ language? yeah, that’s a good idea. What I really want to convince to you is at the begining the problems are not hard, what you may need is a clear thinking process and some basic skill of the language. In this way I can say, while solving these problems, I’m sure to get a good knowedge of basic concepts of the language I’m using. Besides, what I get is more than that: it forces me to think about some mathmatic problems, which I may never do in my origin life…
BTW, I’ve created a git repo on github.com to sotre what I did. Also a good way to learn how to master the VCS tool named Git 🙂 !
The GitHub repo of mine is HERE
Enjoy it with me 🙂
i’ll write more about what I get while I solve these problems.
PS. there must be a lot active problem-solvers in the world, because problem #339 was just released yesterday on May 22, 2011, and after half a day, there comes several right answers. So, I should keep doing it. If I can keep on it everyday in the following year, then I may catch up with people around the world~