Изучение нового основного языка. Java?

Возможно, мой вопрос не совсем подходит для Q&A, но это и не топик для хабра. Без предыстории на обойтись…

Около 7 лет занимаюсь программированием, около 5 лет зарабатываю этим на жизнь. После окончания университета прошло больше двух лет, а я все еще не устроился на работу, потому что увяз в собственных «проектах» (они приносят деньги, но не дают развития).
Изначально мною был сделан неудачный выбор: Delphi (windows-приложения) и PHP (веб). И тем, и другим владею на хорошем уровне.
На Delphi писал и оконные приложения (облегченный клиент для популярной MMORPG-игры), и многопоточные сервера (авторизационный сервер для той же игры), и относительно низкоуровневые библиотеки (SPI-провайдер, внешний модуль защиты клиентских приложений). Об одной своей разработке я писал на хабре: Аналог Time Machine для Windows
На PHP были разработаны как отдельные модули (личные кабинеты, админ-панели, внутренние библиотеки), так и полноценные сайты с нуля. Самый популярный ресурс на данный момент имеет около 30 тысяч уникальных посетителей в сутки (400-500 тысяч просмотренных страниц).
Само собой приходилось заниматься и администрированием (linux, apache, nginx), и работать с СУБД (MSSQL, MySQL), и писать HTML-страницы (CSS, Javascript, jQuery). Но это побочные знания, а не мой профиль.

Вчера начал изучать вакансии и понял, что оказался «в пролете» (не скажу, что это было большой неожиданностью): крупным IT-компаниям (yandex, mail, google, ...), завязанным на интернете, не нужны PHP-программисты. Работать в компании со штатом в 10 человек и делать каждую неделю очередной сайт на заказ я не хочу. Мне нравится создавать то, чем пользуются ежедневно тысячи людей. Я люблю программировать. Я хочу иметь возможность запустить браузер, загрузить страницу и сказать: «это сделал я».

Как добиться желаемого? Как попасть в Яндекс на должность разработчика? Очевидно, ответ следующий: изучить на достаточном уровне Java или C++. На что сделать ставку, чтобы в будущем не пожалеть? Наверное, Java.
Реально ли дома по книжкам изучить Java (и сколько на это может потребоваться времени), чтобы не провалить собеседование в Яндексе? Или Яндекс — это слишком высоко, и все равно придется сначала поработать в более мелкой компании для приобретения опыта.

Мне сейчас очень нужен вектор развития, потому что я не хочу еще один год топтаться на месте.

P. S. Или я ошибаюсь в том, что с PHP нельзя построить хорошую карьеру?
  • Вопрос задан
  • 9775 просмотров
Пригласить эксперта
Ответы на вопрос 14
Foror
@Foror
Графоман
1) Для Яндекса, Гугла и т.д. нужно разбираться в математике и алгоритмах. Если идёте на должность разработчика, то разберитесь в этом…

2) Дальше нужны знания ООП, паттерны проектирования. Книги все на слуху, но если вы не в курсе, то могу порекомендовать несколько.

3) После всего этого можете начинать разбираться с Java. Также можете попробовать Python. Обе компании работают с этими языками. Если хотите быть оригинальным и пойти в Google, то учите Go :)

Тут вам советуют оставаться с PHP… В целом, отчасти это правильно. Но в Java я думаю вы лучше поймете, что такое ООП и паттерны. А также узнаете, про IoC, OSGI, Maven и много других интересностей. В PHP конечно есть жалкие попытки кое-что из этого клонировать на свою платформу, но как правило всё это выглядит жалким… Так что лучше учиться на оригиналах.

По времени у вас это займёт очень много (как минимум года 2)… Так что можете поразбираться в первых двух пунтках и идти на позицию студента, где будете учиться и разбираться в Java, Python, PHP и любом другом языке, по которым вам дадут работать.
Ответ написан
Комментировать
NanoDragon
@NanoDragon
Хотя у большинства мнение обратно, но я считаю что стоит потратить пол года на изучение всех основных языков и выбрать тот который больше нравиться. Это имхо.
А в реальности можно поинтересоваться у сотрудников Яндекса, какие у них требования к программистам.
Ведь не всем нужны ява программисты, требуются разработчики на питоне, руби и других языках.
Помойму Руби для веб разработки сейчас самый прогрессивный(для меня например), а вот некотором он не нравиться.
Если бы мне нравислась ява, тогда я бы выбрал яву, если с++ тогда с++.
Ответ написан
Комментировать
slang
@slang
Изучение огромной кучи языков не даст Вам глубокой специализации в чём-либо, а хорошие деньги платят именно за те знания, которые не лежат на поверхности и которыми обладают профессионалы в своей области. Используя PHP можно сделать хорошую карьеру. Facebook, кроме всего прочего, активно пользуется и этим языком, а в свете последних событий это неплохой конкурент гуглу. Что касается Яндекса, насколько мне известно, там тоже не обходится без PHP, да и вообще, есть масса компаний, которые делают хорошие продукты, далёкие от клепания сайтов-визиток за $25/штука.
Ответ написан
sevka_fedoroff
@sevka_fedoroff
Скажу пару слов в защиту PHP. Например у нас в компании года 3-4 назад мы использовали Java + Oracle, когда делали проекты на заказ. Сейчас мы делаем свои проекты, используем PHP + MySQL. Когда важна скорость разработки, когда проект уже работает, и его нельзя останавливать, PHP — то что нужно. Зачастую проекты на Java — это неповоротливые монстры, которые вы будете ковырять годами и так и не увидите как они работают. Если хотите видеть результат своей работы, видеть динамику — то это скорее PHP, чем Java. Как видите, я не просто кричу, что PHP рулез, а Жаба отстой. Я делюсь своим опытом. Мы сменили Java на PHP и получили профит.
Ответ написан
bit
@bit
Яндексу нужны разные люди. Например:
Разработчик Баннерной системы (Perl/MySQL)
Лучше, когда ты знаешь помимо основного языка еще несколько дополнительно и можешь быстро переключаться для решения небольших задач, а так-же можешь подбирать для решения возникшей задачи наиболее подходящий набор инструментов, а не пытаешься сделать все одним.
Ответ написан
Комментировать
vermilion1
@vermilion1
Реально ли дома по книжкам изучить Java...

Да, но как вы поймете материал зависит только от вас. Я сам занимался программированием на PHP и сейчас хожу на курсы Java. Могу точно сказать, что освоить Java сложнее, но в этом её прелесть :)
Из литературы рекомендую:

  • Еккель — Философия Java (4-е издание)
  • Шилдт — Полный справочник по Java (7-е издание)
  • Вязовик — Программирование на Java
  • Sierra, эта женщина составляет тесты, которые проходят на сертификации. Книжек пару штук, не помню названий
  • ...

PS. Никогда не читайте из одной книжки ;)
Ответ написан
Foror
@Foror
Графоман
А вообще, на вашем месте не отчаиваться — немного пересидеть депрессию и дальше с новыми силам долбить собственные проекты :)
Ответ написан
Snowindy
@Snowindy
С точки зрения денег, кстати, перемена PHP на Java, мало что значит. Тут, на хабре, прямо сейчас в правой колонке видно 90 тыр для PHP-разработчика.

Стоит ли менять шило на мыло?

К тому же с Java в Enterprise обплюетесь, на контрасте… Сервера запускаются в продакшене чуть ли не по полчаса, все тяжелое, неповоротливое. Бееее после веба.

Как говорит Foror, классно было бы развить то, что есть, сделать так, чтобы Ваши сайтом были Вашим активом (т.е. деньги капают без вашего участия). После преодоления этого барьера очень просто пойти на любую позицию как джавист, хоть на джуниора (и то, скорее всего, Вы уже выше)
Ответ написан
kashey
@kashey
Программирую большую половину жизни
Pascal — 10 лет
C++ — 10 лет
C — 3 года
Lua — год
Java — 3 года
Javascript — 3 года
PHP — 4 года

И уже второй год зарабатываю только на PHP

Также могу сказать что много языков знать ВРЕДНО.
Потому что «мастеринг» у них просто разный. И мне очень мешает когда я подходы из одного языка напрямую отображаю на другой.
Что-то типа использованить «смарти» на C++ или протопипного програминга из lua или js на большой Java
Ответ написан
Комментировать
@Drevlyanin
Как вариант, изучить статистику спроса крупных компаний на программистов различных направлений по вашему городу и в итоге выбрать то направление развития, которое вам больше нравится и пользуется наивысшим спросом (при достойной зарплате).
Ответ написан
Комментировать
JeanLouis
@JeanLouis
Если открыть вакансии, тот же HH.ru. То там требуется:

— PHP (наиболее востребован, но зарплаты ниже)
— Java (наиболее высокие зарплаты, но востребован чуть меньше чем ASP.NET)
— ASP.NET/C# (достаточно высокие зарплаты, востребован чуть больше чем Java)

Это мой субъективный опыт. Я сам сейчас работаю с ASP.NET MVC, перешел на него с PHP. Так же мне интуиция подсказывает что на западе ASP.NET/C# цениться больше и будет востребован еще больше.

R&R, Питон мне редко на глаза попадаются в вакансиях.
Ответ написан
Комментировать
MARDEN
@MARDEN
> крупным IT-компаниям (yandex, mail, google, ...), завязанным на интернете, не нужны PHP-программисты
Да что вы говорите? В мэил.ру полно проектов на PHP и часто вижу вакансии PHP-разработчиков.
Что-то подсказывает мне, что вы просто не владеете информацией в должной мере, раз делаете такие выводы.
Ответ написан
neyronius
@neyronius
У нас в городе ситуация складывается так, что либо PHP либо ASP.NET для веба. Сейчас это мейнстрим. Думаю в других городах дела обстоят аналогично. Зная это и разбираясь в этом на профессиональном уровне, а таже в фундаментальных алгоритмах, вы будете всегда востебованы на рынке и сможете сами выбирать, где вам работать. А проект с высокой нагрузкой — большой жирный плюс в любом резюме.
Ответ написан
Комментировать
@ReBlock
«не надо прогибаться под изменьчивый мир, пусть лучше он прогнется под нас»

Прежде всего определись сам, чем бы ты хотел заниматься в жизни и чего бы хотел добиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы