Итак, ты испытываешь острое желание стать программистом. Куда теперь бежать?
На этот вопрос существует множество ответов в сети. Некогда мы уже писали статью об этом. Тем не менее, судя по вопросам, которые нам задают в социальных сетях, новички часто теряются в обилии информации и не знают, с чего конкретно начинать. В принципе, мы на JavaRush только тем и занимаемся, что помогаем ответить на этот вопрос. Однако для тех, кто совсем растерялся, мы решили составить приблизительный план действий.
Для начала определись с пулом технологий
- Выбери 2-3 основных источника знаний, а также с десяток дополнительных. Но не забывай «гуглить», если что-то не ясно.
- Выбери среду разработки и установи на свою рабочую машину всё необходимое ПО.
- Определись с тем, что еще учить и где черпать информацию.
Ну хорошо, допустим, Java. Как платят специалистам по этому языку?
Чтобы это выяснить, есть много прекрасных сайтов, например, DOU. Кроме всего прочего на этом сайте собирается статистика о том, сколько зарабатывают специалисты по разработке и другие «айтишники» в Украине. Итак, переходим по ссылке, выбираем там, например, город Киев и должность Junior Developer (или просто Developer), выбираем Java и сравниваем с другими языками. Если ты живешь не в Киеве, не переживай: мы отслеживали разницу стоимости работы в разных городах и в статье «Путь программиста», приводили таблицу с приблизительными данными. Скопируем её сюда, вот она: Это — докризисная таблица. В настоящий момент ситуация несколько изменилась, киевские зарплаты остались примерно на том же уровне, а вот московские приблизились к киевским. Если ты изучил ссылку с DOU, то, вероятно, заметил, что Java-программисты — не только самые востребованные, но также и одни из самых высокооплачиваемых специалистов.А, может, Java — это слишком сложно?
...На самом деле, нет. Есть языки, которые на первом этапе обучения покажутся проще. Однако у Java есть огромный жирный плюс: он массовый, нужный и присутствует на рынке уже много лет. Соответственно материалов для обучения, лекций, книг, форумов как для новичков, так и для матерых программистов — великое множество. Комьюнити очень помогает учебе. Главное во всем этом разнообразии не запутаться и подобрать учебные материалы. Об этом мы напишем в следующем пункте. Ты решил, что точно хочешь разрабатывать игры и прочитал, что большинство суперхитов написано на C++. Так может сразу его и учить, этого старейшину мира универсальных языков? Можно попробовать, но идея не лучшая: С++ чрезвычайно сложен для новичка. А вот после подготовки на Java ты без проблем сможешь перейти на C++, если захочешь. Кстати, далеко не все «большие» игры написаны на C++. Знаменитый Minecraft, например, создан на Java.Краткие выводы
- Самые востребованные разработчики пишут на Java и потребность в них постоянно растет;
- У Java-разработчиков высокие зарплаты;
- Java — универсальный язык. На нем можно писать почти что угодно. Игры в том числе;
- Java относительно прост в изучении;
- После Java несложно перейти на C#, совсем просто изучить JavaScript, Ruby, Python. После Java программист готов к подробному знакомству со сложным С++;
- Android основан на Java;
- Реализация многопоточности в Java доставляет. Если ты новичок, ты, скорее всего, пока не понимаешь, как это классно. Просто запомни эту фразу=);
- Подавляющее большинство программистов владеет JavaScript в качестве второго языка.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Что касается Шилдта, Эккеля и курса JavaRush: сначала я тоже плевался на книгу Эккеля, так как считал её слишком мудрёной, и перешёл на Шилдта. Но со временем выработал такую систему: когда я в JavaRush дохожу до предела имеющихся знаний (то есть ты уже решаешь задачу наугад, неосознанно) — я погружаюсь в Эккеля, причём штудирую его пример за примером, упражнение за упражнением, набирая всё ручками, иногда даже на листке бумаги, так бывает быстрее озаряет. Причём штудирую его последовательно, не прыгая по главам, поскольку его курс очень грамотно построен, и проходить его нужно последовательно. Так вот когда ты прошёл нужный материал, и возварщаешься на JavaRush, то все страшные до этого задачи автоматически становятся детскими, и ты с пониманием сути довольно быстро идёшь дальше.
Что же касается Шилдта, полный курс — то я его читаю последовательно в свободное время, и использую уже как закрепление пройденного, или восполнения пробелов. Примеры в его книге не такие мудрёные, но некоторые вещи он очень грамотно и просто объясняет.
Он не основан на Java, он использует синтаксис Java(да как бы частями там Java есть), и использует собственный байт код и виртуальную машину. При этом для Android внезапно с тем же успехом можно писать на C++, C#, ruby, Ada(есть компилятор под Freebsd) и куча всего еще, так что это лучше убрать из плюсов.
1) Задание должно быть интересным (вызывать азарт, бессонные ночи)
2) Готовый проект должен быть таким, чтоб его захотел юзать хоть кто-то, кроме меня.
3) Игры не подходят, писать игры это фан, но не профессиональная разработка
Второй путь предлагает более рациональное зерно — взять ходовой язык (джаву или сишарп) и учиться по нему. Бонусы здесь в том, что много хорошей литературы и легко найти задачники (тот же джава-раш), легко найти ответы на вопросы.
В любом случае — очень важно понимать следующее — когда спрашиваете, какую литературу взять, увидите несколько разных предложений — так вот здесь важно понимать, что книга, которая кому-то подошла, вам может не подойти (та же Философия Джава, которая многих восторгает — она больше как справочник для тех, кто уже несколько в теме, а не для тех, кто ноль! Тут гораздо доступнее поясняет Шилдт в своем «полном руководстве»), так что не стесняйтесь пробовать другие варианты.