Бинарный салют, друзья!
Недавно у меня на YouTube был спор в комментах насчет того, какой язык программирования выбрать в качестве своего первого языка. Я решил написать статью на эту тему, но также осветить вопросы касательно выбора не только своего первого языка, но касательно выбора языка программирования в целом. Перед тем как сесть писать, я решил пройтись по YouTube и глянуть, а что там известные корифеи говорили до меня. Глянул Немчинского и Лёшу Корепанова. Это каналы, которые я, в общем и целом, рекомендую к просмотру. Однако в этих роликах встретил очень много странного и лично мне не понятно, откуда взятого. Я не буду разбирать их ролики, но приведу лишь один пример. Лёша Корепанов сказал, например, что Java, возможно, не подойдёт тем, кто хочет работать удаленно, потому что в банках не дают работать удаленно.
В банках, действительно, обычно не дают программистам полноценно работать удаленно из-за ограничений, в связи с требованиями к безопасности. Однако какая вообще связь между Java и банковской сферой? На Java только в банках, что ли, программируют? Короче, я вообще юмора не понял. Услышал много чего странного, поэтому решил написать свою статью. Ну и, конечно же, не в последнюю очередь решил на вас подзаработать, продав вам свои курсы по Python, C# и SQL. Ссылки найдёте чуть ниже. Но вернемся к теме. Хочу сразу предупредить, что я, в отличие от вышеозначенных граждан, не буду говорить обо всех языках подряд, ибо у меня нет такой экспертизы. А вот о чем знаю точно – расскажу. Поехали!
Лайкосы / Подписки / Курсы
- подписывайтесь на группу в телеграме
- подписывайтесь на канал в YouTube
- покупайте курсы по программированию
Python, Java, C#
В категорию простых языков может быть отнесено несколько, однако я бы выбирал в данном случае то, что самое популярное, поскольку по популярному языку вы найдёте массу качественных материалов, а также получите какой-никакой шанс даже устроиться на свою первую работу со знаниями именно выбранного языка программирования. И я назову конкретный язык, который стоит выбрать в данном случае. Это, конечно же, Python. Этот язык обладает отличным балансом между мощью и количеством фич, которые в нем представлены, не в пример, скажем, C#. И да, я это говорю, несмотря на то, что мой любимый язык – C#. Кривая изучения Python довольно пологая, гораздо более пологая, чем кривая изучения C#.
У меня есть курс по C#, я около 20-ти часов просто тупо рассказываю о синтаксических конструкциях этого языка. И знаете, моему удивлению не было предела, когда я осознал, что неплохо было бы добавить еще 20 часов контента, чтобы осветить оставшуюся часть по синтаксическим конструкциям. То есть мой курс надо реально некисло допиливать, чтобы он просто хорошо вас вводил в сам язык без толкового раскрытия семантического смысла многих конструкций. Именно поэтому я бы не рекомендовал совсем зелёным новичкам на данный момент начинать своё вхождение в IT через такие языки, как C# или Java. Очень высока вероятность, что вы задолбаетесь пыль глотать. После того как с использованием простого языка, типа Python, вы хорошенько ознакомитесь с основными концепциями программирования и уже не будете пугаться циклов, классов и наследования, стоит подумать о том, чем вы хотите заниматься в дальнейшем в своей профессиональной деятельности.
К этому же пункту сразу и непосредственно могут переходить те люди, которые либо уже имели некий бэкграунд в программировании, либо точно знают, что потянут любой язык, поскольку имеют солидную базу в виде мощного фундаментального образования, особенно технического, где приходилось пользоваться логикой.
Абсолютно все кейсы разобрать невозможно. Давайте пройдемся лишь по некоторым. Предположим, что в этой точке у нас находится человек, который освоил Python. Дальше надо определиться с наличием работы именно по этому языку в вашем регионе проживания, а также, собственно, с тем, чем вы хотите заниматься. Потому что если вы хотите заниматься мобильной разработкой, наличие вакансий по Python в вашем городе вам не поможет, ибо среди вакансий мобильной разработки вы не найдёте с вероятностью в 99 процентов. Почему? Ну потому что Python в мобильной разработке практически не используется.
А вот если вы видите себя в Data Science или веб-девелопменте на бэкенде, то вполне можно посмотреть, что там у вас по вакансиям. Если вы живёте там, где программированием и не пахнет, то почти единственный выход – валить оттуда, ибо найти свою первую работу на удалёнке сложно. И, кроме того, я бы не рекомендовал так делать. На эту тему отдельную статью напишу. Итак, вы лезете смотреть вакансии, где требуется Рython. И вот тут вы можете столкнуться с неожиданностью, обнаружив, что вакансий, например, на Java или C# в вашем городе гораздо больше, чем по Рython. Как же так? Ведь Рython сейчас такой популярный. Я боюсь, что хайп вокруг языков и всякая разнообразная статистика, которую вы можете взять из различных источников, как это делал в своем ролике, например, Лёша Корепанов, может быть либо совершенно необъективной, либо сложно интерпретируемой.
Означает ли это, что в таком случае надо для начала посмотреть вакансии, а уж потом браться за Рython? Вот той, второй категории, с хорошими, фундаментальными знаниями и опытом в программировании стоит пойти именно этим путём. А тем, кто в программировании ни в зуб ногой, я по-прежнему рекомендовал бы взяться сначала за Рython, а уже затем перейти на другой язык программирования, если на позицию, где требуется Рython, вам либо не попасть, либо вы тупо не хотите в те области, где юзают Рython. Итак, если вы живёте в городе, где вакансий по программированию не очень много, то тут придется смотреть по ситуации. Но, скорее всего, выбор у вас будет происходить между пулом самых популярных языков, а-ля JavaScript, Java, Kotlin, C# и SQL. Выбирайте любой язык, соответствующий вашим интересам в дальнейшей профессиональной деятельности. Хотя кое-какую рекомендацию я бы тут всё же дал. Для начала скажу, что если вы хотите заниматься фронт-эндом в вебе, то ваш выбор – это JavaScript, а вместе с ним в придачу, разумеется, HTML и CSS. Перспективы JS в ближайшие лет 10 – самые радужные. Постепенно он, возможно, частично будет потеснён так же, как была потеснена Java “си-шарпом”. Однако даже на горизонте 10 лет вряд ли предвидится ситуация, что вы останетесь без работы с хорошими знаниями в JS.
Если ваш выбор – язык общего назначения, то есть C++, Java, Kotlin или C#, я бы подумал в первую очередь о Kotlin или C#, потому что С++ уже давно стал нишевым языком, который используют для программирования железяк и всяких низкоуровневых оптимизаций. Кроме того, невероятно сложен в изучении.
Даже автор С++, Бьёрн Страуструп, заявлял о том, что плохо знает С++. Не помню точную цитату.
Однако если ваша душа прямо очень сильно лежит в сторону плюсов, то можно выбрать и это направление, почему нет. С++ – это надолго, он никуда в ближайшее время уходить не собирается, востребованность будет, и при должном старании найти работу можно. Но сложно. Если любите играть в игры на самом хардкорном хардкоре – дерзайте. В противном случае, надо выбирать между Java, Kotlin и C#. Вам самим решать, что выбрать, ориентируясь на доступные вакансии. Однако, если говорить в общем и целом, то между Java и Kotlin я бы выбрал Kotlin.
Kotlin
Kotlin – это новый язык программирования, разработка компании JetBrains. Это Java на стероидах. В каком-то смысле он полностью совместим с Java, однако как язык гораздо более современен. Именно по этой причине в разработке мобильных приложений на сегодня Kotlin очень популярен и откусывает от Java большие куски. С вероятностью 95 процентов Kotlin пришел надолго. Если хотите более приятного опыта программирования, то Kotlin – ваш выбор. Java по-прежнему невероятно популярна. На этом языке написан софт для всего подряд, начиная со всяких древних железяк и заканчивая банковскими приложениями. И в вебе на бэгенде “джавы” тоже пруд пруди. Единственная проблема Java заключается в том, что, в сравнении с C# или тем же Kotlin, как язык Java сегодня выглядит бледновато. На эту тему можно написать позже отдельно.
Java и C#
Используется и Java, и C# довольно широко – практически во всех вообразимых областях, исключая, разве что, ниши, где царствуют С и С++, то есть во всяком низкоуровневом программировании. Выбрав один из этих языков, вы не прогадаете и всегда сможете себе найти достойную работу практически в любой точке мира. Отдельно хочу оговориться о мобильной разработке. Ну вот, например, в .NET есть такой фреймворк, который называется MAUI, ставший эволюцией из Xamarin.Forms, который как бы позволяет, используя лишь C#, писать кроссплатформенные мобильные приложения, которые можно будет запускать как на “ведро”, так и на “огрызки”. На винфоне – нет, потому что он сдох. Однако на поверку оказывается, что если вы разрабатываете что-то сложнее «Hello, world!», то вам придется писать нативный код отдельно под “ведро” и отдельно под “огрызок”, то есть вам таки придется дополнительно прогрузиться как в Java, так и в Swift.
Да, Swift – это еще один популярный язык, который мы не затрагивали. Как вы уже догадались, используется в мобильной разработке под iOS. Будущее у него тоже, вроде бы, безоблачное. Из самых популярных языков трудно пропустить PHP. На PHP существует такое количество легаси-кода и продолжает писаться нового, что в ближайшем будущем, судя по всему, на РНР работа будет. Огромное количество баз по-прежнему находится под управлением СУБД, где языком программирования является SQL. Если вас сильно тянет в сторону баз данных, SQL – маст-хэв. Однако чаще всего SQL просто приходится изучать в дополнение к основному языку общего назначения, такому как Java или C#. SQL – это язык запросов, на нем нельзя писать всё, что взбредёт в голову.
Итоги
Давайте подводить итоги. В качестве первого языка программирования я бы настоятельно рекомендовал Рython, а уже затем переходить на другой язык. Прежде чем выбирать язык программирования, надо понять, какой у вас уровень и в каком направлении вы хотите двигаться. Если фронт-энд на вебе – JavaScript плюс HTML плюс CSS. Если бэкенд на вебе – Рython, Java, C#, РНР, Ruby, Go. Тоже довольно популярные языки. Ruby и Go я не затрагивал, потому что совсем мало знаю об этих языках. Уж извините, я вам не Гоша Дударь, чтобы рассказывать с видом знатока обо всех технологиях на планете. Если вас интересует мобильная разработка, то, скорее всего, вам в Java или Kotlin. Если Data Science, то можно, опять же, Рython. А из специфического – язык R, заточенный под математику.
Если разработка игр, то можно порекомендовать C# и движок Unity, либо С++ с движком Unreal, если вы маньяк и решили во что бы то ни стало пробиться в этот долбанный геймдев, где пилят игры уровня Triple-A. Почему я в названии ролика прописал несколько лет? Да потому что все, упомянутые мной в хорошем свете, языки не собираются умирать или даже начинать увядать в ближайшие пять лет. Большинству из них ничего не угрожает и в ближайшие 10, а то и 20 лет. Поэтому, в зависимости от своего положения и своих пожеланий, можете выбирать любой из них – не прогадаете. И на этом давайте остановимся.
Да, эта тема бесконечная, и мы не затронули еще множество языков, которыми успешно пользуются и которые весьма далеки от смерти. Например, в нашем списке вообще не оказалось ни одного функционального языка программирования. То есть я, например, ни слова не сказал о Haskell. Однако я здесь пытался всё же в первую очередь говорить с новичками. А советовать новичкам Haskell в 99% случаев было бы странно. Обсудить Haskell и другие языки можно было бы, но ролик вышел бы длиной в 100 тысяч 500 часов. Короче, эту статью, как и все остальные, я написал лишь для того, чтобы заработать на вас денег, порекомендовав свои курсы по Рython, C# и SQL.
Увидимся. До новых встреч.