Похоже у вас в голове все смешалось.
1. Что такое разработка программ? Думаю, ни чему не противоречит сказать, что это написание кода на избранном языке, направленное на решение задачи, поставленной перед разработчиком. Решение может использовать сколько угодно много алгоритмов, либо не использовать вовсе, кроме тех, что реализованы в стандартной библиотеке языка.
2. Алгоритмы? Алгоритм - это формальное описание решения проблемы, как правило, не привязанное ни к одному из языков программирования, и не являющееся самостоятельной программой. Например: поиск всех подстрок в тексте - это алгоритм, который может быть использован в программе, но сам программой не является.
3. Структуры данных? Структуры данных - это способ организации информации в памяти и/или на диске, для более оптимального ее использования, или применения к ней алгоритмов. Например: графы и алгоритмы на них.
4. Шаблоны проектирования? Шаблоны проектирования, в оригинале design patterns - это решения типовых ситуаций при проектировании приложений. Речь идет о достаточно крупных приложениях, хотя сложно выделить четкий критерий, когда приложение можно назвать крупным. В мире web приложений самый известный шаблон - это MVC, хотя вебом его применимость не исчерпывается.
С чего начать:
1. Знакомство с языком. Без знания языка все остальное бессмысленно. Начать лучше с известных языков, по которым много литературы и большое комюнити: C/C++, C#, Java, php7, python, JavaScript. Не гонитесь сразу за несколькими языками. Не гонитесь за новомодными языками, вроде go, rust или elixir, они решают проблемы, которые вам еще только предстоит понять. Не гонитесь за экзотическими языками, вроде lisp, haskel, erlang или ocaml, у них есть свои почитатели, но это не самый простой способ начать программировать. Выберете, что вам ближе, компилируемые, или скриптовые, со строгой типизацией или динамической, и вперед.
2. Потренируйтесь в реализации отдельных алгоритмов. Это позволит вам закрепить знание выбранного языка, расширит ваш кругозор и научит выделять эти алгоритмы в процессе решения более сложных задач. Здесь фундаментальный труд Дональда Кнута "Искуство программирования" вам в помощь, хотя одной этой книгой тема конечно не исчерпывается.
3. Теперь можно браться за задачи посложнее. Один нюанс, если вы пойдете в веб разработку: с нуля системы сейчас ни кто не пишет, все используют фреймворки. Возможно, было бы не плохо, покопаться в устройстве парочки таких продуктов, а в идеале, попробовать построить свой велосипед, чтобы лучше понять что, и как устроено и работает.