Какие алгоритмы нужно знать программисту?
Это зависит от решаемых задач. Какие задачи решаете, такие алгоритмы и изучайте.
Неплохо бы знать какие часто применяемые алгоритмы существуют, но учить детали реализации на память особого смысла нет. 
Выбор пути, упаковка рюкзака, раскрой - откуда нам знать, что из этого вам понадобится?
В любом случае, вы пока довольно далеки от того, чтобы улучшать существующие алгоритмы. 
А пока используете уже изобретенные - подберите себе удобный справочник, или хоть в вики их читайте.