Programming, Graph Theory, Computer Science, Mathematics, Data Structures.
and created different data structures until they found the one that worked the best for the specific problem that they were trying to solve. Someone else needed a good way of storing data, so they played around with different number systems until they found one that worked best for the kind of