As of late my circumstances haven’t allowed me to do coding in reasonable volumes and it has been a point of frustration and concern to me professionally and personally. So I recently dug out an old URL I found a while back, www.projecteuler.net

For those too lazy to click the link and read.. it is essentially a decent set of problems that require some sort of computation to solve the problem in reasonable time. In other words, it needs a computer program which means programming. Ultimately you can choose any programming language you like to solve as the website only requires the final output to verify whether you got the solution or not. While perl, python or even bash may have been the shortest path to programmatically solving the problems, those languages are not where my interests are. So I have chosen C++ and I have begun tackling them. I doubt I will share my solutions as it defeats the point of the website and there are forums for sharing after successful completion of each problem, but I will share side lessons that I learnt to achieve solutions. For example I have chosen to do away with make (I will be developing in C++ on the linux platform for educational purposes) and I am giving scons a try and for the time being I will be editing code in vi. Development environments under linux are HIGHLY subjective and I may even say contraversial. So I will learn in stride.

Something that I am also attaching to my project euler exercises are time trials.. Evaluating program execution times which has also been suprising as it seems there may not be a cross platform C++ standard for high resolution time measurement. That requires the use of OS specific system calls. No matter though there is a host of online examples which I will add to the list of URLs below that may or not be worth reading..

This is all in an effort to learn C++ to a semi reasonable standard which is actually quite a challenge if you plan on doing something reasonable with it. So I think in summary I want to atleast achieve the following out of these exercises (all of which specific to C++) :

  1. A complete understanding of the coding standards

  2. Intuitive feel of the syntax

  3. Writing efficient readable code

  4. Solving generic logic problems with it .. AKA Brain gym

  5. Learning relevant APIs that are taken for granted in higher level languages (such as Java’s GUI APIs)

  6. Comfort in the dev environment (whether that be a generic text editor like vi or a full fledged IDE like Netbeans or codelite)

Links used :

C Timer? – https://sites.google.com/site/jivsoft/Home/timer

C++ Timer – http://www.songho.ca/misc/timer/timer.html ; http://takinginitiative.net/2008/08/31/multiple-high-resolution-timer-class/

No Timing standard in C++ – http://comp.std.c.narkive.com/HiXsAVSr/any-standard-way-of-geting-timer-resolution-finer-than-1-second

Header files explained well – http://www.learncpp.com/cpp-tutorial/19-header-files/

Build system scons – http://www.scons.org/

IDEs :

https://www.netbeans.org/

http://codelite.org/

http://www.eclipse.org/

Troubleshooting tools :

Valgrind(tried briefly and seems easy to use) – http://valgrind.org/

TAU (want to try..) – http://www.cs.uoregon.edu/research/tau/home.php

Various Coding standard guides :

http://www.possibility.com/Cpp/CppCodingStandard.html

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

http://geosoft.no/development/cppstyle.html

«