Category: Обучение

10
Сен
2020

☕ Что пишут на Java: области применения

Почему компании по-прежнему предпочитают Java новым языкам? В этой статье рассмотрим, как Java используется крупными компаниями, и дадим представление о том, где вы сможете работать, используя Java.

Преимущества Java, как языка программирования

В подготовке данного материала нас поддержал Факультета Java-разработки онлайн-университета GeekBrains. Подробно о плюсах работы с Java мы уже рассказали в статье «Преимущества языка программирования Java». В этот раз поговорим о том, как эти преиущества влияют на использование языка на практике.

Главная черта Java – адаптивность. Программное обеспечение, написанное на одной платформе, запустится и на других устройствах. Программы Java работают на Java Virtual Machine, предоставляющей оптимизацию кода и управление памятью. Java также обеспечивает масштабируемость – одновременную обработку нескольких запросов и многопоточное выполнение программы. Все эти возможности языка, конечно, учитываются разработчиками.

Сферы применения языка Java

Java используется во многих сферах начиная с e-commerce веб-сайтов и заканчивая приложениями для Android, в научных исследованиях и финансах, играх вроде Minecraft и настольных приложениях Eclipse, Netbeans и IntelliJ.

Мобильные приложения Android

Java Micro Edition это популярная кроссплатформенная среда, применяемая для создания приложений смартфонов. Примеры мобильных приложений, написанных на Java: Netflix, Tinder, Google Earth, Uber и т. д.

Игры на Java

Сайт Java-Gaming.org полностью посвящен созданию игр на Java. Библиотека LWJGL значительно упрощает этот процесс. Примеры написанных на Java игр перечислены в статье 38 лучших приложений (англ.).

Серверные финансовые приложения

Глобальные инвестиционные банки Goldman Sachs, Citigroup, Barclays, Standard Charted используют Java для написания фронт и бэк-офисов систем электронной торговли, систем расчетов и подтверждения транзакций, обработки данных и т. д.

Веб-приложения на Java

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

Таблица, иллюстрирующая использование языков программирования в крупных технологических компаниях (<a href="https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites" target="_blank" rel="noopener noreferrer nofollow">источник</a>)
Таблица, иллюстрирующая использование языков программирования в крупных технологических компаниях (источник)

На Java создано множество opensource-инструментов для мониторинга и обновления данных. К примеру, Netflix использует Java одновременно для разработки инфраструктуры на Linux и кодирования видео на Windows-машинах. Веб-приложения электронной коммерции применяют Java на таких платформах, как Broadleaf.

Программы для сопровождение кода

Инструментальное программное обеспечение это набор компьютерных программ, которые разработчики используют для программирования, анализа, обслуживания, отладки и поддержки других программ и приложений. Примеры: Eclipse, IntelliJ Idea и IDE NetBeans.

Встраиваемые системы на Java

Первоначально язык Java был разработан для встраиваемых устройств. Девизом Java было «Напиши один раззапускай где угодно». В результате Java стал одним из лучших языков для разработки IoT-приложений.

Встроенные модули Java предоставляют различные способы взаимодействия с сервером, а архитектура модели безопасности песочницы обеспечивает высокий уровень защиты данных. Модули Cinterion Java успешно используются в среде межмашинного взаимодействия (M2M-machine to machine), включая умные счетчики, системы управления автопарком, промышленной автоматизации и мобильного здравоохранения.

Технологии больших данных

Большие данные – одна из самых популярных тем в мире новейших технологий. Автоматическая сборка мусора и надежное управление памятью делают Java одним из приоритетных языком для реализации алгоритмов машинного обучения. Многие известные средства обработки больших данных (Hadoop, Spark, Mahout) являются Java-фреймворками.

Примеры использования Java в крупных корпорациях

Square

Компания Square помогает продавцам превращать мобильные устройства в платежные системы. Программное обеспечение Square построено с применением Ruby и C++, но стек обработки денежных транзакций основан на Java.

Java – действительно единственный выбор, когда дело доходит до требований для такой компании, как наша – с высокими требованиями к производительности и экстремальными требованиями к масштабируемости. Альтернативы нет.

Hadoop

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

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

Twitter

Для Twitter нет ничего важнее масштабируемости. Приложением пользуются более 500 млн человек. Проект начинался, как демонстрация того, на что способен фреймворк Ruby on Rails. К сожалению, со временем стало понятно, что RoR плохо справляется с обработкой большого числа запросов данных в реальном времени, поиском по определенной теме или хештегам. Одним из преимуществ Java является масштабируемость – это послужило одной из главных причин перехода с Ruby на Java.

Заключение

Несмотря на то что язык был разработан 25 лет назад, Java по-прежнему остается одним из самых востребованных языков. Большинство компаний-гигантов применяют Java в качестве основного языка. Изучение Java – непростая задача. Чтобы сделать процесс более комфортным и увлекательным, воспользуйтесь курсом Факультета Java-разработки.

Учебная программа охватывает все необходимые темы: синтаксис Java, объектно-ориентированное программирование, базы данных и т. д. Вы подробно изучите основы Java, фреймворки Spring и LibGDX, интеграцию платежных систем. Для практики навыков вы разработаете пять проектов:

  • сетевой чат;
  • кроссплатформенная игра;
  • облачное хранилище;
  • интернет-магазин;
  • бизнес-проект, разработанный в команде на основе вашей идеи.

Все эти проекты послужат отличным дополнением к портфолио для подачи заявки на работу. Онлайн-университет также поможет с трудоустройством.

02
Сен
2020

Практика новичок java [закрыт]

Посоветуйте путь развития практики в написании когда или как совмещать умные книги и практиковаться. Куда стоит лазить, а про что еще можно забыть.
Не так давно я начал учить java. Данный форум конечно клондайк))) По книгам я разобрался, и…

29
Авг
2020

🔀 Чем отличаются системный и бизнес-аналитик? Разбираемся на практике

Дискуссии о том, как разделить определения системного и бизнес-аналитика ведутся в сфере непрерывно. Одни уверены, что это профессия «два в одном», другие – не понимают, какой именно аналитик нужен проекту, и главное – зачем. Раскладываем по полочкам.

Где грань между системным и бизнес-аналитиком

Ранее мы уже писали о том, кто такие системные и бизнес-аналитики, как войти в профессию. Продолжим вникать в особенности профессий, обучиться которым можно на факультете Системной и бизнес-аналитики онлайн-университета GeekBrains.

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

Рассмотрим разницу ролей на примере задач специалистов:

  • бизнес-аналитик: изучение, описание, анализ, изменение бизнес-процессов (пример описания бизнес-процесса); выявление проблем или возможностей роста; формирование бизнес-требований c учетом рисков, затрат, зависимостей, норм;
  • системный аналитик: анализ бизнес-требований; определение стека технологий, готовых решений; проектирование баз данных; проектирование модели взаимосвязей компонентов; систематизация технических требований для разработчиков; проверка реализации согласно требованиям; составление документации.

Одно из объяснений специфики различий между специалистами можно узнать из доклада Егора Вершинина.

Егора Вершинин «Бизнес аналитик vs Системный аналитик. В чем разница  (презентация)

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

Тип проекта Количество разработчиков Бизнес-аналитик Системный аналитик
1 продукт 3-10 Да Нет
1 продукт 10-20 Да Нет
2 и более продуктов 10-20 Да Делегировать разработке
2 и более продуктов > 20 Да Да

Как задачи системного и бизнес-аналитика описываются в профессиональной литературе

В профессиональной литературе бизнес-аналитика, как специалиста, выделяют отдельно, рассматривая сферу IT, как одно из узких направлений развития. Пример: свод правил по бизнес-анализу под названием BABOK. Если авторы освещают область разработки требований к ПО, роли системного и бизнес-аналитика смешиваются, как, например, в книге К. Вигерса и Д.Битти «Разработка требований к программному обеспечению».

Более строгое разделение профессий системного и бизнес-аналитика можно найти в профессиональном стандарте на сайте Министерства труда.

Для роли бизнес-аналитика определяют следующий набор задач:

  • работает с заинтересованными сторонами;
  • обеспечивает изменения в организации;
  • выявляет бизнес-проблемы и бизнес-возможности;
  • управляет бизнес-анализом;
  • аналитически обеспечивает разработку стратегии изменений организации.

Для системного аналитика стандарт определяет такие задачи:

  • разрабатывает требования к отдельным функциям системы;
  • разрабатывает требования и технические задания на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности;
  • концептуально и функционально проектирует системы среднего и крупного масштаба и сложности;
  • управляет аналитическими работами и подразделением.

Есть ли тенденция разделения профессий при найме?

По данным сайта hh.ru, работодатели скорее разделяют профессии системного и бизнес-аналитика, нежели ищут специалиста, который полностью совмещает эти роли.

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

Навыки, инструменты и методологии системного и бизнес-аналитика

Бизнес-аналитик Системный аналитик
Навыки аналитическое мышление; навык ведения переговоров; навык оценки решений и рисков; навык работы с большим потоком данных; понимание жизненного цикла разработки ПО. знание основ разработки ПО; знание основ теории алгоритмов, теории баз данных, теории систем и системного анализа, а также безопасности информации; опыт разработки документации по ГОСТ 34; общие знания в области менеджмента.
Инструменты MS Excel / PowerPoint / Power BI / Tableau / Confluence Jira / Basecamp / CASE-инструменты (например: Enterprise Architect, MS Visio, ARIS) / GitHub / Git / SQL / REST / SOAP
Нотации UML / BPMN / EPC UML / IDEF0 / IDEF1X
Методологии и практики BPM, Lean Six Sigma, ITIL SCRUM, Kanban, Waterfall
Распределение навыков системного и бизнес-аналитика
Распределение навыков системного и бизнес-аналитика

Взаимодействие системного и бизнес-аналитика на примере

Пусть есть заказчик – B2C поставщик здорового питания по подписке на ежедневной основе. Компания предоставляет услуги в четырех городах России и Казахстана.

Заказчик обратился с задачей объединения системы управления данными клиентов, блюд, поставщиков продукции и доставки в единую систему с общим корпоративным сайтом по заказу услуг. Бизнес-аналитик (БА) посетил предприятие заказчика, провел переговоры с экспертами предметной области и определил требования к будущему ПО. Системный аналитик (СА) ознакомился с текущим состоянием компонентов систем, на основании требований БА определил подходящие готовые решения, составил техническую документацию.

Задача БА: изучить и описать бизнес-процессы предприятия, выявить и сформулировать бизнес-цели с учетом рисков, выявить и систематизировать бизнес-требования в проекте, описать границы проекта.

Задача СА: изучить текущее состояние информационных систем, варианты их переиспользования, определить готовое ПО, которое будет использоваться на проекте, смоделировать сущности предметной области и баз данных, сформировать перечень функциональных требований в техническом задании для разработчиков.

Заключение

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

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

Самостоятельно обучиться навыкам системного и бизнес-анализа непросто, тем более, если необходимо изучить сразу два направления. Еще одним препятствием в обучении становится почти полное отсутствие образовательных платформ. Специалистов по системному и бизнес-анализу в отечественных вузах не готовят.

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

Здесь также гарантируют год практического опыта в сфере для вашего резюме. А овладеть необходимыми для работы навыками можно на практике, разрабатывая программы совместно со специалистами компаний-лидеров рынка. В ходе обучения вы выполните 4 проекта. В результате успешного прохождения курса команда GeekUniversity гарантирует выпускникам трудоустройство.

24
Авг
2020

Обучение Java. Как совмещать обучающую литературу на начальном этапе? [закрыт]

Господа, добрый вечер. начал изучать Java. начал, по советам с книги серии Head First. но мне еще рекомендуют прочитать что-то поосновательней, типа Хорстманна или Шилдта. поглядел немного первого, и у меня возник вопрос как это совмещать?…

24
Авг
2020

Обучение Java. Как совмещать обучающую литературу на начальном этапе? [закрыт]

Господа, добрый вечер. начал изучать Java. начал, по советам с книги серии Head First. но мне еще рекомендуют прочитать что-то поосновательней, типа Хорстманна или Шилдта. поглядел немного первого, и у меня возник вопрос как это совмещать?…

20
Авг
2020

👨‍🔧️ Как и зачем становиться DevOps-инженером?

Хотите узнать, зачем в современном IT нужны DevOps-инженеры и почему такой должности не было раньше? Объясняем максимально просто.

Что такое DevOps и кто такой DevOps-инженер

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

Данную статью мы подготовили при поддержке нашего партнера – онлайн-университета GeekBrains. На факультете DevOps саму профессию, необходимые практики и инструменты можно освоить с нуля.

А поподробнее?

Представим, вас уже взяли на должность, связанную с DevOps в компании, создающей сайты на заказ. В компанию обращается клиент ООО «Большая Корпорация». Разработчик Василий и дизайнер Анна читают требования, резво принимаются за дело и вот уже готов первый прототип. Тестировщик Ольга проверяет его и передаёт клиенту.

Вроде бы пока всё идёт нормально, но есть одно «но»… «Большая Корпорация» не была бы самой собой, если бы не вносила правки по одной. Уже на пятой правке после смены цвета всех кнопок с бирюзового на аквамарин, Василий, Анна и Ольга начинают рвать на себе волосы – после каждого изменения необходимо переделывать, тестировать и размещать на сервере клиента весь сайт.

Тут на сцену и вступаете вы – DevOps-инженер. Вы быстро разворачиваете pipeline (букв. англ. «система труб»). Только вместо жидкости по этим трубам «течёт» код, а созданная вами система непрерывной интеграции и тестирования собирает и проверяет всё вместе, значительно ускоряя рабочий процесс.

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

Осталось разобраться, почему же эта практика называется DevOps. Всё просто: Dev (Development) – разработка, а Ops (Operations) – эксплуатация. Вот и вся расшифровка этого страшного термина.

Инструменты и навыки DevOps-инженера

Опытный DevOps-инженер должен понимать, как создать быструю и долговременную систему. Поэтому огромным плюсом будет умение строить в своём сознании «карты» инфраструктуры, описывающие, какой элемент за что отвечает.

Естественно, свою задачу вы будете выполнять не вручную, а с помощью специальных программ, технологий и средств автоматизации:

Если вы хотите стать DevOps, придётся хорошо изучить эти и множество других инструментов. Для работы надо разбираться и в Linux, понимать внутреннее устройство операционной системы.

Материалы для чтения, изучения и просмотра

Если вы твердо решили идти в DevOps, помогут следующие ресурсы:

Есть информация и на русском:

Карьера в DevOps

Если вы только пришли в IT-индустрию, требования к DevOps-инженерам могут показаться сложными или даже страшными, но бояться нечего. Чтобы устроиться на первую должность по этой вакансии, имеет смысл несколько раз поучаствовать в этой роли в хакатоне или проекте в группе разработчиков, дизайнеров и других специалистов, заинтересованных в профессиональном развитии. Такой подход принесёт не только опыт, но и контакты в индустрии.

В первую очередь в DevOps стоит идти системным администраторам и всем, кому интересны и знакомы Linux-системы. Полезны будет и другие знания по системному администрированию, но именно эта ОС используется в сфере DevOps чаще всего.

DevOps также является логичным продолжением карьеры для людей, профессионально связанных с настройкой IT-инфраструктуры и строительством сетей.

Финансовые перспективы

Конечно, DevOps – дело само по себе интересное, но вас ведь не заставят работать без зарплаты. Давайте посмотрим и сравним, сколько платят DevOps-инженерам разных уровней за рубежом и в России.

Чтобы узнать, как дела обстоят в США, воспользуемся инструментом StackOverflow Salary Calculator.

<span>Результаты анализа DevOps-работ с помощью Salary Calculator</span>
Результаты анализа DevOps-работ с помощью Salary Calculator

Медианная зарплата DevOps-инженера в Нью-Йорке составляет 131 тыс. долл. в год (10.8 тыс. долл./мес.), что даже по американским меркам довольно неплохо.

Российские зарплаты рассмотрены в исследовании Яндекса. Как указано в их материале, имея всего год опыта, вы сможете рассчитывать на 115-125 тыс. руб./мес.

Собеседование
Чтобы подготовиться к собеседованию, изучите наш материал 10 вопросов и ответов на DevOps собеседовании.

Конечно, в каждой компании квалификация определяется по-разному, но общепринятым является разделение DevOps-инженеров на те же группы, что и разработчиков: Junior, Middle и Senior. Зарплата DevOps-специалиста стремительно увеличивается с ростом его опыта. Junior и Middle могут рассчитывать на 100-150 тыс. в месяц, а закоренелые DevOps-«волки» получают от 200 тыс. руб.

Заключение

Не терпится начать обучение? Мы предлагаем взглянуть на курс DevOps онлайн-университета Geekbrains, где вам расскажут, как пользоваться такими неотъемлемыми инструментами DevOps, как Docker, Ansible и Kubernetes (полная программа приведена по ссылке).

Стоит заметить, что это один из редких систематизированных материалов на русском языке – рыскать по сети в поисках туториалов и гайдов уже не придётся. Если что-то останется непонятным, вы всегда можете задать вопрос преподавателям напрямую. Кроме того, по результатам успешного прохождения курса платформа помогает с трудоустройством.

19
Авг
2020

👨‍💻️ Программирование на Python: билет до станции «профессионал»

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

Кто из вас знает комик-группу Монти Пайтон? Названный в честь их телешоу, язык Python такой же интересный, веселый и не грузящий. Разработчики Dropbox использовали Python, когда создавали серверную часть и десктопное приложение, а теперь этим инструментом пользуются более 500 млн людей. На Python пишут в Google, Facebook, Netflix, Quora, Reddit и других крупных компаниях.

Примеры известных компаний, активно использующих Python
Примеры известных компаний, активно использующих Python

В этом материале, подготовленном нами при поддержке факультета Python-разработки GeekBrains, мы разберемся, с чем связана такая популярность языка и как выучить Python.

Где применяется Python

У Python последовательный ясный синтаксис и простой подход к модульной архитектуре. Язык является высокоуровневым – многие задачи Python «берет на себя». То, что в других языках занимает 10 строчек кода, в Python часто уже реализовано в виде готового решения – одной из эффективных функций стандартной библиотеки.

Это одна из множества причин, почему Python повсюду: в веб-разработке и анализе данных, серверных и десктопных приложениях, бизнес-инструментах и научных исследованиях. Язык портируется почти на все существующие платформы – от мобильных гаджетов до крупных вычислительных узлов.

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

Тест
Хотите проверить свои знания в области последних новостей искусственного интеллекта? Пройдите наш тест «Правда или ложь: что умеют нейросети».

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

Python применяется даже в разработке игр: в Sims 4 для внутриигрового моддинга, а в Civilization IVдля создания собственных модификаций игры.

Что нужно знать и уметь

🐠 Ныряем в волшебный мир Python

Конечно, становление разработчика начинается с изучения языка. Материалы по ключевым темам Python приведены в публикации Программирование на Python: от новичка до профессионала. Фактически это готовый план к изучению основных структур языка.

Не будет лишним пройтись по отдельным особенностям языка и более сложным темам:

Тест на знание языка Python
Если вы считаете, что уже хорошо знаете Python, пройдите наш тест на знание языка.

Источник: <a href="https://xkcd.ru/353/" target="_blank" rel="noopener noreferrer nofollow">xkcd</a>
Источник: xkcd

Для продвинутой разработки понадобятся знание стандартной библиотеки Python. По многим модулям стандартной библиотеки на proglib.io есть увлекательные инструкции:

В большинстве этих публикаций есть приложения в виде блокнотов Jupyter – не придется копировать программы по кусочкам.

📚 Книги по Python

Книг по Python много, топ-3 для хорошего старта:

Примечание
Приведенный список является выбором автора статьи. Подготовленную нами подборку из 15 книг разного уровня с отзывами читателей вы найдете в статье ТОП-15 книг по Python.

👨‍🏫️ Бесплатные онлайн-курсы по Python

Наконец, более 70 бесплатных русскоязычных онлайн-курсов по Python и связанным технологиям можно найти в суперподборке.

🛰️ Технологии, языки, первые проекты

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

Базы данных. Почти каждое из направлений использования Python требует умений работы с базами данных. О том, как связать Python и реляционные базы данных SQLite, MySQL и PostgreSQL, Библиотека программиста рассказывала в статье Как подружить Python и базы данных SQL. Чтобы разобраться с самим языком запросов, есть замечательный интерактивный тренажер по SQL.

Веб-разметка. Кроме баз данных пригодится знать языки веб-разметки HTML и CSS. Это нужно не только в веб-разработке, но и в анализе данных – для понимания процесса парсинга страниц.

JS. Еще один must have – JavaScript. В сочетании с JS у Python появляются суперсилы – вместе они умеют больше. Зная один язык, проще понять другой. Эта концепция освещена в статье JavaScript для Python-программистов.

Linux. Большинство удаленных серверов, с которыми придется работать, построены на Linux. Знание Linux существенно расширит ваши возможности в выборе направления.

Источник: <a href="https://xkcd.ru/644/" target="_blank" rel="noopener noreferrer nofollow">xkcd</a>
Источник: xkcd

Git. Независимо от типа разработки, вам потребуется система управления версиями кода. Система контроля версий позволяет хранить несколько версий одного и того же документа, возвращаться к более ранним версиям, определять, кто и когда сделал изменение. Наиболее популярная среди таких систем – Git, а самый популярный сайт для удаленного хранения кода – GitHub. Его можно использовать не только для рабочих проектов, но и учебных – научитесь работать с системой как можно раньше. Активность на GitHub положительно скажется на оценке вашего портфолио.

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

💸 Что по работе и зарплате?

На момент публикации материала на hh.ru открыто 6 978 вакансий, связанных с Python: Junior Python разработчик, инженер по Big Data, стажер по анализу данных, тестировщик профильного ПО и т. д. Кто знает, может, ваше неординарное мышление подарит миру новые профессии?

Чем больше область знаний и ответственность, тем выше заработная плата. В 55 вакансиях из списка зарплата превышает 335 тыс. руб. Как вам? По статистике того же hh.ru минимальная заработная плата разработчика Python составляет 75 тыс. руб.

🍀 Удачи и упорства!

Не все привыкли учиться дистанционно, многим нужна поддержка в новом формате обучения. Как расставлять приоритеты, планировать загрузку и прочее.

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

17
Авг
2020

🗝️ Как стать специалистом по информационной безопасности

Информационная безопасность (ИБ) является одной из самых востребованных сфер IT. Из этой статьи вы узнаете о профессиях ИБ и о том, как перейти в ИБ с любым бэкграундом.

Что такое информационная безопасность?

Информационная безопасность (ИБ, англ. Information Security, сокр. InfoSec) – набор методов для защиты данных от несанкционированного доступа или изменений как при хранении, так и при передаче с одного компьютера на другой.

На практике внимание специалистов ИБ акцентируется на одном из компонентов безопасности данных: конфиденциальность, целостность и доступность. Так, при хранении медицинской информации мы сосредотачиваемся на конфиденциальности. Для финансовых транзакций важнее всего целостность – ни один перевод денег не должен неправильно зачисляться или списываться. Чтобы гарантировать доступность информации в пресс-релизах, правительства обеспечивают минимальное время простоя своих веб-сайтов и систем.

Обзор специальностей в сфере информационной безопасности

Развитие технологий порождает проблемы безопасности. По оценкам Cybersecurity Ventures, к 2021 г. в отрасли ИБ будет открыто 3.5 млн вакансий, а глобальные расходы на цифровую безопасность превысят 1 трлн долл. По данным MIT Technology Review, из кандидатов, претендующих на соответствующие должности, менее четверти имеют нужную квалификацию.

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

Технические специальности ИБ

  • Специалист по проникновению (пентестер) отвечает за проверку приложений, систем и сетей на наличие уязвимостей.
  • Специалист по инфраструктурной безопасности отвечает за анализ требований к безопасности систем организации, а также за установку и настройку решений безопасности в корпоративных сетях.
  • Инженер по безопасности приложений обеспечивает безопасность на всех этапах жизненного цикла разработки программного обеспечения, включая этапы проектирования, кодирования и разработки, тестирования и развертывания.
  • Инженер по облачной безопасности занимается вопросами безопасности цифровых облачных платформ.
  • Реверс-инженер анализирует вредоносные программы, чтобы понять, как они работают, как их можно идентифицировать и устранить.
  • Направление комплаенс (англ. compliance, досл. пер. согласие, соответствие) обеспечивает безопасность работы внутренних компьютерных систем, серверов и сетевых подключений.
  • DevSecOps занимается интеграцией тестирования безопасности в конвейеры непрерывной интеграции и непрерывной доставки.
  • CISO (Chief Information Security Officer) – руководитель, ответственный за безопасность информации и данных организации.
  • Аудитор ИБ проводит проверку компьютерных систем, которые могут подвергаться атаке.
  • Специалист по форензике (компьютерной криминалистике) собирает улики с компьютеров, сетей и других устройств хранения данных для расследования случаев цифровых преступлений.
  • Технический пресейл по ИБ объединяет технические знания и навыки продаж, чтобы предоставлять консультации текущим и потенциальным клиентам.
  • Технический писатель по ИБ сотрудничает с аналитиками реагирования на инциденты, с инженерами и специалистами по анализу угроз для документирования технической информации.

Менеджерские специальности ИБ

  • Администратор средств защиты информации помогает организации внедрять лучшие решения в соответствии с их потребностями в безопасности.
  • Менеджеры по безопасности управляют политикой ИБ организации.
  • Директор по информационной безопасности (англ. chief information security officer) – менеджер исполнительного уровня, который направляет стратегию, деятельность и бюджет для защиты информационных активов предприятия.

Навыки для работы

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

Технический бэкграунд специалиста по информационной безопасности

Для начала надо освоить основы Computer Science.

Программирование, языки разметки, кодирование

  • В зависимости от специфики направления: будет полезно, как знание низкоуровневых языков C++ и Java, так и скриптовых Python, PHP, JavaScript для обеспечения безопасности веб-приложений.
  • Ассемблер и дизассемблеры.
  • Навыки регулярных выражений (regex).
  • Linux / MAC bash-скрипты.

Операционные системы и управление базами данных

  • Операционные системы Windows, UNIX и Linux.
  • Управлением базами данных SQL- и NoSQL-типа.

Cети

  • Конфигурация системы и сети.
  • TCP/IP, компьютерные сети, маршрутизация и коммутация.
  • Сетевые протоколы и инструменты анализа пакетов.
  • Брандмауэр, протоколы обнаружения и предотвращения вторжений.
  • Знание PacketShaper, балансировщика нагрузки и прокси.
  • Виртуальные частные сети.

Нетехнический бэкграунд

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

  • CompTIA IT Fundamentals certification представляет собой введение в базовые знания и навыки в области ИТ, которые помогают профессионалам решить, подходит ли им карьера в сфере ИТ. Это также первая сертификация, которую вам нужно пройти для вашей карьеры в области безопасности, если вы не имеете технического образования. Сертификат Security + откроет двери в индустрию информационной безопасности.
<a href="https://cyberexperts.com/how-to-transition-to-a-cyber-security-career-at-any-age/" target="_blank" rel="noopener noreferrer nofollow">Порядок получения сертификатов для работы в ИБ.</a>
Порядок получения сертификатов для работы в ИБ.

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

Книги

  • Security in Computing (англ.) – обзор компьютерной безопасности с акцентом на сетях, операционных системах и программных устройствах.
  • Crafting the InfoSec Playbook (англ.) – как разрабатывать собственные средства обнаружения инцидентов и аналитики угроз.
  • Gray Hat Hacking (англ.) – тактики реверс-инжиниринга, этичные способы взлома серверов и браузеров, деловая сторона этичного взлома.
  • Информационная безопасность. Защита и нападение подробное объяснение проведения аудитов безопасности и тестов на проникновение для различных систем, а также современных решений для маршрутизации, беспроводной связи и других направлений развития ИБ.

Сертификаты

Для тех, у кого нет опыта или знаний в области ИТ, получение серии сертификатов от CompTIA подготовит к первой работе в ИБ. А для тех, кто уже в сфере IT, сертификация – верный способ перейти в сферу кибербезопасности,продвинуться по карьерной лестнице или даже перейти в международную компанию в области ИБ.

  • Этичный хакер (CEH) показывает, что вы понимаете и знаете, как искать слабые места и уязвимости в целевых системах, и используете те же знания и инструменты, что и злонамеренный хакер, но законным образом для оценки состояния безопасности целевой системы. Эта сертификация наиболее выгодна для тех, кто уже работает в сфере программирования и хочет получить работу в сфере безопасности..
  • Сертифицированный менеджер по информационной безопасности (CISM) позволяет управлять и разрабатывать системы информационной безопасности в приложениях корпоративного уровня или передовых методах обеспечения безопасности.
  • Сертифицированный специалист по информационной безопасности (CISSP) показывает, что вы обладаете знаниями и техническими навыками, необходимыми для разработки, руководства и управления стандартами, политиками и процедурами безопасности.

Поиск по HeadHunter показывает, что на рынке есть около 90 открытых вакансий, которые требуют или предпочитают кандидатов, имеющих сертификат CISSP. Заработная плата в среднем составляет 190 000 руб.

Oнлайн-платформы

  • Cybrary (англ.) – бесплатный видеокурс по всем наиболее распространенным сертификатам кибербезопасности.
  • Open Web Application Security Project (OWASP) (англ.) – бесплатный курс о безопасности веб-приложений.
  • OpenSecurityTraining.info (англ.) – материалы для самоподготовки по модулям CISSP.

Блоги

Карьерные перспективы

Аналитические прогнозы показывают, что с 2018 по 2028 гг. спрос на работников информационной безопасности вырастет на 32% (для доступа к отчету может потребоваться VPN). Особенно высоким будет спрос на аналитиков по информационной безопасности, поскольку такие аналитики будут необходимы для создания инновационных решений, предотвращающих кражу информации и другие проблемы компьютерных сетей.

По данным SecurityLab.ru, средние зарплаты (в тыс. руб. в Москве, в других регионах на 20-30% ниже) в ИБ следующие:

  • Программист с опытом 2-3 года (в зависимости от конкретного проекта и языка программирования): системный инженер, веб-разработчик, и сетевой инженер – 120-150;
  • Архитектор по безопасности / инженер по безопасности – 150-250;
  • Аудитор ИБ – 230-270;
  • Менеджеры по безопасности – 200-250;
  • CISO (Chief Information Security Officer) – 300-500;

Заключение

Информационная безопасность – одна из самых востребованных отраслей ИТ, в будущем она будет становиться еще более популярной. Изучив основы ИТ и безопасности, вы сможете получить первую работу в ИБ менее чем за год.

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

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

15
Авг
2020

☕ Программирование на Java с нуля: инструкция к профессии Java-разработчика

Java – один из самых востребованных языков в мире. Узнайте о навыках, необходимых, чтобы стать Java-разработчиком, и о ресурсах, где можно эти навыки получить.

О языке Java

Java – это объектно-ориентированный язык программирования, созданный Sun Microsystems в 1995 г. По данным опросов Stack Overflow и TIOBE Index, Java находится в пятерке самых популярных и востребованных языков программирования, а по данным отраслевого аналитика IDC Аль Хильва язык используют 90% компаний списка Fortune 500.

Таблица рейтинга языков программирования <a href="https://www.tiobe.com/tiobe-index/" target="_blank" rel="noopener noreferrer nofollow">TIOBE 2020 г.</a>
Таблица рейтинга языков программирования TIOBE 2020 г.

Почему Java так популярен?

Java-приложения транслируются в байт-код, выполняемый виртуальной машиной (Java Virtual Machine, сокр. JVM). Свои версии JVM написаны почти под все популярные устройства. Поэтому программы на Java – кроссплатформенные. Это выгодно для компаний: чем больше устройств, на которых доступна программа, тем больше число пользователей, которые могут ее установить. За счет кроссплатформенности также снижается стоимость разработки. Да ещё и сам язык является строго-типизированным – проще писать безопасные и стабильные приложения.

Маркет для Java-разработчиков

Области применения Java включают:

  • мобильную разработку (Java – один из официальных языков Android-приложений);
  • веб-приложения;
  • десктопное ПО;
  • внутренние электронные системы финансового сектора;
  • большие данные.

Согласно исследованию BMC Mainframe, все большее количество организаций используют Java для модернизации устаревшего программного обеспечения с целью удовлетворения текущих потребностей бизнеса. Неудивительно, что на рынке труда ожидается увеличение спроса на Java-разработчиков до 19% к 2024 г.

Образовательные ресурсы для самостоятельного изучения Java

Руководства и документация

  • Java World (англ.) коллекция руководств по различным темам Java с иллюстрациями.
  • Oracle Java Doc (англ.) – для профи, документация является полным справочником по Java.

Курсы по Java на образовательных платформах

  • Java Programming Basics (англ.) – базовые основы синтаксиса Java.
  • Java.Базовый курс для тех, кто начинает изучать Java. От компиляции и запуска Java-программ до классов стандартной библиотеки.
  • Object Oriented Programming in Java (англ.) – если вы знакомы с синтаксисом и основными концепциями программирования Java, переменными, типами данных, функциями и циклами.
  • Learn Java (англ.) – курс познакомит с фундаментальными концепциями программирования на Java, включая объектно-ориентированное программирование (ООП). В процессе обучения вы создадите семь практических Java-проектов.
  • JavaRushсайт для изучения Java с практическими занятиями по отдельным темам. Есть три уровня подписки, включая бесплатный базовый уровень с ограниченным доступом к урокам.

Книги для Java-разработчика

  • Head First Java (в русском переводе «Изучаем Java») – охватывает основные знания о классах Java, объектах, потоках, коллекциях и языковых функциях, таких как Generics, Enums и переменные аргументы. Есть несколько расширенных разделов по Swing, сетям и Java IO. Хотя книга не выходит за рамки Java 5.0, она по-прежнему остается одним из лучших пособий для начинающих.
  • Thinking in Java (Философия Java) – обучение на примерах. Содержит 500 работающих программ Java. Начинается с объектно-ориентированного введения для новичков и экспертов, затем следуют шаблоны проектирования, введение в XML, параллелизм и т. д.
  • Effective Java (Java. Эффективное программирование) – сборник из 78 правил и практических советов по методам работы с Java. Темы разделены на 11 разделов. Книга не для чтения от корки до корки, но послужит справочником при решении технических вопросов создания программ.

Сообщества

  • LearnJava Reddit – подраздел Java Learning на Reddit.
  • Stackoverflow.com – миллионы вопросов и ответов, не будет лишним время от времени просматривать, чтобы узнать новые концепции или помочь другим.
  • Oracle Java Community – главный форум англоязычного сообщества.
  • Библиотека джависта – материалы по всему, что нужно разработчику на Java.
  • JUG.ru – российское сообщество Java-разработчиков.

Что еще необходимо знать, чтобы стать Java-разработчиком

Помимо изучения самого языка Java, нужно приобрести еще несколько навыков.

Git. Самая популярная система контроля версий, позволяющая вести историю развития проекта с возможностью доступа к каждой сохраненной версии. Мой любимый курс для GIT – это бесплатный курс GIT от Udacity.

Алгоритмы и структуры данных – фундамент любой программы. Программисты используют структуры данных для их хранения и организации, а также алгоритмы для управления данными в этих структурах. Чем лучше вы понимаете структуры данных и алгоритмы, тем эффективнее ваши Java-программы. На Coursera есть отличный бесплатный курс по алгоритмам и структурам данных на английском языке, на русском можно пройти аналогичный курс на Stepik.

Объектно-ориентированное программирование (ООП) фокусируется на объектах, которыми разработчики хотят манипулировать, а не на логике, необходимой для манипулирования ими. Такой подход к программированию хорошо подходит для больших, сложных программ, которые активно обновляются или обслуживаются. ООП упрощает разработку и сопровождение программного обеспечения, предоставляя такие концепции, как объект, класс, наследование, полиморфизм, абстракция и инкапсуляция. Чтобы понять, как работает ООП, пройдите курс Object Oriented Programming in Java на Coursera.

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

Java Enterprise Edition (Java EE) – платформа, предоставляющая среду для разработки и запуска крупномасштабных, многоуровневых, масштабируемых, надежных и безопасных сетевых приложений. Основная цель – упростить решение распространенных задач разработки с помощью API. Например, Servlet используется для расширения возможностей серверов, на которых размещены приложения, с использованием модели программирования запрос-ответ.

Шаблоны проектирования (design patterns). Если вы пишете приложение Java с нуля, то большую часть времени вы пишете объектно-ориентированный код, а шаблоны (паттерны) проектирования – это испытанные и проверенные решения распространенных проблем. Чтобы стать высококвалифицированным Java-разработчиком, не сосредотачивайтесь только на коде, вникайте в то, как работают шаблоны. На Coursera есть хороший курс о шаблонах проектирования.

Модульное (Unit) тестирование используется для тестирования отдельных компонентов кода для обеспечения того, что компонент (модуль) соответствует задуманному дизайну и функциональности. Модульные тесты пишутся и выполняются разработчиками. В большинстве случаев используется среда тестирования (JUnit или TestNG) – сервер, позволяющий запускать определенные вами тестовые примеры.

Другие навыки, необходимые для работы. Рынок вакансий таков, что одного языка может не хватить для всех требований, предъявляемых к должности. Всё зависит от выбранного направления. Чтобы повысить шансы приема на работу в области веб-разработки, нужны хотя бы следующие навыки:

  • HTML, CSS;
  • JavaScript, jQuery;
  • XML и веб-сервисы;
  • Веб-фреймворк Spring;
  • основы работы с базами данных SQL.

Чтобы продемонстрировать навыки и привлечь внимание рекрутеров, у вас должно быть сильное портфолио. Возьмите за основу идеи из онлайн-курсов, книг, Reddit и разработайте проекты, которые продемонстрируют ваш опыт.

Карьерные перспективы Java-программистов

По данным Habr.com первой половины 2020 г., средняя зарплата Java-разработчика в России составляет 130 тыс. руб.

Существует условное разделение Java-разработчиков по уровню профессиональных знаний, индивидуальных способностей и ранее реализованных проектов:

  • начинающие разработчики – средняя зарплата в России до 52 тыс. рублей;
  • младшие (junior) – от 52 до 130 тыс.;
  • средние (middle) – от 130 тыс. до 220 тыс.;
  • старшие (senior) – от 220 тыс. руб. и выше.

В целом, проанализировав Java-вакансии на HeadHunter, можно увидеть, что зарплаты в Москве примерно в 1.3 раза выше средней по стране, в то время как в других регионах этот коэффициент составляет от 0.7 до 1.2.

Заключение

Java-разработчики – одни из самых востребованных разработчиков на текущем рынке как зарубежом, так и в России. Но недостаточно изучить синтаксис языка Java, чтобы стать Java-разработчиком. Вы также должны разбираться в технологиях, которые востребованы в выбранной вами сфере.

Требуемые навыки могут показаться сложными для того, чтобы выучить самостоятельно. Поэтому мы советуем рассмотреть курс по проектно-ориентированному обучению Java-разработки от GeekBrains. Курс охватывает все важные темы Java и необходимые дополнительные инструменты. Овладев нужными навыками через разработку собственных проектов при поддержке инструкторов, вы будете готовы выйти на рынок Java-разработчиков и получить первую работу.

28
Июл
2020

📊 Системный и бизнес-аналитик: пошаговый гайд к востребованной профессии

Пару слов о еще одном безумном разделении во вселенной IT-специальностей: системный и бизнес-аналитик. Рассказываем, чем занимаются представители профессии, сколько зарабатывают и как войти в эту сферу деятельности.

Системный аналитик и бизнес-аналитик: кто это такие и каков спрос?

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

К примеру, нужно разобраться в абстрактной проблеме клиента: «низкая прибыль». Для начала аналитик изучает бизнес-процессы компании. Анализ позволяет сформировать финансовую цель – сэкономить X рублей в год, которые сейчас расходуются на содержание офиса. Вариант решения: внедрение нового бизнес-процесса – перевода сотрудников на удаленную работу.

Системный аналитик занимается анализом требований, сформированных бизнес-аналитиком, написанием технических документов, спецификации требований к ПО, описанием его функций и возможностей, вариантов использования, действий пользователя, при которых тот достигает необходимого результата. То есть системный аналитик – это специалист, который выступает промежуточным звеном между бизнесом и разработкой.

Сколько зарабатывают системные и бизнес-аналитики?
Судя по вакансиям на hh.ru, младший бизнес-аналитик в Москве получает в среднем от 80 до 150 тыс. рублей в месяц, зарплата ведущего бизнес-аналитика составляет не менее 150 тыс. рублей. В регионах цифры варьируются от 40 до 80 тыс. рублей для младшего специалиста и от 80 тыс. рублей для ведущего. Системный аналитик в Москве получает в среднем от 100 до 250 тыс. рублей в месяц. В регионах – от 60 до 120 тыс. рублей. Большинство работодателей ожидают увидеть от 1 до 3 лет практического опыта в сфере.

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

Этапы работы и инструменты системного и бизнес-аналитика

Работу бизнес-аналитика можно представить в виде следующей последовательности:

  • выявление потребностей бизнеса заказчика;
  • выбор концепции решения задачи. На этом этапе используют Excel для аналитики, Power BI и Tableau для визуализации данных в виде графиков и таблиц;
  • составление бизнес-требований. Основной инструмент – Confluence – используется для постановки задач и составления документации, например, функциональных требований;
  • взаимодействие с командой разработчиков и заказчиком. Основные инструменты – Power Point и Draw.io. С помощью последнего создаются схемы связей между структурами баз данных или программы.

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

  • анализ бизнес-требований;
  • формирование функциональных требований к ПО. Здесь используются CASE-инструменты проектирования программного обеспечения: средства анализа, создания структуры программы, документирования требований, генерации заготовок кода;
  • анализ подходящих существующих решений и технологий, которые будут использоваться при разработке. На этом этапе системный аналитик обычно анализирует GitHub, определяя, какие из готовых решений можно повторно использовать;
  • описание архитектуры ПО и баз данных. Из инструментов используются UML для создания схем связей между структурами баз данных или программы, SQL – язык для создания, модификации и управления данными в реляционных базах данных, CASE-средства проектирования;
  • постановка задачи на создание ПО с помощью Jira и Confluence – командные средства для постановки задач и составления документации.

Какими качествами должны обладать бизнес-аналитик и системный аналитик

Ключевые навыки бизнес-аналитика

  • техническое или экономическое высшее образование, лучше – оба;
  • знание нотаций моделирования бизнес-процессов: EPC, BPMN, UML;
  • навыки сбора бизнес-требований и разработки технического задания;
  • знание процесса управления изменениями (ITSM) и принципов ITIL;
  • знание бизнес-процессов производственных, коммерческих, финансовых и торговых компаний;
  • также необходимо хорошо ориентироваться в IT и уметь применять маркетинговые исследования.

Основные навыки системного аналитика

  • высшее техническое образование;
  • знание нотаций IDEF0IDEF1XEPC;
  • умение составлять SQL-запросы;
  • знание основ программирования, проектирования, разработки ПО;
  • знание основ теории алгоритмов, теории баз данных, теории систем и системного анализа, а также безопасности информации;
  • общие знания в области менеджмента и экономики.

Что делать, если нет необходимых навыков

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

Используйте открытые источники о бизнес-анализе

Существует множество профильных ресурсов, с помощью которых можно освоить основные понятия:

Обратите внимание на обучающие материалы на сайте Tableau, а также экспертную информацию по использованию Power BI.

Проходите обучающие курсы по системному и бизнес-анализу

Из основных англоязычных курсов можно выделить:

Читайте книги по бизнес-анализу

Одна из ключевых книг в профессии аналитика – BABOK (аббревиатура от «A Guide to the Business Analysis Body of Knowledge»), в ней описаны главные положения бизнес-анализа.

Для начального и базового уровня стоит выбрать следующие книги:

Как сформировать первое портфолио и найти работу

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

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

Лучшим решением станет программа обучения, во время прохождения которой опытные преподаватели расскажут, как все работает в теории и на практике. Важно выбрать курс, создатели которого заинтересованы в вашей будущей работе в сфере и имеют успешные кейсы трудоустройства своих учеников в известных компаниях. Одной из таких программ обучения является «Факультет системной и бизнес-аналитики» от онлайн-университета GeekBrains, гарантирующего трудоустройство и год практического опыта в резюме по завершении программы.

22
Июл
2020

Python таблица умножения

на курсе изучения Python попалось задание составить таблицу умножения в таком виде:

Я написал код, но не могу понять почему результат построения таблицы выводит не в таком формате, а немного смещенным вниз.
Вот сама задача:
Напишите прогр…

11
Июл
2020

Инициализировать 2d массив с [длинна == кол-ву уникальных символов в строке] [счеткчик уникальных символов ]

Уже который день бьюсь над данным заданием , но ввиду отсуствия квалификации не могу сформировать верное решение данного задания.Регулярные вырадения юзать нельзя. Мой код:
public static int[][] charEntries(String string) {
int coun…

23
Июн
2020

⚛️ 12 бесплатных ресурсов для изучения React

React – одна из самых популярных JavaScript-библиотек для разработки пользовательских интерфейсов. В этой статье вы найдете подборку бесплатных ресурсов о React: открытые курсы, подкасты, ёмкие конспекты и плейлисты YouTube.

19
Июн
2020

Проверить ЛКГ на случайность: оценить период, мощность, разброс, проверить Хи-квадрат критерий

ЗАДАЧА:
Подобрать параметры и реализовать линейный конгруэнтный генератор для модуля m=2^32 (4294967296). Проверить получаемую последовательность на случайность: оценить период, мощность, разброс, проверить Хи-квадрат критерий
Собственно в…

15
Июн
2020

Не поздно ли начинать входить в IT-сферу в таком возрасте? [закрыт]

У меня сложилось нехорошая жизненная ситуация: я не смог отучиться ни на мехмате МГУ из-за слабой нервной системы (математика там совсем другая, нежели геометрия и алгебра в школе, более теоретическая и абстрактная, вообщем, не воспринял е…

14
Июн
2020

Всем привет. Задание из книги сделать ‘Адресную книги с все возможным функционалом’ программа работает. что вы бы изменили в программе? [закрыт]

import pickle

class Addressbook():

adress = {
‘АНДРЕЙ’: ‘+79856549865451’, #Изначальный словарь
‘КСЮША’: ‘+78529951874635’
}
ad = ‘addressbook.data’
with open(ad, ‘wb’) as f:
pickle.dump(a…

14
Июн
2020

Всем привет. Задание из книги сделать ‘Адресную книги с все возможным функционалом’ программа работает. что вы бы изменили в программе? [закрыт]

import pickle

class Addressbook():

adress = {
‘АНДРЕЙ’: ‘+79856549865451’, #Изначальный словарь
‘КСЮША’: ‘+78529951874635’
}
ad = ‘addressbook.data’
with open(ad, ‘wb’) as f:
pickle.dump(a…

24
Май
2020

Интернет-магазин на чистом PHP для портфолио PHP-разработчика

Решил написать интернет-магазин в качестве проекта для портфолио. Так как, по сути, это моя первая крупная программа (не только на PHP), хотел бы обсудить её реализацию. Узнать, что об этом думают разбирающиеся в сфере люди

В базе данных …

24
Май
2020

Интернет-магазин на чистом PHP для портфолио PHP-разработчика

Решил написать интернет-магазин в качестве проекта для портфолио. Так как, по сути, это моя первая крупная программа (не только на PHP), хотел бы обсудить её реализацию. Узнать, что об этом думают разбирающиеся в сфере люди

В базе данных …

19
Май
2020

Интерактивный курс Python для новичков в программировании

При изучении программирования нет ничего важнее практики. Рассматриваем онлайн-сервис для новичков в Python, обучение в котором построено через написание программ – letpy.

697b5bd2-21ca-408c-b749-beea63dfb848Продолжаем искать и тестировать качественные курсы и уроки по IT-специальностям. Тема востребованная, поэтому мы решили время от времени делиться рекомендациями.

3743ed03-422e-4c6f-969e-60dbd8539e80Сегодня в фокусе сервис letpy. Это русскоязычный онлайн-курс по языку Python для новичков в программировании. Короткие уроки чередуются с заданиями, для прохождения которых нужно писать программы. В курс встроена браузерная среда разработки, так что уроки и программы можно проходить на любом компьютере, телефоне или планшете.

Рис. 1. Рабочая среда letpy в ночном режиме
Рис. 1. Рабочая среда letpy в ночном режиме

fbe745ce-ef37-49c7-ac76-bb7e5ebaea11Среда разработки (Рис. 1) выглядит интуитивно понятно и включает в себя:

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

02674756-d22e-43a6-ac10-74762e2edf05Видимость элементов можно настраивать, имеются две цветовые темы, можно варьировать размер шрифта. У файлов работает автосохранение.

Проверка корректности программ

59c57dfe-5c27-4207-9bd8-797042a0d19fПравильность программ автоматически проверяется ботом, который дополняет стандартный вывод Python и старается помочь в случае ошибки (Рис. 2).

Рис. 2. Скриншот с подсказкой (для сравнения показано оформление в «дневном» режиме)
Рис. 2. Скриншот с подсказкой (для сравнения показано оформление в «дневном» режиме)

7a47cdc5-b898-4951-8cec-efdc4ae27257Если задание выполнено неверно, под ним отображается красная карточка (Рис. 3).

Рис. 3. Элемент интерфейса в случае неправильного выполнения задания
Рис. 3. Элемент интерфейса в случае неправильного выполнения задания

e7500fef-2a4b-4450-8d06-fbf598cd4297Текст на таких карточках дополняет рекомендации бота. После исправления кода красная карточка меняется на зелёную – можно перейти к следующему шагу (Рис. 4).

Рис. 4. Изменение предыдущего элемента после коррекции кода
Рис. 4. Изменение предыдущего элемента после коррекции кода

22192329-08d8-484c-98d2-69af83349ae1У каждого урока есть чат – можно посмотреть, что думают по поводу урока другие ученики и обсудить варианты решения задачи. Блок с чатом расположен внизу под описанием урока или задания, так что он не мешает при прохождении.

26baa967-366a-441c-abf7-38ff96c6a0b5Если хочется поделиться собственным решением с другими студентами или не удается найти ошибку, код легко перенести в чат из рабочей области с помощью кнопки “Вставить код” (Рис. 5). То есть нет необходимости его специально форматировать. При этом сохранится оформление и отступы, а к коду можно добавить любой поясняющий текст или вопрос.

Рис. 5. Скриншот с примером автоматически перенесенного кода
Рис. 5. Скриншот с примером автоматически перенесенного кода

3e92aab4-c739-4b10-bfe1-be392e072901Если нужен дополнительный теоретический материал, есть справочник по следующим разделам:

О полной версии

ab1626f4-ca90-49a4-98d1-591e5e33c78eВсего в курсе 149 уроков, включая 58 практических заданий (полная программа курса). При прохождении 95% курса выдаётся сертификат. Текущий процент прохождения отображается в верхней панели.

Рис. 6. Скриншот с панелью прохождения курса
Рис. 6. Скриншот с панелью прохождения курса

b6c06ca3-ce8c-4ee4-b443-f1753eaefa43Любая платформа для своего развития требуют какого-то источника дохода. Нам понравилось, что сервис не ставит деньги во главу угла – первые 45 уроков бесплатные – если не понравится подача, можно ограничиться этим.

7025eed8-a9a2-4c85-b750-afa17977df90На сайте есть пара иллюстраций, чему можно научиться в платной версии.

7fe7d52e-9acc-48dd-82e0-9fa430bb6db1Цена на полный курс – небольшая (в PRO-версии 2130 ₽, а при базовом доступе и того меньше – 1490 ₽), мы перешли на PRO-подписку, чтобы посмотреть на отличия от стандартной версии.

ea0a311e-ec47-4939-a2c1-fe567d786fe8Кроме того, что стали доступны остальные уроки, добавились и новые функции. В верхней панели появился значок учебного отладчика. В нем можно смотреть, как программа выполняется строка за строкой. Так проще определить, если что-то пошло не так, как ожидалось.

Рис. 7. Скриншот с отладчиком программ для пошагового выполнения кода
Рис. 7. Скриншот с отладчиком программ для пошагового выполнения кода

df98afb6-c043-46c7-9e4e-2cc7b7c79304Кроме того, появилась возможность делиться программами с другими людьми. Во вкладке профиля добавляется строчка Мои приложения.

Рис. 8. В меню профиля в полной версии появляется возможность делиться приложениями
Рис. 8. В меню профиля в полной версии появляется возможность делиться приложениями

678101ea-9fa0-490b-b9c5-51a92d36d62aПо этой вкладке можно добавлять py-файлы, описания программы и создать ссылку для публикации приложения. Эта ссылка будет общедоступной – легко делиться с друзьями и родными, чему ты научился. Так как в курсе описаны возможности Python в отрисовке, можно сделать такую страницу наглядной даже для тех, кто совсем не знаком с программированием.

3cd5b334-4b09-495e-b0bb-46001c3871bfРади фана в рамках одного из уроков мы написали простенькое приложение на Python, реализующее часы:

            import datetime, canvas

def clock(time, x=175, y=175, r=170):
    canvas.clear()
    canvas.circle(x, y, r)
    
    # ставим риски для часов и минут
    for i in range(0, 390, 30):
        canvas.radius_line(x, y, i, 170)
    for j in range(0, 366, 6):
        canvas.radius_line(x, y, j, 160)
    
    # накрываем кругом, по которому будут двигаться стрелки
    canvas.fill_style('White')
    canvas.fill_circle(x, y, 150)
    
    # часовая стрелка
    canvas.line_width(6)
    canvas.set_color('Blue')
    canvas.radius_line(x, y, time.hour * 30, 100)
    
    # минутная стрелка
    canvas.line_width(2)
    canvas.radius_line(x, y, time.minute * 6, 120)
    
    # секундная стрелка
    canvas.line_width(1)
    canvas.radius_line(x, y, time.second * 6, 160)
    
    # крепление стрелок
    canvas.fill_style('Blue')
    canvas.fill_circle(x, y, 7)
    
    canvas.draw()

while True:
    time = datetime.datetime.now()
    clock(time)

        

a1bf67a1-70c3-4b69-ac0e-2499323d7e3dДалее мы воспользовались интерфейсом для публикации приложений, показанным на Рис. 9.

Рис. 9. Интерфейс для публикации собственных приложений
Рис. 9. Интерфейс для публикации собственных приложений

c16769b3-af9c-4a81-8a44-e43dd46f7364В итоге получилось приложение, расположенное по адресу https://letpy.com/apps/proglib-clock/ – можете сами посмотреть, что получилось.

Рис. 10. Скриншот веб-страницы написанного нами приложения на Python
Рис. 10. Скриншот веб-страницы написанного нами приложения на Python

0a810c30-9061-40a3-95a6-1c8ef6267d27На сайте также есть пример интерактивного демо-приложения, в котором объекты появляются по клику.

Заключение

76706631-8a1e-40c1-8700-4762a05f939bРезюмируем, что нам понравилось в letpy:

  • Значительная часть уроков и все справочные материалы находятся в свободном доступе – можно без переплат оценить, нравится ли подход.
  • Система имеет ясный и отзывчивый интерфейс, на платформе легко заниматься. Если в коде есть ошибки, сервис выдает необходимые подсказки.
  • letpy умеет выполнять внеучебные файлы с кодом Python – удобно использовать среду для практических экспериментов в программировании. При этом ничего не нужно дополнительно устанавливать. А получившимися программами в расширенной версии можно делиться в виде веб-приложений.
  • По нашим наблюдениям в чате регулярно отвечает разработчик сайта и другие ученики – если что-то непонятно, помогает не только бот, но и живые люди.

93610435-0903-4b61-a06a-c89cc5e97240Из недостатков, которые мы для себя отметили – отсутствие описания классов и основ ООП. Впрочем, эти темы нельзя считать первоочередными для новичков, так что для такого базового курса это некритично.

973993ba-1b10-4a55-a743-dfdd10be6edcВ любом случае, программа рассчитана так, чтобы, окончив курс, человек имел представление о программировании на Python и мог продолжить обучение самостоятельно.

d40bfe01-ba9a-4072-bb40-a53051feb15cУ letpy есть YouTube-канал, паблик вк и страница facebook. Судя по их активности, проект развивается и совершенствуется. Напишите в комментариях, если вы учились или учитесь на letpy – как вам ресурс?

07
Май
2020

Как с помощью Python скачать все бесплатные учебники Springer Nature

Короткий туториал о том, как скачать 390 учебников с помощью 10 строчек кода на Python 📕🐍. Список книг содержит издания по математике, статистике, электронике и Computer Science.

Издательская компания Springer Nature выложила в открытый доступ более 500 учебников. При помощи скрипта, написанного на Python, мы скачаем все англоязычные книги, указанные в соответствующей таблице Excel.

1. Установка библиотек

Воспользуемся мощью библиотек Python:

  • pandas – обработка и анализ данных.
  • wget – инструмент загрузки файлов.
  • requests – отправка HTTP-запросов.
  • xlrd – обработка экселевских файлов (используется библиотекой pandas).
            pip3 install xlrd pandas wget requests
        

2. Изучение списка учебников

Скачаем таблицу Free+English+textbooks.xlsx, содержащую 390 учебников (все списки и актуальные ссылки находятся здесь). Создадим файл download_textbooks.py и папку download, в которую будут скачиваться файлы.

В таблице Excel нас интересуют столбцы Book Title (название учебника), Edition (год издания) и OpenURL для получения ссылки на скачивание (Рис. 1).

Рис. 1. Столбцы, участвующие в работе скрипта
Рис. 1. Столбцы, участвующие в работе скрипта

Добавим в download_textbooks.py следующие строчки:

Содержимое download_textbooks.py: импорт необходимых модулей, загрузка таблицы эксель в массив pandas и вывод первых десяти строчек массива
            import requests
import wget
import pandas as pd
df = pd.read_excel("Free+English+textbooks.xlsx")
print(df.head(10))

        

Запустим скрипт и получим первые десять строчек из списка (Рис. 2):

Рис. 2. Вывод первых десяти строчек массива pandas
Рис. 2. Вывод первых десяти строчек массива pandas

3. Выбор правильного URL

Напишем цикл для скачивания файлов:

Содержимое download_textbooks.py
            for index, row in df.iterrows():
    file_name = f"{row.loc['Book Title']}_{row.loc['Edition']}"
    url = f"{row.loc['OpenURL']}"
    wget.download(download_url, f"./download/{file_name}.pdf")

        

Неплохо, но работает некорректно: столбец OpenUrl содержит ссылку на страницу с описанием книги, а не на конечный PDF-файл. Рассмотрим подробнее устройство ссылок на сайте издательства:

  • Возьмем какую-нибудь ссылку из столбца OpenUrl, например, http://link.springer.com/openurl?genre=book&isbn=978-0-306-48048-5
  • Она перенаправляет на https://link.springer.com/book/10.1007%2Fb100747
  • На странице есть кнопка для скачивания PDF-файла https://link.springer.com/content/pdf/10.1007%2F0-387-36274-6.pdf

Таким образом, в цикл for нужно добавить 3 шага:

  • Открыть ссылку из столбца OpenURL.
  • Получить перенаправленный URL.
  • Переформатировать структуру строки URL в конечный URL для загрузки PDF-файла.

В итоге код выглядит следующим образом:

Содержимое download_textbooks.py
            import requests, wget
import pandas as pd
df = pd.read_excel("Free+English+textbooks.xlsx")
for index, row in df.iterrows():
        file_name = f"{row.loc['Book Title']}_{row.loc['Edition']}".replace('/','-').replace(':','-')
        url = f"{row.loc['OpenURL']}"
        r = requests.get(url)
        download_url = f"{r.url.replace('book','content/pdf')}.pdf"
        wget.download(download_url, f"./download/{file_name}.pdf")
        print(f"downloading {file_name}.pdf Complete ....")

        

4. Скачивание учебников

Запустим скрипт download_textbooks.py (Рис. 3), откроем папку download и проследим за результатом работы (Рис. 4).

Рис. 3. Пример работы скрипта python, скачивающий файлы из списка Excel
Рис. 3. Пример работы скрипта python, скачивающий файлы из списка Excel
Рис. 4. Скачанные учебники в папке с помощью pandas, wget, requests и xlrd
Рис. 4. Скачанные учебники в папке с помощью pandas, wget, requests и xlrd
***

Вот и всё. Мы освободились от ненужной рутины, автоматизировав процесс скачивания всего за 10 строчек кода, используя библиотеки pandas, wget, requests и xlrd. Приятного чтения!