Всем салют, друзья! Поговорим немного о программировании, если вы не против.
Как начинается путь программирования у многих? Кто то увидел большие зарплаты, кому то просто нравиться сам процесс построения чего то нового, кого то заставляют это делать... и чаще всего вся эта история начинается с фразы в Гугле или Яндексе «Как выучить…». Но что учить? Как человек не имеющий абсолютно никакого отношения к программированию сможет решить для себя, какой именно язык программирования выбрать?
Многие рассуждают так «Чаще всего я слышал что то там про Java. Думаю, это – то, что мне нужно», или «Haskell. Он ведь на пике популярности. Страшно подумать, что будет дальше. Определённо – Haskell», а возможно даже и так «Этот суслик на логотипе Go – такая няшка. Хочу знать Go».
Те кто посообразительнее вбивают в поисковике Ютуба или Гугла вот что: «Какой язык программирования выучить первым?».
подобный вопрос задается очень часто, поэтому для того что бы грамотно ответить на него, создаются целые схемы. Вот, например, одна из них, посвящённая выбору первого языка программирования.
(Схему я специально выбрал англоязычную, как и большинство картинок далее по тексту потому что знание языка – один из важнейших факторов изучения программирования. )
После того как мы внимательно рассмотрим схему, можно сделать вывод, что Ruby к примеру, подходит тем, кто ребёнком любил лепить из пластилина.
Выбирать свой первый язык программирования очень увлекательно, этот как пройти опрос вроде: «Кто вы из Поккемонов?».
но перед тем как вы углубитесь в изучение Ruby, причём, только потому, что в детстве жить не могли без пластилина, обратите внимание, что первый язык программирования – это МАКСИМАЛЬНО важно! От него очень много чего зависит!
Что бы в общих чертах понять выбранный язык, вам придется потратить больше сотни часов практики. Поэтому не нужно смотреть на красивые картинки и веселые схемы, они могут сбить вас с толку, если вы новичок в этом деле.
На что стоит обращать внимание при выборе вашего первого языка:
· Рынок труда.
· Долгосрочные перспективы языка.
· Сложность изучения языка.
· Что именно вы сможете создать в процессе изучения, и, показав окружающим, поддержать мотивацию.
Примерно раз в несколько лет появляются новые языки программирования. О них пишут статьи в научные журналы, им посвящают комиксы, которые можно найти в Сети, вот один из них. (Попытайтесь перевести его и понять смысл, если есть время)
Если вы встали перед выбором своего первого языка программирования, у вас будет масса вариантов. Я помогу вам немного сузить поиск, предоставив анализ поисковых запросов в Google изучения программирования.
Какие делаем выводы?
У Java были взлёты и падения.
Python постепенно роси становился чуть ли не самым популярным языком программирования.
Но я хочу отметить один язык, он достаточно простой, обладает большими возможностями, график интереса к которому год от года медленно растёт, хотя и находится в самом низу. Это – JavaScript.
Перед тем как говорить об этих языках программирования, позвольте кое-что прояснить.
· Я не берусь спорить о том, что некий язык объективно лучше любого другого.
· Я согласен с тем, что разработчики, в конечном счёте, изучают больше одного языка.
· Я за то, что в самом начале пути программисту следует хорошо изучить какой-то один язык. И, как вы скорее всего догадались, прочтя хитро замаскированную подсказку в заголовке, я полагаю, что этим первым языком должен быть JavaScript.
Начнём наш разговор о первом языке с рассмотрения того, как сегодня учат программировать.
Основы информационных технологий и обучение программированию
В наших вузах обычно учат программировать в рамках предметов по информационным технологиям, которые часто выглядят как дополнения к математическим курсам, либо привязаны к некоей основной специальности, скажем, к электротехнике.
Хочу познакомить вас с замечательным высказыванием Эрика Рэймонда: «Образование в сфере компьютерных технологий точно так же не сделает из вас отличного программиста, как изучение кистей и красок не сделает вас прекрасным художником».
Уже на протяжении продолжительного периода, большинство учебных приравнивают программирование и информационные технологии, а информационные технологии приравнивают к математике.
По итогу большое количество вводных курсов по программированию построено вокруг достаточно низкоуровневых абстракций таких языков, как C, или языков, используемых в математических пакетах вроде MATLAB.
И те, кто принимают решения о том, чему учить на курсах по программированию, обычно придерживаются всяческих официальных источников, регулярно публикующих отчёты с рейтингами языков.. А вот — таблица лидеров по версии IEEE.
Такие вот «таблицы лидеров» выглядят практически точно так же, как десять лет назад. Однако, всё меняется, даже в академических кругах.
К нашему времени Python обошёл Java, и стал самым популярным языком программирования в ведущих курсах по информационным технологиям в США.
Посмотрев на языки, которыми пользуются программисты, выполняющие реальные проекты, мы увидим совсем другую картину.
Перед вами результаты опроса проведенного в 2016-м году. В нём участвовало 49397 разработчиков. Более половины из них используют JavaScript.
Без JavaScript невозможно представить себе разработку веб-интерфейсов, а в последнее время, благодаря Node.js, увеличивается актуальность JavaScript в серверном коде. JS стремительно распространяется и в другие области, такие, как разработка игр и интернет вещей.
JavaScript упоминается чаще, чем другие языки, среди вакансий программистов(конечно если не брать в расчёт Java). Вот данные с крупнейшего агрегатора вакансий Indeed.com.
Но вегда остается вопрос,подходит ли JS именно вам? Нужно ли выбирать именно его вашим первым языком программирования? Давайте подробнее расмотрим несколько факторов.
Фактор №1: рынок труда
Если вы, как и большое количество других людей, изучаете программирование для того, чтобы найти работу, обратите внимание на то, о чём здесь пойдёт речь.
Как я уже говорил, в объявлениях о вакансиях чаще всего упоминается Java.
А вот на втором месте уже идет JS.
Но в случае с JS надо учесть одну важную вещь. Даже не смотря на то, что язык существует уже два десятка лет, он относительно недавно превратился в серьёзный инструмент, с помощью которого гиганты вроде Netflix, Walmart и PayPal создают полноценные приложения.
В результате множество компаний нанимают JavaScript-разработчиков, но разработчиков этих не так уж и много.
Вот данные с Indeed.com, здесь показано соотношение вакансий и соискателей.
Что мы получаем в итоге. На одно место Java-разработчика приходится 2.7 программиста. В сфере вакансий, где требуется знание PHP, а также в среде iOS-разработки, складывается похожая ситуация.
Если же взглянуть на данные по JavaScript, то окажется, что на одну вакансию приходится всего 0.6 программиста. Для JavaScript-разработчиков это, определённо, рынок продавца.
Фактор №2: долгосрочные перспективы
JS -проекты на GitHub получают, в среднем, в два раза больше pull-запросов, чем проекты на Java, Python или Ruby. И, кроме этого, JS растёт быстрее, чем другие популярные языки.
Вот соответствующие данные GitHub Octoverse:
На экосистему JS, так же положительно влияют серьёзные инвестиции, как финансовые, так и выражающиеся в человеческом капитале талантливых инженеров, от таких компаний, как Google, Microsoft, Facebook и Netflix.
К примеру, вклад в язык программирования с открытым исходным кодом TypeScript (расширенная версия JS со статической типизацией) внесли более 100 разработчиков. Многие из них – сотрудники Microsoft и Google, которые получают зарплату за эту работу.
Фактор №3: сложность изучения языка
в этой карикатуре от XKCD показана сложность изучения языков.
многме согласятся с тем, что высокоуровневые скриптовые языки сравнительно легки в изучении. JavaScript подпадает под эту категорию (как и Python вместе с Ruby).
И пусть учебных заведениях языками, с которых начинают учить программировать, всё ещё являются такие, как Java и C++, разобраться в них значительно сложнее.
Фактор №4: проекты, которые можно создать, используя полученные знания
Тут уже JS впереди всех 100%. Работать он может на любом устройстве, на котором имеется браузер. С помощью JS возможно создать практически всё, что угодно и распространить это по всему миру с уверенностью в том, что работать это будет практически на всём, что напоминает компьютер или мобильный телефон.
Повсеместное распространение JavaScript привело к такому знаменитому высказыванию Джефа Этвуда, сооснователя Stack Overflow: «Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript».
С течением времени это высказывание, которое ещё называют «Законом Этвуда», не утрачивает актуальности.
В среде других языков мы с вами можем наблюдать несколько иные тенденции. К примеру, однажды обещали, что Java будет работать буквально везде. Слышали про Java-апплеты? В начале этого года Oracle официально от них отказалась.
Если же говорить о JavaScript, то вот живые ответы на вышеупомянутый вопрос. Это – приложения, которые написали члены сообщества Free Code Camp в CodePen, пользуясь браузером.
Вот игра «Simon», созданная в стиле 1970-х.
Вот – реализация математической игры Джона Конвея «Жизнь».
Вот – страница поиска для Wikipedia, стилизованная под «Звёздные войны».
А вот – игра-«рогалик» с традиционным подземельем.
Первый язык: пройтись по верхам, или копнуть поглубже?
Я советую вам сперва основательно изучите один язык, как минимум 6-8 месяцев потратьте на его изучение, а лучше 2-3 года. Затем принимайтесь за следующий.
При одновременном изучении нескольких языков вы нигде толком не задержитесь, и ничего в принципе не усвоите. Для того, чтобы продвинуться заметно дальше «Hello World», нужно как следует изучить ваш первый язык. После этого со вторым и последующим языками будет разобраться гораздо проще.
Хорошо освоив первый язык, вы сможете расширять познания, изучая другие языки и развиваясь как программист.
Вот пара слов о языках, которые стоит рассмотреть после достойного освоения JavaScript.
· Изучение C – это отличный способ разобраться с тем, как, на самом деле, работают компьютеры, в частности, в плане управления памятью. C особенно хорош в высокопроизводительных вычислениях.
· C++ отлично подходит для разработки игр.
· Python нет равных в научных и статистических расчётах.
· Java пригодится тем, кто видит себя программистом в крупной компании.
Но сначала, повторюсь, стоит изучить JavaScript. А вы согласны со мной?
Ставьте лайки, подписывайтесь на канал и группу ВКонтакте -https://vk.com/mrsisadm там еще больше интересного!