No matter which programming language you program in, if you want to be able to build scalable systems, it is important to learn data structures and algorithms.
Algorithm design is more akin to an art than a science. Supply 100
programmers with the identical specification and, in return, you will receive
100 different solutions. The process is largely subjective, and the
notion of good or bad can also be application specific (i.e., a program
considered a good solution in one environment might be unsuitable
in another.)