В принципе важны оба пункта, но многое зависит от того процесса, который вы собираетесь автоматизировать (для которого вы программу и пишите).
За историю программирования было создано (и до сих пор создается) немалое количество распространенных алгоритмов (можно какую-то часть посмотреть здесь - Список алгоритмов). Их конечно же неплохо держать в голове - не сами алгоритмы, а то, что они есть и какие они, что они делают. Также надо уметь придумывать свои алгоритмы и понимать процесс создания и анализа - этому можно научится только постоянно практикуясь. Как и в любой области.
За историю программирования было создано (и до сих пор создается) немалое количество распространенных алгоритмов (можно какую-то часть посмотреть здесь - Список алгоритмов). Их конечно же неплохо держать в голове - не сами алгоритмы, а то, что они есть и какие они, что они делают. Также надо уметь придумывать свои алгоритмы и понимать процесс создания и анализа - этому можно научится только постоянно практикуясь. Как и в любой области.