Clojure Developer

В октябре

5 месяцев

Онлайн

Вт/Чт 20:00 Мск

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

 

Что даст вам этот курс

Есть несколько причин, по которым язык программирования Clojure так любим опытными разработчиками:

Функциональное программирование: Clojure — это функциональный язык программирования, поддерживающий неизменяемые структуры данных и чистые функции. Такой подход приводит к более читабельному и удобному для сопровождения коду, а также к повышению производительности в многопоточных средах.

Синтаксис Lisp: Clojure использует синтаксис Lisp, известный своей простотой и выразительностью. Синтаксис легко читать и писать, он позволяет использовать мощные макросы, упрощающие сложный код.

Динамическое программирование: Clojure — это динамический язык, что означает, что он предлагает динамическую типизацию, оценку кода во время выполнения и возможность изменять поведение языка во время выполнения. Это упрощает написание гибкого и адаптируемого кода.

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

Параллелизм: Clojure предоставляет мощные функции параллелизма, которые упрощают написание одновременных и параллельных программ. Использование неизменяемых структур данных и чистых функций упрощает анализ и отладку.

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

На данном курсе мы рассморим все преимущества языка, начнем с основ и перейдем к более продвинутым техникам, архитектуре и созданию проекта.

Чему вы научитесь на курсе?

- понимать синтаксис и внутреннее устройство языка Clojure;
- писать как синхронный так и асинхронный код;
- работать с персистентными структурами данных;
- познакомитесь с Clojure макросами и научитесь с их помощью расширять встроенный функционал Clojure под свои нужды;
- научитесь работать с внешними системами с помощью Clojure стэка (файловая система, базы данных, очереди сообщений);
- использовать язык Clojure для разработки ПО;

Процесс обучения

Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в Telegram, сдача домашних работ и получение обратной связи от преподавателя.

Вебинары проводятся 2 раза в неделю по 2 ак. часа и сохраняются в записи в личном кабинете. Вы можете посмотреть их в любое удобное для вас время.

В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашего выпускного проекта.

После выполнения всех домашних заданий вы получите готовый выпускной проект.

Оптимальная нагрузка

Возможность совмещать учебу с работой

Портфолио

Индивидуальная разработка итоговой проектной работы 

Перспективы

 

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

Программа

Основы языка Clojure

В первом модуле нашего курса мы познакомимся с языком программирования Clojure, изучим его основы и особенности. Мы погрузимся в синтаксис языка, обсудим его области применения и познакомимся с тулингом. Кроме того, мы изучим принципы функционального программирования, которые являются важной частью языка Clojure. Персистентные структуры данных - еще одна важная тема, которую мы рассмотрим в первом модуле. Вы узнаете, что такое персистентность и как она реализуется в языке Clojure, и научитесь работать с различными типами данных. Также мы будем тренироваться в использовании REPL, научимся создавать консольные приложения, использовать сторонние библиотеки. В результате прохождения первого модуля вы сможете понимать синтаксис и основы языка Clojure, создавать простые консольные приложения, использовать сторонние библиотеки и писать тесты для своих программ

Тема 1: Знакомство с Clojure, идеология, синтаксис и основные особенности

Тема 2: Leiningen, создаём первый проект, углубляемся в синтаксис, работа со строками

Тема 3: Функциональное программирование в Clojure, функции высшего порядка, рекурсия и композиция

Тема 4: Персистентные структуры данных в Clojure, работа с коллекциями

Тема 5: Использование внешних Clojure библиотек, взаимодействие с Java классами

Тема 6: Взаимодействие с внешним миром, основные IO операции

Тема 7: Регулярные выражения, очереди и array comprehension

Продвинутые концепции

В рамках данного модуля мы глубже изучим язык программирования Clojure и его особенности по сравнению с другими языками. Мы ознакомимся с более сложными концепциями, такими как полиморфизм, ленивые коллекции и рантайм типизация, что поможет студентам лучше понять архитектуру языка и его принципы работы. Кроме того, в рамках модуля мы рассмотрим инструменты для создания веб-сервисов, что позволит студентам лучше понимать, как разрабатывать приложения, работающие в сети. После прохождения данного модуля студенты смогут решать более сложные алгоритмические задачи и использовать подход test-driven в разработке ПО. Они также научатся писать тесты для своих программ и использовать их для проверки правильности их работы

Тема 1: Метаданные в Clojure, тестирование Clojure кода

Тема 2: Полиморфизм в Clojure. Часть 1

Тема 3: Q&A Практическое занятие

Тема 4: Полиморфизм в Clojure. Часть 2

Тема 5: Ленивые коллекции и бесконечные последовательности

Тема 6: Опциональная типизация с помощью clojure.spec и дополнительные возможности библиотеки

Тема 7: HTTP запросы, библиотека clj-http

Тема 8: Разработка WEB сервисов на Clojure

Параллельное и конкурентное программирование

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

Тема 1: Ссылочные типы данных, синхронизация состояния между потоками

Тема 2: Многопоточное программирование в Clojure

Тема 3: Параллельное выполнение кода

Тема 4: Асинхронное выполнение кода

Тема 5: Реактивное программирование в Clojure

Тема 6: QA. Практическое занятие

Data DSL и расширение возможностей Clojure

Data DSL - это часто используемый инструмент, с которым сталкиваются разработчики на языке Clojure в своей работе. Это одна из сильных сторон языка, так как он позволяет выражать сложные процессы в виде простых структур данных. В рамках модуля по языку Clojure студенты получат возможность поработать с наиболее распространенными DSL, такими как hiccup для работы с html, honey-sql для sql и compojure для route trees, и поймут, как работать с ними. Они также научатся разрабатывать свои собственные DSL, что поможет им в создании более эффективных и удобных инструментов для своей работы. Кроме того, мы рассмотрим макросы, которые являются еще одним мощным инструментом языка Clojure. Макросы позволяют разработчикам расширять возможности языка и значительно сокращать количество boilerplate кода. В результате прохождения модуля по языку Clojure и Data DSL студенты получат не только глубокое понимание особенностей языка, но и практические навыки работы с DSL и макросами. Эти навыки помогут им в их будущей работе и позволят создавать более эффективные и удобные инструменты для своих проектов

Тема 1: Работаем с деревьями и графами

Тема 2: Основы Data DSL

Тема 3: Data DSL практика

Тема 4: Основы datalog и “triplestore” базы данных

Тема 5: Расширяем возможности языка Clojure, макросы

Тема 6: Введение в ClojureScript

Работа с внешними системами

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

Тема 1: Работа с реляционными базами данных

Тема 2: Работа с брокерами сообщений

Тема 3: Архитектура больших Clojure проектов

Тема 4: Запуск Clojure приложения в продакшен

Тема 5: Отладка Clojure приложений и оптимизация производительности

Тема 6: Скрипты на Clojure, Babashka runtime

Тема 7: QA. Практическое занятие

Проектный модуль

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

Тема 1: Выбор темы и организация проектной работы

Тема 2: Консультация по проектам и домашним заданиям

Тема 3: Защита проектных работ

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

Выпускной проект


Каждый курс завершается финальным проектом, который предстоит защитить перед преподавателями и командой. Вам будет, что обсудить на собеседовании!

Вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.

Преподаватели

Сергей Ткаченко

developer

Minoro

Алексей Пирогов

Александр Ушанов

Александр Журавлёв

Андрей Иванов

Сергей Ткаченко

developer

Minoro

Андрей Кравчук

C/Python Developer

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Прошедшие
мероприятия

Андрей Иванов
Открытый вебинар
Знакомство с Clojure, идеология, синтаксис и основные особенности
Александр Ушанов
Открытый вебинар
Структуры данных Clojure
Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Иван Сюфу

14.04.2024
Отличный курс, замечательные преподователи.

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса и удостоверение о повышении квалификации.

После обучения вы:

  • Получите материалы по пройденным занятиям (видеозаписи курса и дoполнительные материалы)
  • Создадите свой проект, который поможет при прохождении собеседований
  • Повысите свою ценность и конкурентоспособность как IT-специалист
  • Получите сертификат об окончании курса

Частые вопросы

Почему OTUS?
Мы обучаем IT-сотрудников уже 6 лет, через OTUS прошли 20 000 студентов. Специализируемся на программах для людей с опытом, а ещё – быстро переформатируем учебные программы под изменения в сфере информационных технологий.
Обязательно ли выполнять и защищать выпускной проект?
Для получения сертификата OTUS и УПК (удостоверение повышения квалификации государственного образца) необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем. Для получения УПК также понадобится предъявить документ об образовании.
Обязательно ли выполнять все домашние задания?
Да, если хотите хорошо отточить навыки. На курсе будут практические домашние задания, их выполнение занимает примерно 2-3 часа.
Помогаете ли вы с трудоустройством после курса?
В Otus Club проводятся вебинары на тему трудоустройства, разбор резюме, прохождения собеседований, особенности реферальных программ при найме. Также обратим ваше внимание, что преподаватели курса занимают ведущие позиции в разных компаниях. Будьте активны, выполняйте домашние задания, стройте network с сокурсниками и преподавателями, и вам будет проще найти работу, расширив свои контакты.
Смогу ли я совмещать учебу с работой?
Да. Программа курса рассчитана на студентов, у которых мало времени. Лекции проводим дважды в неделю, домашние задания — не чаще 1 раза в неделю.
Что, если в середине курса я не смогу продолжать обучение?
Вы можете бесплатно перейти в другую группу. Но только один раз.
Я могу вернуть деньги?
Да, мы можем вернуть деньги за то время курса, которое вы ещё не успели отучиться. Например, если курс длится пять месяцев, а вы отучились один, мы вернём деньги за оставшиеся четыре месяца.
Может ли мой работодатель оплатить курс?
Да. Когда свяжетесь с нашим менеджером, уточните, что оплачивать курс будет ваш работодатель.
Остались вопросы?
Оставляйте заявку и задавайте вопросы менеджеру, команда курса с ним на связи и постарается дать вам исчерпывающую информацию.