This post is migrated here from my 2011 blog

The timetable experiment was not a big success, maybe only a small one?.. But I think it helps me gauge my time better, I’m now thinking what to do next. Boy this is going to be a long post.

Fact is, I’m a very ambitious man, there is so much I want to do, experience, and master, it may take me my whole lifetime to go through just the major stuff. So now, I’m questioning my tendency to do everything and not abandon any of my interests no matter how silly, which seriously impacts the bigger goals I have. I think the reason for this tendency is that when I learn and build experience with something for sometime, say 6 months. Then not work on it for a year. Then trying to go back to doing something with it, I discover it’s as if I never really learned and experienced it. This is really frustrating for me, it feels like I lost all those months and now I need to lose more months and put more effort into getting it all back.

The best example I can perhaps give is the Ogre3D graphics engine. I had to relearn it 3 times from scratch distributed over nearly 4 years, and I can’t help it! no matter how much effort and time I put into Ogre3D, 6 months later it’s like I never worked on it, I’m even reluctant to mention experience with Ogre3D in my cv because I know I have to relearn everything! In reality though, everytime I relearn it I understand it more because software development is an incremental skill. Us developers say that at any point in your professional life, if you look back at code you wrote 6 months ago, the stupidity and naivetés will be absolutely shocking :D

I tried to deal with this in the past using what I called “Code Book”, at first it was just a notebook with code snippets I find useful, a C++ logging system for example, that was of course before I became good enough to write what I need myself.

When I didn’t need snippets anymore, code books developed into something else, I used to read something, a book about Direct3D for example, learn each chapter and write examples on it. And after that I would write the essence of what I learned in the code book. This way a chapter of about 50 pages is translated into 8 pages of concentrated knowledge written in a format I understand quickly. I have many code books I wrote in the past, covering: C/C++, STL, Python, PHP, ColdFusion, UnrealScript, Direct3D9, HTML/CSS/Javascript/SQL, Java, and Assembly And when I say PHP for example, I’m not only talking about the language itself, rather web development with PHP as a whole. So security, databases, web techniques, etc.. about 100 pages of hand written concentrated information, now that I look at it, it’s really an achievement all by itself, perhaps I should write books out of it? “Concentrated PHP for Time Travelers” because reading 100 pages in 2 days that contain 800 pages worth of information is time travel :P

Glad I remembered code books, but you know why I stopped doing them? I didn’t need the basics about anything written anymore, all graphics libs work exactly the same, all web technologies work exactly the same, the information I need now is not what things are and how to do them, rather only understanding the architecture of the solution and the levels of flexibility and capabilities it has, most of the time I find that kind of information in the API reference. Still, things as complex as Ogre3D or UnrealEngine3 do things in their own way, most of the time it’s different compared to the common way of doing things. So even if I can see class lists and hierarchy, sometimes I would still not be able to figure out how to access the services provided by a particular feature, I sometimes resort to drastic solutions for this, like reading the engine code.

Back to the issue of forgetting what I learn, you may have noticed I concentrated specifically on software development.. but I also forgot other things/skills like painting, piano, and French, to name a few. How to solve this? Why would I learn a new language/skill if I know I’ll start forgetting it once I stop practicing it?

And here lies the rub, I’m afraid to abandon skills and forget them completely, so I give them time taking away time from important life goals.

blog comments powered by Disqus


08 August 2011