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

Блог

Облегчаем жизнь Android-разработчика c помощью Tools

Tools — это инструмент для работы с XML-файлами в Android. Он поддерживает множество полезных атрибутов, особенно при вёрстке экранов. Чтобы воспользоваться его атрибутами, в файле XML нужно прописать namespace (пространство имен) этого инструмента в корневом элементе, по аналогии с примерами ниже:

И просто добавляете такую строку:

Получается так:

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

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

А вот если заменить android на tools, то во время вёрстки текст будет виден, и вы сможете посмотреть, как он выглядит. Но в финальную сборку этот атрибут уже не попадёт, и имя будет отображаться только тогда, когда оно загрузится с сервера. Удобно, не правда ли?

Давайте посмотрим, какие ещё возможности предоставляет инструмент tools.

 

Заменяем android на tools для любого атрибута

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

 

Используем tools в работе со списками

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

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

Более того, в качестве элемента списка вы можете выбрать и другой шаблон:

Атрибут

Значение

@tools:sample/full_names

Случайные имя и фамилия

@tools:sample/first_names

Случайные имена

@tools:sample/last_names

Случайные фамилии

@tools:sample/cities

Случайные названия городов

@tools:sample/us_zipcodes

Случайные почтовые индексы

@tools:sample/us_phones

Случайные телефонные номера формата (800) 555-ХХХХ

@tools:sample/lorem

Длинный текст-заглушка

@tools:sample/avatars

Аватарки

@tools:sample/backgrounds/scenic

Задний фон

@tools:sample/date/mmddyy

Случайные даты в разном формате

@tools:sample/date/hhmm

Случайные даты в разном формате

@tools:sample/date/hhmmss

Случайные даты в разном формате

@tools:sample/date/day_of_week

Случайные даты в разном формате

@tools:sample/date/ddmmyy

Случайные даты в разном формате

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

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

 

Отображаем фрагмент макета

Если вы хотите увидеть фрагмент (fragment) внутри активити (activity), то для этого у tools есть отдельный атрибут. Без него у вас будет просто серое поле на месте фрагмента:

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

 

Проверяем отображение Navigation Drawer

Если вы используете Drawer в вашем приложении, неплохо было бы знать, как он смотрится на экране вёрстки, потому что он не отображается там по умолчанию. Тут нам поможет tools:openDrawer и его параметры left/right/end/start в зависимости от того, с какой стороны должен открываться Drawer:

 

 

 

Создаём собственные шаблоны 

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

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

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

Атрибутов есть ещё огромное количество. Как говорилось выше — попробуйте заменить android на tools. Хотя есть и специфические. Подробнее можно почитать в официальной документации Android.

 


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

«Не понимал слов в описании вакансий — значит, пора учиться»

Про платёжные системы, магазин-бар и непонятные слова в описаниях вакансий

По образованию я экономист, в 2015 году  окончил университет по специальности «Мировая экономика» со специализацией«Внешнеэкономическая деятельность». Дипломная работа у меня была интересная — я посвятил её платёжным системам, в частности, их функционированию на территории непризнанных государств вроде ДНР и ЛНР, это было исследование интересной и злободневной темы.

Эту тему я планировал развивать в дальнейших научных работах в аспирантуре, а впоследствии углубиться в её исследование и написать по ней кандидатскую. Чтобы глубже изучить вопрос, я подал документы в магистратуру Высшей Школы Экономики на программу «Платёжные системы в игровой индустрии» — но в итоге курс не набрали и я оказался на факультете коммуникационного дизайна в Школе дизайна Высшей школы экономики. Учёба давалась хорошо — не считая того, что требовалось, в том числе, уметь рисовать «руками», а не только на компьютере (последнее как раз у меня получалось хорошо). А потому многие домашние задания приходилось переделывать по 3-4 раза, что несколько угнетало.

В общем, я решил не продолжать учебу по этому направлению, а с головой уйти в работу. Моим первым работодателем стало Министерство промышленности и торговли, затем я перешёл в МДМ-банк. В этот период мне повезло принять участие в разработке мобильного приложения для юридических лиц с компанией Red mad robot — это был мой первый профессиональный опыт работы с IT, и он показался мне очень увлекательным.

Ещё я участвовал в различных проектах — например, курировал проект Олимпиадного центра для одаренных детей на базе «Физтех-лицея» им П.Л. Капицы, помогал частной монтессори-школе выйти из карантинного кризиса, помогал подруге с открытием интернет-магазина по продаже косметики и даже открыл свой крафтовый магазин-бар в Москве в период Чемпионата мира по футболу. Кстати, как я выяснил уже во время учебы в GeekBrains, многое в этих проектах я неосознанно делал именно так, как положено у продакт-менеджеров — с исследованиями, гипотезами и так далее.

Также я 2,5 года работал специалистом по сопровождению проектов в компании, занимавшейся строительством нефтегазовых объектов — и там, честно признаться, несколько «законопатился». Всё-таки нефтегазовая отрасль — очень традиционная, довольно неповоротливая, в ней многое делается по принципу «так принято». Поэтому, когда я решил уволиться и начал искать работу, я, понял, что несколько отстал от профессиональных реалий. Когда я читал описания вакансий в сфере управления проектами в IT, то не понимал и половины слов. 

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

 

Про лекции в транспорте, пандемию и продуктовое мышление

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

Изучив программы GeekBrains, связанные с проектной деятельностью, я узнал о существовании профессий проектного и продуктового менеджеров — и вторая мне показалась более интересной: если проджекты-менеджеры скорее думают, как добраться из пункта А в пункт Б, то продакты решают более сложные и творческие задачи — им нужно понять, куда идти, как, зачем и так далее. К тому же мой предыдущий профессиональный опыт был ближе к продуктовому, чем к проектному.

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

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

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

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

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

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

            

Хакатоны, «птичий язык» и Календула

Ещё один плюс учёбы в GeekBrains — то, что здесь есть дополнительные бесплатные межфакультетские активности, например, хакатоны. Я принял участие в четырёх из них. При этом на двух хакатонах мои команды побеждали и ещё один раз заняли второе место, так что 8 недель ночной работы с командами не прошли даром и стали ещё одной красивой строчкой в резюме.

Очень важным для меня форматом стала кросс-функциональная стажировка. Работает это так: ты  — продакт — ещё до начала стажировки формируешь идею цифрового продукта, затем проверяешь свою гипотезу, проводя качественные или количественные исследования, готовишь обоснование, отрисовываешь базовый прототип—– и, наконец, через портал GeekBrains набираешь команду и создаешь MVP или полноценный продукт. То есть приходить на стажировку нужно с уже готовой провалидированной идеей.При этом у меня даже были кликабельные и протестированные прототипы. Также я нашел клиентов, готовых приобрести готовый продукт по окончании работ, правда, проект занял больше времени, чем предполагалось, и к моменту запуска клиент уже нашёл другой способ закрыть эту потребность. Моим проектом стал сервис по составлению и ведению расписаний для малого и среднего бизнеса «Calendula», с которым можно ознакомиться и даже протестировать на подготовленном нами же лендинге.

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

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

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

            

Про поиск работы, недостатки GeekBrains и планы на будущее

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

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

С июня 2021 года я работаю в Insense — маркетплейс платформе по работе с креаторами и созданию контента для различных площадок, официальным бизнес партнером которых мы являемся: Instagram, Facebook, Youtube, TikTok и Snapchat. Кстати, радует, что из 15 человек нашей проектной команды со стажировки уже 14 нашли работу по специальности, хотя они только закончили обучение в GeekBrains, искренне рад за всех!

Работа джуниор-продактом мне очень нравится. Хотя, оглядываясь на период учебы, я понимаю, что нам очень хорошо дали общее представление о работе продактом, а вот по отдельным моментам, касающимся hard skills, хотелось бы ещё в процессе учебы получить побольше знаний и получше «набить руку» — например, в том, что касается работы с базами данных и написанию SQL-запросов. Хотя некоторые недостающие навыки я продолжаю прокачивать через GeekBrains — радует, что у нас остался доступ ко всем онлайн-тренажерам, а ещё можно слушать дополнительные тематические лекции и по окончании учебы в удобное время.

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

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

 


29 июл, 15:01
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Творческим ребятам: разбираем основы компьютерной графики

Привет! C вами Даша Голованова — руководитель онлайн-школы GeekSchool. 

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

Растровая графика

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

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

Вот рисунок нашей ученицы Жени, здесь 200 тысяч пикселей! Если мы начнём увеличивать рисунок, то постепенно увидим каждый пиксель. 

Векторная графика

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

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

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

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

 

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

 


27 июл, 17:45
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Музей мемов, регенерирующийся экран, семейная соцсеть

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

Таймлайн выпуска:

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

00:26 Полёт Безоса в космос

01:58 Слив секретных документов в War Thunder

02:57 Музей мемов от 9GAG

03:52 Экран телефона будет регенерировать

04:56 Снуп Дог стримил без звука 

06:16 Новая семейная соц.сеть

07:24 Первая пересадка искусственного сердца 

08:21 Оставляйте комментарии

 


26 июл, 15:39
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Игровой аналитик: чем занимается и как им стать

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

Кто такой игровой аналитик? 

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

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

Цель работы игрового аналитика:

  • повысить интерес игроков, 

  • вырастить показатель retention — возврат пользователей в игру, 

  • увеличить длину игровой сессии,

  • повысить показатель playtime — время, проведённое пользователем в игре за день,

  • повысить конверсию в платящих,

  • вырастить средний чек. 

А подробнее?

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

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

Этап 2. Работа с метриками: «отвалы» пользователей, длительность их пребывания в игре, монетизация — кроме того, что нам нужно заинтересовать пользователя, нам нужно ещё и заработать на его интересе. Гейм-аналитик должен понимать, где именно в игре и как часто пользователи смотрят рекламу. Это поможет оценить потенциал проекта.

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

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

Навыки гейм-аналитика

Существуют ли прирождённые гейм-аналитики или все необходимые навыки можно приобрести? Разберёмся поподробнее и начнём с «мягких» навыков, так называемых soft skills.

Soft skills гейм-аналитика 

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

  • Работа с возражениями — чтобы защищать свои гипотезы.

  • Эмоциональный интеллект — психологию игр проще понять, если вы чувствуете эмоции игроков.

  • Аналитический склад ума — очевидный факт: вам придётся много анализировать и прогнозировать.

С мягкими навыками разобрались, теперь определимся с «жёсткими» или hard skills (спойлер: им можно научиться, даже не имея технического опыта).

Hard skills гейм-аналитика

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

  • Python — знать основы языка и уметь пользоваться основными библиотеками — NumPy, SciPy, Seaborn, Plotly, Matplotlib. 

  • Математическая статистика — для работы с вероятностями, случайными событиями и прочим.

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

  • А/В-тесты — уметь настроить сбор данных и проанализировать результат.

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

За 15 месяцев обучения на курсе вы получите все необходимые навыки для работы гейм-аналитиком, сформируете портфолио из учебных проектов, получите диплом государственного образца и сможете найти работу по новой профессии при помощи HR-специалистов GeekBrains.

Карьера гейм-аналитика

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

  • от 1 года до 3 лет — 380 вакансий,

  • от 3 до 6 лет — 192 вакансии,

  • нет опыта — 40 вакансий,

  • более 6 лет — 12 вакансий.

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

  • от 95 000 руб. — 90 вакансий,

  • от 165 000 руб. — 47 вакансий,

  • от 235 000 руб. — 27 вакансий,

  • от 305 000 руб. — 14 вакансий,

  • от 375 000 руб. — 13 вакансий.

Развитие специалиста в этой области идёт по стандартному сценарию: Junior, Middle, Senior. Средний доход в зависимости от уровня специалиста: 

  • junior  —  до 70 000 руб.,

  • middle  —  от 100 000 руб.,

  • senior  —  от 150 000 руб.

Насколько гейм-аналитика распространена в регионах? 

Большая часть вакансий приходится на Москву — 282 вакансии, и Санкт-Петербург — 155. Лидер среди регионов — Новосибирская область — 35 вакансий, за ней следует Ростовская область, в которой 20 вакансий. 

При этом 245 вакансий из общего числа подразумевают удалённую работу, из них 84 вакансии в Москве и 49 в Санкт-Петербурге. 

Что дальше? 

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

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


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

 


22 июл, 15:45
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Язык программирования FOCAL

FOCAL – это интерактивный интерпретируемый язык программирования, основанный на JOSS, который использовался в основном на компьютерах серии PDP компании Digital Equipment Corporation (DEC). Название языка является аббревиатурой Formulating Online Calculations in Algebraic Language.

FOCAL очень похож на JOSS с точки зрения поддерживаемых команд и общего синтаксиса языка. Многие возможности JOSS, такие как диапазоны и пользовательские функции, удалены для упрощения анализатора. Некоторые операторы были переименованы так, чтобы они начинались с уникальной буквы. Это позволило писать программы, используя однобуквенные команды, сокращая таким образом потребности в памяти. Для компьютеров PDP-8, память которых часто ограничивалась несколькими килобайтами, это было важно. Поэтому FOCAL стал популярен на машинах DEC.

Подобно JOSS и поздним версиям BASIC, FOCAL на PDP-8 представлял собой законченную среду, включающую редактор строк, интерпретатор и процедуры ввода/вывода. Пакет назывался FOCAL-8, который также работал на PDP-5 и PDP-12. При портировании на PDP-11 полученный FOCAL-11 полагался на базовую операционную систему RT-11 для обеспечения работы с файлами. Определение языка обновлялось дважды, до FOCAL-69 и слегка измененного FOCAL-71. Существовала и версия для Intel 8080.

Исторически FOCAL известен как язык оригинальных версий ранних видеоигр Hamurabi и Lunar Lander. Позднее они были перенесены на BASIC, где стали более известными. FOCAL не был популярен за пределами платформы PDP и фактически исчез при переходе на VAX-11. На некоторое время он был возрожден в Советском Союзе, где клоны PDP-11 использовались как учебные и домашние компьютеры.

Немного истории

JOSS

JOSS был выпущен в мае 1963 года на несерийном компьютере JOHNNIAC в корпорации RAND. Потребности в вычислениях быстро росли, и машина, изначально построенная в 1953 году, быстро исчерпала свои возможности. JOHNNIAC «вышел на пенсию» в 1966 году, и JOSS был перенесён на недавно приобретенную PDP-6, первую «большую» машину DEC. Потребности в вычислениях продолжали расти, и к 1970 году систему использовали от 500 до 600 пользователей по всей стране. Появился ряд инноваций, например мобильные компьютерные терминалы, которые можно было переносить из комнаты в комнату и подключать для мгновенного доступа.

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

FOCAL

Варианты JOSS для других платформ стали появляться вскоре после выхода версии для PDP-6. FOCAL стал одним из этих многочисленных ответвлений.

Написанный Ричардом Мерриллом, FOCAL отказался от некоторых возможностей JOSS, чтобы работать в более ограниченном пространстве памяти PDP-8 и других 12-битных машин в линейке DEC. С этой целью было сделано серьезное изменение чтобы уменьшить количество временных данных, или «состояние», необходимое для анализа операторов. Одним из заметных результатов такого решения стало то, что условные выражения использовались теперь только для ветвлений, в отличие от JOSS, где условные выражения можно было применять в любом выражении.

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

Первая версия FOCAL была выпущена в 1968 году для PDP-8. Обновленная версия вышла в следующем году, позднее её назвали FOCAL-69. Система в целом, независимо от версии, была известна как FOCAL-8, при портировании на другие машины 12-битной серии, включая PDP-5 и PDP-12. FOCAL был популярен, поскольку эффективно использовал память, которая в этих машинах обычно ограничивалась несколькими килобайтами. FOCAL-11 работал на PDP-11 под управлением операционной системы RT-11.

Корпорация Processor Technology также предложила версию 8k FOCAL, в комплекте с игрой Lunar Lander, для системы Altair 8800 на базе Intel 8080. Это предлагалось для копирования с ленты, в то время как исходный код предоставлялся бесплатно с другими покупками.

BASIC

В то время как FOCAL обретал популярность на машинах DEC, BASIC становился ещё более популярной альтернативой на других платформах. К концу 1960-х годов ряд компаний конкурировали с DEC, продавая аналогичные машины, работающие с BASIC версиями с разделением времени. Среди них следует отметить серию HP 2100 с ОС HP Time-Shared BASIC.

Дэвид Х. Ахл присоединился к группе DEC PDP-8 когда компания заинтересовалась продажей машины в образовательные учреждения. Из-за популярности BASIC на рынке образования, особенно с растущей библиотекой программ от Minnesota Educational Computing Consortium, Ахл обнаружил, что продать машины с FOCAL было трудно, несмотря на его преимущества. Как он отметил позже:

– Язык FOCAL DEC во многих аспектах был равен BASIC, а кое в чём был даже лучше, но имел один огромный недостаток: DEC не желал его лицензировать для других производителей компьютеров. FOCAL вел тяжелую борьбу против BASIC, который был доступен на GE, Honeywell, HP и других компьютерах.

Я думаю, что это привело к такой же ситуации, как Sony и Betamax. Sony говорит: «Betamax наш, и это лучший формат, чем VHS». Но потом JVC говорит: «У нас есть VHS и Toshiba. Эй, вы хотите их использовать? Хорошо, мы предоставим вам лицензию на это практически даром».

Ахл взял на себя задачу создать систему BASIC для PDP платформы, наняв компанию, которая, как он узнал позже, состояла из одного программиста в Бруклине, чтобы создать версию для 4 килобайтной PDP-8. DEC начала продавать версии PDP-8 с терминалами и BASIC в качестве линейки «EduSystem», причем более крупные системы этой серии имели расширенные версии BASIC, а в некоторых случаях ещё и FOCAL и FORTRAN. Некоторые EduSystem были созданы также на базе PDP-11.

Затем Ахл начал переносить программы с FOCAL на BASIC, в частности, The Sumer Game (которую он переименовал в Hamurabi), версию Lunar Lander и несколько небольших FOCAL демо-программ. Объединив свои версии с работами сторонних программистов, ему удалось собрать достаточно материала, чтобы DEC опубликовал101 BASIC Computer Games в 1973 году. Книга имела моментальный успех и в итоге выдержала три издания к 1975 году.

К середине 1970-х годов BASIC стал стандартной опцией всех машин DEC, а использование FOCAL прекратилось.

Возрождение в Советском Союзе

PDP-11 был клонирован в Советском Союзе в 1970-х годах для военных целей. В 1980-х годах были выпущены одночиповые версии, подобные LSI-11, которые дали начало серии домашних компьютеров, совместимых с PDP-11. Наиболее заметной среди нескольких моделей была серия Электроника BK, выпущенная в 1985 году. Они изначально поставлялись с FOCAL в ПЗУ-картридже, а картридж с BASIC был опциональным дополнением. Более поздние модели поставлялись с BASIC по умолчанию.

Описание языка

Следующее описание основано на FOCAL-69, как видно из справочного руководства по языку FOCAL-8.

Директивный и недирективный режимы

FOCAL следует модели JOSS для взаимодействия с пользователем с помощью командной строки. Это позволяет вводить команды, которые будут выполнены немедленно (директивный режим). Или добавлять к ним номер строки (недирективный режим). В этом случае они добавляются в программу, если номер уникальный, или заменяют уже существующую строку с таким же номером.

Такой метод работы аналогичен «непосредственному режиму» BASIC и «программному режиму». Что отличается от JOSS, в котором все команды, как программные, так и прямые, были сохранены и загружены как часть рабочей области пользователя. Это позволяло JOSS иметь команды без номеров строк, которые использовались для определений форм и других задач. У FOCAL такой возможности не было, поэтому инструкции, которые нужно было загрузить и сохранить, стали опциями для других команд режима программы, таких как Type.

Операторы программы

Каждая строка в программе FOCAL должна начинаться с номера строки. Как и в JOSS, номера строк – это числа с фиксированной запятой, состоящие из двух двузначных чисел, разделенных точкой. В FOCAL-8 номера строк варьируются от 1.01 до 31.99. При распечатке командой WRITE добавляются ведущие нули, так что все номера строк будут содержать пять символов, включая точку, например строка 1.10 будет напечатана как 01.10. Операторы, обращающиеся к этим строкам, не нуждаются в ведущих нулях, например, GOTO 1.10.

Число слева от точки называется «номером группы». Группы обеспечивают определённый уровень организации кода, которого не хватает в таких языках, как Fortran или BASIC. Основное их применение в том, чтобы использовать группу в качестве подпрограммы, которую можно вызывать с помощью DO. Например, DO 5 обеспечит переход к подпрограмме, записанной в группе 5. Редактор также использовал их во время редактирования, например, можно было написать WRITE 2, чтобы показать список строк в группе 2, или ERASE 4, чтобы удалить все строки в группе 4.

Каждая строка должна начинаться с ключевого слова команды, следующего за номером строки. Не существует «команды по умолчанию», как в BASIC с его необязательным LET. Несколько операторов могут быть помещены в одну строку, разделённые точкой с запятой. Обычно это поведение ничем не отличается от того, если бы операторы были в отдельных строках, за исключением ситуации с циклом FOR.

Команды

ASK. Команда ASK (сокращённо A) берет список строк и переменных, выводит строки на экран и сохраняет введенные пользователем данные в переменных. Эквивалентна команде INPUT в BASIC.

01.01 ASK "NAME", N
01.02 ASK "COORDINATES", X, Y
01.03 ASK "A1",A1,"OMEGA",W,"T0",T0,"DAMPING FACTOR",DAMPINGFACTOR

Если пользователь вводит не число, а текст, система преобразует начальный символ в число с «A» = 1, «B» = 2 и т.д.

COMMENT. Команда COMMENT (сокращённо C) создаёт комментарий. Эквивалентна REM в BASIC.

01.01 COMMENT: THE SUMER GAME, BY RICHARD MERRILL

DO. Команда DO (сокращённо D) создаёт ветвь для выполнения подпрограммы. Это эквивалент BASIC команды GOSUB. На подпрограмму ссылается либо номер группы, либо номер строки. Если указан номер строки, эта строка выполняется и затем происходит возврат к оператору после DO. Если номер строки не указан, выполнение начинается с первой строки группы и продолжается, пока не будет достигнут конец группы или не встретится RETURN. RETURN требуется только для раннего возврата, в конце группы он не нужен.

01.15 DO 7.24
01.16 DO 8

FOR. Команда FOR (сокращённо F) реализует цикл for. Когда заданы три аргумента, первый – это начальное значение переменной цикла, второй – приращение, а третье – это конечное значение цикла. Если указаны два значения, первое – это начальное значение, а второе – конечное значение, а приращение устанавливается равным 1.

В отличие от других частей языка, где несколько операторов в строке независимы, FOR всегда выполняет операторы, следующие за ним в строке, до того, как будет выполнено завершение, а затем переходит к следующей строке. Таким образом, циклы должны быть в одной строке или вызывать подпрограмму с DO. Эквивалента BASIC команды NEXT нет.

01.01 FOR X=1,10; TYPE X,!
01.02 FOR X=0,10,100; DO 2

Простой цикл for:

01.10 ASK "HOW MUCH MONEY DO YOU WANT TO BORROW ?",PRINCIPAL
01.20 ASK "FOR HOW MANY YEARS ?",TERM
01.30 FOR RATE=4.0,.5,10; DO 2.0
01.40 QUIT
02.10 SET INTEREST=PRINCIPAL*(RATE/100)*TERM
02.20 TYPE "RATE",RATE,"   ","INTEREST",INTEREST,!

GOTO. Команда GOTO (сокращённо G) переводит выполнение программы на указанный номер строки. Он идентичен одноименной команде в BASIC. В отличие от GO, используемой из командной строки, которая запускает программы, эквивалент RUN в BASIC.

01.05 GOTO 1.01
02.90 TYPE !!,"TRY AGAIN.",!!!!!; GOTO 1.1

IF. Команда IF (сокращённо I) обеспечивает ветвление по условию, основанному на знаке выражения. После этого выражения команда IF может содержать список от одного до трех номеров строк. Если результат выражения меньше нуля, выполнение переходит к первому номеру; если равен нулю, на второй номер; если больше нуля, номер третьей строки. В языке отсутствуют относительные операторы, такие как «больше чем», «равно» или «меньше». Для ветвления по условию IF X>5, нужно проверить результат выражения X-5.

02.20 IF (25-25) 2.4,2.3,2.4
03.01 IF (X) 3.1,3.02,3.1

IF может быть в сокращенной форме, если поставить точку с запятой (или конец строки) после номера первой строки. Например:

02.20 IF (X)1.8; TYPE "Q"
02.30 IF (X)1.8,2.50
02.40 TYPE "P"

В этом случае проверка в 2.20 заставит программу перейти на строку 1.8, если значение X отрицательное, в противном случае она продолжится и выведет «Q» на консоли. В строке 2.30 произойдет переход к 1.8 или 2.5, если значение будет отрицательным или нулевым, а в противном случае выведет «P» в консоли.

QUIT. Команда QUIT (сокращённо Q) останавливает программу и возвращает управление среде редактирования. Эквивалентно END или STOP в BASIC.

01.10 FOR X=-10,1,10;TYPE X
01.20 QUIT

RETURN. Команда RETURN (сокращённо R) выполняет возврат из подпрограммы к месту её вызова. Использование RETURN является необязательным в последней строке, подпрограмма в любом случае возвращается из последней строки в группе. Ниже приведен пример подпрограммы для преобразования ответа YES/NO в значение.

22.78 COMMENT: 'YES OR NO' SUBROUTINE
22.80 ASK "ANSWER YES OR NO ?",AN
22.82 IF (AN-YES)22.84,22.86
22.84 IF (AN-NO)22.8,22.88,22.8
22.86 SET X=2;RETURN
22.88 SET X=1;RETURN

SET. Команда SET (сокращённо S) присваивает результат выражения указанной переменной. Эквивалентна команде LET в BASIC.

01.30 SET PI=3.14156
01.60 SET INTEREST=PRINCIPAL*(RATE/100)*TERM

TYPE. Команда TYPE (сокращённо T) обеспечивает вывод одного или нескольких элементов, разделенных запятыми. Эквивалентна PRINT в BASIC.

Элементы могут быть переменными, строками символов, заключенными в двойные кавычки, или различными управляющими символами. Управляющие символы включают в себя ! для вывода возврата каретки и перевода строки, # только для возврата каретки и : для символа табуляции. Управляющие символы могут быть записаны вместе, например, !!! выведет три CR/LF без необходимости разделять их запятыми.

TYPE [NUMBERS, E1, "TEXT", !, #, :, $ OR %] ...OUTPUT
01.10 TYPE "HI THERE, GOOD LOOKING. HOW MUCH MONEY DO YOU WANT TO BORROW?",!
01.50 TYPE "INTEREST",INTEREST,!
01.80 TYPE "THE INTEREST FOR",TERM," YEARS",!,"IS",INTEREST," DOLLARS.",!!
01.90 TYPE "NEW YORK",!,"WASHINGTON",!,"ATLANTA",!,"DALLAS",!
02.10 TYPE "X",X,"   ","X^2",X^2,"   ","SQRT",FSQT(X)
03.20 TYPE ".",#
02.20 TYPE !!!!!

TYPE также может иметь необязательный спецификатор формата, указанный в виде %x.yz, где x – это число цифр до точки, а yz – это число цифр справа от точки. Формат по умолчанию %8.4, что означает максимум восемь цифр до и четыре справа от точки. Например:

SET A=67823
TYPE %6.01,A
=  67823.0
TYPE %5,A
= 67823
TYPE %8.03,A
=    67823.000
TYPE %,A
= 6.7823E4

Обратите внимание на дополнительные начальные пробелы в некоторых примерах. Использование только % привело к выводу в «формате с плавающей запятой» с использованием E.

Специальным управляющим символом был $, который вызывает вывод таблицы всех определенных переменных и их значений. Будут напечатаны только первые две буквы имени, дополненные нулями, если необходимо. Элементы массивов печатаются в отдельных строках, а переменным, в которых только один элемент, будет присвоен индекс (00). Например:

TYPE $
A0(00)=67823

Переменные

Имена переменных могут начинаться с любой буквы, кроме F (F зарезервирована для функций) и могут содержать любую последовательность букв и цифр. Тем не менее, только первые два символа имеют значение. Например, следующий пример кода из FOCAL в A New Conversational Language ссылается на ту же переменную, что и DESTINATION, а затем DES. Внутри обе ссылки относятся к значению, обозначенному DE:

01.80 ASK DESTINATION
02.30 IF (DES-14) 2.4,3.1,2.4

Любая переменная может рассматриваться как массив, что позволяет использовать индексы от -2048 до 2047.

Математика

FOCAL-69 содержит только пять математических операций:

  1. ^ для возведения в степень – показатель степени преобразуется в 12-разрядное целое число
  2. * для умножения
  3. / для деления
  4. + для дополнения
  5. - для вычитания

Любопытно, что все операторы FOCAL имеют независимый приоритет, как в указанном выше порядке. Это означает, что формула SET T=2-3+1, будет рассчитана в порядке 2-(3+1) и, следовательно, даст -2. Это сильно отличается от большинства языков, где + и - имеют одинаковый приоритет и оцениваются (2-3) +1 что в результате даёт 0. Это может вызвать незначительные ошибки при переносе исходного кода FOCAL на другие языки.

FOCAL необычен в том смысле, что математические выражения могут использовать (), [] и <> взаимозаменяемо в согласованных парах, чтобы установить приоритет. Например, допустимо следующее:

01.30 SET A=<10*[5+1]*(1+5)>

Все скобки имеют одинаковый уровень приоритета и читаются слева направо, когда находятся на одном уровне, поэтому сначала будет вычислен результат в [], затем (), затем <>, в результате получим число 360.

FOCAL содержит следующие встроенные функции:

  • FABS() – абсолютное значение
  • FATN() – арктангенс
  • FCOS() – косинус от аргумента в радианах
  • FEXP() – возвращает число e, возведенное в указанную степень
  • FITR() – целая часть аргумента
  • FLOG() – натуральный логарифм
  • FRAN() – случайное число
  • FSGN() – знак аргумента; FSGN(0)=1 в FOCAL-69, но FSGN(0)=0 в FOCAL-71, как и в более поздних версиях
  • FSIN() – синус от аргумента в радианах
  • FSQT() – квадратный корень

Другие функции

FOCAL также содержит ряд специальных функций:

  • FDIS берёт два значения и рисует точку на экране графического терминала
  • FADC читает значение из пронумерованного аналогового входа и возвращает целочисленное значение

Команды окружения

Запуск программ

FOCAL использовал GOTO в редакторе для запуска программы. Тем не менее, на практике это было сокращено до GO. Это эквивалент команды RUN в BASIC. GOTO можно также использовать в редакторе для запуска программы с указанной строки.

Команды редактирования

Новые строки добавляются в программу, просто когда команда начинается с номера строки. Команды редактирования: ERASE (сокращённо E), MODIFY (сокращённо M) и WRITE (сокращённо W).

  • ERASE – удаляет все переменные. Это может быть в начале программы
  • ERASE <номер строки> – удаляет строку с заданным номером
  • ERASE <номер группы> – удаляет все строки в заданной группе
  • ERASE ALL – удаляет всю программу
  • MODIFY <номер строки> – позволяет редактировать указанную строку
  • WRITE <номер строки> – отображает строку с заданным номером
  • WRITE <номер группы> – отображает все строки заданной группы
  • WRITE ALL – отображает всю программу

Файловые команды

Работу с файлами обеспечивает команда OPEN (сокращённо O):

  • OPEN INPUT [device:][file][,ECHO] – подготовка к чтению с начала файла
  • OPEN OUTPUT [device:][file][,ECHO] – подготовка к записи с начала файла
  • OPEN RESTORE INPUT[,ECHO] – возобновить ввод
  • OPEN RESTORE OUTPUT[,ECHO] – возобновить вывод
  • OUTPUT CLOSE – вывести буфер и закройте файл

Библиотечные команды

FOCAL включает возможность управлять коллекциями программ FOCAL в виде библиотеки кодов. Программы могут вызывать другие программы по цепочке, используя LIBRARY CALL, или вызывать одну подпрограмму в другой программе, используя LIBRARY GOSUB. Имена программ могут быть длиной шесть символов. Команда LIBRARY (сокращенно L) имеет следующие подкоманды:

  • LIBRARY DELETE [device:]<program name> – удалить программу
  • LIBRARY LIST [device:][file name] – список программ
  • LIBRARY RUN [device:]<program name>; [line number] – связать программы, возможно, выполнение по указанному номеру строки
  • LIBRARY SAVE [device:]<program name> – сохранить программу
  • LIBRARY EXIT – возврат в программу мониторинга PDP-8

FOCAL-71 добавил:

  • LIBRARY CALL [device:]<program name> – загрузить программу
  • LIBRARY GOSUB [device:]<program name> [group number] – вызвать подпрограмму из внешней программы

Коды ошибок

Поскольку интерпретатору не хватало места в памяти для хранения сообщений об ошибках или даже таблицы номеров ошибок, FOCAL использовал обходной путь, сообщая адрес кода, обнаружившего ошибку, как число с фиксированной точкой. Например, если была обнаружена ошибка деления на ноль, появляется сообщение 28.73@01.10, где 28.73 представляет проверку кода для этой ошибки на странице 28 памяти плюс смещение 73 слова, а 01.10 – номер строки, в которой произошла ошибка. Страницы в PDP-8 имели размер 128 байт, поэтому этот адрес преобразуется в местоположение 3657.

Различия между версиями

DEC выпустила три версии FOCAL для серии PDP-8, оригинальную, известную просто как FOCAL, и две обновленные версии, FOCAL, 1969 и FOCAL, 1971. FOCAL 1969 был в значительной степени идентичен оригиналу, но FOCAL, 1971 был главным обновлением, которое добавило обработку файлов, новые математические функции и множество других изменений. В отличие от первых двух версий, которые были автономными системами, FOCAL 1971 года был основан на новой OS/8 (тогда еще называемой PS/8) и больше полагался на эту операционную систему для обработки и редактирования файлов.

FOCAL, 1971

Одним из изменений в новой версии стал 10 значный пакет математических функций для дополнительной точности. Функция FSGN стала возвращать ноль, если входное выражение равно нулю. Предыдущая версия возвращала 1. FRAN стал использовать лучший алгоритм, который производил больше случайно распределенных чисел. Были также добавлены новые функции FIN, которая принимает строку и возвращает ее значение ASCII (сродни ASC BASIC) и FOUT, которая принимает число и возвращает строку с этим символом ASCII (подобно CHR в BASIC).

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

Сравнение с JOSS

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

Одно из главных отличий состоит в том, что JOSS включает в себя полный набор операций сравнения и систему логики, которая работает в конструкциях if и for. Кроме того, if и циклы могут применяться к любому выражению, в отличие от FOCAL, где единственная операция, которую можно было выполнить, была эквивалентна goto. Например, в JOSS можно было бы:

1.10 Type A if X>10.
1.20 Type i for i=1(1)10.

Где опционально будет выведено значение A в зависимости от условия, а затем выведены числа от 1 до 10. В отличие от этого, в FOCAL нет возможности сравнивать значения, и циклы используются для перехода к следующей строке после их завершения. Эквивалентный код FOCAL будет выглядеть так:

1.10 IF (X-10) ,,1.30
1.20 TYPE A,!
1.30 FOR I=1,1,10;TYPE I,!

Реализация JOSS облегчает создание общих конструкций и более точно соответствует намерениям программиста за счет усложнения среды выполнения. Например, JOSS допускает гибкое описание диапазонов в циклах, например, 1,2,3,10 (5) 50,75,78. Эта гибкость имеет цену; в FOCAL начало, остановка и шаг могут быть записаны в пользовательской структуре в памяти и легко обновляться по мере выполнения цикла. Напротив, система JOSS требует указателя на то, что может быть, но часто не является, более сложным выражением, которое нужно обойти с помощью более сложного кода синтаксического анализа.

С точки зрения того, чтобы сделать код более кратким, изменения были относительно незначительными. Например, Do part 20. в JOSS становится немного меньше в FOCAL – DO 20, а Do step 20.1 становится DO 20.1. Командные ключевые слова были также сокращены, где это возможно, поэтому Demand в JOSS становится ASK в FOCAL, чтобы сделать его и короче, и позволить уникально использовать букву D для DO. Период, необходимый для указания конца строки в JOSS, был удален.

Чтобы упростить анализатор, некоторые опции в FOCAL были удалены. Например, JOSS может выполнять несколько присвоений с помощью Set S=P, P=Q, Q=S, в то время как в FOCAL это должны были быть отдельные команды, SET S=P; SET P=Q; SET Q=S. Аналогично, Form в JOSS, используемая для форматирования вывода, объединён в FOCAL в TYPE %.

Сравнение с BASIC

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

ASK "What is your age?",AGE

эквивалент в BASIC:

INPUT "What is your age?",AGE

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

Заметным исключением является IF в BASIC, который позволяет размещать любое выражение после THEN, делая его более похожим на структуры управления JOSS. BASIC изменил порядок кода по сравнению с JOSS, поместив условное выражение в начале строки, а не в конце; в BASIC каждый использует IF this THEN that, в отличие от that IF this JOSS. Преимущество BASIC в том, что среда выполнения может немедленно прервать чтение остальной части оператора, если выражение не соответствует действительности. Напротив, IF FOCAL больше походит на вычисленное goto BASIC, ON X GOTO 10,20,30, но ON ... GOTO допускал любое количество строк в качестве целей, в отличие от только трех для отрицательных, нулевых и положительных, как в JOSS и FOCAL.

Другое важное различие между состоит том, что у FOCAL отсутствует встроенная поддержка строк как данных, которые можно присваивать переменным. Как и в ранних версиях BASIC или FORTRAN до добавления строк (в F77), этого ограничения обычно избегали используя строки символов в командах ввода и вывода. Только когда потребовалось манипулировать строками или символами внутри них, это стало серьёзной проблемой.

Поскольку строковые переменные не поддерживаются, при вводе строки используется метод, который преобразует любые символы, введенные пользователем, в их числовое значение. Например, если ввести «HELLO», FOCAL преобразует H в «8», числовое значение «H» в шестибитовых кодах PDP-8 («H» - восьмая буква), затем интерпретирует «E» как начальную экспоненту, а затем попытается вычислить «8» в степени «LLO», что займет несколько секунд процессорного времени и приведет к значению 0,76593020E + 103, что не будет особо полезным ответом. Тем не менее, задавая вопросы, на которые можно было бы ответить, используя однобуквенные ответы, такие как «Нужны ли вам инструкции, Y или N», программисты могли проверить результат по известным значениям символов, чтобы получить то, что выглядело как ввод символов.

В реализации FOCAL PDP-8 использовалось представление с плавающей запятой, которое хранило числа в виде четырех 12-битных слов, всего 48 бит, с 36 битами мантиссы и 12 экспоненты. Это позволило получить значительно более высокую точность и значительно более широкий диапазон значений, чем большинство современных интерпретаторов, что делало FOCAL разумным выбором для серьезной работы с числами. Эта высокая точность и хороший выбор для стандартного десятичного форматирования вывода означали, что проблемы двоично-десятичного округлением не беспокоили начинающих пользователей. Для сравнения, Microsoft BASIC первоначально использовал 32-битный формат, более поздние версии расширили его до 40-бит. У большинства BASIC были проблемы с округлением, что приводило к крошечным ненулевым остаткам в простых выражениях.

Общепринято, что FOCAL более эффективно использовал ресурсы, чем сопоставимые системы BASIC. На типичной машине того времени, часто с 6–24 килобайтами памяти на магнитных сердечниках, FOCAL мог выполнять более крупные и сложные задачи программирования, чем BASIC.

Версии и ответвления

Корпорация Coca-Cola использовала индивидуальную версию FOCAL под названием COKE.

FOCAL был позднее реализован на PDP-7, PDP-9, PDP-10, PDP-11, PDP-12, PDP-5 и LINC-8.

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

Группа Digital Equipment Computer Users' Society собрала много патчей и улучшений для FOCAL. Там присутствовали основные улучшенные ответвления FOCAL, такие как FOCAL-W, которые добавили множество функций, в том числе улучшенный ввод-вывод файлов и даже работу с виртуальной памятью.

В России FOCAL появился в начале 1990-х годов в серийных домашних компьютерах серии Электроника BK.

Пример кода

В качестве примера можно рассмотреть реализацию игры “Угадай число”. В строке 1.30 генерируется случайное число. В строке 2.10 пользователь вводит свой вариант. Если угадать удалось, происходит переход на строку 6.10, где выводится сообщение о победе. Если не удалось – выводится подсказка и запрос числа повторяется. Количество попыток ограничено тремя.

1.10 COMMENT GUESS THE NUMBER 0..9 IN 3 ATTEMPTS
1.20 SET C=1
1.30 SET N=FITR(FRAN(1)*10)
2.10 ASK "GUESS THE NUMBER 0..9",G
2.20 IF (G-N) 3.3,6.1
3.10 TYPE "YOUR NUMBER IS GREATER",!
3.20 GOTO 4.1
3.30 TYPE "YOUR NUMBER IS LESS",!
4.10 SET C=C+1
4.20 IF (C-3) 2.1,2.1
5.10 TYPE "YOU LOSE... IT WAS ",%1.0,N,!
5.20 QUIT
6.10 TYPE "YOU WON! COOL!",!
6.20 QUIT

Подведём итог

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

Реализация такого простого интерпретатора может стать интересным вызовом для программиста. Версию FOCAL, разработанную на Java, вы можете найти в моём git репозитории.

 


21 июл, 09:40
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Всегда хотелось быть тем, кто обеспечивает безопасность»

Начинать путь в профессию мечты со школы 一 хороший старт для будущей карьеры. Есть время попробовать много нового, постоянно учиться, готовить первые проекты для портфолио. Герой нашей истории 一 выпускник GeekSchool Александр Фурсенко. Он уже изучил курс по кибербезопасности, собирается продолжить обучение, и мечтает работать в крупной IT-компании. Александр рассказал, почему решил учиться в онлайн-школе, как выбирал направление, и насколько успешно ему удавалось совмещать школу и дополнительное образование.

Меня зовут Александр Фурсенко, мне 15 лет и я живу в Москве. Я заканчивал 9 класс в общеобразовательной школе, когда пришёл в GeekSchool. Моими любимыми предметами были информатика, алгебра и биология. Ещё в этом году я увлекся психологией, и стал дополнительно изучать её. 

О начале пути в GeekSchool

У меня было большое желание углубиться в IT-сферу и освоить одно из её направлений. Это было моей самой большой мотивацией начать учиться дополнительно. Я хотел найти своё дело в жизни 一 то, что будет доставлять мне удовольствие.

Я смотрел разные онлайн-школы, и нашёл GeekBrains. Решил посмотреть, какие курсы там есть. Выбирая, я остановился на курсе «Кибербезопасность и цифровая грамотность» от GeekSchool. Для меня всегда была важна безопасность в мире, и мне хотелось быть тем, кто будет её обеспечивать. Тогда я решил, что хочу попробовать себя в этой сфере.

О процессе учёбы

По началу курс давался мне не просто, было много новых определений и понятий. Но через определённое время, окунувшись в предмет с головой, мне стало проще ориентироваться. Больше всего мне были интересны уроки, на которых мы изучали интернет-разведку и поиск данных в интернете, разрабатывали программы для тестирования защищенности устройств. Было много практических и интересных заданий, а не просто сухой теории. Полученные знания я уже пробовал применять в жизни. Например, я уже эксплуатировал XSS и SQL injection уязвимости через платформу для тренировки навыков hack.me. Также пробовал себя на различных CTF-платформах. Для меня это очень интересно, потому что это решение логических задач и головоломок

.

О том, чему ещё научился

Помимо интернет безопасности, я занимаюсь изучением языков программирования Python и C++. В основном я изучаю их самостоятельно в свободное время, и прохожу дополнительные курсы. Я даже пробовал писать разные игры и программы на этих языках, например, пинг-понг, «21», «Дурак», 2D RPG. Ещё писал «парсеры» для авито, hh.ru, Ozon. Ещё я делал разные веб-сайты, среди которых несколько статичных сайтов и интернет-магазин.

О совмещении школы и GeekSchool

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

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

О продолжении обучения

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

О работе мечты

Я мечтаю работать в крупной IT-компании 一 например, в Лаборатории Касперского. Меня очень интересует раздел компьютерной криминалистики «форензика». Специалисты из этой области расследуют инциденты в сети — например, когда в компании взломали веб-сервер или утекла закрытая информация. Такие расследования меня особенно захватывают.

Совет тем, кто сомневается

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

Хотите узнать о других выпускниках GeekSchool? Вот их истории:

 


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

Android 12: что нового увидят пользователи и разработчики

Ежегодная конференция Google I/O предназначена не только для разработчиков, но и для обычных пользователей Android. На ней рассказывают про все новинки, которые появятся в ближайшее время, а также представляют новую версию операционной системы, которая «прилетает» на смартфоны осенью того же года. Давайте разбираться, о чем больше всего говорили в этом году и чем порадует нас Android 12.

Быстрый просмотр уведомлений и ассистент Google

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

  • ассистента Google теперь можно вызвать долгим нажатием на кнопку включения,
  • свайп вниз по экрану открывает все уведомления,
  • в «Быстрый доступ» можно будет добавить Google Pay и управление функциями смартфона.

Подробнее про визуальные изменения можно узнать в блоге Android.

Простое управление личными данными

Помимо визуальных изменений добавлена «Панель персональных данных», с помощью которой можно управлять доступом к вашим данным (контакты, фото, видео) и легко просматривать список приложений, имеющих к ним доступ. Можно быстро предоставлять так и закрывать доступ к данным для любого приложения на вашем смартфоне.
Также появились новые типы уведомлений, которые более явно сообщают о том, когда какие-либо из ваших приложений используют камеру или микрофон. Эти же уведомления позволяют легко закрыть доступ этих приложений к вашей камере и микрофону. А ещё в панели «Быстрого доступа» добавлены иконки микрофона и камеры, которые позволяют исключить любые приложения из списка пользователей.

Пульт в смартфоне — для телевизоров на Android TV

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

GIF of a user typing a password onto a phone and that password appearing on a TV screen

Управление авто с помощью Android Auto

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

Более удобный поиск информации

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

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

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

Смена паролей через Chrome и ассистента Google

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

Google Lens для переводов и поиска на скриншотах

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

Также много людей делают скриншоты вещей, которые им понравились. Но с самим скриншотом мало что можно сделать. Теперь при просмотре скриншотов в приложении Google Photos вам напомнят о поиске по фотографии через Lens. Так гораздо проще найти понравившуюся вам пару обуви или предмет интерьера. 

A GIF demonstrating using Google Lens to search a screen shot of a basketball player, returning results for his shoes

Напоминалки о товарах в корзине и скидочные карты в аккаунте

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

Более детальные карты

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

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

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

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

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

A GIF showing two similar pictures of a child and his baby sibling being converted into a moving image.

О чем интересном в новой операционной системе Android 12 мы не написали? Расскажите в комментариях!

 


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

Новая зарядка от Apple, анонс FIFA 22, срок за фотошоп

Джуана вернулась со свежими новостями: беспроводная зарядка от Apple, QR-код можно сделать татуировкой, мощная консоль от Valve, миллиард долларов от Цукерберга, анонс FIFA 22, игры от Netflix, борьба с фотошопом в Норвегии.

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

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

00:23 Беспроводная зарядка от Apple

01:13 Татуировка с QR-кодом

02:17 Анонс FIFA 22

03:18 Норвегия против фотошопа

04:16 Игры от Netflix

05:08 Миллиард от Цукерберга

06:10 Портативная консоль от Valve

07:36 Как вам?

До встречи через неделю!

 


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

Такая разная аналитика: как выбрать своё направление

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

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

Бизнес-аналитик

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

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

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

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

Бизнес-аналитику важно:

  • разбираться в основных показателях бизнеса, маркетинга, брендинга. Например — выручка, маржа, ROI и других;

  • владеть знаниями по непосредственно бизнес-анализу (стандарты BABOK) и методологией описания архитектуры предприятий TOGAF;

  • разбираться в методологиях разработки — например, Agile, Scrum;

  • владеть презентационными навыками, уметь формулировать и визуализировать свои идеи — в этом пригодятся Power Point (или KeyNote), Visio, Miro и Mind Map;

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

Кому подойдет это направление аналитики?

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

Узнать больше об этой профессии можно на странице нашего факультета бизнес-аналитики.

 

Продуктовый аналитик 

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

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

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

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

 Второе — уметь рассчитывать вероятности и строить прогнозы. Для этого обычно используют:

  • системы для продуктовой аналитики — например, Amplitude;

  • системы для работы с данными — SQL, PosgreSQL Power Query; 

  • системы бизнес-аналитики — Power BI, Tableau, Qlik Sense; 

  • инструменты программирования — например, язык Python; 

Также важно уметь проектировать AB-тесты и разрабатывать стратегии развития продукта.

Кому подойдет это направление аналитики?

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

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

 

Маркетинговый аналитик

Этот специалист также имеет большое влияние на работу компании в целом, может повлиять на глобальные процессы и распоряжаться солидными бюджетами. Маркетинговый аналитик определяет, какие маркетинговые каналы (например, наружная реклама, спецпроекты в интернет-СМИ или дегустации) будут использоваться бизнесом в ближайшей перспективе.

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

 Маркетинговые аналитики активно используют:

  • инструменты digital-аналитики — Google Analytics, Яндекс.Метрика, AppsFlyer, Ajust;

  • инструменты для размещения рекламы — Яндекс.Директ, Google Adwards, MyTarget;

  • системы анализа данных и бизнес-анализа. 

Функционал такого специалиста уже, чем у продуктового аналитика, но шире, чем у веб-аналитика, о котором мы поговорим далее.

Кому подойдет это направление аналитики?

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

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

 

Веб-аналитик

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

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

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

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

  • работает с Google Analytics и Яндекс.Метрикой; 

  • настраивает рекламные кампании в Яндекс.Директе и Google Adwords; 

  • устанавливает рекламные счетчики, разметки и пиксели с помощью программных инструментов и сервисов. Например, HTML, XML, Javascript, Google Tag Manager, Google Data Studio; 

  • работает с системами CMS, инструментами AB-тестирования и веб-аналитики — например, App Metrica, AppsFlyer, Ajust, Similarweb.

Кому подойдет это направление аналитики?

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

 

Системный аналитик

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

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

 Системный аналитик — одна из наиболее технических специальностей в аналитике, при этом анализирует и описывает он не данные, а IT-системы. Поэтому системному аналитику важно разбираться в графических моделях описания бизнес процессов, так называемых нотаций (BPMN, EPC, Flowchart, UML), в компонентах информационных систем и в разных подходах к разработке.

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

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

Кому подойдет это направление аналитики?

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

Подробнее узнать об этой специальности можно на странице нашего курса по системной аналитике.

 

UX-аналитик

UX – это User Experience (пользовательский опыт). UX-аналитик исследует взаимодействие пользователей с цифровыми продуктами, такими как сайт или мобильное приложение. То есть оценивает, насколько существующий продукт или сервис «дружелюбен» по отношению к пользователям — например, насколько комфортно делать покупки в приложении интернет-магазина или смотреть сериалы на видео-платформе.

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

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

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

Такой специалист проводит аудит текущих интерфейсов и участвует в разработке новых, поэтому ему стоит разбираться в  JSON, XML, HTML и в основах программирования, а также полезно владеть базовыми инструментами веб-аналитики, знать основы бизнес-анализа, работать с CJM (путями пользователя).

Кому подойдет это направление аналитики?

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

 

BI-аналитик

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

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

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

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

Основным рабочим инструментом такого специалиста являются специальные BI-системы (Power BI, Tableau, Qlik Sense), но также ему полезно уметь работать и с классическими базами и системами подготовки данных (SQL, PosgreSQL, Power Query).

Кому подойдет это направление аналитики?

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

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

 

 Аналитик Big Data 

BigData (Большие Данные) – это термин, обозначающий огромные объемы структурированных и неструктурированных данных, которые можно обработать с помощью особых аналитических инструментов.

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

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

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

Профессия аналитика больших данных скорее ближе к деятельности разработчика, чем к труду других аналитиков, хотя непосредственно написанием кода он практически не занимается. При этом в работе таким специалистам помогают инструменты программирования (Python, Scala, Bash) и системы для работы с данными (Spark, Hadoop). Но основную базу знаний Big Data аналитика составляют продвинутые знания в математической статистике, теории вероятностей, построении математических моделей, линейной алгебре и сложных методах вычислений.

Кому подойдет это направление аналитики?

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

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

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

 


15 июл, 13:39
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 1 по 10 | всего: 1053

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

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

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

Люди

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