Можно читать книги, можно все время мониторить актуальные тенденции, но общения с более опытными товарищами ничто не заменит. Если не удается устроиться в компанию с сильным IT коллективом, то хотя бы на форумах почаще спрашивать "а вот так делать правильно? " или "а этот подход еще актуален?", а не удовлетворяться тем, что код компилируется и запускается. Иначе рост во многом будет в ширину, а не глубину.
Особенно это касается вопросов, связанных не просто с написанием работающего кода, а с идеологией приложения (архитектура, ООП, масштабируемость и т д).
На сегодняшний день проблема состоит не в нехватке информации, а наоборот, в ее избытке, а отфильтровать ее не всегда хватает знаний/опыта. Курсы Евгения Попова так популярны не потому, что люди дураки, а потому, что хорошо распиарены. Или вот я осваиваю ASP.NET MVC, нашел, как мне показалось, удобную штуку - генерацию edmx, но добрые люди на metanit.ru меня просветили, что для серьезных приложений нужно использовать Code First, иначе бы до сих пор так писал.
Если полагаться только на самообразование, то есть риск получить нехилые такие пробелы в базовых вещах. Лично знаю людей, которые написали не одно приложение по работе с БД, неплохо знают SQL, умеют писать хранимые процедуры, но когда я упомянул слова "нормализация" и "3-я нормальная форма", вполне искренне меня спросили "что это?"