Синтаксис я учу, может знаю(с классами путаница). Чтобы закрепить знания, бывает практикуюсь решая всякие задачки. Но код такой себе(овнокод), исправит ли ситуацию знание алгоритмов. Понял я плохо, но вроде паттерны это готовые решения(шаблоны), алгоритмы это тоже самое(сортировка ...тд итп, способы наиболее качественного решения определенных задач), вроде и то, и это способствует повышению качества кода.