Языки программирования: какой выбрать для изучения в 2021 году?

О том, как найти курсы прогамирования и какой именно язык программирования правильнее и полезнее всего выбрать для изучения, написан уже не один десяток статей – но выводы многих авторов выглядят более чем странными. Да и поисковые системы удивляют. Например, если обратиться к Google, среди наиболее востребованных вариантов будет предложен… HCL. Позвольте, но подобный ответ лишь рождает дополнительные вопросы. Как? Ведь он, как минимум, создавался для конфигурации, а значит, не может находиться в одном ряду с языками, имеющими общее назначение. И тем более страшно представить себя на месте мало соображающего новичка, пытающегося освоить программирование с использованием вот таких горе-советов. Кстати, по запросу «учить HCL» вылезает ряд текстов, посвященных… о соляной кислоте.

И это лишь минимальная часть «дикостей», встречающихся в интернете. Исходя из вышесказанного, следует попытаться объяснить, как же все-таки обстоит дело – и так, чтобы было понятно начинающим. Да и видавшим виды пользователям подобный материал очевидно окажется полезным.

Проблемы, с которыми чаще всего приходится сталкиваться

Размещаемые на различных ресурсах тексты с рассуждениями на тему «какие языки программирования лучше изучать сегодня» подчас откровенно слабы – опытные разработчики посмеялись бы над ними и разнесли все «доводы» в пух и прах. Но читают их чаще всего именно новички, пытающиеся «докопаться до правды», а они заметить подвоха не в состоянии. Дальше все растет как снежный ком: новые люди читают старые тексты и делают те же ошибки. Авторы, несмотря на некомпетентность, довольны, проблемы при этом не решаются. Кстати, а в чем именно они состоят?

Итак, чем грешат тексты об актуальности языков программирования?

1. Отсутствие каких либо здравых мыслей и информации

Чаще всего такие тексты пишут далеко не специалисты, а люди, не имеющие никакого представления о программировании. В результате абзацы, в которых нет ни слова по теме – не редкость, а, скорее, правило.

Для примера возьмем следующий «шедевр»: «Сегодня большинство учащихся в высших учебных заведениях в качестве пропуска в мир высоких технологий выбирают JavaScript. Это говорит о том, что человек, знающий данный язык программирования, без работы не останется. Популярность варианта позволяет ему по праву занять одну из лидирующих позиций среди языков, которые было бы неплохо изучить. Конечно, JavaScript – это яркий представитель популярнейших языков, используемых программистами. Благодаря этому формируется и спрос, и разумное число предложений. Если вы собираетесь освоить данный язык, то лучше разобраться в нем». Вопрос один: где во всем этом смысл и что хотел донести автор?

2. Освещение множества мелочей, не объясняя главного

Представим: человек впервые решил приобрести автомобиль. И он еще далеко от того, сколько это будет стоить, какие существуют коробки передач, варианты кузовов и пр. Ему просто хочется купить машину. И тут потенциальному покупателю предлагают пару десятков вариантов, среди которых и внедорожники, и грузовики и микролитражки. Неподготовленному человеку можно описать любые «преимущества» каждого из авто вроде наличия автоматических стеклоподъемников и защиты картера. Только вот вопрос: а сильно ли ему это поможет при выборе?

Таковы и большинство текстов о языках программирования. Судя по всему, часто перед автором просто ставят задачу, а он ее решает, как может – то есть быстренько погуглив информацию, создав «опус» и получив за это гонорар. Некомпетентность здесь, увы, во главе угла – какую информацию «выудил», такую и изложил. Статья создается «ради статьи», а не для того чтобы ответить на вопросы читателей. Отсюда – внимание к незначительным мелочам, которое только запутывает неопытных новичков, но делают текст куда объемнее и «солиднее».

3. Информация, которая начинающим не скажет абсолютно ничего

Допустим, школьник Ваня Иванов пытается понять, какой именно язык выбрать для изучения. Прочитав очередное описание, он начинает рассуждать: «ну раз в этом языке нет того, о чем говорят в статьях, то я предпочту другой». Но что ему при этом действительно нужно – непонятно. А хочет Ваня просто создать приложение, но что для этого требуется, понятия не имеет. Ответов на вопросы школьник, скорее всего, так и не получит, даже проштудировав кучу текстов. В результате выбор делается практически наобум, а не исходя из ключевых особенностей.

4. Следование рейтингам без логики и анализа.

Рейтинги являются руководством для большинства лиц, заинтересовавшихся программированием. Для многих это аксиома: если Go прибавил в индексе TIOBE, то его нужно изучать, причем срочно! Но верное ли это утверждение – исходя из таких рассуждений, можно дойти и до весьма абсурдных результатов.

Все рейтинги условны и зависят от того, какой именно подход используется и кто их составляет. А потому ориентироваться на лидирующие позиции не стоит – это далеко не истина, пришедшая свыше. Да, популярность определенно немаловажна, но долгие поиски «самого востребованного языка в мире», очевидно, ни к чему. Кстати, чтобы определить эти «наиболее востребованные языки» часто не нужно копаться в рейтингах – они все на слуху. А уж кто первый, а кто второй – это и вовсе вкусовщина.

5. Не добравшись до сути

Увлекаясь перечислением достоинств, авторы часто забывают про сферу применения. Между тем для тех, кто только осваивает сферу программирования, это крайне важно. Там, где один язык очевидно проигрывает, другой позволит отработать «на пятерку».

Итак, попробуем разобраться в сути вопроса, не совершая подобных ошибок.

Вместо вступления

В интернете можно найти массу споров о том, какой же язык лучше – рассуждают об этом и опытные разработчики, и дилетанты. И все сводится к общему (и надо сказать правильному) мнению: лучшего просто нет. Каждый конкретный язык создан для решения определенных задач и часто с этим неплохо справляется.

То есть для начала необходимо именно понимание круга поставленных задач, их области и сложности. Для чего вообще выбирать язык? Нужно сделать что-то определенное – игру, сайт компании, приложение? Или принцип изучения сводится к «откроем, посмотрим, а дальше будь, как будет»?

Если предстоит заниматься чем-то определенным, то сравнение языков в теории, опять же, нельзя назвать столь важным – значительно полезнее выяснить то, насколько они удобны для использования в той или иной области.

Если же язык изучается с перспективой в дальнейшем получить работу, то тут также важнее не теоретические изыскания. Лучше посмотреть на любом сайте, где выкладывают вакансии потенциальные работодатели: а какой именно язык сегодня наиболее востребован? Изучив один можно быстро найти работу, другой станет просто очередным пополнением копилки знаний.

При отсутствии спешки можно поставить вопрос так: имеется ли необходимость, используя язык программирования, создавать что-то из визуального ряда? Вся работа в веб-сфере условно делится на так называемые фронтенд и бэкенд, то есть то, что отображается в браузере и то, что выполняется где-то на сервере, для того чтобы «было что показать». Нажимая на любую кнопку, следует осознавать, что ее уже прописал фронтендер, а если это переход в диалог и далее необходимо продемонстрировать переписку, бэкенд будет извлекать информацию из базы, что хранится на сервере.

То есть разработчик-фронтендер должен задуматься о том, как будет выглядеть интерфейс с точки зрения пользователя. Все мысли бэкендера сосредоточены непосредственно на коде. Люди разные – кому-то хочется работать с визуальной стороной, а кто-то предпочитает «невидимый труд» общению «с кнопочками». И именно понимание, что ближе и что предстоит в дальнейшем, становится основой выбора языка для изучения.

И поняв это, можно рассматривать конкретные варианты и делать выводы. Рассмотрим наиболее популярные языки в хронологическом представлении их широкой аудитории.

С# (1972 г) и С++ (1985 г)

С++ стал логичным развитием и дополнением языка С, а потому о них можно рассказать в одном пункте. В принципе, их следует называть папой и дедушкой остальных языков, присутствующих в списке. Они старше других, а потому оказали существенное влияние на создание последующих вариантов.

Сегодня эти языки совсем не те, что в момент выхода. У С++ не так давно был введен стандарт С++20, в среднем обновления выходят раз в три года. Со временем различия становятся все заметнее, но все же идеи, закладывавшиеся вначале, прослеживаются и сегодня. Когда С только создавался, компьютеры не отличались производительностью и ресурсы старались экономить. Тогда нужно было постоянно «задумываться о железе» — программисту было важно понимать, как физически работает техника. И несмотря на то что сегодня ситуация изменилась, подобный подход окажется полезным и для современных специалистов.

В результате и С, и С++ имеют репутацию требовательных к программисту, но позволяющих выжать максимум из железа. Зачастую данные языки используются там, где не требуется предельные возможности. Речь идет, например, об играх или софте не для «просто компьютеров», а для устройств с маломощными процессорами, например, автомобилей и банкоматов.

Для начала нужно прости хотя бы базовый курс C, но и он будет достаточно сложным… Вы спросите: «Но если в освоении и применении все так непросто, зачем выбирать столь «древние» языки? Не проще ли взять что-то более современное?» И тут мнения расходятся. Некоторые считают, что начинать нужно с чего-то полегче. Но имеется и совершенно другая позиция: при изучении данных языков начинаешь понимать, как именно работает ПК и как будет исполнен код – для программистов это, как ни крути, очень полезно. Вердикт очевиден: С# и С++ рекомендуется для изучения тем, кто легких путей не выискивает, а хочет «покопаться» в программировании начиная с истоков.

Python (1991)

Многие считают, что Python противоположен С. В первом случае программист сталкивается со сложностями и высокой производительностью, во втором – с простыми для понимания решениями, но при наличии вопросов к производительности. На первый взгляд данное заявление категоричное, а потому требует некоторых уточнений. Конечно, определенные сложности есть и при общении с Python, но они легко преодолеваемы, даже новичками. Часто его советуют в качестве первого языка для прохождения обучения, а потому Python крайне популярен с точки зрения образования. Начинается все с простого и понятного кода, перед человеком не выстраивается стена из непонятных терминов и действий, для многих задач предлагаются базовые варианты решения.

А что с производительностью? Тут Python, действительно, несколько проигрывает. Порой его даже называют «медленным», но это уже оговор и не более того. Вспомним: все языки хороши лишь применительно к тем или иным задачам. Так вот есть такие, для которых Python очевидно не подойдет, у него свои сферы применения.

Но что это за сферы? Не так давно Python был любимчиком ученых – и сегодня с его помощью занимаются многим из того, что «около науки», например машинным обучением. Используется он и в бэкенде веб-сервисов. Кроме того Python любят системные администраторы, поскольку он идеален для утилит.

Присутствуют ли вакансии для изучивших Python? В интернете их множество. Но есть и одно «но»: часто этот язык становится «вариантом №2», то есть удобным, но уступающим другому в чем-либо. Из-за этого язык используется не как основной, а в качестве некоего дополнения.

То есть в некоторых случаях в резюме, составленном для работодателей, Python может быть и упомянут, но не в качестве основного требования к соискателю. Его знание становится приятным бонусом и не более того. Для первых этапов обучения язык подойдет, а вот, оценивая перспективы трудоустройства, лучше присмотреться к ситуации в регионе, выяснив, можно ли будет найти работу, «вооружившись» лишь знанием данного варианта.

Java (1995 г.)

Предположения многих о том, что Java имеет отношение к JavaScript, в корне неверны. Действительно, названия похожи и языки были выпущены на рынок в одно и то же время. Но при этом они разные, а присутствующая схожесть имеет разве что исторические причины.

Java чаще всего применяется в бэкенде. Единственным вариантом данное решение не назвать, но позиции, занимаемые языком, весьма достойные. Порой можно услышать мнения злопыхателей: мол, данный язык давно устарел, и вот-вот вовсе канет в Лету, а потому учить его не имеет смысла. Но все это мы слышим уже много лет, а конференции по Java все равно продолжают оставаться одними из наиболее посещаемых. Чем-чем, а вот гибелью это не выглядит…

И даже если предположить, что когда-то Java станет прошлым, это не значит, что данный язык не нужно учить сегодня: он станет прекрасной базой для последующего расширения горизонтов.

Ряд программистов говорят, что Java скучновата, и использовать ее могут только соответствующие «скучные» компании, к примеру, банки или другие финансовые организации, стартапы же возьмут что-то более динамичное и современное. Все это субъективно, а «веселых» языков программирования не бывает в принципе. Зато имеются и люди, говорящий о Java с огоньком в глазах – мол, удобен в использовании и позволяет решить массу задач.

С#

Когда Microsoft представил С#, многие посчитали данное решение просто «ответом Java», последовавшим от компании. Но различий между данными языками присутствует предостаточно, и за прошедшие 20 лет их число только увеличилось. Общее действительно тоже есть, а потому знание одного из данных языков поможет быстрее и эффективнее освоить другой.

Изначально отличие было не непосредственно в языках, а в том, для чего именно они применялись. С# был создан как часть платформы Microsoft, работающей с Windows. Если необходимо было создать программу для Windows, то логичным вариантом становилось использование .NET. А вот если требовалась программа, которая могла бы запускаться и на Windows, и на Mac, на помощь приходила «старая добрая» Java.

Со временем ситуация изменилась: у .NET возникла версия .NET Core, которая позволяла не привязываться к конкретной системе. И это в очередной раз сблизило языки – часто в вакансиях с упоминанием С# требования к соискателю те же, что и в вариантах с Java.

Switf (2014)

Из перечисленных это – самый юный язык, представленный на рынке менее шести лет назад. Как правило, за столь краткий период языки не становятся популярными и не могут попасть в подобные списки. Но эту ситуацию можно назвать особенной: Apple – компания, создававшая Switf дала всем понять: отныне все iOS-приложения разрабатываются только с его использованием. А далее будет, как скажет разработчик, поскольку собственную платформу Apple тщательно контролирует.

Но вот все то, что случилось и случается в остальном мире компания контролировать не в состоянии. А потому, хотя язык можно применять и для других целей, широко он не используется. Были попытки серверного использования, но в сравнении с другими вариантами бэкенда этот популярности не заслужил.

В результате выбор более чем прост. Если требуется просто написать предложение для айфона, нужно посвятить время изучению Swift. А если желания являются более масштабными и касаются создания приложений и для iOS, и для Android, то следует обратить внимание на кроссплатформенные варианты – например, Flutter. Правда, сегодня они пользуются куда меньшей популярностью.

«Молодежь» среди языков программирования: Go, Dart и пр.

Сразу оговоримся: «молодыми» являются не языки, вышедшие «позавчера» — таковыми условно признаются варианты не старше 10 лет, уже заслужившие внимание пользователей. В интернет-пространстве можно найти массу рассуждений о том, как все круто и здорово – тот или иной новый язык ошибки предшественников в состоянии исправить и времени полностью соответствует, и разработчикам нравится.

Вероятно, по большому счету это правда. Но почти все подобные языки менее востребованы, чем «предки». И это отражается на рынке труда. Если в Москве знание только одного из молодых языков резко снижает число предлагаемых вакансий, то где-то во Пскове специалист рискует не встретить их вовсе. То есть даже для удаленки это не оптимальный вариант.

Как понять, какие из языков в дальнейшем станут востребованными, а какие увянут в забвении? Рассуждать на данную тему крайне сложно и все прогнозы скорее похожи на гадания. То есть успех от изучения новомодных языков – сродни лотерее. Скорее всего, нужно начинать с варианта, испытанного временем, а к «молодежным» языкам переходить уже осознав, зачем именно это делается.

Вместо заключения

Разработчики любят порассуждать о том, как, где и зачем используется тот или иной язык программирования, но в большинстве случаев они расходятся во мнениях. И, конечно, несмотря на те или иные предпочтения, один язык нельзя считать лучше или хуже другого. Все зависит от сферы применения – и об этом мы уже говорили выше. На каком бы из языков не писал специалист, использование конкретного варианта говорит о том, что именно он подходит для применения в той или иной ситуации. А значит и для изучения вариант следует подбирать, исходя из планов и перспектив, не разбрасываясь и рассчитав собственные силы.

Facebook можуть зобов’язати продати Instagram і WhatsApp

Компанію Facebook можуть змусити продати придбані раніше компанії WhatsApp і Instagram. У всякому разі, така вимога міститься в позові, поданому Федеральною торговою комісією (FTC) США і майже всіма штатами проти гіганта соціальних мереж. На думку позивачів, стратегічні придбання Facebook порушують норми конкуренції.

«Протягом майже десяти років компанія Facebook використовувала своє панування і монопольну владу, щоб крушити дрібніших конкурентів і пригнічувати конкуренцію, і все це — за рахунок звичайних користувачів», — заявила генеральний прокурор Нью-Йорка Летиція Джеймс (Letitia James) від імені коаліції 46 штатів.

Нагадаємо, компанія Instagram була придбана Facebook за 1 мільярд доларів в 2012 році, а WhatsApp — за 19 мільярдів доларів в 2014 році. З огляду на, що FTC свого часу схвалила обидві угоди, розгляд може затягнутися, можливо — на роки.

Головний юрисконсульт Facebook Дженніфер Ньюстед (Jennifer Newstead) вже назвала позови «ревізіоністської історією» і заявила, що не існує антимонопольних законів для покарання «успішних компаній». За її словами, WhatsApp і Instagram домоглися успіху після того, як компанія Facebook інвестувала мільярди доларів в розвиток відповідних додатків. Джерело

Смартфони Galaxy M12 і Galaxy F12 сертифіковані BIS

Очікується, що найближчим часом Samsung представить бюджетні смартфони Galaxy M12 і Galaxy F12. Ці пристрої вже кілька разів просочувалися в мережу за останні кілька днів. Тепер вони також пройшли сертифікацію BIS Індії. Це означає, що їх запуск може відбутися в будь-який час. Як завжди, в списку BIS цих телефонів про них нічого не говориться, крім номерів моделей. Galaxy M12 матиме номер моделі SM-M127G/DS, а Galaxy F12 буде поставлятися з SM-F127G.

У всякому разі, ми вже знали про це завдяки попереднім витокам. Також ми знаємо, що ці телефони такі, як Galaxy M21s і Galaxy F41. Для тих, хто не знає, серія смартфонів Samsung Galaxy M ексклюзивна для інтернет-магазинів Amazon і Samsung в Індії. З іншого боку, недавно представлена ​​серія Galaxy F є ексклюзивною для інтернет-магазинів Flipkart і Samsung.

Поки що південнокорейський технічний гігант випустив тільки один телефон серії Galaxy F, і це, як виявилося, телефон серії Galaxy M. Отже, деякі з майбутніх пристроїв Galaxy M також були сертифіковані як смартфони Galaxy F, наприклад, прийдешні Galaxy M12/Galaxy F12. При цьому, згідно з попереднім витокам, очікується, що ці телефони будуть мати 6,7-дюймовий дисплей з дірочками, масивну батарею ємністю 7000 мАг, таку як Galaxy M51, бічний датчик відбитків пальців, порт USB Type-C і 3,5 мм роз’єм для навушників.

В роботі Facebook, Messenger і Instagram відбулися серйозні збої

Дуже багато користувачів Facebook, Instagram і Messenger (особливо останнього) сьогодні не можуть працювати у відповідних додатках. В даний час спостерігаються масові збої. Статус платформи повідомляє про серйозну аварію, і багато користувачів повідомляють про масові проблеми: повідомлення відправляються в кращому випадку з перервами, стрічки новин не оновлюються, оновлення не приходять.

Служба Downdetector повідомляє про тисячі збоїв. 51% користувачів не можуть отримати або відправити повідомлення, 31% відчувають проблеми з підключенням до сервера, близько 17% не можуть навіть увійти в месенджер. Найбільша кількість скарг надходить від користувачів з території Польщі, Угорщини, Бельгії, Великобританії і Філіппін. Втім, повідомляється і про проблеми на Філіппінах, в Азії, Австралії і США.

Збої в Facebook і Instagram спостерігаються куди менш широко в порівнянні з роботою в Messenger. Також збої зачіпають додаток Workplace, доповнення до Messenger, яке часто використовується в компаніях. Цікаво, що WhatsApp, який теж належить Facebook, все ще працює нормально.

Якщо зараз виконати пошук в Twitter за запитом «Messenger», можна знайти безліч мемів і схвильовані реакції через збій. Багато людей розповідають схожі історії про включенні і виключенні Wi-Fi, вважаючи, що це є джерелом проблеми, в той час як інші пишуть в Твіттері про те, що повідомлення не можуть бути відправлені.

«Нам відомо, що деякі люди відчувають труднощі, відправляючи повідомлення в Messenger і Instagram. Ми робимо все можливе, щоб усунути неполадки якомога швидше » , — заявив представник Facebook.

На дорогах Сан-Франциско вже тестуються автомобілі Cruise без водіїв

Компанія з виробництва безпілотних автомобілів Cruise, афільована з General Motors і Honda, тестує в Сан-Франциско безпілотні автомобілі, за кермом яких немає людини, відповідальної за безпеку. Компанія однією з перших протестувала свої безпілотні автомобілі в щільному і складному міському середовищі.

«Щоб перейти до тестів без водіїв в Сан-Франциско, було потрібно більше п’яти років ретельних випробувань, понад 3 млн кілометрів їзди в одному із самих божевільних середовищ водіння, а також важка робота величезної команди відданих своїй справі інженерів та інших фахівців в Cruise і GM , — сказав виконавчий директор Cruise Ден Амманн (Dan Ammann) в бесіді з журналістами. — І це навіть не кажучи про інвестиції в кілька мільярдів доларів».

Going driverless in San Francisco

Звичайно, робомобілі не роз’їжджають по вулицях не без нагляду. На відео, випущеному компанією, співробітник Cruise сидить на пасажирському сидінні, поки машина їде по темних вулицях Сан-Франциско. У всіх автомобілів Cruise є аварійний вимикач в центральному каналі поруч з перемикачем передач на випадок, якщо щось піде не так. До того ж співробітники Cruise віддалено контролюють процес. На питання, чи можуть віддалені оператори керувати транспортним засобом при необхідності, Амманн відмовився відповідати.

«Оператор служби безпеки має змогу зупинити транспортний засіб у разі аварійної ситуації, але не має доступу до стандартних засобів керування водія, — сказав представник. — В остаточному підсумку присутній в салоні оператор безпеки буде повністю відделний».

Автопілот Cruise був схвалений в Каліфорнії 15 жовтня для тестування машин без водіїв (так званий рівень 4 автоматизації). За даними DMV, Cruise може тестувати тільки п’ять безпілотних автомобілів на певних вулицях Сан-Франциско. Транспортним засобам забороняється перевищувати швидкість в 50 км/год, і вони не можуть працювати під час щільного туману або сильного дощу.

Cruise стала п’ятою компанією, що отримала дозвіл на тести без водія від Департаменту автотранспортних засобів штату. Серед інших можна згадати Waymo, Nuro, Zoox і AutoX. В даний час 60 компаній мають дійсний дозвіл на випробування автономних транспортних засобів з водієм безпеки в Каліфорнії.

Cruise вперше продемонструвала свої можливості автопілота 4-го рівня. Її головний конкурент, дочірня компанія Google Waymo, вже більше року тестує свої повністю безпілотні автомобілі в Феніксі і нещодавно оголосила, що зробить свою службу таксі з автопілотом 4-го рівня доступною для більшої кількості клієнтів. Cruise не дозволяє особам, які не є співробітниками, їздити в таких транспортних засобах. Компанія планувала запустити комерційну службу таксі в 2019 році, але не змогла цього зробити, і ще публічно не оголосила про нову дату.

Exclusive look at Cruise’s first fully driverless car

У минулому році Cruise представила Cruise Origin, повністю безпілотний прототип автомобіля без рульового колеса, педалей і будь-яких елементів управління, призначених для людини. Автомобіль, який буде запущений у виробництво на заводі GM в Детройті-Хамтрамке, побудований для спільного використання кількома пасажирами.

Названі шкідливі для мозку продукти

Доцент кафедри неврології та радіології Корнельського університету Ліза Моськоні розповіла, які продукти вважаються шкідливими для мозку.

За її словами, насичені жири, особливо тваринного походження, підвищують ризик серцево-судинних захворювань. Також ряд досліджень показує, що це збільшує ризик когнітивних проблем.

«Коли ми їмо жирну, солодку їжу і відчуваємо такі симптоми, як млявість, затуманення мозку і сонливість — ці симптоми виникають не в шлунку, а в головному мозку», — заявила Моськоні.

Так, погане харчування може привести до втрати структурних і функціональних елементів мозку, в тому числі зростає вразливість до деменції.

Для здоров’я нейронів, як зазначає фахівець, необхідні антиоксиданти (вітамін С, вітамін Е і бета-каротин), а також протизапальні вітаміни В і жирні кислоти омега-3.