What do you call challenging and hard? Here are the tasks I find most challenging about programming. They all are difficult for very different reasons.
- Designing a good and
innovative UI.
- Organizing large teams of programmers, or even worse, large heterogeneous teams of programmers, designers, marketers, ...
- Code anaylsis, developing tools that would know your 'executable' better by reading your 'source'.
- Dealing with large data and high precision.
- Programming in restricted resources like in embedded systems or in high load servers. (like this guy for instance, who wrote the
smallest 'Hello World' x86 ELF binary)
I would also strongly recommend
Project Euler. I did the first 10 problems, and they're okay. It gets
insanely difficult afterwards. Example of problem:
Peter has nine four-sided (pyramidal) dice, each with faces numbered 1, 2, 3, 4.
Colin has six six-sided (cubic) dice, each with faces numbered 1, 2, 3, 4, 5, 6.
Peter and Colin roll their dice and compare totals: the highest total wins. The result is a draw if the totals are equal.
What is the probability that Pyramidal Pete beats Cubic Colin? Give your answer rounded to seven decimal places in the form 0.abcdefg
Note: Your program should give the answer in less than 1min.