A mind needs books as a sword needs a whetstone, if it is to keep its edge. – A Game Of Thrones (George R. R. Martin)
I want to spend a little bit of time covering what I’ve been learning about in the past several months.
One of my current goals is to become a C# “expert”. A Programmer’s Guide to C# 5.0 is the first step in a long series of steps aimed at making this a reality.
I had to think long and hard to decide between C++ (which was my main area of expertise as a student) and C#. In the end, I opted for C# since it’s more aligned with several of my projects (e.g. Unity).
I’ve studied (I’ll cover how in a later post) about 70% of the material in this book and I’m eager to learn more!
Core Computer Science
But why become a C# expert if my fundamentals do not keep up? Another of my goals is to take my CS fundamentals and make them world-level. That is a humongous goal in and of itself, so The Algorithm Design Manual is only my first step.
I’m about 40% done with this one.
“Why didn’t I go with a more traditional book like Introduction to Algorithms for my fundamentals goal?” you might be wondering about.Well, I discovered that my mathematical foundations were weak. The last time a did SERIOUS math was when I took calculus back in my home country university (circa 2006…).
Weak mathematical foundations were unacceptable. After all…what is computer science if not applied math?. I decided to re-start from the beginning of the road (Arithmetic) with Khan Academy and re-build my knowledge without any holes. More importantly, this time I won’t let my math rust away.
I started with Arithmetics. I’m currently on Algebra one, and I’m planning on going to calculus and beyond…so I would say I’m barely scratching 10% on this one (probably less).
While the previous 3 goals were my main current learning goals, I have two minor learning goals as well:
I love how code school’s “hands-on” approach helps me quickly gain familiarity with new technologies. I don’t expect the website to make me an expert in anything, but it’s a solid first step.
As they say “hindsight is 20/20”. It might have been a good idea to code my main side-project with the technologies I’m currently planning on becoming an expert on.
Unfortunately, I started working my indie-rpg-db (my main side project at the moment) before I decided to become an expert in C#, and I already had about a year worth of development with Python + Django for indie-rpg-db.
I’ve been studying Python + Django on the side as much as I can using code school, a few scattered books, and Learn Python in Y minutes.
That’s it for today. I’ll be back in a few months with a learning update, and in another series of posts, I’ll get more in-depth about the reasons behind selecting these particular topics and my exact study strategies