1) Для Яндекса, Гугла и т.д. нужно разбираться в математике и алгоритмах. Если идёте на должность разработчика, то разберитесь в этом…
2) Дальше нужны знания ООП, паттерны проектирования. Книги все на слуху, но если вы не в курсе, то могу порекомендовать несколько.
3) После всего этого можете начинать разбираться с Java. Также можете попробовать Python. Обе компании работают с этими языками. Если хотите быть оригинальным и пойти в Google, то учите Go :)
Тут вам советуют оставаться с PHP… В целом, отчасти это правильно. Но в Java я думаю вы лучше поймете, что такое ООП и паттерны. А также узнаете, про IoC, OSGI, Maven и много других интересностей. В PHP конечно есть жалкие попытки кое-что из этого клонировать на свою платформу, но как правило всё это выглядит жалким… Так что лучше учиться на оригиналах.
По времени у вас это займёт очень много (как минимум года 2)… Так что можете поразбираться в первых двух пунтках и идти на позицию студента, где будете учиться и разбираться в Java, Python, PHP и любом другом языке, по которым вам дадут работать.