Как стать автором
Обновить

24 апреля пройдет онлайн-конференция OTUS FEST для Middle специалистов

Время на прочтение 1 мин
Количество просмотров 855
Блог компании OTUS Конференции

В апреле OTUS приглашает IT-специалистов всех направлений отметить 4 года с момента основания платформы. По этому случаю мы организовали масштабную образовательную онлайн-конференцию. Участие бесплатное.

Про OTUS FEST
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 0

Журнал архитектурных решений (ADL) при проектировании информационных систем

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.3K
Блог компании OTUS Анализ и проектирование систем *Управление проектами *
Обзор

Для сложных информационных систем бывает крайне сложно принять компромиссные решения с учетом ограниченных ресурсов. Одним из возможных способов решения является подход Architecture Description Log, который внедрен в крупных компаниях, таких как Google, Spotify и Microsoft. В этой статье мы рассмотрим основные положения ADL и обсудим, чем это может быть полезно для создания сбалансированной архитектуры в гибкой методологии разработки.

Читать далее
Всего голосов 16: ↑14 и ↓2 +12
Комментарии 2

Запуск проекта Otus.ru

Время на прочтение 3 мин
Количество просмотров 14K
Блог компании OTUS Программирование *Java *
Друзья!

Сервис Otus.ru — это инструмент для трудоустройства. Мы используем образовательные методики для отбора лучших специалистов для задач бизнеса. Мы собрали и типизировали вакансии крупных игроков ИТ-бизнеса, создали на базе полученных требований курсы. Мы заключили соглашения с этими компаниями о том, что лучшие наши студенты пройдут собеседование на релевантные позиции. Мы соединяем, как мы надеемся, лучших работодателей с самыми замотивированными специалистами.

Сейчас мы делаем пилот, запускаем первый курс по Java. На подходе еще четыре курса, в планах — около 40. Но на этом этапе нам важно протестировать нашу образовательную технологию, сделать так, чтобы наш продукт был качественным.
Читать дальше →
Всего голосов 28: ↑15 и ↓13 +2
Комментарии 52

Стать востребованным на рынке труда: какие темы нужно знать Java разработчику?

Время на прочтение 4 мин
Количество просмотров 16K
Блог компании OTUS Программирование *Java *
Нам часто задают вопросы про программу обучения: почему мы предлагаем именно такую программу и почему считаем, что именно специалисты, изучившие темы, которые мы рассматриваем на курсе, будут востребованы на рынке.
Читать дальше →
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 19

Дни открытых дверей перед запуском нового курса по Java

Время на прочтение 1 мин
Количество просмотров 3K
Блог компании OTUS Программирование *Java *
Приглашаем всех 27 мая и 1 июня на Дни открытых дверей! Из любой удобной точки мира — приходите к нам — формат проведения онлайн.


Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 4

Перспективы трудоустройства для Java-программистов

Время на прочтение 3 мин
Количество просмотров 22K
Блог компании OTUS Программирование *Java *
Наш образовательный проект стартовал с программы «Разработчик Java» не случайно. Во-многом появление этого курса связано с темпами роста IT-сферы и постоянного спроса на квалифицированных программистов. В этой статье мы решили поделиться с вами цифрами и фактами, которые подтверждают наш выбор и помогут вам понять, стоит ли изучать Java на профессиональном уровне.
Читать дальше →
Всего голосов 20: ↑7 и ↓13 -6
Комментарии 11

Разбираемся в джунглях программирования, или почему Маугли дружил с Python?

Время на прочтение 3 мин
Количество просмотров 6.7K
Блог компании OTUS Python *Программирование *
В произведении Редьярда Киплинга “Книга джунглей” питон Каа олицетворял собой не только силу, но и мудрость. Маугли быстро смекнул, что такого персонажа лучше взять в союзники — так и в тропических джунглях не пропадёшь, и благодаря его советам хоть чуть-чуть станешь похожим на человека.
Читать дальше →
Всего голосов 37: ↑9 и ↓28 -19
Комментарии 8

Использование Python и Excel для обработки и анализа данных. Часть 1: импорт данных и настройка среды

Время на прочтение 7 мин
Количество просмотров 170K
Блог компании OTUS Разработка веб-сайтов *Python *
Если Вы только начинаете свой путь знакомства с возможностями Python, ваши познания еще имеют начальный уровень — этот материал для Вас. В статье мы опишем, как можно извлекать информацию из данных, представленных в Excel файлах, работать с ними используя базовый функционал библиотек. В первой части статьи мы расскажем про установку необходимых библиотек и настройку среды. Во второй части — предоставим обзор библиотек, которые могут быть использованы для загрузки и записи таблиц в файлы с помощью Python и расскажем как работать с такими библиотеками как pandas, openpyxl, xlrd, xlutils, pyexcel.
Читать дальше →
Всего голосов 16: ↑12 и ↓4 +8
Комментарии 6

Дни открытых дверей перед запуском нового курса по Python

Время на прочтение 1 мин
Количество просмотров 2.5K
Блог компании OTUS Python *Программирование *
Мы в OTUS снова рады открыть свои двери 30 июня и 1 июля в 20:00 по Москве для нового набора — теперь по курсу углубленного изучения Python.

image

Формат проведения — онлайн, подключайтесь из любой точки мира!
Читать дальше →
Всего голосов 17: ↑3 и ↓14 -11
Комментарии 1

Использование Python и Excel для обработки и анализа данных. Часть 2: библиотеки для работы с данными

Время на прочтение 10 мин
Количество просмотров 286K
Блог компании OTUS Разработка веб-сайтов *Python *
Первая часть статьи была опубликована тут.

Как читать и редактировать Excel файлы при помощи openpyxl


ПЕРЕВОД
Оригинал статьи — www.datacamp.com/community/tutorials/python-excel-tutorial
Автор — Karlijn Willems

Эта библиотека пригодится, если вы хотите читать и редактировать файлы .xlsx, xlsm, xltx и xltm.

Установите openpyxl using pip. Общие рекомендации по установке этой библиотеки — сделать это в виртуальной среде Python без системных библиотек. Вы можете использовать виртуальную среду для создания изолированных сред Python: она создает папку, содержащую все необходимые файлы, для использования библиотек, которые потребуются для Python.

Перейдите в директорию, в которой находится ваш проект, и повторно активируйте виртуальную среду venv. Затем перейдите к установке openpyxl с помощью pip, чтобы убедиться, что вы можете читать и записывать с ним файлы:
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 1

Что такое DevOps: подход, который может изменить всё

Время на прочтение 4 мин
Количество просмотров 9.3K
Блог компании OTUS Программирование *Тестирование веб-сервисов *
Официальной датой рождения термина DevOps принято считать 2009 год, когда в Бельгии впервые прошла конференция “Devopsdays”. Год спустя желающих наберется уже на 4 подобных события. В 2017 году — 47 конференций по всему миру, в том числе в Москве. Так что такое DevOps?

DevOps это не профессия, а культура, философия, метод — набор практик, объединяющий вместе разработчиков программного обеспечения, тестировщиков и людей, отвечающих за его обслуживание. Отсюда название — акроним от “development” и “operations”. Основная цель — уменьшение разрыва между работой всех IT- подразделений компании, оптимизация ответственности за задачи «на стыке» разработки и эксплуатации, повышение производительности, снижение количества ошибок, и, как следствие, удовлетворение потребностей бизнеса и клиента.
Читать дальше →
Всего голосов 14: ↑8 и ↓6 +2
Комментарии 7

DevOps не проблема технологий. DevOps — это проблема бизнеса. (перевод)

Время на прочтение 4 мин
Количество просмотров 8K
Блог компании OTUS Системное администрирование *Серверное администрирование *DevOps *
Дэймон Эдвардс / 8 ноября, 2010

С того момента как Патрик Дебуа организовал первую конференцию DevOps Days и явил миру термин “DevOps” не может быть сомнений, что DevOps развился до уровня глобального движения.

Безусловно, DevOps движение имеет своих хулителей. Негативные мнения варьируются от ошибочных («DevOps — это новое название для сисадминов») и пренебрежительных («DevOps — это просто какие-то безумные разработчики (Devs), которые пытаются избавиться от админов (Ops)» или «DevOps — это какие-то безумные админы, которые хотят казаться разработчиками, чтобы их больше любили») до выражений обиды (как правило, с аргументами, не поддающимися логике).

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

DevOps это не проблема технологий.

Технологии играют ключевую роль в создании решений тех проблем, которые пытается решить DevOps. Однако, DevOps, по своему определению, является проблемой бизнеса.

Какое отношение бизнес имеет к DevOps?
Основополагающий бизнес-процесс в любой компании — взять идею от момента ее рождения в голове и донести ее туда, где она будет приносить деньги.


Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 4

Тестируем асинхронный код с помощью PyTest (перевод)

Время на прочтение 9 мин
Количество просмотров 21K
Блог компании OTUS Python *
При подготовке материала для курса, нам периодически попадаются интересные статьи, которыми хотелось бы поделиться с вами!

Автор Stefan Scherfke “Testing (asyncio) coroutines with pytest”



PyTest — отличный пакет для тестирования на Python, и с давних пор один из моих любимых пакетов в целом. Он значительно облегчает написание тестов и обладает широкими возможностями по составлению отчетов о непройденных тестах.

Тем не менее, на момент версии 2.7, он менее эффективен в тестировании (asyncio) подпрограмм. Поэтому не стоит пытаться их тестировать таким способом:

# tests/test_coros.py

import asyncio

def test_coro():
    loop = asyncio.get_event_loop()

    @asyncio.coroutine
    def do_test():
        yield from asyncio.sleep(0.1, loop=loop)
        assert 0  # onoes!

    loop.run_until_complete(do_test())

В таком методе много недостатков и излишеств. Единственные интересные строки — те, что содержат операторы yield from и assert.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 2

Продвинутое конфигурирование Docker Compose (перевод)

Время на прочтение 5 мин
Количество просмотров 120K
Блог компании OTUS *nix *Виртуализация *Серверное администрирование *DevOps *
Docker Compose обладает целым рядом нетривиальных способов применения, которые мы рассмотрим в этой заметке. Это очередной перевод статьи, которую мы разбирали при подготовке материалов нашего курса Python для Web-разработки.



Контроль порядка запуска


Docker Compose запускает контейнеры в порядке зависимостей, используя опцию depends_on, чтобы указывать, когда запускается сервис. Для определения порядка запуска Compose применяет depends_on, links, volumes_from и network_mode: «service: ...».

Если контейнер должен дождаться состояния “ready” другого контейнера, можно использовать инструменты wait-for-it или dockerize. Они будут проверять хосты и порты до тех пор, пока TCP соединение не будет подтверждено. Для включения принудительного ожидания в композицию необходимо добавить entrypoint:

version: '2'

services:
    web:
        build: .
        ports:
            - "80:8000"
        depends_on:
            - db
        entrypoint: "./wait-for-it.sh db:5432"
    db:
        image: postgres

Вы всегда можете самостоятельно написать скрипт-обёртку, если возникнет необходимость в усилении контроля.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 8

Stream API & ForkJoinPool

Время на прочтение 7 мин
Количество просмотров 30K
Блог компании OTUS Программирование *Java *Параллельное программирование *
Продолжаем серию полезностей, которыми мы делимся с вами. Теперь уже вновь по Java.

Если вы уже знакомы со Stream API и использовали его, то знаете, что это удобный способ обработки данных. С помощью различных встроенных операций, таких как map, filter, sort и других можно преобразовать входящие данные и получить результат. До появления стримов разработчик был вынужден императивно описывать процесс обработки, то есть создавать цикл for по элементам, затем сравнивать, анализировать и сортировать при необходимости. Stream API позволяет декларативно описать, что требуется получить без необходимости описывать, как это делать. Чем-то это напоминает SQL при работе с базами данных.



Стримы сделали Java-код компактнее и читаемее. Еще одной идеей при создании Stream API было предоставить разработчику простой способ распараллеливания задач, чтобы можно было получить выигрыш в производительности на многоядерных машинах. При этом нужно было избежать сложности, присущей многопоточному программированию. И это удалось сделать, в Stream API есть методы BaseStream::parallel и Collection.parallelStream(), которые возвращают параллельный стрим.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 6

Талант IT-рекрутера – чем творцы отличаются от ремесленников?

Время на прочтение 7 мин
Количество просмотров 16K
Блог компании OTUS IT-компании

Всем привет!


Сегодня мы поговорим о мастерстве подбора персонала, а своими секретами поделится Фаина Лернер, преподаватель нашего курса IT-Recruiter:



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

Всего голосов 13: ↑9 и ↓4 +5
Комментарии 17

План ИИ-трансформации: как управлять компанией в эпоху ИИ?

Время на прочтение 12 мин
Количество просмотров 2.8K
Блог компании OTUS Big Data *Искусственный интеллект
Перевод

Делимся с вами ещё одним полезным переводом статьи. Также всех, у кого есть желание за 3 месяца освоить Best Practice по внедрению в проекты современных аналитических механизмов, необходимых для продвижения продуктов и услуг в цифровом пространстве, приглашаем ознакомиться с программой профессионального курса «Big Data для менеджеров». Итак, как же управлять компанией в эпоху ИИ?


image


Сегодня технологии искусственного интеллекта (ИИ) готовы изменить все отрасли, так же как 100 лет назад это сделало электричество. По оценкам, в период до 2030 года ИИ-технологии приведут к росту ВВП на 13 триллионов долларов. Хотя ИИ уже принёс огромную ценность в ведущих технологических компаниях, таких как Google, Baidu, Microsoft и Facebook, большой всплеск создания ценности для бизнеса будет за рамками индустрии разработки программного обеспечения.

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 2

Интервью — 10 вопросов про Swift. Часть 3

Время на прочтение 4 мин
Количество просмотров 11K
Блог компании OTUS Разработка под iOS *Разработка мобильных приложений *Интервью
Перевод

Профессиональная программа «iOS Разработчик» — 5 месяцев Best Practice по разработке мобильных приложений с помощью Swift 5. Лучших выпускников ждут на собеседованиях 12 компаний-партнёров OTUS, поэтому публикуем перевод заключительной статьи из серии «iOS Interview Questions (Swift)», где рассмотрим ещё десяток вопросов, ответы на которые помогут вам при трудоустройстве.


image

Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 1

Монорепозитории: пожалуйста, надо

Время на прочтение 6 мин
Количество просмотров 4.7K
Блог компании OTUS DevOps *
Перевод

image


Перевод статьи подготовлен для студентов курса «DevOps практики и инструменты» в образовательном проекте OTUS.




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

Читать дальше →
Всего голосов 26: ↑20 и ↓6 +14
Комментарии 8

Пирамидальная сортировка (HeapSort)

Время на прочтение 7 мин
Количество просмотров 143K
Блог компании OTUS Алгоритмы *
Перевод


Перевод статьи подготовлен специально для студентов курса «Алгоритмы для разработчиков».




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

Всего голосов 30: ↑28 и ↓2 +26
Комментарии 6