Monday, May 02, 2005

Plans For The Net Four Months

I am currently trying to put some revision notes together for my Artificial Intelligence test for Wednesday. That's not to say that my intelligence is artificial, but instead that I will be tested on my knowledge of the subject of Artificial Intelligence.

Frankly it would have been easier if uni had asked us to write a program with several different kinds of artificial intelligence incorporated into it, but a test they have set and so a test I will sit.

After that I will truly be on my summer holiday and for the past few months I have been putting plans together to make best use of my time, because on previous holidays I have been willing to learn, but have lacked the accessible resources to learn. For example I only foundout what the Garbage Collector was when I got a LearnVisualStudio subscription. And this is something I have been trying to findout for a while because I didn't have the right accessible resource with a good explanation of the answer to hand, and crawling around the net for hours don't help at all. What I needed was a good reliable resource to hand and this Summer I have everything I could possibly need.

My objectives for the holiday is to have a go at ASP and ADO.net, but what I really want is to produce somekind of 3D game. If I can do that then I will have proved to myself that a future in video games is possible. And frankly it is only a 3D programming milestone that separates me from my goal. From there I will either apply to work at a games company as a programmer or get a different job and programme games part time after uni, but a future making game will happen one way or another.

To get me to my goal as quickly as possible (four months sounds a long time, but it isn't) I have made myself a shortlist of things I want to know before perusing my goal more directly. These are basically just a collection of programming terms and concepts mentioned by programmers over the past few months that I have no clue about or I just don't know how to implement.

Functional Programming
design patterns
partial derivatives
fractal algorithms
generic collections
polymorphic programming
Custom Events

I have resources that will get me through all of these and I realise that a few are language specific. Functional Programming is a language in itself, but I want to understand the basic concepts behind it as a lot of functional programmers don't like OO and insist that their programming model is better. So I have the workbook given to the students taking Functional Programming at uni. I could take it as a module next year, but it is a language that I probably won't use, so I just want to scrape the surface and have a look at what is different between that and conventional programming models.

If I do get through all this and manage to do some 3D stuff, then I will be learning C++ because that is the game industry's standard language that they have latched onto and most companies require applicants to know. C++ shouldn't take much more than a week for me to learn, so I will probably give it a go at some stage. That might sound odd to none-programmers, but honestly once you have learned one language and understand its driving concepts then it is relatively easy to learn others, although that first language is a big hill to climb and becoming competent in that first language is a long proses of producing many programs. Which is why I started my Feature A Day routine two months ago.

Fingers crossed then that I get everything done, but last year my only programming goal was to learn VB.Net, simply because I didn't feel competent in any language, even through I had done three years of Java. Now with one language under by belt I feel confident enough to tackle the big fights and even bigger challenges.