То чем многие в советах новичкам пренебрегают, и на чем я от всей души настаиваю - по ходу дела ознакомиться с историей каждого из широко распространенных языков программирования. В каких условиях и для чего он был создан, какую проблему он был призван решить. Какие языки, и парадигмы на него повлияли. Читая, смотря видео об этом и ходя по ссылкам вы сильно укрепите базу, это будет не зря потраченое время.
Именно поэтому новичкам так тяжело втянуться. Потому что их обучают как сделать шаблонную вещь, но не обьясняют почему все так как оно есть. Соответственно, человек не учится решать проблемы, а учится применять решения. В результате очень скудная аналитическая база и реактивное знание.
Cи - надо сказать, не самый удобный для повседневных задач язык программирования. Просто он один из "старых". Он создавался когда IT ландшафт выглядел совсем иначе. Никакими вебами 2.0 тогда и в помине не пахло. Был распространен Юникс. И Java я бы тоже не советовал для обучения, там много неочевидных вещей для неподготовленного ума. Т.е для решения прикладных задач он хорош, но для обучения - нет.
Можете сразу начать изучать JavaScript, который собственно является основным языом программирования применяемым в веб-приложениях. Вас ведь как я понял ведь "веб" привлекает? Чем удобно изучать JS - браузер предоставляет вам готовую платформу для создания графической оболочки приложения. Стыковка действий в графической оболочке на HTML/CSS и функций в скрипте реализована очень интуитивно. Могу порекомендовать "Самоучитель JavaScript" Марины Дмитриевой - книжка старая, но очень правильная. С задачами и решениями которых в современных "учебниках" не найдешь.
Однако LOGO (как упоминалось выше) я тоже могу порекомендовать для изучения азов. Вот одна из его современных инкарнаций -
https://ccl.northwestern.edu/netlogo/. Там даже веб-редактор есть. Куча примеров из коробки. Сразу есть контекст применения - агентное моделирование.
Чем хорош LOGO - его синтаксис на мой взгляд хорошо демонстрирует и прививает процедурный подход.
Например, последовательность команд или говоря иначе процедура отмечается блоком
to <что-сделать>
...
end
В блоке поочередно указываются все процедуры которые необходимо вызвать для выполнения <что-сделать>.
А вообще, заходишь сюда
https://repl.it/languages/ и сюда
https://www.tutorialspoint.com/tutorialslibrary.htm
выбираешь любой язык из туториала и пробуешь. Сравниваешь.