Here is another rather personal update.

So, I spent the last year in the poorest parts of South America. Just me, my math books, and 3rd world living. The highland towns of Bolivia are the ones I remember best. No hot water, no heating, sleeping with all my clothes on at the same time. The narrow broken mountain roads, the speed crazy coca chewing bus drivers, all those rickety 16 hour bus journeys. Eating every day at the town markets, sitting next to short and stocky native indians. Two dollars a night for a room, two for food, two for beer and two for internet. A simple but free life. A year of studying.

And then my money ran out. So I’m back in the UK. I found a job in Basingstoke. Its a C++ job. Its traditional software development (as opposed to 24/7 web service plumbing) just like I wanted . The hours are 9to5 and the pace is quite relaxed. The pay is good. There is some maths in there as well. This looks like the best job I have had so far. In my previous jobs I always ended up working 10 hour days. I dont want that again. There is more to life than work. I think now I will have time to study and enjoy my free time a little. I also went to a couple of interviews for investment banking jobs, but backed away when I realized it was exactly the type of job I didn’t want. I have had enough of maintaining large fragile legacy 24/7 systems. I can do without those 3AM support calls, thank you. I’m happy I did not end up in Games either. Long hours, low pay and tight deadlines. No thanks.

I’m reading a book now called “The C++ FAQ 2nd edition” by  Marshall Cline. I would not have picked it up where it not for some stranger on reddit that recommended it. Its surprisingly good considering its over 10 years old.  You feel the age a bit by the OOP buzz wording. However, there is stuff in here that I have not read elsewhere. For instance, inheritance is not about the IS-A relationships or sub-typing. Public inheritance is about substitutability, nothing more or nothing less. For instance, even though a circle is a subgroup of the group oval in the mathematical sense. Their interfaces probably still wont be substitutable. This is not a book for beginners though, its more of a “Best Practices” type book. I recommend it.



Maths is Neat!

March 12, 2010

Wow, its been over a year since I posted anything here. This blog was meant to be only about C++ but that might change now. Two interesting books where published last year that I did not have time to read. They where Stroustrups new book “Programming: Principles and Practice Using C++” and Stepanovs “Elements of Programming”. The first is aimed at C++ beginners, the second at Mathematicians. Stepanov is the genius that invented STL.

That brings me to the point of this post. I always wanted to learn more maths but somehow never got around to studying it seriously. There was always something else. As a programmer you can make a career without any maths knowledge at all. I would guess 95% of programming jobs don’t require any maths. But then again 95% of programming jobs are quite boring. Its seems to me all the interesting programming is in maths heavy areas. For instance 3D programming is heavy with linear algebra, physics simulation is heavy with calculus. Algorithm and data structure design is also heavy with maths. That all interesting stuff.

So I bought a bunch of math book, put them in my backpack. Quit my job. Bought a one way ticket to South America. And for the  last year I have been living cheaply and studying hard. Who needs schools and teachers when you can teach yourself anything. It might sound crazy but its been great. I started studying pre-calculus, all that stuff I once knew and forgot. I moved on to study lots of linear algebra. I have also been studying a bit of calculus and about the math in games. I have also had time for sum fun and games, im in South America after all. By summer time I’ll be job hunting for a programming job that requires some of this math. I’ll try getting a 3D game programming job. I think that would be very interesting. My plan B is to go back to University and study maths. This stuff is interesting in its own right. I got nothing but respect and admiration for mathematicians and what they can do. Mathematics is the language of the universe after all. And what could be more interesting than that?

Maths is just great, especially in connection with programming. I hope I keep motivated to keep studying this for years to come.


Boost threads shows the way

December 2, 2008

What’s New in Boost Threads? Boost threads moves closer to C++0x. The interface looks nice. Threads and locks are now movable (can be stored and sorted in move aware containers). Thread’s constructor can bind the  functions arguments to the function. Lock can now lock multiples mutexes at once to avoid deadlocking (when succeeding to get one lock, but failing getting the other).

Also, here is a link to Anthony Williams blog (the author of boost threads and the upcoming C++ Concurrency in Action book).