Какие нужны фундаментальные знания?
Это ощущение вас никогда не покинет, учитывая темп развития технологий в последние 20 лет. Только вы досконально изучите и научитесь работать с одной технологией - ей на замену сразу придет другая и придется её точно так же изучать чтобы оставаться технически востребованным и конкурентноспособным специалистом на бирже труда. Смиритесь с этим чувством. Либо просто досконально изучите определенный классический стек технологий и работайте с ним, если ваш уровень развития вас устроит.
По поводу литературы и мануалов от себя могу сказать, что в нашем деле главное не теория, а практика. Мы делаем, а не учим. Наше дело - как максимум, помочь другим советом или опытом. Мы никак не сможем многолетний практический опыт, выработанный склад мышления и все наши навыки доскональным понятным языком описать в очередной книге чтобы, прочитав её, другой человек смог достичь того же уровня. Это очевидно. Практикуйтесь, развивайтесь, изучайте, экспериментируйте, не бойтесь на первый взгляд нерешаемых задач, больше практики, меньше чтения. Восполняйте чтением необходимые вам теоретические пробелы, чтобы ваши практические навыки улучшались. Это главное, что я могу сказать, опираясь на собственный десятилетний опыт работы в нашей сфере труда.
Полтора года опыта учебного программирования - это ничтожно мало.  Я уже много раз об этом писал, но повторюсь: программирование - как спорт, если вы не начали в 12 лет, а начали только в университете, вы отстали от тех, кто пришёл в университет уже с четырьмя или пятью годами опыта. Почему этот опыт важен? Не потому, что кто-то пять лет штаны за книжками просиживал, а потому что они набивали руку на решении практических задач и алгоритмическом мышлении. Вам приходится задумываться над каждым шагом, а им приходится только приводить знания в порядок. Кто говорит, что фундаментальные знания не нужны, а важно только требование работодателя - лукавит, потому что таким образом получаются одни говнокодеры.