benefits of learning data structures and algorithms