Category: Обучение

03
Авг
2021

💻 13 редких и недооцененных языков программирования

На Java, Python, С/С++, JavaScript и PHP пишут миллионы разработчиков, но хорошему специалисту нужно постоянно изучать что-то новое. Разберемся с редкими, необычными и/или недооцененными языками программирования, на которые стоит обратить в…

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

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

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

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

Каковы достоинства и недостатки профессии?


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

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

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

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

31
Июл
2021

👨‍💼 Путь в профессию: интервью с разработчиком 1С

Кто такой разработчик 1С? Какие еще профессии есть в мире 1С? Как стать программистом 1С? Каковы достоинства и недостатки этой профессии? На эти и другие вопросы корреспонденту «Библиотеки программиста» ответил Александр Андреев.

Кто такой разработчик 1С?

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

Иногда программистов 1С называют “недопрограммистами”, потому что когда мы общаемся напрямую с заказчиком, то получаем пожелания и абстрактные идеи. Уже затем программист составляет задание и выполняет его. Иными словами, программист 1С – это такой материализатор желаний заказчика. Отсюда следует, что разработчику 1С обязательно нужно хорошо разбираться в предметной области. Например, если он ведёт разработку бухгалтерии, то нужно иметь бухгалтерское образование или хотя-бы закончить курсы бухгалтеров.

Если это производство, нужно знать его технологию и этапы, иметь представление о методах оптимизации. Также очень часто программисту 1С приходится решать задачи бизнеса. Формулировка задачи может звучать так: навести порядок на складе, привести к минимуму задержку ввода документов, увеличить производительность цеха и т.п. Сама среда программирования 1С довольно проста, да и код пишется на русском языке. Лично мое мнение таково: разработчик 1С – это НАДпрограммист.

Какие еще профессии есть в мире 1С?

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

Теперь рассмотрим, что делает каждый из них:

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

Почему в 1С код пишется на русском языке?

На момент создания программы 1С в первой половине 90-х годов существовало две точки зрения относительно дальнейшего развития софта. Первая: все программы, в том числе и пользовательский интерфейс, нужно создавать на английском языке. Вторая: все программы нужно создавать на русском языке. Время показало, что пользовательский интерфейс должен быть на русском, а сам код – на английском языке.

Кстати, код в 1С можно писать на двух языках – русском и английском.

В чем секрет популярности 1С?

Это вопрос на миллиард, ведь простого ответа на него не существует. Лично я думаю так: многие предприятия, фирмы и крупные компании используют именно программу 1С, потому что она максимально адаптирована под российские реалии, и на текущий момент продукты фирмы 1С – это большие возможности по развитию бизнеса и гибкая адаптация за счет большого количества разработчиков.

Как стать разработчиком?

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

Каковы достоинства и недостатки профессии?


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

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

С чего начался ваш путь в программисты?

Лет в семь я для себя решил, что моя жизнь будет связана с техникой. В моём детстве все читали книги, и я в том числе. Выбор определила “Энциклопедия профессора Фортрана” – качественно, доступно и интересно написанная книга для детей. Затем, лет в тринадцать – кружок информатики в школе и в доме школьника. Хочу поблагодарить учителей и передать им привет – Пронину Виктору Петровичу и Языковой Любови – здоровья им крепкого на долгие годы!

Как вы стали 1С-разработчиком?

В 2003 году я рассматривал для себя два варианта: 1С и сайты в соотношении 80/20. Честно признаюсь, создание сайтов мне не очень нравилось. К тому же мне было понятно, что именно нужно сделать, чтобы пойти работать программистом 1С. Я закончил курсы бухгалтеров, курсы по программированию 1С, и проштудировав объявления о вакансиях в местной газете, устроился работать в городское управление ЖКХ. Зарплата там, конечно, была минимальная.

Сколько нужно отработать, чтобы стать хорошим специалистом?


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

Как постоянно поддерживать уровень?

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

Как остаться хорошим специалистом после 10 лет в отрасли?

Чтобы быть постоянно в теме, необходимо каждый день начинать изучать все с нуля. За 10 лет отрасль IT изменится очень сильно, и если вы перестанете ежедневно развиваться, смотреть информацию про новинки и тренды, ваши знания устареют и станут никому не нужны. Если только вы не писали мировую платежную систему, и стоимость ее внедрения не превышает нескольких десятков миллиардов долларов. Я, например, начинал с 1С 7.7, затем начинал заново с 1С 8.0 и 8.1. Сейчас работаю с 8.3, а когда выйдет 8.4 или 8.5, все начнется сначала.

Многие говорят: «Вот как это ужасно, в IT все устаревает, а врачам ничего не нужно учить заново!»

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

Что самое интересное в вашей работе?

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

Сколько вы зарабатываете?

Такой нескромный, но всем очень интересный вопрос. Моя зарплата – это шестизначное число. В целом зарплата по отрасли составляет от 100 000 до 300 000 руб. 200 обычно получает ведущий программист или начальник отдела. Конечно на рынке есть как крупные фирмы, где зарплата больше 300, так и различные муниципальные организации, где порой платят меньше 20 000. Выбирает каждый для себя.

Вы давно работаете удалённо?

В целом три года. Я работал на удаленке с 2016 по 2018 год и снова вернулся в 2020-м. Только второй заход я уже планировал основательно: купил дом в пригороде и переехал из города в деревню. Завел собаку, котов. Даже пробовал кур держать, но с ними у меня как-то не заладилось. Зато с удаленной очень всё прекрасно!

Как стать разработчиком 1С с нуля?
Всё гениальное просто: новичкам я рекомендую закончить курсы по программированию, получить сертификат 1С, идти работать в фирму франчайзи.

Что вы посоветуете тем, кто уже отработал 3 – 5 лет?

А тут ещё проще: если на одном месте, то я рекомендую сменить работу или пойти на руководящую должность, попробовать начать обучать. У каждого свои амбиции: кому-то и двадцать лет в одной поре – норм, а кто-то через год уже устал, заскучал и хочет чего-нибудь остренького.

Что стоит изучать будущему разработчику 1С?

Дерзайте! Для начала необходимо закончить курсы по программированию, затем получить сертификат 1С:Специалист по платформе и по какой-либо конфигурации. Обычно начинают с Бухгалтерии или УНФ, также востребованы специалисты по 1С:ERP. На этапе, когда уже получил сертификат по платформе, стоит начинать искать работу. Лучше идти работать в фирму франчайзи – это очень хорошая прокачка уровня программиста. В среднем зарплата начинающего программиста – около 50 000 руб. В регионах чуть ниже, в столице чуть выше, но тенденция последних 5 лет показывает, что зарплаты в регионах и столице почти сравнялись.

Реклама
Если вы только собираетесь всерьёз осваивать профессию, обратите внимание на курс факультета 1С-разработки образовательной онлайн-платформы GeekBrains. Он подойдет не только новичкам, но и пользователям системы, а также начинающим программистам. За 8 месяцев практикующие профессионалы подготовят вас к экзаменам «1С: Профессионал» и «1С: Специалист», а опытные HR-менеджеры помогут вам составить резюме и найти первую работу. Успешно завершившие курс студенты добавят в портфолио несколько кейсов и получат диплом о профессиональной переподготовке.

30
Июл
2021

💻 «Тыжпрограммист, почини мне кофеварку!» – 13 мифов о программистах и программировании

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

30
Июл
2021

☕ Сначала попробуй: обзор условно-бесплатных курсов по Java

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

29
Июл
2021

👨‍🎓️ Есть ли смысл изучать C# в 2021 году: карьерные перспективы новичка

C# держится на высоких позициях в рейтингах языков программирования, а с появлением новой версии .NET 6 (preview) он выглядит еще более многообещающим. Попробуем разобраться, есть ли смысл новичку начинать с C# освоение профессии разработчика.

Немного о языке
С# (С Sharp – си шарп) разработали в Microsoft в конце девяностых – начале двухтысячных годов. Он относится к семейству си-подобных и очень похож на С++ или Java. Этот язык изначально ориентирован на объектно-ориентированное программирование, довольно прост в изучении и пригоден для разработки мобильных, настольных и серверных приложений на платформе .NET Framework. В 2014 году C# стал открытым, а также появились его кроссплатформенные реализации и бесплатная версия Visual Studio.

Рейтинги
Согласно рейтингу TIOBE, С# входит в 5 самых популярных языков и удерживает эту позицию уже несколько лет. Недавние изменения и выход .NET 6 в ноябре 2021 года выглядят весьма многообещающе для общества разработки на С#.

Ниже предоставлены рейтинги языка С# (их актуальное состояние можно увидеть на сайте проекта).

Рейтинг С# на TIOBE
Рейтинг С# на TIOBE
Прогресс языка в 2002 – 2020 гг.
Прогресс языка в 2002 – 2020 гг.

Если верить официальному сайту DevBlogs от Microsoft, в .NET 6 LTS (long time support) появятся следующие «фишки»:

  • .NET Multi-Platform App UI,
  • Blazor Desktop Apps,
  • Fast loop (быстрая компиляция).
.NET multi-platform
.NET multi-platform
Blazor Desktop App
Blazor Desktop App

Где применяется C#

Разработка игр

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

Связка Unity + C# популярна в небольших компаниях и среди инди-разработчики из-за отличной функциональности, дружелюбного сообщества и возможности использования для написания любых 2D- и 3D-игр.

Игра на DirectX
Игра на DirectX
Игра Rust написана на движке Unity
Игра Rust написана на движке Unity

Веб-разработка (Backend и Frontend)

Во времена появления С# и платформы .NET библиотеки еще не были развиты, но даже тогда платформа ASP.NET имела большую аудиторию. Сейчас Microsoft поменяла почти все и добавила кроссплатформенность, а скорость работы приложения выросла многократно. Современный свободно распространяемый фреймворк ASP.NET Core позволяет запускать сервисы на Windows, Linux и macOS. На нем можно разрабатывать бэкенд-приложения, REST API и приложения MVC.

Если этого мало, то после выхода фреймворка Blazor на С# можно писать и фронтенд, отбросив JavaScript. Зная HTML, CSS и C#, вы создадите полноценные фуллстек-проекты и даже настольные приложения.

Примеры работ:

Машинное обучение (ML)

Фреймворк для машинного обучения ML.NET поддерживается корпорацией Microsoft.

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

<a href="https://code-ai.mk/face-mask-detection-using-ml-net-model-builder-and-c/" target="_blank" rel="noopener noreferrer nofollow"> Проект</a> по распознаванию маски на лице на .NET.
Проект по распознаванию маски на лице на .NET.

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

Для программиста на С# в столице России на hh.ru открыты более 1600 вакансий.

Зарплата программиста на с#
Зарплата программиста на с#

Для начинающего разработчика уровня junior (без опыта) есть 160 вакансий, а заработная плата начинается с 60 тыс. рублей. Специалисты с опытом работы от 1 года могут зарабатывать около 100 тыс. рублей.

Средняя заработная плата
Средняя заработная плата
По статистике можно увидеть, что программист на С# может зарабатывать в среднем 100 тыс. рублей. С годами опыта растет и заработная плата.

Если верить hh.ru, разработчики с опытом более трех лет могут претендовать на 300 тыс. рублей в месяц и даже на более высокую заработную плату, и это не учитывая различных бонусов (не только денежных) от компании.

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

***

Для людей с опытом программирования на си-подобных языках изучение C# проблем не доставит, но и для новичков этот язык проще чем классический C++ или Java.

Чтобы стать профессионалом, потребуется время, настойчивость и внимание. Если вы только собираетесь освоить популярный язык программирования, стоит обратить внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. За 13 месяцев вы сможете изучить язык программирования и платформу .NET с нуля, а также разберетесь с особенностями создания веб-приложений и корпоративных приложений. Преподают на курсах ведущие разработчики российских технологических компаний, под руководством которых вы не только получите теоретические знания, но и сможете добавить в портфолио 4 реализованных проекта. Успешно завершившие курс студенты получат дипломы о профессиональной подготовке и помощь в трудоустройстве.

28
Июл
2021

🎮 Не только программирование: какие специалисты нужны в геймдеве?

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

Вкратце о геймдеве и требованиях

Геймдев – сокращение от Game Development (разработка игр). Для этого требуется минимум 3 специалиста: художник, программист и геймдизайнер:

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

Игровые программисты

От других программистов создатели игр не отличаются. Им потребуется знание нужного стека технологий, включая игровой движок, и соответствие конкретным требованиям компании. Один из популярнейших языков для игровых программистов – С++. Пригодятся Python и Lua для написания внутриигровых скриптов.

В больших проектах программисты делятся по узким специализациям:

  • Ведущий программист – лидер команды разработчиков, управляющий процессом написания кода.
  • Программист игровой механики занимается (простите за тавтологию) реализацией всех возможностей игровых механик. Например, разрушаемостью игрового мира и использованием различных обломков в качестве оружия.
  • Программист графического движка занимается отображением визуальных эффектов.
  • Программист ИИ работает с виртуальными ботами. Он создаёт им “мозги” в виде триггеров, условий, моделей поведения и прочим.
  • Программист UI создаёт интерфейс пользователя для взаимодействия с игровым миром.
  • Программист инструментов создаёт внутренние продукты, облегчающие дальнейшую разработку игры.
  • Сетевой программист актуален только для игр с поддержкой сетевого взаимодействия. Именно этот человек отвечает за пинг, обновления, мультиплеер и прочее.
Для начала нужен план и концепция игры, и тут в дело вступает геймдизайнер.

Геймдизайнеры

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

Естественно, одно из главнейших требований к геймдизайнеры – любовь к играм. Как можно придумать хорошую игру, если её создатель ни разу сам не играл?

Ближайший аналог геймдизайнера или даже его прообраз – игровой мастер настольных игр.

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

  • Ведущий геймдизайнер создаёт ключевые особенности игры, распределяет задачи внутри команды.
  • Дизайнер игровой механики сотрудничает с программистом игровой механики. Именно он придумывает возможности внутри мира. Желательно знание основ программирования, чтобы понимать в общих чертах реализацию механик.
  • Дизайнер уровней продумывает и создаёт уровни/локации/карты игрового мира.
  • Дизайнер интерфейса прорабатывает визуальное удобство использования программы.
  • Сценарист – создатель всего игрового мира. Этот человек продумывает историю игрового мира, прописывает диалоги, задания. Он же создаёт смысловое наполнение пути главного героя (путевые вехи, развилки сюжета). Потребуется художественное мастерство, владение языком и некоторым талантом.
У нас есть концепция мира и его смысл, а также прописаны механики. Однако вместо игры по-прежнему чёрный экран. Нужен кто-то, способный запустить “Большой Взрыв”.

Художники


Эти ребята превращают игровой мир в то, что мы видим. Вроде бы задачи несложные – нарисовать пару “задников”, пририсовать модельки и в продакшн. На самом деле всё серьёзнее. Во-первых, потребуется талант в рисовании. Во-вторых, способность к обучению: придётся поглощать знания о техниках рисования, какие-то концепты и прочее. В-третьих, терпение и ментальная выносливость. Специализации у художников следующие:

  • Арт-директор – глава художественного отдела. Следит за выполнением задач, раздаёт их и поддерживает коллег.
  • 2D-художник – собирательное название художников в графических редакторах (Photoshop и т.д.). Они создают текстуры, эскизы, концепт-арты, заставки и прочее. При желании тут можно выделить и более мелкие специализации:
  1. Концепт-художник отвечает за прообраз будущей игры. Предварительные наброски, те же концепт-арты и прочее.
  2. Художник по текстурам создаёт текстуры для дальнейшего использования по материалам от концепт-художника.
  3. Художник бэкграундов рисует задний фон игры.
  • 3D-художник создаёт объёмные объекты игры. Зачастую он использует материалы 2D-художников. Тоже включает 3 мини-специализации:
  1. Моделер персонажей отвечает за вид игровых персонажей и всю их визуализацию: одежду, оружие, доспехи и прочее. В зависимости от предпочтений, могут делиться на “органиков” (занимаются живыми существами) и “неоргаников” (создают различную технику и прочее).
  2. Моделер окружения создаёт локации игрового мира.
  3. Аниматор приводит все нарисованные и созданные объекты в движение. Как персонажи двигаются, дерутся, как разрушается мир – это вотчина аниматора.
Баги убьют всё удовольствие, даже если игра спланирована и нарисована идеально. Тут в дело вступают тестеры.

Тестировщики


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

Помимо креативности от этих специалистов требуется знание методик тестирования, умение документировать все баги и терпение.

Картинка есть, баги выловлены, мир красивый и логичный, но всё равно чего-то не хватает.

Звукоинженеры, композиторы, актеры


Точно. Для создания и углубления атмосферы потребуется звуковое сопровождение. Звуки играют важную психологическую роль и увеличивают вовлечённость пользователя: боевые мелодии включают внимание игрока и делают события более насыщенными, а расслабляющие звуки позволят ему отдохнуть и полюбоваться видами игрового мира. Выделим специализации и здесь:

  • Композитор создаёт основную музыку игры. Мелодии главного меню, боя, отдыха, музыку во время основных событий.
  • Звукоинженер с помощью готовых образцов звука создаёт нужные варианты.
  • Актёры озвучивания – эти люди отдают свои голоса персонажам. Для них очень важна артистичность.
Игра полностью готова, теперь ее нужно продать.

Маркетологи

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

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

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

Администраторы серверов

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

Комьюнити-менеджеры

У каждой онлайн-игры, если она пришлась кому-то по сердцу, создаётся своё сообщество. Для них существуют форумы, сервера Discord и прочие способы обратной связи. С игроками от лица компании работают комьюнити-менеджеры. Они собирают фидбек и передают его в соответствующий отдел. Предложения по игре, указания на различные недочёты и прочее. Требуется и стрессоустойчивость, и умение работать с людьми.

Заключение

Создание завершённой и проработанной игры – трудоёмкий процесс, даже если нужно разработать простой кликер. Не всегда знаменитые игры пишутся целой командой, иногда для этого достаточно одного человека (Тайнен Сильвестр и его RimWorld), но так бывает довольно редко.

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

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

Если вы только начинаете путь в профессии, а к программированию или менеджменту душа не лежит, попробуйте начать с рисования. Навыки художника в той или иной степени требуются представителям почти любой артистической профессии в сфере геймдева. Стоит обратить внимание на курс «2D-художник игр» образовательной онлайн-платформы GeekBrains. Занимаясь всего два раза в неделю за 10 месяцев вы освоите востребованную творческую специальность и сможете начать карьеру. Во время обучения с вами будут работать опытные преподаватели-практики и личный наставник. Успешно завершившие курс студенты добавят шесть проектов в портфолио, а также получат диплом о профессиональной переподготовке и помощь с трудоустройством.

26
Июл
2021

👨‍💼 Молодая профессия: все о бизнес-аналитике

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

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

Потребность в автоматизации процессов бизнеса появилась в конце прошлого века. Первыми острую нехватку специалистов в этой области ощутили фирмы США и Западной Европы.

Чем занимается бизнес-аналитик?

Бизнес-аналитик занимается внутренней структурой компании, определяя проблемы и предлагая возможные пути их решения. Большую часть рабочего времени он проводит за изучением используемой модели ведения бизнеса, находит недочеты и вносит коррективы. Процесс преобразования старой модели ведения бизнеса в новую, более эффективную, получило название реинжиниринг. Термин используется с 1993 года, ввели его в обиход американцы М. Хаммер и Дж. Чампи.

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

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

Обязанности аналитика тесно связаны с направлением работы компании. Выделим его основные задачи, не зависящие от сферы деятельности:

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

Главные навыки бизнес-аналитика

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

Личные качества, на которые обращают внимание работодатели:

  • аналитический склад ума;
  • открытость в общении;
  • внимание к деталям;
  • креативное мышление;
  • умение быстро понять суть проблемы/задачи.

Требования к профессиональным качествам тоже немаленькие:

  • четкое и точное определение стратегии бизнеса;
  • владение рядом компьютерных программ (язык программирования UML обязателен);
  • системный подход к решению задач;
  • работа с большими объемами информации;
  • умение вести деловые переговоры.
У кандидата на должность должен быть диплом о законченном высшем образовании по специальности, знание систем CRM, опыт работы с ТЗ и регламентами.

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

Кроме перечисленных качеств, важны и знания в узком профилировании:

  • Работа в ARIS, Rational Rose, BPWin и прочих программных продуктах на уровне уверенного пользователя (программы Microsoft аналитик тем более должен знать назубок).
  • Основы программирования, проектирования и документирования ПО;
  • Знание алгоритмов, известных баз данных и системного анализа;
  • Владение информацией об управлении, экономике и бухучете.

Обязательно ли IT-образование?

Если прочесть приведенный выше список необходимых бизнес-аналитику навыков, может сложиться впечатление, что IT-образование – необходимость. Это далеко не так.

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

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

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

Стоит упомянуть и об уровнях (грейдах) бизнес-аналитика:

  • Junior, он же джун – начальный грейд, не являющийся самостоятельным сотрудником. Ему поручаются простые задачи, кроме этого он обучается у более высоких грейдов.
  • Middle – выполняет стандартную работу в проекте. Это уже самостоятельный сотрудник, не нуждающийся в поддержке
  • Senior – занимается сложными задачами без шаблонов. Обучает мидлов и джунов.
  • Team Lead, он же эксперт – его преимущество в большом опыте. Он контролирует работу всех грейдов и руководит командой бизнес-аналитиков.

Востребованность профессии

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

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

Столицы и крупные города в России предлагают множество вакансий, однако устроиться неопытному специалисту будет непросто. Требуется знание от одного до трех иностранных языков для общения с зарубежными клиентами и минимальный опыт работы от 5 лет. Если говорить о заработной плате специалиста, ее размер зависит от стажа, области работы предприятия и квалификации специалиста.

Средний оклад бизнес-аналитика в крупных городах РФ составляет 120 тысяч рублей.

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

Успешный старт


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

  • Если вы работаете в сфере IT, можно записаться на программу внутренней переподготовки (есть почти в каждой крупной компании) и совместить профессии – не бросать должность тестировщика/дизайнера/разработчика и помогать проектному бизнес-аналитику. Если вы станете джуном, участвуйте в инициативах разработки (как правило бесплатно, но опыт получаемый на такой практике – бесценен).
  • Если вы не связаны с IT-сферой, стоит обратить внимание на трейни-программы – школы при компаниях. При выпуске с отличием есть возможность получить должность бизнес-аналитика на грейде джуна. Хорошим опытом может послужить и работа с ментором. Его лучше искать в компании, где вы работаете, через интернет, мессенджеры или через знакомых.
Главным пособием по бизнес-аналитике является общепризнанное руководство Body of Knowledge® (BABOK® Guide), но представленных в стандарте теоретических знаний не хватит для практической работы.

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

Если вы серьезно решили стать бизнес-аналитиком, стоит задуматься о специальном образовании.

Где учиться?


Можно получить образование в вузах:

  • Сибирский федеральный университет. Системный анализ и управление: вариант программы бакалавриата. Стоимость обучения: 170 622 рублей (есть бюджет).
  • Белорусско-Российский университет. Управление электронным бизнесом: вариант программы бакалавриата. Стоимость обучения: неизвестно (бюджета нет).
  • Институт отраслевого менеджмента. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 300 000 рублей (есть бюджет).
  • Высшая школа бизнеса. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 570 000 рублей (есть бюджет).
  • Санкт-Петербургский филиал Национального исследовательского университета «Высшая школа экономики». Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 320 000 рублей (есть бюджет).
  • Нижегородский филиал Национального исследовательского университета «Высшая школа экономики». Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 190 000 рублей (есть бюджет).
  • Северо-Западный институт управления – филиал Российской академии народного хозяйства и государственной службы при Президенте Российской Федерации. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 205 000 рублей (есть бюджет).
  • Санкт-Петербургский политехнический университет Петра Великого. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 210 000 рублей (есть бюджет).
  • Московский технический университет связи и информатики. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 203 400 рублей (есть бюджет).
  • МИРЭА – Российский технологический университет. Профессия Бизнес-аналитик (специалист по бизнес-процессам). Стоимость обучения: 240 000 рублей (есть бюджет).

Еще один вариант – онлайн-курсы

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

  • Курс «Системный аналитик с нуля» от Skillbox. Подойдет начинающим аналитикам, project- и product-менеджерам. Обучение проходит в форме видеолекций. Есть домашние задания и постоянная связь с личным ментором. После обучения выдается диплом.
  • Профессия «Бизнес-аналитик» от ProductStar. Подходит как новичкам, так и финансовым аналитикам. Обучение в дистанционном формате дает возможность сочетать учебу с работой. По окончанию обучения выдается диплом, а портфолио пополняется проектными работами.
  • Курс «Аналитика для руководителей и владельцев бизнеса» от SkillFactory. Курс подходит начинающим бизнес-аналитикам и предпринимателям. При обучении дается полный набор практик и теоретических знаний по управлению предприятием и моделям бизнеса. По окончанию курса выдается сертификат.
  • Курс «Бизнес-аналитик» от Нетология. Курс подходит начинающим бизнес-аналитикам. Обучение проходит по согласованному с учеником графике. В программу курса включен анализ рынка, корректировка процессов в бизнесе, структурирование данных. По окончанию курса выдается сертификат установленного образца.
  • Факультет системной и бизнес-аналитики от GeekBrains. Курс подойдет новичкам, бизнес-аналитикам, продакт-менеджерам, руководителям проектов и владельцам бизнеса. Обучение проходит в формате онлайн-лекций. Даются домашние задания и есть обратная связь с ментором. Чтобы завершить обучение, нужно защитить дипломный проект по анализу реального бизнеса. Гарантируется помощь в трудоустройстве.

Будущее профессии

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

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

***

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

25
Июл
2021

📊 Как стать дата-инженером в 2021 году?

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

Мир науки о данных быстро меняется, и это открыло новые возможности и вакансии в области инженерии данных. Давно хотели разобраться, как стать дата-инженером, но не знали с чего начать? Тогда эта статья для вас.

Типичные обязанности дата-инженера:

  • Исследовательский анализ данных.
  • Извлечение данных из массивов разнородной информации.
  • Оценка и очистка наборов данных.
  • Подготовка и написание логики ETL (процессов обработки/преобразования информации).
  • Построение конвейеров данных для распределения по нескольким серверам.
  • Сбор и запрос данных.
  • Объединение данных.
  • Создание хранилищ данных.
  • Оптимизация доставки данных.
  • Нормализация и моделирование данных.
  • Перепроектирование инфраструктуры данных для масштабируемости.
  • Использование инструментов для обслуживания данных.
  • Помощь специалистам по исследованию данных в оптимизации продуктов.

Главные технические компетенции дата-инженера:

  • Языки программирования Python, C++, Java и Scala.
  • Знание алгоритмов и структур данных.
  • Системы управления базами данных (SQL и NoSQL).
  • Инфраструктура – облачные вычисления.
  • Потоковая передача данных – Apache Beam.

Как стать успешным дата-инженером в 2021 году?


Изучите языки программирования

Требования индустрии вращаются вокруг Python и Scala. Чтобы создавать качественное ПО, вам потребуется подтянуть навыки владения этими языками и получить практический опыт работы с инструментами для инженерии данных. Также желательно владеть такими языками, как Java и C++.

Освойте SQL

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


Изучите облачные технологии

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

Придется также изучить инструменты, вроде Kafka или Hadoop для планирования рабочих процессов в экосистеме больших данных.

Soft skills
Чтобы добиться успеха, технических навыков недостаточно. Вы также должны иметь навыки общения, презентации и командной работы.

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

Обзор ресурсов для изучения

Алгоритмы и структуры данных

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

Python

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

SQL

Облачные технологии

  • Hadoop. Система для обработки больших объемов данных. Курс посвящен методам обработки больших объемов данных с помощью системы Hadoop. Завершив обучение, вы получите базовые знания об основных способах хранения и методов обработки больших объемов данных, а также поймете принципы работы распределенных систем в контексте фреймворка Hadoop.
Из более продвинутых курсов хочется отметить англоязычный GCP: Complete Google Data Engineer and Cloud Architect Guide на Udemy, где 28 часов контента дополняются 25 статьями и 48 ресурсами для скачивания. Программа обучения дает полное представление о дисциплине.

Итог

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

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

***

Если вы только начинаете путь в профессии, обратите внимание на курс Data Engineering образовательной онлайн-платформы GeekBrains. Занятия под руководством опытных наставников и поддержка опытных HR помогут вам продвинуться по карьерной лестнице. Вы научитесь собирать и обрабатывать данные, проектировать хранилища и работать с инфраструктурой. Специализированный опыт для этого не потребуется: программа предполагает освоение профессиональных навыков с нуля.

23
Июл
2021

🕸 16 шагов к профессии: дорожная карта фронтенд-разработчика в 2021 году

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

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

Обязанности фронтенд-разработчика

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

  • кросс-платформенная и адаптивная верстка сайтов;
  • работа со стеком Redux/React;
  • сопровождение и доработка проектов;
  • написание скриптов и создание реактивных компонентов;
  • поддержка проектов ES5;
  • развитие и поддержка архитектуры, основанной на виджетах и компонентах;
  • выполнение рефакторинга проектов;
  • разработка новых npm-модулей в существующих приложениях;
  • автоматизация тестирования и устранение багов, иногда с фрейморком JUnit;
  • разработка сайтов на Angular;
  • сопровождение и разработка сервисов, направленных на распознавание лиц и обработку видео;
  • разработка компонетов на Vue.
Развитие профессии привело к увеличению требований к начинающим фронтенд-разработчикам. На 2021 год Roadmap состоит из многих пунктов, разобраться с которыми поможет подборка на GitHub. Мы попробуем свести данные из разных источников воедино и на их основе составим свой план.

1. Изучите HTML, JavaScript и CSS


Веб-разработчикам никуда не деться от изучения трех «китов»: разметки (HTML), каскадной таблицы стилей (CSS) и языка программирования JavaScript. С этим помогут материалы на CodeAcademy и YouTube: HTML Full Course, CSS Tutorial и CSS Crash Course for Absolute Beginners, Object-oriented Programming in JavaScript.

2. Изучите несколько фреймворков

Для работы потребуется использовать один/несколько фреймворков: ReactJS, AngularJS, VueJS, Bootstrap. Разобраться с React JS поможет ролик freeCodeCamp на YouTube, там же можно найти курс по VeuJS.

3. Освойте работу с генераторами статических сайтов

Примеры статических сайтов: визитки, лендинги, справочники, каталоги продукции. Упростить их создание помогут: Next (React-based), Nuxt (Vue-based), Gatsby (React-based), Gridsome (Vue-based).

4. Научитесь работать с JAMstack

Расшифровка акронима JAM: JavaScript, API and Markup. Архитектура JAMStack основана на клиентском JavaScript, повторно используемых API и предварительно созданной разметке. Что такое JAMStack и как с ним работать можно почитать здесь и на snipcard. Дополнительно в стеке используют CDN и Git.

5. Освойте Progressive web apps (PWA)

Знания PWA (англ. progressive web app или мобильное приложение в браузере) потребуются опытным разработчикам. Прогрессивные приложения направлены на надежность и быстроту работы с технологиями Push Notifications, Service Worker, Web App manifest, App shell, HTTPS.

6. Освойте GraphQL


Этот язык запросов и манипулирования данными для API (а также среда выполнения запросов) является основным для каждого фронтендера, который не хочет работать за еду. Обрабатывающий запросы сервер GraphQL находится между клиентом и источниками данных.

На платформе Apollo реализация GraphQL направлена на транспортировку данных из облачного хранилища к пользовательскому приложению, а поклонники фреймворка Relay Modern использует GraphQL с приложениями data-driven.

Ресурсы для изучения GraphQL:

Дополнительные материалы

7. Научитесь выполнять тестирование и чистить код

Веб-программисту на коммерческом или корпоративном проекте стоит уметь выполнять:

  • Unit tests – проверку отдельных компонентов или функций.
  • Integration tests – тестирование корректности взаимодействия компонентов.
  • End-to-end test – тестирование пользовательских потоков в браузере.
  • Другие виды тестирование, которые нужны для старших разработчиков: manual testing, snapshot testing и т.д.
Front-end developer должен писать чистый код: читаемый, без дубликатов, с минимальным использованием методов, классов и функций.

Основы чистого кода:

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

8. Запаситесь книгами по основам фронтенда

Дэвид Флэнаган, «JavaScript. Подробное руководство».


Кайл Симпсон: cерия книг «Вы не знаете Javascript».


Натан Розенталс, «Изучаем TypeScript 3».


Доминик Майерс, «Front-End Developer».


Карлос Сантана Рольдан, «React Cookbook: Create Dynamic Web Apps with React».


Крис Акино и Тодд Ганди, «Front-End Web Development: The Big Nerd Ranch Guide».


Джон Дакетт, «HTML & CSS: Design and Build Web Sites».


9. Просмотрите туториалы на YouTube

10. Изучите работу с командной строкой

Если вы используете Windows, не стоит полагаться только на графический интерфейс. Чтобы упростить работу с файлами и каталогами (найти, открыть, закрыть, удалить и пр.), а также использовать неочевидные возможности ОС, потребуется знание базовых команд. Кроме старого доброго CMD рекомендуется освоить более прогрессивный PowerShell, а использующим один из дистрибутивов GNU/Linux разработчикам стоит изучить bash.

11. Изучите систему контроля версий Git и хостинг GitHub


Онлайн-хостинг для контроля версий GitHub позволяет людям по всему миру совместно работать над проектами. К тому же в репозиториях можно найти много бесплатных решений для собственных разработок.

Команды Git, которые стоит изучить
git config, git init, git commit, git clone, git status, git add, git pull, git push, git branch.

12. Следите за событиями кибербезопасности

Открытый проект OWASP собирает статистику, необходимую для обеспечения безопасности веб-приложения. Для изучения основ необходимо понимать отличия HTTPS и HTTP, какова политика защиты контента (CSP) и принципы работы с CORS.

13. Практикуйтесь как можно больше

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

14. Постоянно повышайте уровень знаний

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

Перечень недостающих знаний можно проверить по чек-листам:

15. Нарабатывайте софт-скилы

Продвижение по карьере, особенно в сторону менеджмента, предполагает развитие софт-скилов. Вот их примерный список:

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

17. Пройдите курсы

Если вы знаете английский, можно пройти курс w3wschhools по HTML, CSS и JavaScript, или по программе Мичиганского университета заняться на coursera веб-дизайном и программированием. Популярная международная платформа предлагает множество аналогичных позиций, включая курс Duke university по основам JavaScript, HTML и CSS.

***

Если вас больше привлекает обучение на русском языке, обратите внимание на факультет frontend-разработки GeekBrains. В программе российской образовательной онлайн-платформы есть все необходимое:

  • Изучение основ программирования.
  • Базовый курс Git.
  • Верстка (HTML/CSS), в том числе библиотека Bootstrap и препроцессоры SASS/LESS.
  • Принципы ООП, JavaScript, работа с Veu.js, API Webpack, Parcel, с различным окружением, подключение библиотек.
  • Работа с ReactJS и база backend-разработки с применением ECMAScript 6, Flux, Node.js, REST API.
  • Разработка проекта с нуля до релиза. Разъяснение методологий Kanban, Scrum, Agile, принципов Countinuous Delivery и Continuous Integration.
  • Дополнительно: подготовка к техническому собеседованию, базы данных, как заняться фрилансом и искать работу.
  • Практика: создание посадочных страниц, верстка страниц и сайтов, учитывая валидность, кросплатформенность и адаптивную верстку, создание приложения для учета расходов.
21
Июл
2021

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

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

20
Июл
2021

Подскажите что почитать/посмотреть про многонитевость Java

Во время изучения Java дошёл до темы про многонитевость, но где это используется (да и вообще что это такое) нормальных примеров и описаний не встретил…
Понял только что многонитевость может работать с одноядерными процессорами используя…

20
Июл
2021

🏃 43 ресурса для изучения Golang в 2021 году: сайты, блоги, сообщества, курсы, каналы и книги

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

19
Июл
2021

🎮 2D или 3D: какое направление выбрать начинающему разработчику игр на Unity?

В этой статье мы рассмотрим основные отличия между 2D- и 3D-разработкой на Unity и разберемся, что лучше подойдет для начинающего осваиваться в сфере GameDev программиста.

Разработка игр – это увлекательное и перспективное направление для программистов. За последние несколько лет игровая индустрия стремительно развивалась, и теперь кажется, будто все делают видеоигры. Если у вас есть интересная идея или вы решили выбрать GameDev в качестве основной профессии, почему бы не попробовать? Игровой движок Unity может быть неплохим началом. Unity отлично подходят для новичков, потому что это одна из лучших платформ для создания игр небольшого и среднего размера.

Дополнительные материалы
Если вы еще не определились с выбором движка и инструментов для разработки игр, рекомендуем ознакомиться со статьей «GameDev: с чего начать разработку игр?». Какие навыки нужны, чтобы стать профессиональным Unity-разработчиком, вы можете узнать из гайда «Разработка игр на Unity: с нуля до профессионала».

Основные отличия 2D- и 3D-разработки

2D или двумерная графика работает с изображением, сформированным в двух измерениях – высоте и ширине. Объектом 3D является изображение, сформированное в трех измерениях: ширине, высоте и глубине. 3D позволяет оценить размер объекта и расстояние до него.

Движение


Игры 2D выполняются в плоском линейном движении. Даже если ваш персонаж бежит в разных направлениях, в конце концов вы ведете его к конечной точке, как в Марио. Развитие персонажа происходит со сменой всего экрана.


В отличие от 2D-игр, трехмерные игры имеют более глубокую графику, позволяющую персонажу перемещаться свободно и без ограничений, как в GTA: Vice City.

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

Производство

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

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

Стили 2D- и 3D-игр в Unity

Создавая новый проект в Unity, вы можете начать его в режиме 2D или 3D. На практике в одной игре могут сочетаться элементы как 2D, так и 3D.

Полное 3D


В 3D-играх используется трехмерная геометрия, при этом материалы и текстуры визуализируются на поверхности объектов. Камера может свободно перемещаться внутри сцены. 3D-игры визуализируют сцену с использованием перспективы, поэтому по мере приближения к камере объекты кажутся крупнее.

Дополнительные материалы
Начать разбираться в 3D-моделировании и Unity 3D поможет статья из «Библиотеки программиста».

Ортографическое 3D

3D-игры с использованием ортогонального вида
3D-игры с использованием ортогонального вида

Иногда в играх используется трехмерная геометрия, но вместо перспективы – ортогональная камера. Такой прием также называют «2.5D».

Полный 2D

Во многих 2D-играх применяются графика, называемая спрайтами. Они отображаются на экране в виде плоских изображений, а камера всегда расположена в одной и той же плоскости.

Дополнительные материалы
Как сделать собственный уровень при помощи готового пакета 2D Game Kit вы можете прочитать в статье «Основы разработки игр на Unity».

2D-геймплей с 3D-графикой


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

2D-геймплей и графика с эффектом параллакса


Это еще один популярный стиль 2D-игр, использующий 2D-графику, но с перспективой камеры для получения эффекта параллакса прокрутки. Это сцена в стиле «картонный театр», где вся графика плоская, но расположена на разном расстоянии от камеры.

Разница между 2D и 3D в Unity

В Unity разница между 2D и 3D обусловлена типом проекта, а также зависит от объектов и камеры, которую вы используете для создания игры.

Ортогональная камера не имеет эффекта перспективы. Куб, рассматриваемый ортогональной камерой с одной стороны, будет выглядеть квадратом.

Для 2D- и 3D-проектов в Unity используется два основных вида объектов:

  • спрайты – простые 2D-объекты,
  • сетки, которые состоят из вершины и нескольких массивов треугольников.

Оба типа объектов можно использовать как в 2D-, так и в 3D-проектах, но физика их взаимодействия будет отличаться. Нельзя с помощью CircleCollider2D заставить мяч отскочить от коробки с помощью BoxCollider.

Плюсы и минусы подходов

В целом плюсы и минусы 2D- и 3D-разработки игр на Unity непосредственно проистекают из специфики направления:

  • 3D-игры более зрелищны, лучше погружают в игровую реальность и предоставляют разработчику целый спектр дополнительных возможностей. В то же время они более трудозатратны, требуют больше внимания к физике и игровым объектам, а также больше вычислительных мощностей для рендеринга и сборки игры.
  • Игровые 3D-проекты обычно делают большие команды разработчиков, что ускоряет процесс, но требует дополнительных усилий на координацию действий. 3D-направление более перспективно для профессионала в сфере GameDev.
  • С другой стороны, 2D-игры дают возможность сосредоточиться на художественных деталях, истории и геймплее, не тратя много усилий на работу с трехмерной физикой и моделями.

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

***

Если вы хотите погрузиться в профессию всерьез, стоит обратить внимание на «Курс по разработке компьютерных игр на Unity» образовательной онлайн-платформы GeekBrains. Он позволит вам с нуля освоить популярный движок и на практике реализовать 2D- и 3D-игры разных жанров для ПК и смартфонов.

18
Июл
2021

🗣 «Я программист от макушки до кончиков пальцев», – интервью с Seniour Software Engineer C#

Покупали в интернете пиццу или суши? Скорее всего ресторан получил ваш заказ через WebOrders. Корреспондент «Библиотеки программиста» поговорил о применимости и перспективах C# с Владимиром Каратаевым, разработчиком сервиса.

Герой интервью пишет программное обеспечение для доставки продуктов из ресторанов и кафе под брендом r_keeper Delivery. Сервис WebOrders – одно из его детищ – предоставляет API для доступа к кассовым серверам и CRM ресторанов. С его помощью разработчики интернет-магазинов и мобильных приложений подключаются к множеству заведений по всей стране и получают доступ к экосистеме r_keeper.


Расскажите о своей работе? Много ли вам приходится кодить?

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

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

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

В итоге само кодирование занимает 60 – 70% времени.

Остальное время уходит на:

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

Почему вы выбрали именно это направление?

Я «заболел» программированием в 6-7 классе школы. После уроков я с такими же «страдальцами» бегал в класс информатики и просил учителя хотя бы посидеть за компьютером. Программировать нас тогда ещё только учили.

Именно поэтому у меня за плечами такой большой бэкграунд из вороха различных технологий я преподавал в университете информатику, программировал ERP на крупнейшем складе в России: в ваших авто наверняка есть детали с этого склада; разрабатывал САПР для электроэнергетики: почти все диспетчерские в России работают на этом ПО, так что свет в ваших домах это и мой труд тоже; сейчас разрабатываю микросервисы в сфере HoReCa ПО для ресторанов.

Я не выбирал этот путь осознанно, по каким-то критериям – он (путь) сам меня нашёл, целиком захватил и увлёк.

Долго ли пришлось идти к нынешнему уровню? Это было трудно?

В целом на уровень ведущего разработчика можно выйти за 3 – 5 лет работы программистом. При наличии соответствующих личных качеств можно стать тимлидом. И это трудно.

Например, строитель или токарь отработал свои 8 часов и далее занимается личной жизнью, о работе не думает. А тут порой решение задачи спать не дает: полночи мозг остыть не может, продолжая искать решения. И нередко добровольно, без всякой дополнительной оплаты, остаёшься поработать ещё, чтобы доделать задачу, пока мысль не ушла. Кроме того, отрасль так динамично меняется, что надо всегда дополнительно заниматься самообразованием. За свой счёт, в свободное от работы время.

Например, я прошёл такой путь: Assembler, программирование микроконтроллеров, Turbo pascal, Delphi, СУБД (Interbase, Firebird, MS SQLServer, Postgresql, Clickhouse, SQLite), Java, и, наконец, C#, Python.

И «бег» продолжается: сейчас присматриваюсь к Golang, Kotlin, Rust. Изучаю обработку больших данных, машинное обучение… много чего ещё. И всё для того, чтобы оставаться на современном уровне, поддерживая актуальность и ценность своих знаний и опыта на рынке труда.

Сложно ли учить С# с нуля новичку в программировании или программисту на другом языке?

Я изучал и использовал много различных языков программирования, так что могу сравнивать. У C# невысокий порог вхождения. Очень важный момент: у C# прекрасный инструментарий для разработки. Достаточно зайти на сайт, скачать и установить Visual Studio, и вы сразу всё получаете «из коробки», в готовом к работе виде.

Нажав пункт меню «новый проект» вы получите рабочую заготовку из простейшей программы “Hello word”. Запускайте, смотрите, как работает, модифицируйте и обучайтесь!

Ссылки на обучение приведены на приветственной странице в Visual Studio.

На первое время можно не задумываться про парадигмы программирования и обучаться, используя процедурный подход. Для сравнения, Python требует установить кроме самого языка отдельно среду разработки и настроить переменные окружения, а заготовки “Hello world” вам никто не предоставит.

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

С чего бы вы посоветовали начинать изучение C# новичку?

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

Эта подготовка даётся в ВУЗах. Раньше она была и в школе, но сейчас фактически убили предмет. Надежда только на ВУЗовскую подготовку.

Если вы прошли этот этап, то язык освоите быстро: через полгода уже можно идти в джуны на минимальные деньги. Но даже эта оплата будет больше, чем у продавца в магазине. До джуна можно быть практикантом. Их берут на минималку работать на несвязанную с программированием должность: подготовить отчет, собрать статистику, принести кофе (шутка).

Сколько занимает путь от практиканта до полноценного боевого джуна в вашей команде? А от джуна до мидла и сеньора?

Я не советую идти работать практикантом. Надо работать 8 часов, а когда ещё учится программированию? Лучше полгода подучиться и пойти работать джуном. Далее 2-3 года надо не просто работать джуном, а продолжать обучение, чтобы выйти на уровень мидла.

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

Итого, выход на верхнюю планку ценного специалиста у вас займет около 5 лет, не считая ВУЗовской подготовки.

Что самое важное и сложное в изучении С#?

Сам язык прост. Не тратьте много сил на изучении его языковых конструкций. Существенно сложнее освоить фреймворки, например, asp.net для разработки бэкендов интернет-сервисов. Тут уже надо знать интернет-технологии: что такое аутентификация, и чем она отличается от авторизации, http-протокол, почти всегда требуется работа с СУБД.

Это титанический объём информации, но без этих знаний сложно понять, почему asp.net устроен именно так и научиться эффективно его использовать.

Используйте последние версии фреймворков, библиотек и сред разработки и развертывания. Пока вы будете их изучать, они войдут в мэйнстрим. Обратите внимание, надо обязательно участвовать в проектах open source на GitHub. Это полезно во всех отношениях:

  • Поможете хорошему делу.
  • Найдёте интересную нишу для себя.
  • Научитесь работе с инструментарием разработки: трекер, система контроля версий, автотестирование, CI (continuous integration – постоянное, «на потоке» тестирование и деплой всего, что выкладывается).
  • Научитесь общаться в команде, освоите жаргон.
  • Поймёте и примете инженерную культуру разработки кода.
  • Почувствуете чем дышит отрасль, какие технологии являются мэйнстримовыми.
  • Наработаете себе базу проектов для резюме.

Что еще нужно знать джуну?

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

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

Также необходимо знать аппаратуру («железо»). Как устроен компьютер, какие блоки есть в CPU, что такое кэш, мат.сопроцессор, GPU, разрядность процессора и т.п. Вы же пишите программы для «железа», а не для некоей абстракции. Поэтому надо знать аппаратуру. Не детально, но иметь общее представление.

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

В части структур данных надо уметь работать с массивами, знать что такое списки и словари, их плюсы и минусы, древовидные структуры данных. Понимать, в каком случае что надо использовать. Из алгоритмов нужно знать: виды сортировки, поиск по массивам данных, работу с древовидными структурами данных (поиск, обход).

Как вы думаете, программисту нужно профильное высшее образование?

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

Куда податься свежеиспеченному джуну? В каких компаниях нужны С# разработчики?

Без опыта работы рассчитывать на приличные деньги не стоит. Надо браться за любую работу. C# любят на заводах и промышленных предприятиях за то, что на нём можно быстро делать пользовательские интерфейсы для ОС Windows. В игровой индустрии царит Unity, использующий C#. Виден явный тренд на более широкое использование C# в бэкендах интернет-сервисов, в банковском ПО. Хотя, конечно же, Java тут абсолютный лидер.

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

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

Каковы ваши планы на будущее?

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

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

Чтобы поддерживать уровень своей ценности для бизнеса, я постоянно наблюдаю, изучаю, пробую и внедряю новые технологии.

Сейчас я вижу, что актуальной остаётся работа с огромными объёмами данных (big data). Это связано с текущим трендом на IoT. IoT сейчас бурно, взрывообразно развивается. Посмотрите – все крупные экосистемы (Мэйл, Сбер, Яндекс, МТС, Google, Amazon, Xiaomi, Apple) имеют в своем составе технологии для работы с умными домами и датчиками. Есть голосовые помощники, которые позволяют управлять устройствами с помощью голоса.

Эти системы состоят из отдельных программных модулей: кирпичиков, которые удобно и быстро можно интегрировать с помощью Python. Он же используется в машинном обучении. Учите Python, как вспомогательный язык, служащий для высокоуровневой интеграции разнородных систем. Для написания облачных микросервисов я рекомендую изучать Java, C#; для пользовательских интерфейсов – HTML и Javascript. Такой стек инструментария разработчика сейчас актуален, и пока не видно тенденций на изменение такого расклада.

***
Реклама
Если вы только начинаете путь в профессии, обратите внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. Он охватывает все необходимые новичку темы от основ программирования и алгоритмов до публикации готового программного обеспечения. Изучается также работа с базами данных, бэкенд и фронтэнд, протоколы взаимодействия и даже основы архитектуры. Имеющие некоторый опыт программисты смогут попробовать новые фреймворки и современные технологии, а также расширить портфолио, познакомившись с основами разработки корпоративных приложений.

16
Июл
2021

🔀 Где изучать профессию архитектора информационных систем: книги, каналы YouTube и курсы

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

Архитектор информационных систем (ИС) не занимается разработкой, хотя умеет и знает как. Он занимается проектированием архитектуры программного обеспечения, видит проект целиком и исходя из этого создает задачи для разных групп специалистов.

Книги

Познакомиться с профессией ближе можно, прочитав несколько книг из нашего списка.

Роберт Мартин, «Чистая архитектура. Искусство разработки программного обеспечения»

Книга 2018 года.
Книга 2018 года.

Роберт Мартин объясняет решения, которые приведут к успеху, а также дает простые ответы на ключевые вопросы архитектуры и дизайна.

М.В. Рыбальченко, «Архитектура информационных систем»

Книга 2019 года.
Книга 2019 года.

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

Эндрю Таненбаум, Херберт Бос, «Современные операционные системы»

Книга 2019 года. 4-е издание.
Книга 2019 года. 4-е издание.

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

Евгений Штольц, «Из разработчика в архитекторы. Практический путь»

Книга 2020 года.
Книга 2020 года.

В этой книге главный архитектор Центра облачных компетенций Сбербанка делится своими знаниями и опытом.

Леве Джувел, «Совершенный софт»

Книга 2020 года.
Книга 2020 года.

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

Книги Леве обязательны для архитекторов, руководителей и ИТ-менеджеров на любом этапе карьеры.

Андрей Коротков «Как стать ИТ-архитектором?»

Книга 2011 года.
Книга 2011 года.

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

Каналы YouTube

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

Полное тонкостей и профессиональных секретов направление пока не выходит в массы, хотя нескольких ютуб-блогеров нам удалось найти:

  • SOER – рассказывает про архитектуру кода, архитектуру приложения и остальные уровни архитектуры, объясняет базовые моменты.
  • Senior Software Vlogger – канал о жизни в IT, интервью с программистами, лайфхаки, архитектура веб-сайтов и api-сервисов.
  • Курс лекций Александра Маятина – почувствуйте себя студентом времен пандемии, прослушав курс лекций доцента ИТМО для 3 курса.

Курсы

Если вам ближе живое общение с преподавателями и составленная профессионалами программа обучения, читайте нашу подборку курсов.

Курс OTUS «Микросервисная архитектура»

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

  • Инфраструктурные паттерны (микросервисная архитектура, основы работы с Kubernetes, мониторинг и алертинг).
  • Коммуникационные паттерны (асинхронный и синхронный API, паттерны поддержания консистентности данных, идемпотентность и коммутативность API в HTTP-очередях, тестирование микросервисов).
  • Распределенные системы (DDD и модульные монолиты, паттерны декомпозиции микросервисов).
  • Децентрализованные системы (распределенные транзакции, паттерны кэширования, шардирование, CP и AP системы).
  • Архитектор (роль архитектора, стоимость и артефакты архитектуры).
  • Итоговый проект (консультации и защита проектных работ).

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

Курс «Мастерская проектирования ИТ-решений» от IT Expert

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

Два варианта обучения: онлайн и очное в Москве.

7 тем:

  • Введение в методы проектирования информационных систем.
  • Описание постановки задач.
  • Прикладная архитектура.
  • Интеграция приложений.
  • Функциональная архитектура.
  • Процесс проектирования ИТ-решений.
  • Формат и содержание архитектурного описания.
  • Презентация архитектуры ИТ-решения.

При условии посещения не менее 50% занятий выдается удостоверение о повышении квалификации.

Курс «Архитектор ПО» от Skillbox

5 месяцев обучения на реальных кейсах для входа в профессию. Курс создан совместно с Альфа-банком и подойдет для разработчиков от уровня middle, системным аналитикам уровня senior и начинающим архитекторам ПО.

В программу входит 17 модулей (80 онлайн-уроков). По итогу выпускник будет уметь:

  • Планировать архитектуру ПО.
  • Декомпозировать систему.
  • Использовать шаблоны и фреймворки.
  • Проектировать API.
  • Учитывать вопросы безопасности.
  • Строить интеграцию между системами.

Выпускникам выдается диплом Skillbox, как подтверждение, а дипломную работу можно добавить в портфолио.

Современная научно-техническая академия проводит профессиональную переподготовку по программе «Архитектура программного обеспечения»

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

  • Методология IBM.
  • Унифицированный язык, моделирование UML, диаграммы UML.
  • Архитектурный анализ.
  • Этапы дизайнов.

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

Компания Luxoft training представляет целый спектр курсов для архитекторов:

  • Ключевые практики архитектора ПО.
  • Domen Driven Design.
  • Шаблоны проектирования приложений масштаба предприятия.
  • Аналитические шаблоны.
  • Микросервисная архитектура.
  • Архитектура облачных приложений.
  • Моделирование в ArchiMate.

Интенсивные программы от экспертов-практиков от 16 до 30 часов в центре, авторизованном IIBA. Можно выбирать и прокачивать отдельные темы. После завершения каждого курса выдается сертификат.

Сетевая академия Ланит проводит обучение по курсу «Мастерская проектирования ИТ-решений: AWS»

Очное обучение на 24 академических часа. На курсе выделены базовые техники проектирования ИТ-архитектуры, наиболее востребованные в современных реалиях. Преподается основанная на практическом опыте методика.

Курс ориентирован на системных архитекторов, руководителей, системных аналитиков и менеджеров ИТ-проектов.

«Архитектор информационных систем» от образовательной платформы GeekBrains

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

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

В программу входит:

  • Введение в разработку. Парадигмы программирования.
  • Базовые принципы проектирования, объектно-ориентированное проектирование ПО.
  • Проектирование прикладных приложений.
  • Проектирование сервис-ориентированных архитектур (SOA).
  • Развертывание, сопровождение, поддержка (CI/CD).

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

15
Июл
2021

🎮 27 актуальных ресурсов для игрового аналитика: сайты, курсы, книги, блоги и подкасты

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

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

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

Онлайн-курсы


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

  • Нетология. Российская площадка обещает курс, рассчитанный на 9 месяцев. За это время слушателей познакомят с навыками аналитика (психологией, метриками, игровой индустрией в целом, воронками и прочим), научат работать с SQL и использовать данные с помощью Python. Выпускникам выдадут дипломы и сертификаты. Есть помощь в трудоустройстве (подыщут вакансию и устроят собеседование) и 5 проектов в портфолио.
  • Skillbox. Ограничения по времени прохождения нет, при покупке курса доступ к учебным материалам приобретается навсегда с возможностью повторного прохождения. Учат тому же Data Science с использованием Python и SQL для работы с данными. В качестве бонуса предлагают 2 доп. курса: продуктовый аналитик (работа с конкретным товаром компании, чуть шире игровой версии) и геймдизайнер. Выпускникам выдают дипломы и помогают организовать собеседование в нескольких компаниях.
  • GeekBrains. В качестве уникального преимущества онлайн-платформа предлагает трудоустройство или возврат денег, если оно не удалось. Преподают на курсах действующие аналитики, а рассчитана программа на год. Навыки схожие: Python, SQL, мат. статистика, визуализация и прочие инструменты аналитика. Выпускникам выдают дипломы о профессиональной переподготовке. Бонусами предлагают подписки на сервис изучения английского языка JetBrains (IDE) и к собственной базе разных мастер-классов.
  • DataCamp. Предлагающий огромное количество уроков по обращению с данными сайт работает по подписочной модели.

Игровой аналитик – это в первую очередь аналитик. Для освоения профессии подойдут и обычные курсы для аналитиков данных. Например, у Udemy есть неплохой буткемп с использованием Python, Seaborn и Pandas.

Книги


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

Блоги

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

  • GameAnalytics.Тут куча всего нужного и полезного: блоги, статьи, новости и прочее.
  • datanami. Ресурс, посвящённый аналитике, данным и ИИ.

Прочие полезные ресурсы


Аналитику всегда есть где посмотреть полезную информацию. Здесь можно найти неплохую картинка от devtodev, рассказывающую о метриках.

***

Заинтересовались, но не знаете с чего начать? Обратите внимание на факультет игровой аналитики образовательной онлайн-платформы GeekBrains. Здесь вы получите все необходимые навыки для начала карьеры: геймеры смогут превратить хобби в работу мечты, начинающие специалисты лучше изучат отрасль, а практикующие гейм-дизайнеры научатся создавать более продуманные игры. Благодаря практическим занятиям на примере реальных игровых продуктов вы не только получите нужный для старта в профессии опыт, но и сможете добавить интересные кейсы в портфолио. Эксперты-практики с большим стажем откроют перед вами двери в профессиональный мир Gamedev, а HR-специалисты помогут с трудоустройством. Удачи в обучении!

14
Июл
2021

👨‍🎓️ 50 актуальных ресурсов для AR/VR-разработчика: курсы, блоги, каналы и инструменты

Технологии ХR (дополненной, виртуальной и смешанной реальности) успешно используют в архитектуре, игровой индустрии, образовании, развлекательной и научной сферах. Освоить разработку AR/VR с нуля непросто, но мы постараемся вам в этом помочь.

Если верить прогнозу ресурса Statista, мировой рынок AR/VR вырастет до 160 миллиардов долларов к 2023 году (в 2019 году он оценивался в 16,8 миллиардов).

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

Курсы:

  • Coursera. AR & VR – курс по изучению XR-разработки и основ дизайна подходит новичкам без навыков программирования. Преподаватели – специалисты Google. Язык – английский. Стоимость: по запросу.
  • Coursera. Virtual-reality – Лондонский университет проводит курс под девизом: «Start your journey in Virtual Reality». Вы освоите глубокие фундаментальные основы разработки технологии VR. Язык – английский. Стоимость: по запросу.
  • Udemy. Курс «Программирование виртуальной и дополненной реальности». Здесь вы познакомитесь с основами разработки ХR-приложений, изучите платформу Vuforia, базовые навыки работы с Unity 3D, библиотекой компьютерного зрения ARToolKit и другими полезными инструментами. Язык – английский. Стоимость: $19,99.
  • ITproger. Курс Дополненная реальность AR. Видеокурс по разработке приложений виртуальной реальности и создании игры на Unity. Язык – русский. Стоимость: по запросу.

Сайты по XR-разработке:

  • Раздел на Хабре под названием «Виртуализация» с ежемесячными дайджестами по технологиям AR/VR.
  • Bevirtual – освещающий события в сфере VR сайт.
  • Arnext – ресурс с информацией по дополненной реальности.

Социальные сети:

  • Virtual Reality Russia – группа на Фейсбук, где XR-специалисты обмениваются опытом и обсуждают горячие темы.
  • Virtual Reality – похожая на предыдущую англоязычная группа с большим количеством участников.
  • VR-Today – сообщество специалистов gamedev, тесно связанных с технологиями виртуальной и дополненной реальности.
  • Sketchfab – социальная платформа, где публикуют 3D-контент через мобильные приложения AR/VR. У ресурса почти миллион активных пользователей.

Статьи:

Инструменты для работы с XR:

  • Blender – бесплатная программа для создания 3D-моделей, симуляции, анимации, рендеринга, игр и редактирования видео.
  • Maya – коммерческая программа для работы с анимацией, графикой и созданием персонажей.
  • 3ds Max – инструментарий для 3D-моделирования и разработки игровых миров.
  • Vuforia AR-платформа компании Qualcomm, использующая технологию компьютерного зрения. Служит для работы с 3D-моделями и медиаконтентом.
  • MarvelVR – инструмент для превращения заготовок (наброски, черновики, макеты) в интерактивные прототипы приложений, позволяющие продемонстрировать ваши идеи.
  • Storyboarder – программа для раскадровки, визуализирующая историю и позволяющая протестировать идею.
  • Gravity Sketch – удобная платформа для разработки 3D-дизайна.
  • Mirra – дизайнерский инструмент, позволяющий создавать XR-приложения без опыта программирования и работы с 3D.
  • Sketchbox – программа для создания прототипов, раскадровки и дизайна для XR-приложений.
  • Vectary – удобный онлайн-сервис по работе с 3D-моделированием.
  • Blocks – программа для создания простых 3D-объектов в VR от Google.
  • Cognitive3D – разработка в области пространственной аналитики для выявления поведенческих параметров XR.
  • Videoblocks – набор инструментов для обработки видеороликов с обзором 360°.
  • Amazon Sumerian – все самое необходимое для создания XR-программ.
  • A-Frame – сервис для создания WebVR при помощи HTML и библиотеки Entity-Component.
  • Roundme – сайт для публикации XR-контента и создания панорамных туров.
  • Mixamo – ресурс для создания уникальных персонажей, не требующий знаний 3D-технологий.
  • Mozilla VR – все для разработки XR-проектов от компании Mozilla.
  • AR Studio набор инструментов от Facebook для создания креативных эффектов для фотографий в соцсетях.
  • Bullet – инструменты для роботостроения, моделирования онлайн-среды и создания визуальных эффектов.

Полезные ссылки на GitHub:

  • HoverUIKit – готовое решение для создания пользовательских интерфейсов для приложений XR.
  • A-painter – графический веб-редактор для XR.
  • CentroUI – основанный на React VR набор утилит обеспечивает разработчиков необходимыми настройками для ввода текста, взаимодействия с карточками, списками и навигацией на сайте.
  • VRTK – инструменты разработчика VR-технологий в Unity3D.

Тематические каналы на Youtube:

Книги:

Vision Science, 1999 г.


Автор: Steven Palmer.

Язык: английский.

Это первый учебник по «науке о зрении» для студентов и аспирантов в области когнитивных наук, психологии и оптометрии. В нем описывается комплексный вычислительный подход современных ученых-исследователей зрения. Рассмотрен ряд вопросов: от ранней нейронной обработки структур изображения в сетчатке до высокого уровня зрительного внимания, памяти, образов и осознания. Изложение теоретически сложное и требует минимальных знаний математики. Однозначно рекомендована тем, кто всерьез намерен разрабатывать программные продукты для AR/VR.

Virtual and Augmented Reality for dummies, 2018 г.


Автор: Paul Mealy.

Язык: английский.

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

Эпоха дополненной реальности, 2018 г.


Автор: Бретт Кинг.

Язык: русский.

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

Virtual Reality, 2019 г.


Автор: Samuel Greengard.

Язык: английский.

Любимая книга бизнес-лидеров по версии Wall Street Journal. Познакомившись с ней, вы узнаете о последних разработках в сфере XR. Она подойдет как профессионалу, так и обычному пользователю.

The Fourth Transformation, 2016 г.


Автор: Robert Scoble, Shel Israel.

Язык: английский.

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

Augmented Reality: Where We Will All Live, 2017 г.


Автор: Джон Педди.

Язык: английский.

Книга представляет собой детальное исследование области дополненной реальности (AR) и чем она отличается от виртуальной и смешанной. Автор рассказывает о первоначальной философии возникновения технологии, и о том, как она эволюционировала.

***

Если вы только начинаете постигать основы виртуальной и дополненной реальности, обратите внимание на факультет разработки VR/AR образовательной онлайн-платформы GeekBrains. Здесь вы научитесь делать игры и мобильные приложения, освоите язык программирования C#, игровой движок Unity и создадите 14 XR-проектов для портфолио.

14
Июл
2021

👨‍🎓️ 50 актуальных ресурсов для AR/VR-разработчика: курсы, блоги, каналы и инструменты

Технологии ХR (дополненной, виртуальной и смешанной реальности) успешно используют в архитектуре, игровой индустрии, образовании, развлекательной и научной сферах. Освоить разработку AR/VR с нуля непросто, но мы постараемся вам в этом помочь.

Если верить прогнозу ресурса Statista, мировой рынок AR/VR вырастет до 160 миллиардов долларов к 2023 году (в 2019 году он оценивался в 16,8 миллиардов).

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

Курсы:

  • Coursera. AR & VR – курс по изучению XR-разработки и основ дизайна подходит новичкам без навыков программирования. Преподаватели – специалисты Google. Язык – английский. Стоимость: по запросу.
  • Coursera. Virtual-reality – Лондонский университет проводит курс под девизом: «Start your journey in Virtual Reality». Вы освоите глубокие фундаментальные основы разработки технологии VR. Язык – английский. Стоимость: по запросу.
  • Udemy. Курс «Программирование виртуальной и дополненной реальности». Здесь вы познакомитесь с основами разработки ХR-приложений, изучите платформу Vuforia, базовые навыки работы с Unity 3D, библиотекой компьютерного зрения ARToolKit и другими полезными инструментами. Язык – английский. Стоимость: $19,99.
  • ITproger. Курс Дополненная реальность AR. Видеокурс по разработке приложений виртуальной реальности и создании игры на Unity. Язык – русский. Стоимость: по запросу.

Сайты по XR-разработке:

  • Раздел на Хабре под названием «Виртуализация» с ежемесячными дайджестами по технологиям AR/VR.
  • Bevirtual – освещающий события в сфере VR сайт.
  • Arnext – ресурс с информацией по дополненной реальности.

Социальные сети:

  • Virtual Reality Russia – группа на Фейсбук, где XR-специалисты обмениваются опытом и обсуждают горячие темы.
  • Virtual Reality – похожая на предыдущую англоязычная группа с большим количеством участников.
  • VR-Today – сообщество специалистов gamedev, тесно связанных с технологиями виртуальной и дополненной реальности.
  • Sketchfab – социальная платформа, где публикуют 3D-контент через мобильные приложения AR/VR. У ресурса почти миллион активных пользователей.

Статьи:

Инструменты для работы с XR:

  • Blender – бесплатная программа для создания 3D-моделей, симуляции, анимации, рендеринга, игр и редактирования видео.
  • Maya – коммерческая программа для работы с анимацией, графикой и созданием персонажей.
  • 3ds Max – инструментарий для 3D-моделирования и разработки игровых миров.
  • Vuforia AR-платформа компании Qualcomm, использующая технологию компьютерного зрения. Служит для работы с 3D-моделями и медиаконтентом.
  • MarvelVR – инструмент для превращения заготовок (наброски, черновики, макеты) в интерактивные прототипы приложений, позволяющие продемонстрировать ваши идеи.
  • Storyboarder – программа для раскадровки, визуализирующая историю и позволяющая протестировать идею.
  • Gravity Sketch – удобная платформа для разработки 3D-дизайна.
  • Mirra – дизайнерский инструмент, позволяющий создавать XR-приложения без опыта программирования и работы с 3D.
  • Sketchbox – программа для создания прототипов, раскадровки и дизайна для XR-приложений.
  • Vectary – удобный онлайн-сервис по работе с 3D-моделированием.
  • Blocks – программа для создания простых 3D-объектов в VR от Google.
  • Cognitive3D – разработка в области пространственной аналитики для выявления поведенческих параметров XR.
  • Videoblocks – набор инструментов для обработки видеороликов с обзором 360°.
  • Amazon Sumerian – все самое необходимое для создания XR-программ.
  • A-Frame – сервис для создания WebVR при помощи HTML и библиотеки Entity-Component.
  • Roundme – сайт для публикации XR-контента и создания панорамных туров.
  • Mixamo – ресурс для создания уникальных персонажей, не требующий знаний 3D-технологий.
  • Mozilla VR – все для разработки XR-проектов от компании Mozilla.
  • AR Studio набор инструментов от Facebook для создания креативных эффектов для фотографий в соцсетях.
  • Bullet – инструменты для роботостроения, моделирования онлайн-среды и создания визуальных эффектов.

Полезные ссылки на GitHub:

  • HoverUIKit – готовое решение для создания пользовательских интерфейсов для приложений XR.
  • A-painter – графический веб-редактор для XR.
  • CentroUI – основанный на React VR набор утилит обеспечивает разработчиков необходимыми настройками для ввода текста, взаимодействия с карточками, списками и навигацией на сайте.
  • VRTK – инструменты разработчика VR-технологий в Unity3D.

Тематические каналы на Youtube:

Книги:

Vision Science, 1999 г.


Автор: Steven Palmer.

Язык: английский.

Это первый учебник по «науке о зрении» для студентов и аспирантов в области когнитивных наук, психологии и оптометрии. В нем описывается комплексный вычислительный подход современных ученых-исследователей зрения. Рассмотрен ряд вопросов: от ранней нейронной обработки структур изображения в сетчатке до высокого уровня зрительного внимания, памяти, образов и осознания. Изложение теоретически сложное и требует минимальных знаний математики. Однозначно рекомендована тем, кто всерьез намерен разрабатывать программные продукты для AR/VR.

Virtual and Augmented Reality for dummies, 2018 г.


Автор: Paul Mealy.

Язык: английский.

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

Эпоха дополненной реальности, 2018 г.


Автор: Бретт Кинг.

Язык: русский.

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

Virtual Reality, 2019 г.


Автор: Samuel Greengard.

Язык: английский.

Любимая книга бизнес-лидеров по версии Wall Street Journal. Познакомившись с ней, вы узнаете о последних разработках в сфере XR. Она подойдет как профессионалу, так и обычному пользователю.

The Fourth Transformation, 2016 г.


Автор: Robert Scoble, Shel Israel.

Язык: английский.

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

Augmented Reality: Where We Will All Live, 2017 г.


Автор: Джон Педди.

Язык: английский.

Книга представляет собой детальное исследование области дополненной реальности (AR) и чем она отличается от виртуальной и смешанной. Автор рассказывает о первоначальной философии возникновения технологии, и о том, как она эволюционировала.

***

Если вы только начинаете постигать основы виртуальной и дополненной реальности, обратите внимание на факультет разработки VR/AR образовательной онлайн-платформы GeekBrains. Здесь вы научитесь делать игры и мобильные приложения, освоите язык программирования C#, игровой движок Unity и создадите 14 XR-проектов для портфолио.

13
Июл
2021

🍏 Изучение iOS-разработки в 2021 году: 5 советов новичкам

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

13
Июл
2021

🍏 Изучение iOS-разработки в 2021 году: 5 советов новичкам

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

12
Июл
2021

🏃 Самоучитель для начинающих: как освоить Go с нуля за 30 минут?

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

10
Июл
2021

∞ Легко ли перейти из сисадминов/разработчиков в DevOps?

Развитие сферы IT делает некоторые профессии неактуальными, и пальма первенства переходит к более востребованным на рынке. Направление DevOps – одно из таких. Мы расспросили разработчицу и сисадмина о том, почему и как они перешли в DevOps.

Инженер DevOps и разработчик/сисадмин: в чем разница?

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

Чаще всего сравнивают именно профессии системного администратора и специалиста по DevOps. Эти роли разделяют ряд общих задач, но существуют и фундаментальные различия между ними.

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

DevOps – концепция создания программного обеспечения, которая устраняет разрыв между разработчиками и ИТ-командами. С помощью DevOps организации могут создавать, тестировать и выпускать более качественные продукты в короткие сроки.

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

Обычно в обязанности системного администратора входит следующее:

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

Некоторые навыки и обязанности системных администраторов актуальны и для DevOps-инженеров, но для смены профессии потребуются и дополнительные:

  • настройка облачных виртуальных машин и сервисов;
  • навыки программирования и написания сценариев;
  • понимание непрерывной интеграции (CI);
  • понимание безопасных и эффективных стратегий развертывания ПО;
  • навыки управления конфигурациями;
  • знание методов контейнеризации приложений;
  • практический опыт работы с платформами IaaS, вроде AWS и Microsoft Azure;
  • навыки коммуникации и другие soft skills.
Рассматривая разницу между DevOps-инженером и разработчиком, важно отметить, что последний сосредоточен на соответствии программного продукта потребностям клиента. Спектр обязанностей DevOps-инженера гораздо шире и включает разработку и развертывание программного обеспечения, а также обеспечение оперативной поддержки заказчиков.

В обязанности разработчика входит:

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

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

Опыт специалистов

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

Глафира Иванова, DevOps Engineer компании MedIndex

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

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

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

В какой-то момент все мои коллеги-бэкендеры уволились и я стремительно выгорела, поэтому решила поискать другую работу. Учитывая, что опыт в программировании у меня был к тому моменту не слишком положительный, я подумывала о том, чтобы слегка сменить сферу деятельности (что довольно нетрудно в IT, особенно вначале).

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

Об обязанностях специалиста DevOps

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

Это включает множество различных задач:

  • настройку CI/CD;
  • сопровождение продуктов;
  • поддержку инфраструктуры;
  • мониторинг;
  • траблшутинг (устранение неполадок);
  • усилия по автоматизации и улучшению процессов.

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

О навыках

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

Я думаю, DevOps-специалисту нужно иметь широкий кругозор. Поэтому стоит хотя бы в общих чертах понимать устройство операционных систем, процесс разработки ПО, работу сетей, построение процессов CI/CD. Это даст понимание того, что происходит с продуктом на всех этапах его жизненного цикла.

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

О необходимом для специалиста стеке технологий


Советую изучать:

  • ОС Linux;
  • какой-нибудь из скриптовых языков (Python, например, но наверняка придется писать и на Bash);
  • Docker;
  • Kubernetes;
  • Ansible;
  • Prometheus;
  • ELK-стек;
  • инструменты для CI/CD (Jenkins/GitLab CI);
  • полезно попробовать работать с публичными облаками (например, с AWS).

О проблемах, которые могут возникнуть в начале карьеры

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

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

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

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

Дмитрий Евстюхин, Senior Cloud Solutions Architect компании Provectus

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

В какой-то момент я уволился с должности старшего сисадмина и занялся поисками новой работы. Мне сделали два предложения одновременно – начальником отдела в сфере ритейла и рядового инженера в маленькой геймдев-компании. Именно во втором предложении промелькнуло это самое слово DevOps.

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

Об обязанностях специалиста DevOps

Роль DevOps-инженера очень разнится от компании к компании. Есть определенные схожие функции, например, настройка и поддержка CI/CD пайплайнов. Часто к этой роли относят и инфраструктурные вопросы, особенно в облаках. Мне также приходилось проектировать и настраивать инфраструктуру со всеми нужными сервисами: мониторингом, логированием и так далее. Помогал командам разработки настроить их процесс, щедро сдобрив его автоматизацией и петлями обратной связи. Иногда нужно было помочь разработчикам лучше использовать возможности среды, объяснить, как правильно жить в облаке или Kubernetes.

Считаю, что DevOps – это мастер на все руки, поэтому хотя бы раз я делал в команде все сразу.

О навыках

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

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

Из hard skills я бы выделил скрипты и арсенал поверхностного понимания технологий. К примеру сертификация уровня Associate любого облака дает такой арсенал. Чем шире арсенал, тем лучше, но это не имеет большого смысла, если нет фундамента. В роли фундамента для хорошего специалиста DevOps обычно выступает глубокая экспертиза в администрировании Unix-like систем и сетевое администрирование.

О необходимом для специалиста стеке технологий

В первую очередь новичку в DevOps нужно закладывать фундамент, то есть осваивать операционные системы и сетевые технологии. Если есть достаточное понимание вышеперечисленного, стоит изучить скрипты на Bash/Python. Потом перейти к Ansible, Terraform, Jenkins, Kubernetes.

О проблемах, которые могут возникнуть в начале карьеры

Мне вспоминается ощущение ошеломления, когда я впервые увидел список технологий, которые мне нужно было изучить на своей первой работе DevOps-инженером. Из всего списка я слышал только об одной или двух, остальные были загадкой. Сначала этот океан технологий выглядит просто непокоримым, но со временем начинаешь понимать – везде примерно одно и то же, только с разными «бантиками». Жизнь становится проще, но это не умаляет объем технологий, которые надо изучить на начальном этапе.

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

Как влиться в новую команду?
Команда команде рознь. Самый главный метод адаптации – найти ментора, который поможет, покажет и научит. Хотя обычная ситуация, когда DevOps команды «в огне»: людей не хватает, задач много, все горит и никто ничего не успевает… в этом случае нет времени на новичка, и ему требуются недюжинные навыки самоорганизации, настойчивость, чтобы получить всю нужную информацию и стать полезным.

Выводы

В итоге именно вы решаете в каком направлении двигаться – стать системным администратором, разработчиком или перейти в DevOps. Как и во многих смежных направлениях, эти роли частично пересекаются. Системные администраторы уже имеют опыт написания сценариев и могут быть знакомы с технологиями автоматизации развертывания приложений, управления конфигурациями и так далее. Многие разработчики имеют представление о системном администрировании, так что изучать неофиту придется не половину (Dev или Ops), а немного меньше.

***

Если вы только собираетесь освоить популярную профессию, стоит обратить внимание на курс «Старт в DevOps: системное администрирование для начинающих» образовательной онлайн-платформы Skillbox. Там вы сможете получить навыки администрирования Linux, научитесь настраивать веб-серверы и поддерживать работу сайтов, а также усвоите базовые знания для развития в DevOps-инженерии.

За год занятий с экспертами-практиками вы соберете портфолио и сможете начать карьеру системного администратора в IT-компании. Если ваша цель – стать инженером DevOps, вы сможете попрактиковаться на реальных проектах и получите базовые навыки для развития. Продолжить обучение можно на продвинутых курсах: «Профессия DevOps-инженер», «Профессия DevOps-инженер PRO» и «Инфраструктурная платформа на основе Kubernetes». Все интересующие вопросы вы сможете задать куратору в чате Telegram, а ваши домашние задания лично прокомментирует преподаватель и даст полезные советы.

09
Июл
2021

🕵 Кибербезопасность в 2021 году: ответы на главные вопросы новичков

Что такое кибербезопасность? Какие специалисты ею занимаются? Как выглядит эта отрасль в 2021 году? Разложим все вопросы по полочкам и разберемся с каждым из них.

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

Цель защиты информации: предотвратить или снизить риски кибератак, исключить утечки или повреждение данных, а также минимизировать сбои в работе систем.

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

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

В комплексе организационных и технических мер по защите от киберугроз можно выделить три элемента:

  • Персонал компании. Информационная безопасность (ИБ) часто страдает из-за человеческого фактора, потому обучение персонала – основа профилактики инцидентов. Сотрудникам важно объяснить необходимость установки сложных паролей к учетным записям и их периодической смены, предоставить инструкцию по обращению с конфиденциальной информацией, пояснить необходимость резервного копирования данных.
  • Инструменты обеспечения безопасности нуждающихся в защите устройств.
  • Выстроенный процесс защиты информационной среды. Важно понимать, что информационная безопасность – не законченный объект. Систему защиты следует непрерывно модернизировать, ограждая ИТ-инфраструктуру от актуальных угроз.

Самые распространенные виды атак

  • Вредоносное программное обеспечение (Malware) выполняет несанкционированный доступ к компьютеру. К нему относятся вирусы, трояны, черви, шпионские и рекламные программы, программы-вымогатели (шифровальщики).
  • Программы-вымогатели требуют выкуп за восстановление доступа к файлам или компьютерной системе. При этом перечисление денег не гарантирует, что доступ к данным будет восстановлен.
  • Социальная инженерия, предполагает получение конфиденциальной информации обманным путем. Злоумышленники могут попросить перечистить деньги или открыть доступ к конфиденциальным данным. Социальная инженерия сочетается с другими типами атак, которые направлены на переход по ссылкам мошенническим ссылкам или загрузку вирусного ПО.
  • Фишинг – подложные электронные письма или сообщения в мессенджерах. Этот вид мошенничества направлен на кражу конфиденциальных данных, учетной информации или данных кредитных карт. Фишинг – распространенный тип кибератак, который проводится с помощью массовых рассылок, цель которого – переход пользователя по вредоносной ссылке. Для защиты следует обучать персонал, а также настраивать инструменты, для блокирования вредоносных писем и сообщений.

Популярные профессии в сфере кибербезопасности


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

  • White hat – работает легально, обеспечивает защиту данных компании, выявляет уязвимости и помогает избавиться от них.
  • Grey hat – к ним относятся хакеры, которые осуществляют нелегальный взлом без злого умысла и цели получить прибыль или нанести вред.
  • Black hat – такие хакеры всегда наносят вред. Они незаконно взламывают системы, сети и устройства из хулиганских побуждений или с целью извлечения выгоды, в т.ч. по заказу.

В статье мы рассматриваем только работающих в «белой» зоне экспертов по информационной безопасности. У них есть довольно много разнообразных специализаций – разберем основные.

Антифрод-аналитик

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

Специалист по реверс-инжинирингу или аналитик кода

Занимается анализом программного кода, чтобы найти уязвимые для кибератак места в программе. Аналитик кода должен иметь базовые знания по программированию на Python,C++, ASM и др., а также знать о существующих видах уязвимостей (SANS Top-25, OWASP Top-10). Специалист по реверс-инжинирингу должен выявить угрозы и дать рекомендации по их устранению.

Разработчик системы защиты информации (СЗИ)

Эти специалисты должны совмещать навыки программирования со знанием средств защиты данных. Разработчикам СЗИ нужно знать системы DLP, облачные хранилища MS Azure и AWS, языки программирования, CI/CD, фреймворки, антивирусные решения и многое другое. Основная их задача – создать корпоративную систему защиты информации.

Специалист по форензике или расследованию кибер-преступлений

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

Пентестер

Тесты на проникновение проводятся в приближенных к «боевым» условиях. Задача пентестера – взломать систему и украсть из нее данные, т.е. выявить уязвимости, устранение которых улучшит безопасность. Пентестеры востребованы в IT-компаниях, финансовых организациях и больших корпорациях вне зависимости от сферы деятельности. Им нужно знать, как работают операционные системы (Linux, Windows) и сети, и какие участки корпоративной ИТ-инфраструктуры наиболее уязвимы.

Специалист по безопасности приложений

Занимается анализом уязвимости веб-приложений и исходного кода на языках JavaScript, PHP, Ruby, ASP.Net, ASP, Java и пр. Специалисту по безопасности приложений понадобятся навыки работы с реляционными СУБД, знание сетевых протоколов и программ, серверов Apache, Nginx, IIS, а также другие умения в зависимости от сложности проекта.

DevSecOps

Специалист по Development Security as Code Operations (DevSecOps) обеспечивает безопасность на всех этапах разработки приложения, занимается контролем и обеспечением защиты параллельно с программированием. Процесс работы модели DevSecOps автоматизирован, что снижает риски неправильного администрирования и простоя.

Специалист по корпоративной ИТ-безопасности

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

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

Требования к специалистам по кибербезопасности


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

  • Чтение кода, умение отличать легитимный исходный код и вторжения извне.
  • Навыки программирования.
  • Знание устройства популярных аппаратных решений, в т.ч. ПК и серверов.
  • Основы веб-верстки.
  • Аналитические навыки и прогнозирование.
  • Понимать принципов осуществления кибератак и защиты от них.
  • Способность быстро оценить угрозы безопасности и выявить ее источник.
  • Навыки работы с популярными СУБД (виды, базовые запросы).
  • Умение работать с большими потоками данными.

В зависимости от уровня профессионализма, набор требований к специалистам дополняется и конкретизируется.

Junior

  • работа с командной строкой;
  • настройка баз данных: Auditd, MySQL, Rsyslog, Apache2, nginx, PostgreSQL;
  • базовые знания операционной системы Linux и сетевых технологий;
  • опыт настройки антивирусных программ и ОС Windows;
  • навыки администрирования Active Directory, настройка групповой политики (GPO) и управление правами пользователей;
  • знание IP-адресации и статической маршрутизации, TCP/IP, ISO/OSI.

Middle

  • навыки администрирования Windows, Linux;
  • анализ защищенности;
  • опыт работы с системами противодействия вторжению и корпоративными антивирусными решениями;
  • опыт автоматизированного тестировании на Bash, Perl, Python;
  • теоретические знания строения и функционирования протоколов TCP/IP, ISO/OSI, компьютерной, сетевой и безопасности веб-приложений.

Senior

  • опыт расследования кибер-преступлений (выявление проникновений, сбор улик);
  • навыки работы с SS7, ERP, Hardware, SCADA;
  • знание и практический опыт работы с профильным программным обеспечением: Maxpatrol, IBM Qradar, Splunk, Symantec Critical System Protection, Enterprise, Gigamon Networks Tuffin, Cisco ASA, Imperva DAM;
  • осведомленность в законодательной базе по информационной безопасности;
  • понимание основных методик, классификаций и мировых практик, таких как OWASP, OSSTMM, NIST SP800-115, WASC;
  • навыки программирования хотя бы на одном скриптовом языке;
  • умение обнаруживать киберугрозы;
  • знание стандартов PCI DSS, СТО БР ИББС, ISO 27xxx.

Lead

  • должен иметь собственные достижения в области кибербезопасности (публикации в профильных изданиях, разработанные методики, выступления на отраслевых конференциях и т.д.).
***
По данным hh.ru и jobeka.com, заработная плата специалиста по кибербезопасности стартует от 500 тыс. рублей в год. Освоить все необходимые знания по книгам и интернет-ресурсам будет довольно сложно. Если вы только начинаете путь в профессии и хотите сразу получить теоретические знания, практику и обратную связь от наставников, стоит обратить внимание на курс образовательной онлайн-платформы GeekBrains.

Программа направлена на изучение:

  • безопасности веб-приложений;
  • анализа трафика и работу с криптографическими библиотеками;
  • командной строки Linux;
  • азов программирования на Python для автоматизации задач;
  • строения сетевой безопасности;
  • основных компонентов JavaScript, URL, HTML, Same Origin Policy, HTTP;
  • тестирования веб-приложений, с целью выявления и устранения уязвимостей;
  • устройства и уязвимостей бинарных приложений.

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

06
Июл
2021

👨‍💼 Тимлид из народа: как жить дальше?

Зачастую история успеха звучит так: «он пришел простым разработчиком, а вырос до руководителя департамента разработки». Кажется, будто человек сделал головокружительную карьеру – ему достается почет, уважение и непыльная работа руководителя. Разбираемся, так ли это на самом деле.

До тех пор пока у тебя есть план, и ты его придерживаешься – все будет хорошо. Главное убедить всех вокруг, что этот план сработает.
Василий Семенов, руководитель направления разработки ЦК SAP.

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


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

Новоиспеченный тимлид «из народа» должен следить за происходящим и отвечать за результаты команды перед руководством. Он должен, если кто-то не справляется, взять и спасти ситуацию. Теперь он отвечает не за качество своего кода, а за качество кода других программистов.

В работе проекта тимлид может подсказать, дать оценку по срокам, а потом смотреть, чтобы разработчики все успели и сделали качественно. При этом хороший разработчик – это удача во многом, даже если проводишь сам собеседование, сложно угадать, какой именно разработчик сидит перед тобой.
Антон Хрипунов, руководитель abap-разработки.

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

Проблем будет возникать масса: сроки будут гореть, проблемы будут накапливаться и скорее всего старые задачи останутся частично на тебе и их тоже нужно будет делать. Выход один – правильный тайм менеджмент. Необходимо установить свой распорядок так, чтобы время было разделено между активностями и работать согласно этого плана, не разрываясь между задачами и всему уделяя толику своего времени.
Артем Захаренко, руководитель разработки направления HR.

Обязанности и навыки тимлида


Деловая коммуникация и межличностное общение

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

Если нужных навыков делового общения у вас нет, на помощь придут книги:

  • Максим Батырев, «45 татуировок менеджера». Основанная на личном опыте книга российского руководителя. Название каждой главы – «татуировка», которая осталась с ним навсегда, и обязательно рассказано – почему.
  • Максим Батырев, «Сложные подчиненные. Практика российских руководителей». Еще одна книга того же автора, основана на выводах из реальных кейсов бизнеса. Каждая глава рассказывает про свой тип сотрудников.
  • Деннис Шервуд, «Системное мышление для руководителей: Практика решения бизнес-проблем». Книга о работе бизнеса в целом и о связях между всеми элементами этой цепочки. О системном мышлении и системном подходе к совершенствованию бизнес-моделей.
  • Бен Хоровиц, «Мы – то, что мы делаем». Рассказы о корпоративной культуре на ярких примерах.
  • Фонс Тромпенаарс и Пит Хэйн Кеберг, «100 ключевых моделей и концепций управления».
С самого начала моей карьеры, каждый раз после прочтения книг/курсов я старался сделать выжимку из материала и поделиться новым с людьми, которые меня окружали. Я понимал, что получаю многократный профит: растут мои технические знания, растет уровень окружающей меня команды, растут навыки общения, растет авторитет у других сотрудников.
Василий Семенов, руководитель направления разработки ЦК SAP.

Ресурсное планирование и экспертиза вместо написания кода

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

Еще одна важная проблема – ресурсное управление. Вы всегда должны понимать, кто и чем занят, когда освободится и на что способен тот или иной специалист. Эта проблема часто решается не за один год: упорядочить потоки задач, выработать унифицированный список требований, объяснить постановщикам важность ТЗ, настроить работоспособное планирование – все требует времени и неоднократного повторения.

Контроль эмоционального состояния коллектива

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

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

За годы работы я понял что большая часть проблем кроется в отсутствии нормальной коммуникации между людьми. Часто необходимо просто правильно обозначить точки соприкосновения и работа налаживается.
Василий Семенов, руководитель направления разработки ЦК SAP.

Управление общими процессами и формирование единого вектора развития

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

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

Борьба с профессиональным выгоранием


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

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

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

Будь открытым и честным перед собой и своими сотрудниками. И тогда они тебя выручат в трудный момент.
Василий Семенов, руководитель направления разработки ЦК SAP.

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

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

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


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

***

Образовательная платформа Skillbox проводит набор на курс «Профессия TeamLead». За 6 месяцев действующие тимлиды российских технологических компаний дадут слушателям необходимые для успешной карьеры теоретические знания и практические навыки. Вы поймете, чем команда разработки отличается от других команд, как ее развивать и оценивать, а также какие soft skills нужны современному тимлиду и как быстро их развить.

03
Июл
2021

📊 Как стать разработчиком BI-систем в 2021 году

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

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

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

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

Что такое Business Intelligence?

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

Кто такой разработчик Business Intelligence?

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

Разработчики систем бизнес-аналитики выполняют следующие функции:

  1. Создание и обновление BI-решений.
  2. Разработка технических запросов.
  3. Разработка точных поисковых запросов.
  4. Перевод данных в простые бизнес-термины и форматы для использования в других отделах.
  5. Работа с бизнес-аналитиками и другими Data-разработчиками.
  6. Создание визуальных документов для представления данных.
  7. Документирование процессов для будущего использования.
  8. Устранение неполадок моделирования бизнес-аналитики и разработка решений.
  9. Резервное копирование и безопасное хранение данных.

Что надо знать?

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

  1. Теория вероятностей и математическая статистика.
  2. Управление базами данных. Язык запросов SQL.
  3. Язык программирования Python (pandas, numpy, matplotlib).
  4. Технология обработки данных OLAP (online analytical processing).
  5. Принцип работы с ETL.
  6. Продуктовая аналитика и BI-инструменты (Tableau, Power BI).
  7. Apache Airflow.
  8. Работа с хранилищем данных SQL Azure.
  9. Git.
  10. Linux.
  11. Технический английский язык.
Важные «мягкие» навыки (soft skills), необходимые в профессии
Умение работать в команде, дисциплинированность, выносливость и адаптируемость к изменяющимся обстоятельствам, любознательность и способность в краткие сроки усвоить большой объем новой информации. Хороший разработчик должен уметь объяснять сложные концепции простым языком, для более продуктивного диалога с ответственными, за принятие решений людьми.

Наиболее популярные платформы для анализа данных – Tableau и Power BI

Power BI – набор инструментов для визуализации аналитических бизнес-данных от Microsoft, структурирующий полученную из различных источников информацию. В его стартовый пакет входит несколько коннекторов, служб (Power BI desktop, Power BI SaaS) и мобильное приложение для всех популярных платформ. Power BI desktop применяется для создания отчетов, Power BI SaaS (Software as a Service) публикует эти отчеты, а мобильное приложение используется для их мониторинга. Платформа позволяет подключаться к различным неструктурированным файлам, базам данных SQL, облаку Azure и к веб-платформам, вроде Facebook, Google Analytics и Salesforce. Скачать последнюю версию программы можно по ссылке.

Вот несколько полезных ссылок для разработчиков Power BI:

Популярный инструмент информационной визуализации Tableau обладает мощной функциональностью для обнаружения и исследования данных. Он позволяет найти ответы на важные вопросы за секунды. Платформа не требует выполнения сложных сценариев – любой аналитик может работать с ней благодаря нехитрому интерфейсу.

Tableau предлагает бизнес-решения для всех отраслей, отделов и сред данных. Ниже приведен ряд преимуществ инструмента:

  1. Аналитическая скорость. Не требуется высокий уровень знаний в области программирования, почти все делается перетаскиванием.
  2. Легкое обслуживание. Не требуется сложная настройка программного обеспечения. Популярную десктопную версию легко установить.
  3. Визуальное обнаружение. Использование инструментов визуализации (цвета, линии тренда, диаграммы и графики).
  4. Возможность смешивать разнообразные наборы данных (реляционные, неструктурированные и обработанные источники данных) в реальном времени без дорогостоящих предварительных затрат на интеграцию.
  5. Архитектура Agnostic. Tableau работает на всех типах устройств, пользователю можно не беспокоиться о требованиях к оборудованию или программному обеспечению.
  6. Совместная работа в реальном времени. Сортировка и обсуждение данных, возможность встраивать интерактивную панель управления в порталы SharePoint и Salesforce.
  7. Источник централизованных данных – сервер Tableau предоставляет централизованное место для управления всеми опубликованными источниками данных организации.

Бесплатную персональную версию Tableau Desktop можно загрузить отсюда.

Полезные ссылки для разработчиков Tableau:

Сколько зарабатывает BI-разработчик?

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




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


***

Существует два пути в профессию разработчика Business Intelligence. Первый – это самообразование. Он непростой и длительный: без опытного наставника освоить специальность будет сложно. Главный минус этого варианта – недостаток практики при большом объеме теории. Второй путь – онлайн-курсы. Рекомендуем обратить внимание факультет BI-разработки образовательного портала GeekBrains. Под руководством практикующих специалистов вы сможете изучить все нюансы профессии, отточите навыки на практике и создадите 5 проектов для портфолио. Сделайте правильный выбор!

30
Июн
2021

👨‍🎓️ Школа анализа данных – плюсы и минусы

Школа анализа данных – двухгодичная программа обучения от Яндекса. Основной упор в ней делается на данные и методы работы с ними. В небольшом обзоре мы разберём плюсы и минусы учёбы в ШАД.

Как поступить?

Итак, ШАД – полноценное обучение на протяжении двух лет, с нагрузкой по 30 часов в неделю. Обучение бесплатное, но сначала требуется пройти онлайн-тестирование, затем экзамен и собеседование в филиалах ШАД.

Как и в университете, здесь есть возможность платного поступления, но для этого нужно хорошо показать себя на собеседовании. Стоит учёба 150 000 рублей в семестр. Если закончить семестр на хорошо и отлично, цена уменьшится наполовину. А если два раза подряд закончить хорошистом или отличником, обучение станет бесплатным.

Онлайн-тестирование – обычное заполнение анкеты с тестовыми вариантами задач. После него есть два варианта: для москвичей следует прибыть в отделение ШАД и сдать экзамен по математике, алгоритмам, а затем по программированию и основам анализа данных. Заочники или учащиеся в региональных отделениях сдают онлайн-экзамен.

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

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

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

Кому это нужно?

Во-первых, выпускники получают диплом о профессиональной переподготовке. Во-вторых, любовь к Data Science и желание глубоко-глубоко нырнуть в эту отрасль. При этом, если вас интересует чистая научная теория, то место найдётся – регулярные семинары и различные исследовательские проекты.

В целом, целевую аудиторию можно описать так: хочется попасть в сферу Data Science, сделать это максимально эффективно и интересно. К тому же, обучение проходит по вечерам.

ШАД: Плюсы обучения

  • Знания. Преподаватели в ШАДе частенько в “первую смену” работают в различных вузах Москвы, а затем читают лекции на свою любимую тему в школе Яндекса. Квалификация у них точно на высоте.
  • Вечерняя программа. Учёба по вечерам отлично стимулирует освоение тайм-менеджмента: нужно и задания успеть выполнить, и подготовиться к следующему дню, и время на сон оставить.
  • Математика, данные и программирование. Здесь всё сосредоточено на этих предметах. Нужно знать математику, чтобы с помощью математической же культуры уметь работать с данными. Нужно знать и понимать данные, выявляя среди них закономерности и прочее. И программирование потребуется, чтобы это всё автоматизировать.
  • Интенсивная нагрузка. Слоган ШАДа: «Будет сложно, но интересно». Стимул к обучению студенты получают за счёт интересных задач. Им также предоставляют все необходимые инструменты для подготовки. Можно даже постоянно мучить преподавателей вопросами.

ШАД: Минусы обучения

  • Вечерняя программа. Если ваша жизнь уже загружена, то добавлять к ней вечерние курсы – стрелять себе в ногу. При этом, обучение действительно интенсивное и требует внимательности.
  • Серьёзная нагрузка. Так как здесь учат анализировать, то мозги будут работать на полную катушку. А то потребуется их перегружать их. Следует заранее прокачать выносливость и… умение отдыхать.
***

Зачем стремиться в ШАД? Первое – возможность целиком погрузиться в пучину данных, математических идей и алгоритмов целиком. Второе – полноценная программа обучения в сфере Data Science, диплом и рекомендации, которые помогут получить желанную работу (или сразу отправиться в Яндекс). Третье – высокий уровень самоорганизованности (в основном, для молодых людей), который обязательно разовьётся в ШАДе и при любом исходе будет очень ценным навыком во всей жизни.

«Библиотека программиста» желает вам удачного поступления! Для подготовки к экзаменам записывайтесь на наши курсы по математике в Data Science.

30
Июн
2021

👨‍🎓️ 26 ресурсов для изучения Ruby и Ruby on Rails в 2021 году: курсы, книги, видеогайды, подкасты и блоги

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

28
Июн
2021

🥇 Не любите Kaggle? Вы просто не умеете его готовить

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

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

Kaggle это платформа, на которой собраны соревнования, курсы, базы данных, туториалы с кодом и обсуждения для решения реальных проблем с помощью Data Science. Существует несколько типов соревнований:

  • Проекты для обучения, предназначенные для новичков, например одни из самых известных Titanic-Machine Learning from Disaster и House Prices- Advanced Regression Techniques.
  • Проекты, в которых представлены данные для обучения и в которых ожидаемый результат известен как компании, так и участникам.
  • Соревнования с денежными призами, с помощью которых компании ищут лучшие решения своих проблем или новых сотрудников (в данном случае результат обычно известен только компании). По мере того, как участники загружают свои материалы, Kaggle делится в режиме реального времени распределением результатов каждой из команд в списке лидеров.

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


С чего начать?

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

Изучите данные

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

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

Присоединитесь к сообществу

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

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

Построение моделей

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

Отправьте результаты

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

Как продолжить

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

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

Обзор последних соревнований


SIIM-FISABIO-RSNA COVID-19 Detection

Дедлайн для регистрации команд: 2 августа 2021 г.

Дата окончания: 9 августа 2021 г.

Призы: 1 место – $30,000, 2 место – $20,000, 3 место – $10,000, специальный приз для студенческой команды.

В этом соревновании вам предстоит выявить и локализовать аномалии COVID-19 на рентгенограммах грудной клетки. Цель классифицировать рентгенограммы как отрицательные для пневмонии или типичные, неопределенные или атипичные для COVID-19.

Подробнее: https://www.kaggle.com/c/siim-covid19-detection

CommonLit Readability Prize

Дедлайн для регистрации команд: 26 июля 2021 г.

Дата окончания: 2 августа 2021 г.

Призы: 1 место – $20,000, 2 место – $15,000, 3 место – $10,000.

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

Подробнее: https://www.kaggle.com/c/commonlitreadabilityprize/overview/description

Google Smartphone Decimeter Challenge

Дедлайн для регистрации команд: 28 июля 2021 г.

Дата окончания: 4 августа 2021 г.

Призы: 1 место – $5,000, 2 место – $3,000, 3 место – $2,000.

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

Подробнее: https://www.kaggle.com/c/google-smartphone-decimeter-challenge

SETI Breakthrough Listen – E.T. Signal Search

Дедлайн для регистрации команд: 21 июля 2021 г.

Дата окончания: 28 июля 2021 г.

Призы: 1 место – $6,000, 2 место – $5,000, 3 место – $4,000.

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

Подробнее: https://www.kaggle.com/c/seti-breakthrough-listen

Hungry Geese

Дедлайн для регистрации команд: 26 июля 2021 г.

Дата окончания: 26 июля 2021 г.

Призы: мерч Kaggle (футболки, кружки и т. д.) достанется лучшей команде в ежемесячной таблице лидеров.

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

Подробнее: https://www.kaggle.com/c/hungry-geese/overview/prizes

***

Если вы только начинаете путь в профессии или хотите научиться решать реальные задачи из смежных областей науки о данных, соревнования – хороший способ это сделать. Обратите внимание на курс по спортивному Data Science образовательной онлайн-платформы GeekBrains. Он включает обучение с элементами соревнования в Kaggle и работу с преподавателем, который разбирает на примерах каждый урок.

27
Июн
2021

☁ На все руки мастер: трудовые будни инженера облачных сервисов

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

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

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

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

Рабочий день инженера облачных сервисов

  • Утро начинается с проверки клиентских заявок. При помощи специальной тикет-системы инженеры облачных сервисов отслеживают возможные ошибки и составляют план на день.
  • Главная задача – калибровка работы используемых в проекте сервисов (стримминговых и прочих). Когда нагрузка растет, возможны отказы обслуживания. Нужно оперативно реагировать, а ещё лучше – предупреждать такие ситуации.
  • Коллектив играет немалую роль в работе инженера облачных сервисов. Общение с профессионалами и обмен мнениями помогает справиться с нестандартными тикетами от клиентов. Ещё и изменения перед “выкаткой” требуют согласования.
  • Остальной день проходит в общении с клиентами, обсуждении новых сервисов, интеграции планируемых изменений. У инженера случаются авралы, но его задача как раз состоит в том, чтобы предупреждать аварийные ситуации и устранять проблемы в сжатые сроки.

Хард-скиллы инженера

Инженеру облачных сервисов необходимо высшее техническое образование и опыт работы в техподдержке. Что нужно уметь?

  • быть уверенным пользователем Linux;
  • различать TCP, IP и TCP/IP;
  • уметь работать с HTTP(S) и DNS;
  • разбираться в Nginx (используется в каждом веб-сервисе);
  • разбираться в стриминговых видео (таких как ffmpeg и Wowza);
  • плюсом будет опыт работы с системами контроля конфигураций Chef, Puppet, Salt и Ansible;
  • знать Python на достаточном для обработки данных уровне.

Софт-скиллы инженера

Мнение, что инженеру не нужны коммуникативные навыки – в корне неверно. Да, большое количество времени специалист проводит в системе, но решение вопросов с клиентами требует умения общаться.

  • командная работа (у разработчиков планка требований занижена – доставка кода не требует общения, а инженеру взаимодействие с коллегами необходимо);
  • работа с клиентурой – нужно уметь проявлять эмпатию, грамотно и доступно объяснять свою точку зрения;
  • объективное суждение и открытость новым идеям;
  • ответственность при принятии решений;
  • ориентированность на результат.
“Оставайтесь, пожалуйста, на линии”
Инженера облачных сервисов нельзя путать с сотрудником технической поддержки. Классическая поддержка построена по цепочке: на звонок отвечает сотрудник первой линии и, если его компетенции не хватает, обращение передаётся квалифицированному специалисту на второй и последующих линиях.

Здесь присутствует ряд отрицательных моментов:

  • Не каждый клиент выдержит ожидание, пока запрос передаётся другому специалисту (по почте или по телефону).
  • Сотрудники на первой линии выполняют монотонную работу изо дня в день и теряют мотивацию, а специалисты n-ой линии квалифицированы, но практически не общаются с клиентурой.

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

Как стать инженером облачных сервисов?

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

И наконец техническая проверка. Преимущественно берут специалистов с высшим техническим образованием, но это необязательно.

Чтобы получить должность инженера облачных сервисов, нужно соответствовать минимальным требованиям:

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

Перспективы инженера облачных сервисов

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

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


Где научиться?

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

  • Московский политехнический университет. Гибридные технологии умного дома и интернет вещей: программа бакалавриата. Стоимость обучения в прошлом году: 227 000 рублей (есть бюджетные места).
  • Белгородский государственный национальный исследовательский университет. Профессия Cloud Engineer (специалист по облачным вычислениям, инженер по облачным сервисам) – образовательные программы в НИУ «БелГУ», которые могут стать базой для получения профессии в будущем. Стоимость обучения в прошлом году: 128 450 рублей (есть бюджет).
  • Санкт-Петербургский политехнический университет Петра Великого. Бакалавриат по профилю «Системы искусственного интеллекта и суперкомпьютерные технологии». Стоимость обучения в прошлом году: 190 000 рублей (есть бюджет).
  • МИРЭА – Российский технологический университет. «Cloud Engineer: специалист по облачным вычислениям, инженер по облачным сервисам». Стоимость обучения в прошлом году: 297 000 рублей (есть бюджет).
  • Национальный исследовательский технологический университет «МИСиС». Интеллектуальные системы анализа данных: вариант программы бакалавриата. Стоимость обучения в прошлом году: 228 000 рублей (есть бюджет).
  • Северо-Кавказский федеральный университет. Анализ данных и искусственный интеллект: вариант программы бакалавриата. Стоимость обучения в прошлом году: неизвестно (есть бюджет).
  • Московский авиационный институт (национальный исследовательский университет). Системы интеллектуального мониторинга: вариант программы бакалавриата. Стоимость обучения в прошлом году: 208 550 рублей (есть бюджет).
  • Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина). Профессия Cloud Engineer: специалист по облачным вычислениям, инженер по облачным сервисам. Стоимость обучения в прошлом году: 205 200 рублей (есть бюджет).
  • Санкт-Петербургский государственный университет аэрокосмического приборостроения. Компьютерные технологии, системы и сети: вариант программы бакалавриата. Стоимость обучения в прошлом году: 200 000 рублей (есть бюджет).
  • Уральский технический институт связи и информатики (филиал) Сибирского государственного университета телекоммуникаций и информатики. Коммерческая деятельность в инфокоммуникациях: вариант программы бакалавриата, Факультет инфокоммуникаций, информатики и управления. Стоимость обучения в прошлом году: неизвестно (есть бюджет).

Проще и быстрее получить образование (либо повысить уровень квалификации) на курсах:

  • CLOUD DATA ENGINEERING ОТ GEEKBRAINS. Портал для программистов дает возможность освоить множество профессий и специальностей. Длительность курсов зависит от направления. Обучение проходит 2-3 раза в неделю: вы узнаете основы облачного инжиниринга, рассмотрите базы данных и аналитики, поработаете с машинным обучением в Kubernetes.
  • CLOUD COMPUTING CONCEPTS ОТ COURSERA. Один из лучших курсов облачного инжиниринга на сервисе Coursera: инструктор Indranil Gupta получил множество положительных отзывов от учеников. В конце обучения сможете пройти экзамены и стать сертифицированным специалистом. Cloud Computing Concepts – часть онлайн-программы Магистров компьютерных наук Иллинойсского университета в Урбане-Шампейне. Курс Coursera будет учтён при получении степени.
  • INTRODUCTION TO CLOUD COMPUTING WITH AMAZON WEB SERVICES. Курс AWS – один из лучших вариантов для новичка. Инструктор на пальцах объяснит ключевые понятия, расскажет о Iaas, PaaS и SaaS. Курс представляет компания Infinite Skills. Средний рейтинг – 4,2 балла по отзывам более 2400 учеников.
  • GETTING STARTED WITH CLOUD COMPUTING. Курс для начинающих дает фундаментальные знания об облачном инжиниринге. Вы получите информацию об облачных сервисах AWS, GCP и MS Azure.
  • CLOUD COMPUTING: THE BIG PICTURE ОТ DAVID CHAPPELL. Подробный обзор известных облачных платформ. Для обучения на курсе необходимо приобрести членский билет за $29 в месяц или $299 в год. Есть бесплатная пробная версия на 10 дней.
  • AWS CERTIFIED SOLUTIONS ARCHITECT. Инструкторами будут Ryan Kroonenburg и Faye Ellis – эксперты в области и владельцы сайта CloudGuru. Это лучший курс для подготовки к сдаче экзамена AWS Solutions Architect – Associate Exam. Средний рейтинг курса – 4,5 звезды при общем количестве участников в 500 000 человек.

Выбор специализации

  • Самыми популярными предложениями в сфере облачного инжиниринга являются “платформа-как-услуга” и конкретно Cloud Foundry, а также системы контроля за базами данных (NoSQL, Apache’s CouchDB, Cassandra databases и Mongo и прочие).
  • Необходимы специалисты в области управления облачной инфраструктуры и менеджмента (BMC или RightScale).
  • Большая часть облачных вендоров (Rackspace, Eucalyptus, RightScale, enStratus, Opscode) предлагают собственные тренинги, вебинары и другие мероприятия. Они бесплатные для партнёров, клиентов, а иногда и для широких масс.
  • По мере обучения нелишним будет получить сертификат по специальности. При прохождении собеседования на должность вендорский сертификат станет большим преимуществом перед другими кандидатами на должность.

Заключение

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

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

Инженеры облачных сервисов крайне востребованы на рынке труда. Если вы только собираетесь освоить эту профессию, рекомендуем обратить внимание на курс Cloud Data Engineering от GeekBrains. Он подойдет как новичкам, так и специалистам, работающим в сфере аналитики, сбора данных, DevOps и системного администрирования.