Подобные вопросы "какой ЯП изучать первым" достаточно популярный.
Рекомендую к просмотру
видеоЯзык для новичка вторичен. Единственная его задача - не учить плохому и не мешать учиться. У новичка, изучающего программирование, сложности возникают во всём и в первую очередь в алгоритмическом решении. Например возникает задача что-то посчитать, то человек, который знаёт основы языка говорит "я не знаю, как подступиться к задаче", такое нередко случается, довольно часто. Для того, чтобы понимать, как подходить к задаче, как производить вычисления, Как пошагово двигаться, как составлять алгоритм пошагово это целая история, это нельзя выучить.
Т.е. невозможно просто прочитать и выучить синтаксис и всё получится. Можно сравнить это с решением иностранного языка. Если выучите слова, то не сможете составлять преложение. В большинстве своём новички не отдают себе отчёт, что базовые конструкции языков идентичные. Они иногда различаются, но концепции +- одинаковые. В конечном итоге получаем некое решение в виде вычислений, которые что-то делают последовательно. К таким конструкциям относятся переменные, константы, условные конструкции, которые включают небольшое знание булевой алгебры. Функции, циклы, рекурсии. И по большому счету это все. Это ядро, которому нужно научиться. Это есть вообще в любом языке.
Первично понять эти вещи и двигаться дальше. Настоящее изучение языка происходит после этой истории. И тема после которой можно двигаться дальше это работа с коллекциями и агрегатными функциями. Например у вас есть текст и вам нужно посчитать, сколько раз встречается каждое слово. Если вы не можете сейчас решить задачу без специфики языка, то нужно просто научиться мыслить алгоритмически, суметь воспроизвести задачу в псевдокоде, а потом в конкретном коде. После того, как вы научились работать с коллекциями, вы можете идти дальше. На каком языке лучше это делать? Есть две стратегии
- Нужно устроиться как можно быстрее, нет времени на раскачку - нужно сменить работу. ограничены средства. Тогда имеет смысл просмотреть вакансии в регионе, посмотреть самые популярные языки. В последние года стандартный расклад в регионах по языкам - PHP/Java, Javascript. Самые массовые языки. Javascript почти везде идёт вторым языком. Java - аутсорсинг (заказная разработка). Есть как правило в каждом городе и компании достаточно крупные. PHP - веб-студии, заказная разработка, сайты. Вероятно самый простой способ войти в разработку (другой вопрос про уровень разработки).
- При изучении конкретного языка вы не можете избежать ограничений данного языка на те концепции, которые есть в программировании. Это строительные блоки, подходы, которые есть в программировании, с помощью которых решаются задачи. Язык - это конкретный способ выразить ваш алгоритм. Как конкретно вы собираетесь перевернуть строчку. И ни один из них не связан ни с одним языком. Но когда вы реализуете задачу, вы используете язык, его подходы (они могут кардинально отличаться). Возникает вопрос, какой язык лучше выбрать? некоторые языки могут вам мешать, требовать дополнительных знаний, которые требуются для реализации но для концепций не важны. К таким языкам относятся чаще статические языки, типа Java, C#. Как первый язык возможно не стоит их использовать. Процесс обучения стоит строить на другом языке. Например у Java серьезный порог входа. Например на JS задача переворота строки делается в 3-4 строки, то в Java будет огромное количество особенностей и подходов для работы самого языка. Это не то, что помогает новичку учиться. Для обучения стоит использовать динамический язык, который не отвлекает от сути.
Когда программисты изучают программирование, то не могут отделить концепцию от реализации языка, начинают думать, что концепция именно такая, как в языке. Но как только они встречаются с этим в другом языке, то у них происходит переосмысление. Каждый язык содержит ограничения ,которые могут скрывать или искажать программисткую реальность. Не считайте, что первый язык программирования это на чём вы потом будете писать код. Наоборот, если вы знаете два языка программирования, умете решать простые задачи, работать с коллекциями. В таком случае понимание концепции у вас будет более широкое и вы будете отделять четко само программирование от конкретного языка и тех способов, Которые реализуются в конкретном языке. Изучать второй язык сразу не стоит, но когда вы будете решать простые задачки, вы можете уже пробовать второй язык.
Перечисленные выше языки они больше про прикладную разработку (туда например ещё входят Python, Ruby). Если у вас есть время, желание действительно разобраться, то приглядитесь к семейству языков Lisp (Common Lisp, Racket, Scheme). Эти языки кардинально отличаются от перечисленных языков. На практике они редко используются, но это языки, у которых "отсутствует синтаксис". Они оказывают минимальное влияние на концепции программирования. В Lisp маленькое ядро, но оно хорошо комбинируется, то получается, что можно породить огромное количество разных вещей, используя базовые конструкции. Поэтому Lisp с точки зрения правильного мышления очень хороший язык.