Старайся вникнуть в суть, интересуйся и пробуй писать свои программы. Действия подскажут направления литературы. Тут главное не выучить какую то информацию, а понять как это работает (основа - мысли и действия, а литература лишь помощник) . Заинтересовалась php? Отлично. Ссылки от мастера в первом посте дадут понимание общих принципов, а дальше ставь себе задачки и пробуй их решить. Там уже само пойдет.
по php вот пожалуйста, лучшего учебника нет
http://php.ru/manual/
Вначале лучше изучить алгоритмы, ознакомиться с разными уровнями программирования (низкооруровневое, высокоуровневое, имеперативное, декларативное, функциональное и т. д.) . Затем после написания ряда программных продуктов нужно постараться выработать определенные стратегии. Затем изучить паттерны программирования, которые по сути являются стратегиями программирования типичных задач. Сравнивая эти паттерны со своими стратегиями, можно понять, насколько актуальны свои стратегии программирования. К языку программирования жестко привязываться не стоит, подходящий язык лучше выбирать исходя из задач.
Переходи на linux. Через месяц сам всё поймёшь и будешь знать что читать.