У любого человека, интересующегося программированием, возникает этот вопрос. Языков программирования развелось великое множество. Сразу же на ум приходят Java, Python, C, C++, JavaScript, Go, ... Так с какого же начинать? В это статье я приведу инструкцию, как действовать, если Вы заинтересовались программированием, но не знаете с чего начать.
Важно! Здесь я озвучиваю свое мнение, которое сформировалось за годы моего пребывания в IT. Отнеситесь с осторожностью к данной инструкции. Не стесняйтесь высказывать свое мнение в комментариях, особенно, если вы уже опытный разработчик
А вы, собственно, кто?
Для начала стоит определиться, кто вы:
- Просто любопытный, ищете себе новое хобби
- Студент/школьник, задумывающийся о своей будущей профессии
- Недавний выпускник ВУЗа/техникума, который хочет в ближайшее время найти работу программистом
- Человек с опытом работы в другой области, желающий сменить профессию и попасть в IT сектор
В первом случае трудно что-то посоветовать. Скорее всего, Вам что-то уже понравилось, и Вы за это зацепились. Могу только пожелать не терять мотивацию!
Остальные случаи разберу в этой статье.
Студент/школьник
Если вы попали в эту категорию - я Вам завидую :) У вас свежий гибкий ум, есть много энергии и много времени. Если Вам сейчас интересно программирование - не теряйтесь и "ныряйте" в этот огромный мир!
На самом деле, изучение программирования - это не изучение конкретного языка. Это - изучение и понимание концепций, заложенных в той или иной технологии, в том или ином языке. Но, в то же время, проще всего подходить к их изучению именно с освоения конкретного языка программирования, обладающим интересующей Вас концепцией.
Я думаю, что Вам на данном этапе лучше всего будет попробовать охватить как можно больше концепций, поэтому я бы посоветовал начинать с различных сложных языков.
- C и C++ - эти языки дадут Вам возможность поработать довольно на низком уровне. Вы научитесь работать с памятью, указателями, ссылками - многие современные языки пытаются "оградить" разработчика от работы со всем этим. Также, C++ поможет освоить Объектно-Ориентированную Парадигму (ООП), которая, как мне кажется, сейчас является доминирующей
- Haskell - этот язык можно назвать более "академическим", однако многие, считают его эталоном функционального программирования (ФП). Не могу сказать, что ФП набирает популярность, но тенденция на заимствование фич из ФП становится все больше. Понимание того, как должно работать ФП может дать Вам огромное преимущество на различных этапах Вашей карьеры. Да и просто, Вы можете найти интересным попробовать переключить свой мозг на работу в функциональной парадигме.
- JavaScript - это тоже довольно хайповый язык до сих пор. Многие от него плюются, и я тоже не его фанат, но там определенно есть что посмотреть. Более того, в будущем этот язык откроет Вам возможности разрабатывать фронтенд и не только
- Bash - не всегда поворачивается язык назвать это языком :) Тем не менее, знание и любовь к Bash еще сослужит Вам хорошую службу - как в работе, так и вне нее. Вы сможете автоматизировать рутину с помощью скриптов, которые быстро и легко пишутся на баше
Если Вы сможете погрузить во все из вышеперечисленного, Вы - герой! Любая задача будет Вам по плечу, и у Вас будут открыты огромные карьерные возможности. Не теряйте время!
Выпускник университета
Возможно, Вы сейчас решили взять небольшую паузу перед тем как начать искать работу своей мечты. Планируете отдохнуть, набраться сил и, в конце концов, определиться, чем же Вы хотите заниматься по жизни!
Вам, конечно, сложнее, чем людям из предыдущей категории, ведь Ваше время все-таки ограничено довольно небольшим отрезком. Тем не менее, оно есть и его не нужно терять!
Возможно, Вам стоит действительно сначала определиться, что Вы хотите писать, разрабывать, чем заниматься в IT, и двигаться в этом направлении. Обозначу следующие векторы движения:
- C++ - если Вы сразу будете готовы заниматься довольно сложными низкоуровневыми вещами, а в будущем не против сменить язык и область - я бы посоветовал этот язык. Он может стать в будущем как и Вашим сознательно выбранным карьерным путем, так и просто базой для изучения других языков. Выше я писал, почему концепции C++ могут пригодиться
- Java - этот язык открывает Вам много возможностей: как enterprise-разработку больших корпоративных приложений, так и мобильная разработку, а также путь в Big Data. Возможно, если Вы строго для себя решили уходить в мобильную разработку, то можно сразу пробовать изучать Kotlin. Но и в этом случае я бы не "отрицал" Java.
- Python - возможно, этот путь Вам подходит, если Вы хотите меньше запариваться :) Язык, в целом, был сделан так, чтобы уменьшить в него входной порог. На нем тоже существует enterprise-разработка, и тоже можно попасть в Big Data. Помимо этого, если вы любите и разбираетесь в математике, Вам будут открыты двери в Data Science, в том числе, сможете работать с машинным обучением
- JavaScript/TypeScript - основное, что дадут эти языки - это возможность работать во Frontend-разработке. Изучив один из фреймворков вместе с языком (React, Angular, Vue,..), Вы довольно легко сможете устроиться на работу.
Признаюсь, что я сам начинал карьерный путь из этой точки. Мой выбор пал на Java и, в целом, я не сильно об этом жалею.
Человек, пытающийся сменить сферу деятельности
Вы приняли четкое решение сменить работу и уйти в сферу IT. На это может быть много причин: Вас всегда привлекало программирование, Вас не устраивала зарплата, Вы видите много успешных историй друзей, прошедших квалификацию.
Скорее всего, у Вас сейчас есть стабильная работа, которую Вы не можете бросить на пол года, посвятив это время обучению. Поэтому большую часть времени на изучения программирования Вы тратите по вечерам и выходным. Для Вас имеет смысл получить какую-то дополнительную мотивацию и пинок для обучения: это может быть менторство или курсы, которые сейчас довольно популярны.
Я Вам не завидую, потому что Вам действительно сейчас приходится сложно. Однако, я могу позавидовать Вашему упорству: несмотря на все трудности, Вы идете к намеченной цели.
Думаю, в Вашем случае нужно выбрать какой-нибудь язык с наименьшим входным порогом. Пройдя этот порог уже дальше Вы сможете "регулировать" свой карьерный путь, но сейчас же главной - "войти в IT":
- Python - я уже писал, что язык довольно прост для новичков, а главное - востребован! С ним Вы сможете быстро войти в профессию и стать полноценным востребованным разработчиком. Его бы я рассматривал в первую очередь
- JavaScript - как мне кажется, этот язык тоже довольно просто для начинающего. А так же входной порог для становления frontend-разработчиком с этим языком тоже относительно невелик
- Java - возможно, это наиболее сложный язык из этих трех. Но я все-равно приведу его сюда, ибо лично знаю несколько примеров среди моих знакомых, когда люди переквалифицировались в Java-разрабов с совершенно других профессий. И не стоит забывать, что отсюда можно будет в будущем переключиться на мобилки или биг дату!
Заключение
Если Вы решили посвятить свою жизнь программированию, то главное, что у Вас сейчас есть - это желание. Не растратьте его по пути и попытайтесь сохранить мотивацию, и тогда Вас обязательно ждет успех.
Если Вам понравилась статья, ставьте лайки и подписывайтесь на канал. Поделитесь в комментариях, к каком языку вы уже приглядываетесь или даже начали заниматься им