What are Your Favorite Topics in Programming?

I'll be honest; I'm still a relatively new programmer. However, I've been spending enough time in C++ to start figuring out the nuances of pointers, references, and parts of the STL.

As a community of gamers and computer enthusiasts, what features in any programming language you've used do you find most useful or elegant?

I have the most fun either in Java or doing web stuff with as much PHP as possible...My personal choice(that I use for any projects I need to churn out) is C++ as I'm most comfortable and quick with, though I try to have at least a toe in as many languages. I'm just finishing my rounds in PHP(why I like it) and moving to JavaScript, then I'm gonna hit Python hard after as I've never used it more than the absolute basics.

A bit above what your doing right now, but procedural generation using perlin noise algorithms is a great concept. The fact that I can randomise anything I want, yet with a simple number (a seed) I can recalculate the identical results time and time again is fascinating.

But I had a great time learning Artificial Intelligence for game programming at university. Genetic Algorithms are great fun to make and tweak when trying to "breed" AI that are capable of navigating an environment.

Using arrays, relational operators and selection constructs to create functions that differentiate, integrate, solve linear systems, etc is something I've always been fascinated with. Telling a computer to do sophisticated mathematics is a challenge well beyond that of doing it with pen and paper.

Did this thread say "topic" the other day and I'm just stupid??

 

Topic: I've been looking into the research my instructors have been doing, one is doing research in fast division. He already has a crazy fast division algorithm that handles it much much better than the standard libraries of the big name languages and its real neat stuff.

Haskell and theories behind its syntax. Very exciting stuff that slowly making it into many modern languages. In particular - minimizing global state(s) and moving operations to pure functions where possible. Its a silent but deadly bug killer. The less state you share among your subroutines the less bugs you will have.

 

Using recursion instead of loops is another one. Not only does it shorten the code, it gets rid of many overruns. 

 

Design patterns are a good mental exercise to engage in on occasion, but most of them are just theoretical fun. Just avoid singletons... please.

Cryptography and networking are awesome!

Concurrency. For some reason I just love creating effective systems with concurrent threading and everything. Just something so many programmers today avoid is concurrency and I love the stuff. 

threading and networking. server side coding is my favorite.