Какие задачи должен уметь решать web разработчик?
Современный веб-разработчик это уже больше чем писать маленькие проектики. 
Надо хорошо знать основной язык программирования, следить за новинками, уметь их применять. Это база. Но надо знать и смежные области, как например тестирование, системы контроля версий, немного devops, надо понимать и уметь работать с современными JS и PHP фреймворками, иметь хотя бы основные понятия о шаблонах проектирования (это поможет в разработке и коммуникации с другими разработчиками).
И главное - настроить себя на постоянное развитие. Технологии развиваются быстро, надо успевать за ними.
что должен? иметь терпение копаться в ранее написанном говнокоде. поверь, это самое тяжелое. об этом никто и нигде не пишет. 
> "Я знаю, что ничего не знаю"
Это нормально. Нельзя знать все. Не хватит жизни, что бы изучить и знать все.