Научитесь программировать: пути к Node.js, Rails, Django и Java

Заявление об ограничении ответственности: мы используем Node.js в Elium, потому что считаем, что это лучшая технология, которая набирает обороты в отрасли по всему миру. Однако у нас есть опыт работы с другими фреймворками и мы осознаем их ценность, поэтому мы включили плюсы и минусы каждой технологии. Таким образом мы гарантируем, что статья останется максимально беспристрастной.

Это последняя статья из нашей серии Научитесь кодировать (та, которую вы все ждали!). В ней мы рассмотрим различные пути, которыми вы можете следовать в своей карьере веб-разработчика.

Путь 1 - Железный человек

Это платформа на основе Node.js (JavaScript). Это похоже на Железного человека в веб-разработке, потому что она начиналась с хрупкой основы, но с тех пор сильно разрослась. Его «гаджеты» похожи на «гаджеты» Железного человека. Это быстро, эффективно и быстро для разработки новых инструментов.

Хорошо, хорошо, но в чем подвох, я уже слышу, как вы говорите. И я хочу быть с вами честным, так что вот оно: будучи относительно новым, фреймворк Node.js недостаточно зрел по сравнению с другими фреймворками, такими как Laravel или даже Rails.

Это действительно важно? Да. Стоит ли тогда бежать от Node.js? Нет, конечно нет!

Почему нет? Что ж, благодаря очень быстрому росту (см. Здесь) и огромному сообществу Node.js становится крупным игроком.

По сути, это означает следующее: когда Железный Человек хочет новое устройство, он его покупает; когда Node.js нужен новый инструмент, размер сообщества означает, что этот инструмент, вероятно, уже существует, а если его нет, сообщество гарантирует, что он будет разработан очень быстро. Из-за его чрезвычайно быстрого роста переход по пути Node.js / JavaScript является безопасным выбором для обеспечения работы практически в любой отрасли - в основном благодаря тому факту, что JavaScript является строительным блоком Интернета.

Он используется везде, где необходимо присутствие в сети. Который. Является. Повсюду. Серьезно, с этим можно во что угодно. Вот конкретные примеры крупных компаний, использующих Node.js (фреймворк для JavaScript):

Вы получили огромную поддержку, потому что сообщество NPM (система упаковки JavaScript), которое молодое, но все еще является самым быстрорастущим сообществом, разработало множество новых инструментов, соответствующих требованиям современной индустрии.

Node.js, React.js, Angular.js, Meteor.js, Express.js - все это недавние примеры этих новых инструментов и свидетельство выдающейся роли JavaScript в веб-разработке. Эти новые инициативы, React.js (сделанный Facebook), Angular.js (сделанный Google) и Node.js foundation, который будет выпускать корпоративную версию node, делают его самой быстрорастущей средой веб-разработки .

Что именно нужно для того, чтобы идти по этому пути?

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

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

Настраивать:

  • Простой текстовый редактор типа Sublime или Atom.
  • Использование вашего терминала или консоли для выполнения команд
  • Учетная запись Github - для сохранения, систематизации и совместного использования всего кода, который вы создаете, а также для просмотра кода, написанного миллионами других пользователей. В основном ваше сообщество.

С этими тремя вещами вы будете готовы начать свое приключение в области программирования.

Далее идет Front-end. Для этого вам понадобятся три вещи:

  • HTML - язык программирования * для создания контента на вашем веб-сайте, в веб-приложениях или других приложениях.
  • JavaScript - большая собака языков веб-разработки. Делает ваш продукт реактивным и динамичным, а не статическим, чтобы ваш пользователь мог взаимодействовать с вашим продуктом.
  • CSS - еще один язык кодирования *, который позволяет стилизовать ваши продукты, сделать что-то синее, круглое, приклеить в сторону и т. Д.

* Примечание. Причина, по которой я заключил язык в кавычки для HTML и CSS, заключается в том, что очень активно обсуждается вопрос о том, следует ли их рассматривать как языки, потому что они не основаны на логике, как большинство других языков программирования, а работают больше на декларативном - модель стиля.

Хотя существуют миллионы библиотек, охватывающих необходимые инструкции для всех отраслей в мире, для наших целей мы рассмотрим основные из них для веб-разработки:

  • Bootstrap - библиотека с инструкциями по формам, кнопкам, панелям навигации, шаблонам стилей и многим другим вещам, относящимся к фронтенд-разработке.
  • JQuery - библиотека JavaScript, содержащая инструкции для упрощения всех процессов, обрабатываемых JavaScript, таких как создание анимации или упрощение процессов с элементами кода.

Теперь идет речь о языках Backend.

  • JavaScript - ТАДА, вот и он. JavaScript можно использовать как для внешнего, так и для внутреннего интерфейса, поэтому он такой волшебный.

Далее идут рамки.

  • Node.js - это среда выполнения, которая позволяет запускать JavaScript в серверной части. Он ускоряет процессы в веб-приложениях и упрощает процесс установки и запуска продукта.
  • React.js - можно также назвать библиотекой, потому что React дает вам столько свободы, что вы все равно можете принимать решения практически обо всем. Это делает ваш интерфейс, или пользовательский интерфейс, чрезвычайно быстрым и реактивным (отсюда и название). Это то, что составляет основу пользовательского интерфейса Facebook и Instagram.

Далее идут базы данных.

  • MongoDB - собственно от слова hu mongo нас. Он хранит, обеспечивает быстрый доступ и позволяет анализировать все ваши данные. Его синтаксис находится в JavaScript (JSON). Это полезно, потому что вы можете использовать JavaScript во внешнем интерфейсе, бэкэнде, и базе данных. О, и это бесплатно.

А теперь о упаковочных системах.

  • Npm - самый большой репозиторий кода для JavaScript - здесь можно установить, поделиться и распространить код JS. Это менеджер пакетов по умолчанию для Node.js.

И наконец развертывание.

  • Heroku - служба развертывания, поддерживающая множество языков и фреймворков, включая Node.js.
  • GoDaddy - огромная хостинговая компания, которая позволяет вам развернуть ваше веб-приложение. Он также предлагает услуги регистрации доменных имен и продает программное обеспечение для целей электронного бизнеса.

Вот и все!

Моя структура с конкретными примерами из фреймворка на основе Node.js. С такой структурой вы можете легко перемещаться по огромному количеству доступной информации, не забывая при этом о самом главном. Таким образом, у вас всегда будет обзор того, что вы делаете и почему вы это делаете. Давайте теперь исследуем оставшиеся три пути.

Путь 2 - Быстрое решение

Это структура Ruby, Ruby-on-Rails. Он заманит вас в свой дом и обеспечит вам комфорт. Как? Структура. Он позволяет быстро создавать приложения, если следовать формуле. Конечно, иногда он не работает с другими языками и часто не самый быстрый, но это довольно удобная среда для создания прототипов, и этого достаточно, чтобы порадовать некоторых новичков. Тем не менее, Ruby on Rails предлагает хорошие перспективы с точки зрения занятости, особенно в сфере стартапов, где он более распространен. Он далеко не так широко распространен, как JavaScript, поэтому в корпоративном мире гораздо меньше рабочих мест по Ruby / Ruby on Rails. Этот язык легче освоить, если вы хотите научиться быстро создавать базовые продукты. Независимо от того, новичок вы или разработчик, Ruby может довольно быстро разместить ваш продукт в Интернете. Это связано с тем, что Ruby on Rails скрывает от вас многие процессы, то есть вы не можете их оптимизировать, а это значит, что вы, возможно, никогда их не поймете. Это совершенно нормально для многих приложений, которые вы, возможно, имеете в виду, но если ваш продукт становится действительно большим или вы хотите настроить определенные детали своего продукта, Rails просто недостаточно гибок для этого.

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

Посмотрите, какое место занимает Ruby на рынке труда по сравнению с другими языками.

Как видите, мы только добавили кое-что в нашу структуру по сравнению со структурой, которая была у нас для фреймворка на основе Node.js. Это потому, что, как я уже говорил, JavaScript есть повсюду, поэтому вам все равно нужно знать об инструментах для JavaScript, даже при использовании в основном Ruby. В структуру были добавлены Ruby, Ruby-on-Rails и Ruby Gems. Фреймворк Ruby-on-Rails - это то, на чем сосредоточено большинство учебных курсов, потому что его легче освоить в рамках типичной продолжительности учебного лагеря, ~ 10 недель. Это помогает студентам из этих учебных курсов быстро получить рабочий продукт в Интернете, жертвуя при этом некоторой скоростью и производительностью. Так что он хорошо подходит для стартапов, которые хотят быстро приступить к работе, или для любой компании, которая хочет быстро проверить концепцию своего продукта.

Не ошибитесь, если внешний вид Ruby кажется слишком простым, чтобы быть хорошим, вы можете стать хорошим разработчиком, начав изучать Ruby-on-Rails, поскольку он действительно хорош для быстрого запуска вашего продукта. Просто многие процессы скрыты от вас, поэтому вы не сможете так хорошо оптимизировать эффективность своего кода.

Путь 3 - Хипстерский слишком крутой для мейнстрима

Python и Django (или флакон) относительно нетрадиционны в индустрии веб-разработки. Они, как и все «независимые мыслители», хотят сделать себе имя. Но они не знают, как себя продать, поэтому они разъезжают по городу на автомобиле Smart, крича из мегафона охваченным страхом сельским жителям, которые думают, что ужасная гроза, предсказанная в древних книгах, наконец-то приближается. Иногда сельчане думают, что это крик женщин в течку, и в итоге прыгают в машину Smart. А потом они понимают, что это неправда. Но остальным они очень довольны, поэтому часто переходят на хипстерский образ жизни и остаются. Действительно, Python и Django предлагают хорошие перспективы для работы и множество обучающих инструментов, которые помогут вам начать работу. Они медленно, но верно растут, чтобы стать важным игроком в отрасли. Но что такого особенного в этом пути? Позволь мне объяснить. Python не лучше и не хуже, он просто другой. Способ обработки данных делает его оптимальным для алгоритмической обработки, но не для обработки данных. Пример: хотя Node.js намного быстрее в таких вещах, как банковские транзакции или социальные сети, Django будет намного лучше для создания программного обеспечения для распознавания изображений или выполнения сложного статистического анализа.

Python присутствует в таких местах, как Youtube, Google, Quora и Survey Monkey. Обратите внимание, что основной бизнес этих компаний имеет дело с огромными объемами данных. Поэтому им нужны быстрые и эффективные алгоритмы для анализа своих данных. Python позволяет им это делать, потому что он хорош с алгоритмической обработкой, как указано выше. Если задуматься, эти компании проводят много статистических анализов и машинного обучения (сильные стороны Python), чтобы улучшить свой продукт. Как вы думаете, как Youtube показывает вам ваши «рекомендуемые видео»?

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

Давайте снова воспользуемся структурой, чтобы визуализировать задействованные здесь инструменты:

Вот основные причины использования Node.js в веб-разработке - от разработчика Django!

Опять же, мы только добавили кое-что в нашу структуру по сравнению со структурой, которая была у нас для фреймворка на основе Node.js. В частности, были добавлены Python, Django и Pypi (или pip).

Обратите внимание, что JavaScript все еще присутствует. Повторюсь еще раз: JavaScript есть везде, поэтому, какой бы путь вы ни выбрали, вы с ним встретитесь.

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

Путь 4 - Испытание выжившего

Это структура на основе Java. Этот путь заставит вас пожалеть, что вы последовали совету матери и получили работу в We Love Pizza с толстым, волосатым и необъяснимо чрезмерно ласковым итальянским начальником. Или по совету отца и стал солдатом, потому что военный учебный лагерь не может быть таким сложным. Это трудный путь, но вы услышите о нем, потому что он используется во многих крупных компаниях с высокооплачиваемой работой. Так что он будет нежно напоминать вам о том, что в этом нуждаются крупные проекты в этом мире, и придаст вам самодовольного лица, чтобы вы знали, что он знает, что вы знаете. Итак, если вы когда-нибудь присоединитесь к большой корпорации или войдете в корпоративный мир, она время от времени будет показывать свое самодовольное лицо, готовое втянуть вас в воронку «сложность - это наша вещь» с подписью «С любовью - Java ». Вот вид структуры в этом случае:

Суть в том, что нет простого способа запустить что-то с Java. При этом Java участвует в множестве серверных процессов, запускающих приложения и веб-приложения, поэтому, если вы думаете, что сегодня это неактуально, вы ошиблись. Действительно, Java используется в приложениях для индустрии финансовых услуг (Goldman Sachs, CitiGroup, Barclays), веб-приложениях (OpenOffice, Eclipse), и большинство приложений Android написано на Java!

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

Выводы

  • JavaScript используется везде
  • Независимо от того, какой путь вы выберете, создание чего-либо в Интернете требует от вас знания множества различных инструментов.
  • Если вы хотите создать что-то с более высокой производительностью, которое будет полезно где угодно в Интернете, используйте Javascript / Node.js. Этому мы учим в нашей Программе полного стека.
  • Если вы хотите руководствоваться и иметь много структурированного подхода при создании материала, даже если он не широко используется на рынке труда (и при этом жертвуете эффективностью), выбирайте Ruby / Ruby on Rails.
  • Если вы хотите проводить сложный статистический анализ и / или машинное обучение в своих веб-проектах, имея четкий и читаемый синтаксис, используйте Python / Django.
  • Если вы хотите создать надежную серверную часть и хотите, чтобы ее могли использовать крупные унаследованные корпорации, используйте Java, даже если кривая обучения очень крутая.
  • Составление реального плана с использованием, например, техники, описанной в этой статье (или здесь), сэкономит вам массу времени и позволит вам учиться намного быстрее.

Предлагаемые чтения

Для наших более заядлых читателей я включил дополнительные ресурсы, которые вы, возможно, захотите изучить:
Каков наилучший бесплатный способ изучить разработку полнофункционального JavaScript, начиная с нулевых знаний в области разработки и элементарных навыков работы с компьютером?

Для тех, кто разбирается в технологиях:
Каковы плюсы и минусы Node.js / Express по сравнению с Ruby-on-Rails?

Для тех, кто только начинает и кому нужна дополнительная информация:
Что мне начать с изучения Python CSS HTML или JavaScript?

Learn to Code - это серия, разработанная Elium Academy, цель которой - предоставить вам знания, стратегии и ресурсы, которые помогут вам начать свой путь к программированию.

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

Первоначально опубликовано на сайте blog.elium.academy 19 декабря 2016 г.