Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Блог

5 ошибок, из-за которых вы завалите интервью

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

Нет контакта

Есть две потенциально проигрышных линии поведения:

  1. Спрашивайте — я отвечу. Если бы специалист хотел принять решение, основываясь на резюме, ответах на вопросы и результатах тестов, зачем было бы организовывать личную встречу?
  2. Презентация себя. У интервьюера много работы, в том числе с другими кандидатами, так что не надо тратить его время и выдавать длинные истории о своем опыте в ответ на каждый вопрос.

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

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

Постоянная неуверенность

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

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

Неумение оперировать неизвестным

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

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

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

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

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

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

Проблемы с мягкими навыками

Soft skills — это множество смежных факторов, которые делают вас ценным сотрудником: тайм-менеджмент, обучаемость, стрессоустойчивость, работоспособность, креативность, коммуникабельность и так далее. Писать об этом в резюме уже просто неприлично (если только у вас нет подтверждения в сертификатах), но продемонстрировать на собеседовании — отличная идея.

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

Тренинг: не нужен. Достаточно головы на плечах.

Отсутствие интереса к месту

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

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

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

Пройти обучение

24 июл 19, 16:59
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Программная инженерия: как решаются глобальные IT-задачи

 


24 окт 22, 10:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Сингапурский робокоп, беспилотное такси в Ясенево

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

Таймлайн новостей:

00:00 Приветствие

00:14 Крупнейшая DDoS-атака Рунета

00:53 Беспилотное такси в Москве 

01:33 Перевод видео с английского 

02:18 Роботы-полицейские в Сингапуре

03:29 Роболошадь

04:27 Айфон могут запретить

05:18 Биткоин стал официальной валютой

06:21 Пора поставить лайк

 


13 сен 21, 11:28
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как выбрать конструктор сайтов

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

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

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

Критерии для выбора конструктора сайтов

  1. Применимость для вашего типа сайта.
  2. Простота и удобство редактора.
  3. Цена.
  4. Интеграция с популярными сервисами и соцсетями.
  5. Подключение онлайн-оплаты.
  6. Индексация сайтов в поисковых системах.
  7. Отключение рекламы.
  8. Техническая поддержка на русском языке и скорость ответа.
  9. Возраст и успехи конструктора.

Рассмотрим каждый из пунктов детально.

Применимость для вашего типа сайта

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

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

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

Простота и удобство редактора

Если вы не специалист в сайтостроении (а это вряд ли, раз вы всё же обратились к конструкторам), сомнительно, что вам захочется долго разбираться в коде, непонятных названиях и кнопках. Хотя в любом случае приятнее работать в сервисе, где всё интуитивно понятно, не возникает вопросов вроде «Что будет, если я нажму эту кнопку?» и функции не приходится подолгу искать.

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

Цена

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

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

Интеграция с популярными сервисами и соцсетями

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

Например, в конструкторе сайтов Nethouse есть интеграция со службами доставки (СДЭК, Boxberry), системами учёта «МойСклад» и «Большая Птица», amoCRM и многими другими сервисами. Кстати, учитывайте, что в зарубежных конструкторах почти наверняка не будет интеграций с российскими сервисами — а значит, использовать их на 100% у вас может не получиться. Вряд ли какой-нибудь Jimdo сможет предложить вам прямое подключение СДЭК.

Плюсы интеграции с соцсетями — как минимум в живых отзывах. Когда посетитель видит на сайте запись не от анонима или абстрактной «Елены», а со страницы реального человека ВКонтакте или Facebook, у него возникает больше доверия. Чаша весов склонится в вашу сторону — потенциальный клиент на шаг ближе к заказу.

Подключение онлайн-оплаты

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

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

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

Индексация сайтов в поисковых системах

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

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

Отключение рекламы

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

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

Техническая поддержка на русском языке и скорость ответа

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

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

Возраст и успехи конструктора

Last but not least — последний, но не менее важный критерий. Совсем молодой сервис, возможно, предложит выгодные условия, дешёвые тарифы или оригинальные возможности. Но важно помнить, что в работе любого сайта одним из основополагающих параметров является стабильность.

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

Проверим по списку

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

А может, в глубине души вы сами хотите проектировать сайты, которые легко выходят за рамки конструкторов? Или делать оригинальные, удобные решения даже в пределах предлагаемых функций? Тогда приглашаем вас на факультет веб-дизайна GeekUniversity!

Самоизоляция из-за коронавируса продолжается, а значит, у вас всё ещё есть время, которое можно вложить в собственное будущее — освоить новую профессию и не бояться никаких экономических катаклизмов. Мы хотим помочь вам с этим и до 11 июня 2020 г. дарим скидку 40% почти на все программы обучения GeekBrains. Будьте здоровы и успешны! :)

 

 


2 июн 20, 13:16
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как 3 года делать игру на одном энтузиазме: история Buran-19

В комментах к предыдущей статье я обещал после релиза игры написать её детальный разбор. C конца декабря 2020-го года Buran-19 доступна в Google Play (позже в Apple Store) — теперь официально закрываю гештальт и 236-й тикет. Кстати, на написание этой статьи в моём битбакете закрыт тикет #36.

Об игре

Buran-19 — моя экзистенциальная аллегория, казуальная инди-игра. Сначала игрок наслаждается графикой, музыкой, летает, собирает, совершенствует себя. Но, когда он достигает определённого уровня (19-й уровень — последний), игра меняет логику и начинает его мочить. Она делает это нещадно и в итоге добивается своего. Всегда.

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

Сюжет

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

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

Как ясно из названия, в игре 19 уровней, которые легко преодолеть. Но по их истечении меняется уровень сложности, игра переворачивается с ног на голову. Она становится агрессивной — включается Death mode. Меняется музыка, космос, начинают тикать часики, возможно, становится меньше ресурсов. В первый раз даже не совсем понятно, что происходит. 

Особенности

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

Инди с головы до ног

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

Атмосфера и эстетика

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

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

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

Вот такой для эстетики и передачи атмосферы:

Дальше команда (художник, звукорежиссёр) тебя спрашивает, что чувствуешь, что видишь в этом. Какие-то одиночество, непоколебимость, пространство. Объясняешь, что тебе нужно. Например, говоришь звукорежиссёру, что нужна основная музыка, музыка в режиме паузы, в таком-то и таком-то стиле. Даёшь примеры. Буквально словами говоришь: «бдыж», «бдаамс». Или описываешь какую-то ситуацию, мол надо представить, как происходит вот это, с каким звуком бы это произошло. 

Потом работа над ошибками, прослушивание-переслушивание — где-то высокие частоты убрать, где-то уйти в глубину басами. Попробуйте, в общем, поиграть с наушниками. 

Death Mode

В режиме смерти на карте появляется намного больше объектов и они ведут себя иначе. У игрока есть 8 инструментов борьбы с ними. Например, оружие, которое позволяет очищать всю карту разом. Всё лопается, вжикает. Это вызывает приятные ощущения очищения, лёгкости, почти катарсиса. Залипательно. Помните, как в игре, где собираешь в ряд одинаковые шарики и они взрываются, и затем выкатываются новые? Это очень похоже.

Этот режим появился в самом конце разработки. Буквально за месяц до конца проекта. Он пришёл спонтанно, вместе с новым названием (до этого было выбрано название Shuttle). Я читал несколько книг о том, как правильно делать игры, и какие 100 правил стоит соблюдать при разработке, чтобы игра была годной. 

Одно из правил — фан, или получение удовольствия. Если игрок не получает фан — игра скучная. Фан получать сложно, и должна быть какая-то изюминка. И здесь она в том, что сначала всё просто, а потом — всё плохо.

Child mode

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

Возможность создания профайлов

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

Кому игра может зайти

Я не занимался исследованием целевой аудитории и не играл в игры последние 7 лет. Нонсенс. По результату опросника IARC, знаю, что Buran-19 рассчитана на детей от трёх лет. И надеюсь, что она обладает достаточным уровнем эстетики, чтобы понравиться и взрослым.

Возможно, она придётся по нраву тем, кто любит игры, которыми я вдохновлялся:

  • Homeworld — тактическая космическая стратегия, в которой ведутся боевые действия. Я в неё, наверное, играл лет в 11. Она меня настолько впечатлила, что, можно сказать, «inspired me». Это было как раз то космические, что я никогда больше в жизни-то и не видел. Я до сих пор помню её!
  • Limbo —  survival horror, где мальчик в мрачной атмосфере пытается найти сестру. Она меня поразила своей механикой и эстетикой, вдохновила меня тем, что использует просто движок Box2D, и на libGDX можно сделать более-менее то же самое.
  • DISTRANT — бродилка в жанре психологического хоррора, где ты решаешь пазлы. Всё сделано в пиксель-арте. Её создал один финн вместе со своей женой. Меня очень воодушевило, что у этой не самой сложной игры на libGDX (если я не ошибся) миллион скачиваний.

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

Этапы разработки

Есть два пути в разработке: «беру и делаю» и условно правильный. Сначала я пошёл по первому.

Мой опыт «беру и делаю»

Всё началось с того, что на учебном модуле по разработке игр на Android преподаватель Алексей Кутепов предложил делать аркаду по типу арканоида. Там в нижней части экрана кораблик, на него сверху летит космос, появляются враги и ты стреляешь в них пульками. На этом примере Алексей хотел показать, как изнутри устроены игры и познакомить нас с опенсорсным Java-фреймворком libGDX.

Тогда я только примерно понимал, как делаются игры. Знал, что есть программисты и художники. Есть мультипликация, сменяющиеся кадры. Из-за оптических обманов и несовершенства глаза мы воспринимаем более 24 кадров в минуту как интегральную величину и видим движение. Мне было интересно разобраться, как это всё программировать — курс оказался в нужное время и в нужном месте.

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

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

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

Определение коллизий. Коллизия — столкновение предметов и производство результата столкновения. Там возможна факториальная сложность, потому что каждый объект может взаимодействовать с каждым. Классический пример, для понимания детекции коллизий — заставка на Windows с пузырями, которые меняют цвет от столкновений. Когда есть 1000 пузырей, которые могут взаимодействовать друг с другом, то, по сути, нужно каждый из них проверить на то, а нет ли сейчас взаимодействия с другими 999 пузырями. Для этого есть разные алгоритмы, с которыми мы не знакомились. Наш детектор коллизий — это бесконечный цикл fori по всем объектам :) 

Asset-менеджеры. Есть целые классы, которые позволяют работать с ассетами: звуками, картинками, фонтами. В игре выходит, что всегда виртуально рисуется одна здоровенная картинка, обрезанная в нужных местах. Эту картинку — TextureAtlas, надо формировать из отдельных спрайтов. И тогда в графическом процессоре нет бесконечно переключения контекста, игра не тупит, ресурсы не тратятся. Как это организовать — задача интересная, особенно для 3D игр. В 2D достаточно соблюдать некоторые базовые принципы и их потом проверить в игровом режиме.

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

Обучаясь, я накидывал всё, что в голову взбредёт. Почувствовал на себе минусы разработки без фиксации фич:

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

Мой опыт «как правильно»

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

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

Первая документация, когда игра ещё называлась Shuttle, заняла 29 страниц. Накидали за вечер: замечания, игра, игрок, монстры, препятствия, список фичей, дизайн, GUI. Кому интересно — документ можно глянуть. Только он не поддерживался в актуальном состоянии, там первоначальные мысли. 

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

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

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

Ещё доказательство, что «бюрократия» таки важна

«О, давайте сделаем игру, будет круто!» — не работает. Во время модуля по разработке игр мы группой думали создать свой проект. Собрались всемером в отдельном чатике под названием Project Janus и решили делать игру. 

Было 7 идей для голосования. Победила игра вроде популярной сетевой agar.io, где бактерия собирает другие бактерии и растёт. Решили делать подобную, но с атомом, который присоединяет другие атомы и вырастает до Вселенной. Но мы спеклись — все без опыта, никто не умеет работать в команде. И не было драйвера — только идея. Я предлагал сделать свой «кораблик», но никто не согласился. 

Как сделаю в следующий раз

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

  1. Анализ рынка и идея. Что первично, наверное, зависит от типа игры. Если это коммерческая движуха, то сначала маркетинговое исследование, а потом идея. 
  2. Анализ ресурсов. Теперь нужно обсудить плюсы, минусы, корнер-кейсы, сложности идеи и понять сроки реализации в зависимости от ресурсов. Проанализировать себя или команду. Готовы ли все, например, год по 5 часов в день хреначить. Если готовы — идём.
  3. Написать документацию и зафиксировать план работ. Для игр — это высокоуровневый документ, где отражаются основные концептуальные вещи: количество уровней и графических элементов, модули и компоненты, как это будет изображено в виде окон, какие будут элементы управления, персонажи, как они будут с друг другом взаимодействовать, какие будут эффекты, когда они будут появляться. Это нужно, чтобы задачу потом декомпозировать и покрывать документацией каждую маленькую её часть. Без документации непонятно, что делать и с чего начинать.
  4. Разделение на команды.
  5. Реализация и тестирование.

Конечно, во время waterfall-а можно умереть, и не довести до конца даже дизайн. Но только так будет возможна работа в команде и достижение результата. Ведь в одиночку можно заниматься проектом хоть 6-8 часов в день, но внизу показать общий прогресс-бар, то он сдвинется всего на миллиметр. Команда делает гораздо больше.

Использованные технологии

Java. Почему? Потому что всё началось с моего обучения на факультете Java.

libGDX. Почему? Там находишься недалеко от железа. Изучать нюансы важно не на программе, которая позволяет накидывать высокоуровневые объекты и быстро что-то создавать. Чтобы глубоко разобраться, нужно начинать с самого дна. Может, даже стоит прочитать книгу по OpenGL и понять, как рисуются все эти трапеции, треугольники. Как там происходит с точки зрения математики. OpenGL — чистая математика и работа с полигонами на низком уровне. Хотя для прототипирования такой метод уже не подойдёт. Времени уходит жуть как много.

libGDX — первая прослойка после самого низкого уровня. В нём, конечно, есть классы, которые позволяют инкапсулировать взаимодействие с OpenGL и помогают не задумываться о том, как всё рисуется (есть batcher-классы). Ты, грубо говоря, через классы имеешь доступ ко всем нужным функциям, и у тебя есть различные утильные классы, которые математику считают, рисуют фигуры, ты сразу можешь пользоваться текстурами, как объектом в Java, ну и так далее. Не надо задумываться, что происходит ниже. А если хочешь — идёшь и читаешь код. И это самое ценное.

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

Особенность libGDX в том, что ты не можешь, как в Unity, использовать готовую среду, куда ты накидываешь ассеты, прописываешь взаимодействия. В libGDX есть зародышевые вещи для отрисовки интерфейсов. Это называется скины (Skin). Есть классы, которые работают со скинами. Есть небольшие утилиты вдобавок к libGDX. SkinComposer, в которой можно набрасывать свои картинки, помогают формировать окошки, полосы прокрутки, всякие чекбоксы и так далее — одна из таких вспомогательных утилит.

Также libGDX — кроссплатформенный фреймворк. Можно писать на Java и запускать продукт на десктопе, на Android, iOS, в браузере. Всё должно работать из коробочки.

Интересные (?) решения

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

Своя система частиц

Система частиц — инструмент, который позволяет делать эффекты. Например, взрыв интересной конфигурации, огонь, какие-то метаморфозы. Как это работает? У тебя в основании графики лежит частица — particle. И суть в том, что она рисуется бесконечное число раз и ты создаёшь законы, по которым её нужно рисовать.

Например, взрыв — одна частица, которой ты говоришь: «Нарисуйся в центре плотно, а потом отходи лучами или по уравнению кривых линий на рандомную величину отступа». Визуально это получается круто. И в итоге тебе в ассетах нужно иметь только одну частицу 16 на 16 пикселей. Либо несколько частиц. С помощью её бесконечного рисования получается красивый эффект. Вот популярный пример из интернета:

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

Вот решения моих задач с помощью системы частиц.

Лучи захвата и лазеры

Эффекты уничтожения аномалий

Огонь из турбин

Кстати, звёздное небо и все пункты выше — это всё одна и та же частица 16х16. И это прекрасно.

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

ParticleEmitter.java

package com.buran.game.effects.particle;
 
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import com.buran.game.conf.PaintConstants;
import com.buran.game.utils.Assets;
import com.buran.game.utils.pool.AbstractPoolable;
import com.buran.game.utils.pool.ObjectPool;
 
import lombok.Getter;
import lombok.Setter;
 
 
/**
* Created by FlameXander on 02/07/2017.
*/
 
public class ParticleEmitter extends ObjectPool<ParticleEmitter.Particle> {
   private TextureRegion particleTexture;
   private ParticleEffectBuilder builder;
   private Vector2 tmp;
 
   public ParticleEmitter() {
       this(Particle.class);
       this.particleTexture = Assets.getInstance().getAtlas().findRegion(PaintConstants.STAR16_REGION);
       this.builder = new ParticleEffectBuilder(this);
       this.tmp = new Vector2(0, 0);
   }
 
   private ParticleEmitter(Class<? extends Particle> clazz) {
       super(clazz);
   }
 
   @Override
   protected Particle newObject() {
       return new Particle();
   }
 
   public void render(SpriteBatch batch) {
       batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
       for (int i = 0; i < activeList.size(); i++) {
           Particle particle = activeList.get(i);
           batch.setColor(particle.getCurrentR(), particle.getCurrentG(), particle.getCurrentB(), particle.getCurrentA());
           activeList.get(i).render(batch);
       }
       batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
       batch.setColor(1.0f, 1.0f, 1.0f, 1.0f);
   }
 
   public void setup(float x, float y, float vx, float vy, float duration, float startSize, float endSize, float startR, float startG, float startB, float startA, float endR, float endG, float endB, float endA) {
       getActiveElement().init(x, y, vx, vy, duration, startSize, endSize, startR, startG, startB, startA, startR, startG, startB, startA);
   }
 
   public void setupFromPointToPoint(float x1, float y1, float x2, float y2, float size1, float size2, float r1, float g1, float b1, float a1, float r2, float g2, float b2, float a2) {
       float dst = Vector2.dst(x1, y1, x2, y2) / 10.0f;
       tmp.set(x2, y2);
       tmp.sub(x1, y1);
       tmp.nor();
       tmp.scl(10.0f);
       for (int i = 0; i < (int) dst; i++) {
           float ox = x1 + i * tmp.x;
           float oy = y1 + i * tmp.y;
           getActiveElement().init(ox + MathUtils.random(-10, 10), oy + MathUtils.random(-10, 10), 0, 0, 0.1f, size1, size2, r1, g1, b1, a1, r2, g2, b2, a2);
       }
   }
 
   public void update(float dt) {
       for (int i = 0; i < activeList.size(); i++) {
           activeList.get(i).update(dt);
       }
       checkPool();
   }
 
   public ParticleEffectBuilder getBuilder() {
       return builder;
   }
 
   public class Particle extends AbstractPoolable {
       private float time, duration;
       private float startSize, endSize;
       @Getter
       @Setter
       private float currentSize;
       private float startR, startG, startB, startA;
       @Getter
       @Setter
       private float currentR, currentG, currentB, currentA;
       private float endR, endG, endB, endA;
 
       public Particle() {
           this.position = new Vector2(0, 0);
           this.velocity = new Vector2(0, 0);
           this.startSize = 1.0f;
           this.endSize = 1.0f;
       }
 
       public void init(float x, float y, float vx, float vy, float duration, float startSize, float endSize, float startR, float startG, float startB, float startA, float endR, float endG, float endB, float endA) {
           init(x, y);
           this.velocity.x = vx;
           this.velocity.y = vy;
           this.startR = startR;
           this.startG = startG;
           this.startB = startB;
           this.startA = startA;
           this.endR = endR;
           this.endG = endG;
           this.endB = endB;
           this.endA = endA;
           this.time = 0.0f;
           this.duration = duration;
           this.startSize = startSize;
           this.endSize = endSize;
           this.active = true;
           calculateCurrentValues();
       }
 
       @Override
       public void init(float x, float y) {
           this.position.x = x;
           this.position.y = y;
       }
 
       private void calculateCurrentValues() {
           float percentage = time / duration;
           currentSize = MathUtils.lerp(startSize, endSize, percentage);
           currentR = MathUtils.lerp(startR, endR, percentage);
           currentG = MathUtils.lerp(startG, endG, percentage);
           currentB = MathUtils.lerp(startB, endB, percentage);
           currentA = MathUtils.lerp(startA, endA, percentage);
       }
 
       @Override
       public void basicUpdate(float dt) {
           time += dt;
           calculateCurrentValues();
           position.mulAdd(velocity, dt);
           if (time > duration) {
               destroy();
           }
       }
 
       @Override
       public void update(float dt) {
           basicUpdate(dt);
       }
 
       @Override
       public void destroy() {
           active = false;
       }
 
       @Override
       public Vector2 getPosition() {
           return position;
       }
 
       @Override
       public boolean isActive() {
           return active;
       }
 
       @Override
       public void render(SpriteBatch batch) {
           basicRender(batch);
       }
 
       @Override
       public void basicRender(SpriteBatch batch) {
           batch.draw(
                   particleTexture,
                   this.getPosition().x - 8, this.getPosition().y - 8,
                   8, 8,
                   16, 16,
                   this.getCurrentSize(), this.getCurrentSize(),
                   0
           );
       }
   }
}

ParticleEffectBuilder.java

package com.buran.game.effects.particle;
 
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
 
/**
* @author soloyes on 30/07/18.
*/
 
public class ParticleEffectBuilder {
   private ParticleEmitter particleEmitter;
 
   public ParticleEffectBuilder(ParticleEmitter particleEmitter) {
       this.particleEmitter = particleEmitter;
   }
 
   public void buildDust(float x, float y, float dxy, int count) {
       for (int j = 0; j < count; j++) {
           particleEmitter.setup(x, y, MathUtils.random(-dxy, dxy), MathUtils.random(-dxy, dxy), 1f, 6.0f, 1.0f, 0.17f, 0.17f, 0.17f, 1, 0, 0, 0, 0);
       }
   }
 
   public void buildBuranEngineFire(Vector2 position, float angle, float radius, float level, float factor) {
       particleEmitter.setup(position.x - radius * (float) Math.cos(Math.toRadians(angle)), position.y - radius * (float) Math.sin(Math.toRadians(angle)), MathUtils.random(-90, 90), MathUtils.random(-90, 90), 0.3f + level * 0.1f, 4.0f + level * 1.5f, 0.4f, 1, 0.6f - level * 0.15f, 0, 1, 1, 0, 0, 0.5f);
       if (MathUtils.random(0, 100) < /*FPS hack*/20 / factor/*FPS hack*/) {
           for (int i = 0; i < level + 1; i++) {
               particleEmitter.setup(position.x - radius * (float) Math.cos(Math.toRadians(angle)), position.y - radius * (float) Math.sin(Math.toRadians(angle)), MathUtils.random(-180, 180), MathUtils.random(-180, 180), 0.3f, 8.0f + level * 2, 0.0f, 1, 0.4f, 0, 1, 0, 0, 0, 0.2f);
           }
       }
 
   }
 
   public void buildBuranFrontalTurboFire(Vector2 position, float angle, float radius, float randomPositionNoise) {
       particleEmitter.setup(position.x + radius * (float) Math.cos(Math.toRadians(angle)), position.y + radius * (float) Math.sin(Math.toRadians(angle)), MathUtils.random(-randomPositionNoise, randomPositionNoise), MathUtils.random(-randomPositionNoise, randomPositionNoise), 5.9f, 16.0f, 15.0f, 1, 0.6f, 0, 1, 0, 0, 0, 0.0f);
   }
 
   public void buildBuranLowLevelEngineFire(Vector2 position, float angle, float radius) {
       particleEmitter.setup(position.x - radius * (float) Math.cos(Math.toRadians(angle)), position.y - radius * (float) Math.sin(Math.toRadians(angle)), MathUtils.random(-90, 90), MathUtils.random(-90, 90), 0.2f, 3.0f, 2.4f, 0.2f, 0.2f, 1.0f, 0.4f, 0, 0, 0, 0.2f);
   }
 
   public void buildBuranShield(Vector2 position, float angle, float radius, int halfConeAngle, float r, float g, float b) {
       for (int i = -halfConeAngle; i <= halfConeAngle; i += 10) {
           particleEmitter.setup(position.x + radius * (float) Math.cos(Math.toRadians(angle + i)), position.y + radius * (float) Math.sin(Math.toRadians(angle + i)), MathUtils.random(-5, 5), MathUtils.random(-5, 5), 0.15f, 3.0f, 4.0f, r, g, b, 0.1f, 0, 0, 0, 0.0f);
       }
   }
 
   public void buildFuelDestroyFlame(Vector2 position) {
       for (int j = 0; j < 20; j++) {
           particleEmitter.setup(
                   position.x, position.y,
                   MathUtils.random(-70, 70), MathUtils.random(-100, 100), 3f, 10, 0,
                   0.4f, 0.4f, 0.4f, 0.2f,
                   0.4f, 0.4f, 0.4f, 0.0f
           );
           particleEmitter.setup(
                   position.x, position.y,
                   MathUtils.random(-60, 60), MathUtils.random(-100, 100), 2f, 10, 0,
                   1.0f, 0.4f, 0.0f, 0.7f,
                   1.0f, 0.0f, 0.0f, 0.0f
           );
       }
   }
}

Решения с эффектами

У меня есть отдельный пакет с эффектами — для работы со звуком, текстом, движением (объекты по-разному ведут себя). Есть утильный класс осцилляторов, которые моргают, меняют пропорцию или размеры. 

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

PrettySound.java

package com.buran.game.effects;
 
import java.util.LinkedList;
 
/**
* @author soloyes on 11/7/18.
*/
 
public class PrettySound {
   private static LinkedList<PrettySound> list = new LinkedList<PrettySound>();
   private BoomBox boomBox;
   private boolean flag;
   private float dt;
   private float delay;
 
   private PrettySound(float delay) {
       this.boomBox = new BoomBox();
       this.delay = delay;
   }
 
   public static PrettySound getPretty(float delay) {
       PrettySound p = new PrettySound(delay);
       list.add(p);
       return p;
   }
 
   public void playSound(String sound) {
       if (flag) {
           boomBox.playSound(sound);
           flag = false;
       }
   }
 
   public static void update(float dt) {
       for (int i = 0; i < list.size(); i++) {
           list.get(i).dt += dt;
           if (list.get(i).dt >= list.get(i).delay) {
               list.get(i).dt = 0.0f;
               list.get(i).flag = true;
           }
       }
   }
}

Есть классы, которые занимаются тряской экрана, и это работа с системой координат OpenGL. Есть классы, которые отвечают за вибрацию телефона.

Использование MVC шаблона проектирования при разработке UI

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

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

Вот как я храню профили и результаты:

[
 {
   "type": "PROFILE",
   "username": "Player",
   "preferences": {
     "notification": true,
     "soundVolume": 1.0,
     "effects": true,
     "effectsVolume": 0.5,
     "music": true,
     "musicVolume": 0.5,
     "shader": true,
     "child": false,
     "level": 2,
     "vibration": 2,
     "joystick": false,
     "joystick_mode": 0,
     "joystickColor": true,
     "runTimes": 26
   },
   "active": false,
   "id": "acf54856-76d7-49da-ab10-c2224fc872de",
   "resultSet": [
     {
       "date": 1607356827393,
       "level": "LOW",
       "current": {
         "effectiveness": 12,
         "score": 0,
         "time": 2,
         "deathModeTime": 0,
         "dmgDone": 0,
         "dmgReceived": 0,
         "enemiesDestroyed": 0,
         "minedAsteroids": 0,
         "pickUpItems": 0,
         "usedItems": 0,
         "astronautsTaken": 0,
         "levelAchieved": 0
       },
       "previous": {
         "effectiveness": 12,
         "score": 0,
         "time": 1,
         "deathModeTime": 0,
         "dmgDone": 0,
         "dmgReceived": 0,
         "enemiesDestroyed": 0,
         "minedAsteroids": 0,
         "pickUpItems": 0,
         "usedItems": 0,
         "astronautsTaken": 0,
         "levelAchieved": 0
       },
       "child": false
     },
     {
       "date": 1607338683914,
       "level": "DEBUG",
       "current": {
         "effectiveness": 28,
         "score": -51930,
         "time": 52,
         "deathModeTime": 0,
         "dmgDone": 18,
         "dmgReceived": 31,
         "enemiesDestroyed": 9,
         "minedAsteroids": 31,
         "pickUpItems": 10,
         "usedItems": 1,
         "astronautsTaken": 7,
         "levelAchieved": 8
       },
       "previous": {
         "effectiveness": 44,
         "score": 792201,
         "time": 304,
         "deathModeTime": 0,
         "dmgDone": 190,
         "dmgReceived": 303,
         "enemiesDestroyed": 123,
         "minedAsteroids"
                                                    

16 дек 20, 14:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как написать деловое письмо на английском

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

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

Общий стиль делового письма

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

Чтобы письмо выглядело вежливо, часто используют модальные глаголы. К примеру, вместо фразы «Please write me an answer» (пожалуйста, пришлите мне ответ) можно использовать «I would be grateful if you could write me an answer» (Я был бы рад, если бы вы прислали мне ответ).

В деловом стиле нельзя использовать сленговые фразы и жаргонные выражения. Также не стоит использовать слова с сильным эмоциональным фоном — terrible (ужасный), marvelous (удивительный), rubbish (чушь) и подобные.

Сокращения также не допускаются — все словосочетания нужно использовать только полностью.

  • Wouldn't — would not
  • I’m — I am
  • I’d like to — I would like to

Не стоит использовать и фразовые глаголы. Лучше заменить их синонимами. Например, вместо «give up» — «surrender», вместо «put together» — «compose». Фразовые глаголы — это прерогатива разговорного стиля, в деловом они неуместны.     

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

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

Обращение в деловом письме

Приветствие — первая часть письма, по которой адресат составит свое впечатление о вас. Стоит сделать лишь одну ошибку в приветствии, и эффективность письма упадет почти до нуля.

Dear Sir or Madam

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

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

Dear Mr Black (Mrs Black, Ms Black)

Стандартное обращение к адресату. Используется в большинстве деловых писем:

  • Mr — обращение к мужчине;
  • Mrs — к замужней женщине;
  • Ms — к женщине без обозначения семейного положения;
  • Miss — к незамужней женщине.

Специалисты EnglishDom не рекомендуют использовать обращение Miss. В деловых кругах оно считается полукорректным. Лучше выбрать нейтральный вариант Ms — так вы точно не ошибетесь.

Обращение нужно использовать только в сокращенном виде. Не пишите Mister или Mistress полностью.

В обращении по фамилии допустимо указать имя: Mr John Black. Но в переписке между незнакомыми или малознакомыми деловыми партнерами вполне можно ограничиться только фамилией.

Если у адресата есть ученая степень, в обращении рекомендуем указать ее вместо Mr и Ms:

Dear Dr. Black

Dear Prof. Black.

Dear John

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

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

Dear Valued Customer

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

Также допустимо применять его, когда вы хотите подчеркнуть определенную должность человека: Mr Editor-in-Chief.

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

Пунктуация и орфография в обращении

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

В британской версии после Mr или Ms знаки препинания не ставят, но в конце обращения обязательно нужна запятая:

Mr Black,

Американский английский требует точку после Mr, Mrs и Ms, а в конце обращения — двоеточие.

Mr. Black:

Тем не менее, допустимо вообще не использовать пунктуацию в обращении. Этот вариант очень популярен в онлайн-переписке.

Mr Black

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

Тело письма

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

  • I am writing to enquire about… (Я пишу Вам, чтобы выяснить о...)
  • In reply to your request… (В ответ на Ваш запрос...)
  • Further to our conversation… (В продолжение нашего разговора)
  • I would be grateful if… (Я буду очень рад, если)
  • I received your address from… and I would like to… (Мне дал Ваш адрес… и я бы хотел...)
  • Thank you for your email from 14 May… (Спасибо за Ваше письмо от 14 мая)

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

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

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

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

Не пытайтесь решить в одном письме сразу несколько разноплановых вопросов. Руководствуйтесь правилом: «Одно письмо — один запрос». Тем не менее, вы можете задать несколько связанных вопросов, которые касаются одной темы.

Если главная мысль поместилась в один абзац — не пытайтесь расширить его без особой надобности.

В деловом письме нужно все писать только по делу. Такой вот каламбур.

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

  • Looking forward to your answer. (С нетерпением жду ответа)
  • I look forward to your reply. (Жду Вашего ответа.)
  • If you require more information, please contact me. (Если Вам нужно больше информации, напишите мне об этом.)
  • Please respond at your earliest convenience. (Прошу ответить как можно быстрее.)
  • Feel free to contact me by email. (Вы можете свободно связаться со мной по электронной почте.)
  • Thank you for taking it into consideration. (Спасибо, что приняли это во внимание.)
  • I would appreciate your immediate attention to this matter. (Буду признателен за Ваш скорый ответ).

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

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

  • Enclosed you will find… (К письму прилагается...)
  • Attached to the letter is… (В приложении к письму есть...)
  • Please find attached… (Пожалуйста, найдите в приложении...)

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

Yours faithfully (искренне Ваш) — эту фразу нужно использовать, если вы с адресатом не знакомы. Также это окончание следует писать, если в обращении вы писали «Dear Sir or Madam».  

Yours sincerely (искренне Ваш) — используйте фразу, если адресат вам известен, а он знает вас.

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

Best wishes

Kind regards

Warmest regards

Все 3 фразы переводятся как «с наилучшими пожеланиями».

Осталось написать только свое полное имя — и письмо завершено.

Пример правильно составленного делового письма:

Dear Mr Black

 

Further to our conversation about 3D designer vacancy in Liberty LTD I am sending you my CV attached to this letter.

 

I have a 5 year experience of working as Lead 3D designer and so I think my acquired skills would allow me to make a significant contribution to your company.

 

Looking forward to your answer.

 

Yours sincerely,

Jack White

Дорогой мистер Блэк,

 

В продолжение нашего разговора о вакансии 3D-дизайнера в компании «Либерти» я отправляю Вам свое резюме, прикрепленное к этому письму.

 

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

 

Искренне Ваш,

Джек Уайт.

Используйте эти правила и советы при ведении деловой переписки, и ваши письма будут эффективными по максимуму.

Бонусы для читателей

Ловите бесплатный доступ на три месяца изучения английского на онлайн-курсах EnglishDom до 30 мая 2018 года.

Будем рады видеть вас на индивидуальных занятиях курса «Английский для IT-специалистов». Пройдите бесплатный вводный урок и получите комплексную обратную связь по своему уровню знаний, затем выбирайте преподавателя и программу обучения себе по душе!

Успехов вам!


8 май 18, 16:19
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Новый факультатив от KODE в GeekUniversity уже стартовал!

Совсем недавно на факультете Android-разработки GeekUniversity открылся новый факультатив по языку Kotlin. Его подготовила компания KODE — специалисты, создающие крутейшие мобильные и веб-приложения, а также IoT-кейсы. Мы задали главные вопросы о факультативе комьюнити-менеджеру Марии Кругловой и Илье Некрасову, разработчику программы и ее спикеру.

— Как будет называться ваш курс и чему он будет посвящен?

М.К.: Мы решили не мудрить с названием, максимально точно отразив в нем суть факультатива — «Продвинутые операторы Kotlin». В программу вошли многочисленные кейсы, благодаря которым студенты смогут изучить синтаксис и механизмы языка и понять, как упростить практическую часть разработки.

И.Н.: Даже не погруженные в Android-разработку люди из мира IT в курсе, что такое Kotlin и что знать его считается хорошим тоном в профессии. Поэтому перед нами стояла задача сделать «показательный» курс, который продемонстрирует, для решения каких задач используется язык.

— На какую аудиторию рассчитан факультатив? Насколько подготовленными должны быть студенты?

И.Н.: При разработке программы у меня была задача сделать материал понятным для всех потенциальных слушателей. Но слово «продвинутые» фигурирует в названии не просто так. Надо понимать, что изучать Kotlin в отрыве от Java и без знаний о мобильной разработке — непростое занятие. Основной акцент сделан на практическую часть, поэтому базовым вещам мы уделяем минимум времени. Так что начальные знания и навыки по Java и Kotlin очень желательны, но не обязательны. Если вы ими не владеете, это не помешает вам понять кейсы. Но все преимущества Kotlin можно познать только по приобретении опыта.

— Сколько длится факультатив?

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

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

— Насколько уникален этот курс?

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

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

— Расскажите подробнее про формат занятий.

И.Н.: Несмотря на то что курс практический, заданий для самостоятельной работы мы давать студентам не будем. Причина простая — хочется, чтобы слушатели не выполняли типовые задачи, не повторяли символ в символ код на занятиях, а применяли информацию в своих проектах. А у студентов GeekUniversity их предостаточно. Если будут вопросы — готов помогать в режиме 24/7. Мне самому куда интереснее решать актуальные задачи, чем ретранслировать один и тот же код.

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

— Чего лично вы ждете от стартующего факультатива?

М.К.: Для меня интересно само сотрудничество с GeekBrains и GeekUniversity — одними из лидеров интернет-образования в области IT. Хочу получить обратную связь от студентов, «повариться» в этой кухне, чтобы в дальнейшем продолжить совместную работу на качественно новом уровне.

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

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

— И главный вопрос — кто и как может попасть на факультатив?

М.К.: Доступ к нашему факультативу получат все студенты направления Android-разработки уже с текущего потока. Подробнее о времени можно узнать на официальном сайте GeekUniversity и у кураторов. Приглашаем всех желающих — скучно точно не будет!

Пройти обучение

11 сен 19, 22:33
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как сделать красивый текст в Photoshop с помощью глифов

Некоторые шрифты можно сделать более броскими с помощью глифов и элементов, которые в английском языке называются swashes. Буквально это переводится как «плескаться» — но, разумеется, к водным процедурам это не имеет отношения.

Начертание swash — варианты букв с украшениями. Это могут быть завитки, необычные хвостики и другие элементы, которые делают символы интереснее. Глифы и swashes — необязательная добавка, они есть не для всех шрифтов. Но если есть, то они будут соответствовать общему стилю и, соответственно, впишутся органично.

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

На сайте Envato Tuts+ вышла инструкция, как использовать все эти элементы. Мы её для вас перевели.

Что нужно для использования глифов в Photoshop

Разберёмся на примере шрифта Austria. К слову, если вы ищете необычные шрифты с интересными украшениями и глифами, вам будут полезны площадки Envato Elements и GraphicRiver. Там хранятся материалы для проектов — шаблоны, шрифты, иконки, логотипы и так далее. Первая работает по подписке, вторая — в формате стока.

Как найти глифы в Photoshop

Для начала создайте новый файл. Затем перейдите к Photoshop Glyphs: Window > Glyphs. По умолчанию будет отображаться последний использованный шрифт.

На панели будут показаны отдельные символы. Несколько советов по работе:

  • Если хотите изменить шрифт, примерите опцию «Выбрать семейство шрифтов» (Set Font Family).
  • В разделе категорий шрифта (Set Font Category) вы найдёте глифы, относящиеся к конкретному шрифту.
  • Чтобы выбрать стиль — курсив, тонкий, обычный, полужирный, — используйте соответствующий раздел (Set Font Style).
  • Ползунок масштаба (Glyphs zoom slider) и преобразователь (Glyphs scaler) помогут увеличить и уменьшить глифы, чтобы рассмотреть их в разных размерах.

Как добавить украшения шрифта в Photoshop

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

На панели глифов можно выбрать Alternates for Selection в разделе категорий шрифта (Set Font Category). В этом случае вы увидите варианты украшений для выбранной вами буквы. Чтобы применить вариант, дважды кликните по нему.

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

Вот как это работает: в словосочетании Modern Mountain использованы разные варианты заглавной M и строчной n.

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

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

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

Самоизоляция заканчивается — самое время освоить новую профессию, чтобы начать карьеру мечты и уверенно смотреть в будущее! Мы хотим помочь вам и с 1 по 31 августа 2020 г. дарим скидку 40% почти на все программы обучения GeekBrains. Будьте здоровы и успешны! :)

 

 


26 авг 20, 23:59
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Интернет вещей — новый факультет GeekUniversity

Интернет вещей, или IoT, 一 пожалуй, одна из наиболее привлекательных областей IT за пределами привычного цифрового пространства. Она востребована на уровне частного использования (умный дом), в промышленности (автоматизированные линии сборки, сельское хозяйство, нефтегазовая отрасль и металлургия), в городской среде, и, конечно же, в космосе и оборонной промышленности. Многие стартапы, организующие взаимодействие машин с полезной целью без участия человека, оказываются востребованы. Однако, если взглянуть на рынок, специалист по IoT 一 далеко не самая популярная специальность у соискателей. Причина проста 一 быть одновременно хорошим инженером и программистом сложно, а учебной литературы и подходящих ресурсов очень мало.

Именно поэтому у нас в GeekBrains стартует новый курс «Интернет вещей». За 18 месяцев вы получите знания в схемотехнике, программировании, научитесь работать с промышленными контроллерами, с головой погрузитесь в специфику профессии, наполните портфолио проектами и покинете курс готовым специалистом. 

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

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

Владимир: Вообще, объяснить полноценно, что такое интернет вещей, невозможно, потому что нет основополагающих границ. К примеру, стиральная машина 一 является ли она представителем IoT? Ведь внутри есть компьютер, который способен на основе полученных данных управлять работой множества датчиков, двигателей, преобразователей. Или телефон, который давно уже взаимодействует с любым устройством, имеющим доступ в интернет? А например, простой домашний звонок с возможностью управления по беспроводной сети, но при этом в отрыве от других устройств? Понятием «интернет вещей» можно объединить множество гаджетов и систем, разных по габаритам и сложности организации.

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

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

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

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

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

В.: Отмечу, что спрос в целом 一 высокий. Я живу в Краснодаре, вроде бы далеко от столицы, совсем не центр IT-индустрии, но даже у нас есть устойчивая потребность в такого рода специалистах. Что уж говорить про большие города центральной части России.

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

В.: Самое важное, чтобы у наших студентов был интерес к этой стороне IT. Чтобы они понимали, насколько творческой и многообразной может быть их специальность. Мы же, в свою очередь, постараемся дать тот объём знаний и навыков, чтобы они могли реализовать свои задумки, найти интересную работу и сделать первые шаги в профессии. А дальше 一 нет ничего невозможного.

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

 


14 янв 21, 15:59
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Почему нельзя пренебрегать охраной труда

Мы продолжаем публиковать материалы по мотивам выступлений на Open Space — бесплатном сентябрьском онлайн-мероприятии GeekBrains, где эксперты из разных областей поделились знаниями и профессиональным опытом в вебинарах и воркшопах. В этом посте — вебинар об охране труда и производственной безопасности, который провёл Михаил Лисов — преподаватель GeekBrains и руководитель проектов.

Что такое охрана труда и производственная безопасность

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

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

Охрана труда включает: 

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

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

Несоблюдение норм и последствия: катастрофа British Petroleum

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

Охрана труда и производственная безопасность помогают предотвратить страшные катастрофы с человеческими жертвами и пагубным влиянием на окружающую среду. Разберём, как соблюдение требований производственной безопасности и охраны труда могли бы предотвратить катастрофу. Возьмём пример из жизни: аварию на нефтяной платформе компании British Petroleum (BP) в Мексиканском заливе 22 апреля 2010 года.

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

Почему произошла авария на платформе? Я выделил шесть структурных проблем, которые допустила компания British Petroleum:

Самоуспокоение. У компании в Мексиканском заливе было больше 3 000 скважин, в которых время от времени происходили небольшие утечки нефти. Они были столь незначительными, что компания легко справлялась с этими проблемами. Возникло ощущение, что все всё знают и умеют. У British Petroleum даже не было плана на случай прорыва скважины на глубине 4,5 километров.

Легкомыслие. В погоне за объёмами добычи British Petroleum неоднократно нарушала требования к производству и правила. В 2006 году она даже столкнулась с экологической катастрофой — разливом 1 000 тонн нефти на почву в Арктике из-за коррозии трубопровода. Однако тогда всё удалось реанимировать. В 2007 году British Petroleum выставили штраф 60 миллионов долларов за другой разлив нефти. Сумма для компании была незначительной. Так что она привыкла: что бы ни происходило, со всем можно справиться.

Риск. Технологический процесс был недоработан: когда продумывали скважину глубиной 4,5 километра (сама она уходила в дно ещё на 1,5 километра), не учли, что она создаёт давление в 600 атмосфер. Это значит, если что-то пойдёт не так, нет сомнений — скважину прорвёт. Риски никто не просчитывал.

Нарушения процессов. British Petroleum сократила сроки бурения скважины с изначально требуемых 78 дней до 51, так что работа проходила в спешке. Один час отсрочки запуска стоил 41 000 долларов. Более того, руководство British Petroleum решило применять при бурении ту же технологию, что использовалась для мелководья. Компания также отказалась от дефектоскопии — финального обследования целостности конструкции перед началом эксплуатации.

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

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

Авария на платформе British Petroleum привела к трагедии. Начался пожар, который безуспешно тушили 36 часов. В итоге сама платформа затонула. Больше 5 миллионов баррелей нефти вылилось в открытый океан, образовав нефтяное пятно размером 12 тысяч квадратных километров — самолет летел над ним 2 часа.

Катастрофа обошлась British Petroleum в 53 миллиарда долларов. Но это всё не стоит того, что без вести пропали 11 человек и были ранены 17. Вот к чему привела гонка при строительстве и наплевательское отношение компании к производственной безопасности. 

Методы анализа рисков

Можно ли было предусмотреть потенциальные риски и предотвратить катастрофу? Конечно. К моменту строительства скважины все методики анализа рисков уже существовали.

Известные методики — HAZOP (определение факторов угрозы и проверка производственного объекта) и HAZID (распознавание рисков до начала проекта или на его ранней стадии). Скорее всего, примени British Petroleum хотя бы одну из них, катастрофы можно было бы избежать.

Я подробнее остановлюсь на другой методике — BOW-TIE, или «Галстук-бабочка». Это метод графического совмещения угроз, события и последствий. Чтобы его использовать, не нужно быть экспертом — требуется лишь опыт применения.

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

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

Но у него есть и недостатки. Это лишь качественный анализ: он не использует никаких количественных оценок. Значит, не получится просчитать, с какой вероятностью барьер сработает. Если происходит несколько событий, приходится рисовать диаграмму на каждое отдельно. «Галстук-бабочку» невозможно составить на совокупность происшествий.

Пример применения метода «Галстук-бабочка» для анализа катастрофы на платформе British Petroleum:

«Галстук-бабочку» можно составлять и для других, более обыденных событий:

Проведение анализа рисков помогло бы предотвратить ещё одну трагедию — пожар в клубе «Хромая лошадь» 5 декабря 2009 года в Перми. Тогда погибли 156 человек из 300 присутствовавших.

Роль HR в охране труда

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

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

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

Я работал в HR табачной компании. На её фабрике трудились 700 человек. Когда мы впервые провели тренировочную эвакуацию, результаты были плачевными. После этого в течение года 2 раза в месяц мы проводили незапланированные тренировочные эвакуации. После каждой итерации собирались рабочей группой и анализировали ошибки. Через год фабрика эвакуировалась из здания за 12 минут — это отличный показатель.

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

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

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

Современные тенденции в охране труда

Существует два подхода: «Безопасность-1» и «Безопасность-2». В России распространена первая система. Она заточена на анализ уже произошедших негативных событий. Человек рассматривается как источник ошибок.

Во многом именно поэтому мир стремится к системе «Безопасность-2». Она анализирует не только ошибки, но и то, что позволяет действовать благополучно, то есть задаёт вопрос: «А что мы делаем правильно?» Человек здесь не источник опасности, а главный фактор обеспечения безопасности. Предполагается, что научить не ошибаться — нельзя, но можно помочь человеку находить решения в нестандартных ситуациях, например, с помощью тренажёров рабочих процессов.

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

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

Несоблюдение требований охраны труда и производственной безопасности привели ко многим мировым катастрофам: аварии на АЭС «Фукусима-1», аварии на Саяно-Шушенской ГЭС, крушению танкера и выбросу нефти из танкера «Эксон Валдиз», аварии на Чернобыльской АЭС...

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

 


16 фев 21, 12:49
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 1 по 10 | всего: 1491

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru