Статья в основном направлена на школьников , студентов и может быть джунов (джун — это разработчик у которого мало знаний и много вопросов). Для людей более старшего возраста, но желающих стать программистами, думаю также будет интересно.
Сначала приведу несколько постулатов, которые просто примем за истину:
- Путь в серьёзное программирование долгий и сложный
- Программирование требует полного погружения и "безбашенно ворваться"
- Технологии и подходы меняются очень быстро
- Алгоритмы и основы практически не меняются а только дополняются
- Освоить новую технологию если вы уже специалист в какой то технологии многократно проще
- Кроме технических навыков, soft skills также важны и они не меняются от смены техи
Эти постулаты можно оспаривать и много обсуждать, но это не цель данной статьи.
Самое важное состоит в том что сменить язык и технологию многократно проще чем выучить первую. Поэтому из сложного пути стоит выкинуть всё сложное что не является необходимым, а взять в дорогу всё что вам поможет.
На протяжении всего времени, до того как вы сможете зарабатывать какие-то деньги при помощи программирования вам придётся идти на голом энтузиазме. На пути вы встретите множество проблем которые на определённом этапе развития могут казаться непреодолимыми. И в этот момент у вас должно быть достаточно воли и желания этот период преодолеть. Поэтому управление собственной мотивацией я считаю наиболее важной частью процесса обучения.
Поэтому первый язык и технологию я рекомендую выбирать строго по любви. Во всех технологиях к которым вы сейчас свободно найдёте бесплатные онлайн курсы есть заработки, просто полностью исключите вопрос "сколько я заработаю" из критериев выбора. Также я считаю что бесплатных образовательных материалов сейчас неимоверно много и я не вижу особого смысла покупать платные онлайн курсы. Из платного образования кружки с программированием и роботостроением для детей я считаю хорошей идеей, также любые технические лицеи, гимназии, университеты, т.е. классическое образование, если вы находитесь в возрасте приемлемом для такого образования.
Итак, алгоритм как я советую выбрать язык программирования:
Идёте и гугл, яндекс или чем вы пользуетесь и забиваете там запрос: "бесплатные онлайн курсы программирования" и выбираете просто по описаниям 5 разных языков. Почитайте про разные, может что-то зацепит. Если что-то зацепило, всё выбор сделан, берите это.
По каждому языку идёте в википедию и читаете про этот язык. Что-то не понравится, то выкидывайте. Останется 2-3 языка. Если что-то зацепило, всё выбор сделан, берите это.
Определитесь с предметной областью, что вам интересно, например модифицировать игры и писать для них скрипты, или писать игры целиком, или сделать финансовый расчёт, смоделировать что-нибудь типа эпидемии, управлять роботом, или ещё что-нибудь, важно взять то что лично вам интересно, а не что кто-то считает важным.
Если выбрать направление в котором потенциальная зарплата больше, а фана нет, то риск не дойти многократно увеличивается. Поэтому первую технологию нужно выбирать только по любви.
Технологии которые сейчас можно изучать сильно устареют и изменятся когда вы дойдёте до того чтобы применять их на работе. Поэтому вообще расслабьтесь и делайте то, что штырит и прёт, а не то что модно или кому-то нужно. Более того знать несколько языков и разных тех крайне полезно для опыта и общего развития в отрасли. Можно сравнивать разные подходы и совершенствовать свой стиль и путь.
Несколько очень частых вопросов:
Нужен ли английский?
Чтобы начать прямо сейчас - нет. Но вообще хорошо бы. Если можно сконцентрироваться на этом в в школе и университете, то это неплохо. Но не стоит откладывать по принципу "выучу, потом займусь программированием".
Нужна ли высшая математика?
Чтобы начать прямо сейчас - нет. Но вообще хорошо бы. Если можно сконцентрироваться на этом в школе и университете, то это неплохо. Но не стоит откладывать по принципу "выучу, потом займусь программированием".
Нужна ли высшее образование?
Чтобы начать прямо сейчас - нет. Но вообще хорошо бы. Если можно сконцентрироваться на этом в школе и университете, то это неплохо. Но не стоит откладывать по принципу "выучу, потом займусь программированием".
Нужно ли X?
Чтобы начать прямо сейчас - нет. Точно не стоит откладывать по принципу "выучу, потом займусь программированием". Ну вы поняли :)
И самое главное: догматов - нет, понятия "правильно" - нет, мнений вокруг - миллионы. Получайте кайф и шлите всех лесом, в том числе меня и эту статью, если вам нравится что-то делать не так как я написал - делайте.