Вывод, что нужно учиться программировать, кажется очевидным. Однако не столь очевидный вывод заключается в том, что именно вы должны программировать и на каком языке вы должны научиться программировать. Обществу нравится объединять программистов вместе, как если бы мы все были просто переносчиками битов. Хотя технически это верно, мы должны помнить, что, хотя самолет перевозит людей, а грузчик перемещает мебель, оба они служат двум разным целям и пытаются достичь разных целей. То же самое с программистами и языками программирования. Если инженер JavaScript — это самолет, то инженер Ruby — двигатель. На фундаментальном уровне они делают одно и то же, но их цели и то, как они достигают этих целей, кардинально различаются. Принимая решение о том, какой язык изучать, вы должны сначала решить, каковы ваши текущие и будущие цели, а затем выбрать, какой язык поможет вам достичь этих целей.

Когда я впервые начал учиться программировать, у меня было три цели. Во-первых, я хотел создавать веб-приложения. Когда мне было пять лет, Интернетом пользовались 45 миллионов человек, или почти 1% населения мира. Сейчас, даже не прошло и двадцати лет, как 40% населения мира насчитывается 2,9 миллиарда интернет-пользователей. Интернет был и будет определять мое поколение и будущие поколения, и я хотел быть частью этого движения. Во-вторых, я хотел узнать что-то, что останется актуальным в будущем, и что-то, что будет продолжать развиваться и развиваться. Я люблю учиться. Обучение делает меня счастливым. Я хотел язык программирования, который никогда не будет застаиваться, чтобы мои навыки не застаивались вместе с ним. В-третьих, если у меня была идея или у кого-то еще была идея, в которую я верил, я хотел иметь навыки для ее воплощения. Мы живем во времена, когда вы можете общаться с 2,9 миллиардами человек, а стоимость проданных товаров незначительна. При взвешивании всех этих вариантов язык, победивший в каждой категории, оказался JavaScript.

Если вы инженер-программист, проживший последние пять лет под камнем, вы все еще думаете о JavaScript как о изящном языке сценариев, который помогает изменять цвет кнопки, когда вы наводите на нее курсор. Это не может быть дальше от истины. JavaScript очень быстро превратился в мощный язык для создания веб-приложений, например Gmail или PayPal. JavaScript — это «язык Интернета», и, как уже говорилось ранее, это отличная вещь. Интернет повсюду, на вашем компьютере, телефоне, в вашей машине, и он продолжает поглощать мир. Но что делает JavaScript еще более интересным сейчас, так это то, что мы создали инструменты, которые позволяют нам писать код JavaScript не только в веб-браузере.

Обычно есть два типа программистов для Интернета. Front-end инженеры и back-end инженеры. Фронтенд-инженеры обычно работают с HTML, CSS и JavaScript, и они делают веб-приложения красивыми, а также отправляют запросы на «бэкенд» для получения различных типов данных. Вспомните Фейсбук. Когда вы щелкаете значок «палец вверх», браузер (или интерфейс) замечает, что вы щелкнули значок, а затем сообщает серверу: «Эй, Тайлеру нравится пост Микензи о ее собаке, убедитесь, что он где-то сохранен». Если все прошло хорошо, серверная часть отвечает: «Звучит хорошо, информация сохранена». На очень высоком уровне именно так работает Интернет. Роль внутренних инженеров заключается в написании кода, который прослушивает запросы от внешнего интерфейса и отвечает соответствующим образом. Раньше JavaScript был языком только для фронтенд-инженеров. Однако с изобретением Node.js JavaScript может и очень часто используется (Wal-mart, PayPal) в качестве внутреннего языка. Это было очень важно для инженеров JavaScript. Теперь вместо того, чтобы изучать совершенно другой язык для написания внутреннего кода, инженеры JavaScript могут придерживаться того, в чем они хороши, — JavaScript. Прямо сейчас вы можете подумать: «Ну, это круто, но я очень верю в приложения для iPhone или Android, и я думаю, что это будущее». Хотя вы ошибаетесь, вот почему вам все равно следует изучать JavaScript. Хотите верьте, хотите нет, но **вы можете писать приложения для iPhone или Android с помощью JavaScript и отправлять эти приложения в Apps Store. Существует технология под названием Phonegap (http://phonegap.com/), которая позволяет вам взять код JavaScript и встроить его в приложение для iPhone или Android. ** Хотя вашему приложению Phonegap будет не хватать производительности нативных приложений для iPhone (именно поэтому у разработчиков приложений для iPhone по-прежнему очень хорошая работа), приятно знать, что если вы хотите создать приложение для iPhone с помощью JavaScript, вы можете это сделать. Это как если бы Гэндальф Белый смог занять должность директора Дамблдора в Хогвартсе, когда тот умер. Вы получаете лучшее из обоих миров. Теперь вы понимаете, почему JavaScript никуда не денется в ближайшее время? Он слишком встроен в нашу повседневную жизнь. Даже с выпуском Apple своего нового языка программирования «Swift» Apple делает несколько шагов в сторону от C-подобных языков и на шаг приближается к JavaScript-подобным языкам, что является отличной новостью для разработчиков JavaScript.

Все еще не верите мне? Выше приведен график количества новых репозиториев (баз кода), созданных на Github (веб-приложение, где программисты могут сохранять свой код) по годам. JavaScript постоянно находится на вершине подобных списков, потому что он везде и продолжает развиваться и расти. Python, язык, который преподается в университетах по всей стране, когда-то был одним из основных языков бэкенда. Однако с появлением различных технологий, таких как Node.js и новейшего внутреннего языка Google Go, Python быстро становится языком, который преподается в академических кругах, но не используется в реальном мире. Вы не хотите изучать язык, который находится в тренде. JavaScript — это Джордж Клуни среди языков программирования. С возрастом становится лучше.

Хотя мы многое рассмотрели, есть один важный факт о JavaScript, который я до сих пор не упомянул, что делает его идеальным для людей, которые учатся вне обычных академических кругов. JavaScript очень редко изучают в академических кругах, а если и преподают, то очень плохо. Профессора по-прежнему твердо придерживаются представления о JavaScript как о изящном языке сценариев, что их студенты затем отражают в своей карьере. Это ужасно, если вы работаете в академических кругах (или вообще заботитесь о том, как наша система образования постоянно отстает, когда дело доходит до технологий, что вам следует делать). Но если вы учитесь за пределами академии, это огромное преимущество для JavaScript. Вы не конкурируете напрямую с десятками тысяч студентов, изучающих информатику. Это значительно упрощает поиск работы.

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