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

Основная статья: Книги

Быстрый старт с Java: от знакомства до вашей первой игры 

Эта статья рассчитана на новичков в программировании. Её цель — объяснить азы языка Java (классы, методы, компиляция, байт-код, JVM, переменные, условия, циклы, импорт). Этот материал поможет:

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

Java Development Kit (JDK)

Для работы с Java необходимо скачать, установить и настроить Java Development Kit (JDK) — пакет программ и утилит для разработчика. Он бесплатно предоставляется компанией Oracle.
В строку поиска Google вводим запрос “jdk 8 download” и в первой же строке поисковой выдачи видим ссылку на страницу загрузки на oracle.com. Листаем вниз, щёлкаем Accept License Agreement — соглашаемся с лицензией. Выбираем пакет в колонке Download, который соответствует вашей операционной системе GBM5153 и её разрядности (32 или 64 бита). Для скачивания нужно будет зарегистрироваться на сайте. Скачиваем и устанавливаем JDK. При выборе пакетов и папки JDK рекомендую отказаться от Public JRE и сократить имя папки до jdk1.8.

Счастливым обладателям Windows потребуется также настройка системных переменных. Как их найти: Панель управления → Система → Дополнительные параметры системы → Вкладка «Дополнительно» → кнопка «Переменные среды», второе окошко сверху. В нем надо создать переменную JAVA_HOME и изменить (дополнить) Path (для этого используются кнопки «Создать» и «Изменить». Значение для переменной JAVA_HOME содержит путь к папке JDK. Переменную Path дополняем значением %JAVA_HOME%\bin. Обратите внимание, что список путей разделяется точкой с запятой (;). Инструкция есть также на сайте Oracle.

JDK содержит много утилит, но нам потребуется только компилятор (javac) и GBM2195 виртуальная машина Java — JVM (java).

Проверить правильность установки и настройки можно в командной строке (на Windows: Win + R → cmd) или в терминале (Linux, Mac), набрав следующие команды:

javac -version
java -version

В качестве альтернативы можно использовать онлайн-JDK вместе с редактором, например на сайте Repl.it.

Написание кода

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

Для Windows хорошим выбором будет Notepad++ с плагином NppExec. Подробно о его настройке можно прочитать в статье Виктора Темпалова  «Компилируем и запускаем Java-файлы из Notepad++». Для Linux и Мас есть другие текстовые редакторы, например Atom или Sublime Text.

Hello, world!

При изучении нового языка писать программу, выводящую «Hello, world!», — это традиция. Она возникла в 1978 году, с выходом в свет книги «Язык программирования С» Брайана Кернигана и Денниса Ричи.

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

Код начинается с ключевого слова class. Java-программы состоят из классов — это «кирпичики» приложения. В реальных приложениях их могут быть десятки, сотни и тысячи. Затем пишется имя класса — HelloWorld. Имена классов принято писать в стиле CamelCase (все слова слитно, каждое с заглавной буквы). Классам, как и другим сущностям — методам, полям и переменным — рекомендуется давать мнемонические, «говорящие» имена.

После имени в фигурных скобках записывается тело класса. Оно может содержать поля, методы и другие классы. Поля хранят данные. Они подобны переменным, однако в Java это несколько иная сущность. Методы содержат набор команд или код. Имена методов (как и полей, переменных) принято писать в стиле camelCase, со строчной буквы.

В нашем классе только один метод — main(). Он особенный, его часто называют стартовым. Когда виртуальная машина Java получает класс для исполнения, она ищет в нём метод main. Если находит — выполняет код, который содержит метод. Если нет — выдаёт сообщение об ошибке. Важно, чтобы метод main() имел строго определённую сигнатуру: был публичным (public), статическим (static), не возвращающим никакого значения (void), с параметром в виде массива строк (String[] args). В противном случае виртуальная машина его просто не найдёт.

Наш метод main() содержит лишь одну строку, которая выводит в консоль текст "Hello, world!".

Перед компиляцией сохраняем написанный код в файл. Имя файла должно соответствовать имени класса с точностью до регистра символов (Java — регистрозависимый язык). Затем открываем командную строку (или терминал) и вызываем сначала компилятор (javac), а потом виртуальную машину JVM (java).

C:\Users\User>javac HelloWorld.java
C:\Users\User>java HelloWorld
Hello, world!

После компиляции возникнет бинарный файл HelloWorld.class, содержащий байт-код. Имя этого файла (без расширения) передаётся как параметр при вызове виртуальной машины. В результате видим строку «Hello, world!» — это результат выполнения программы.

Переменные

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

  • запись значения в переменную (или присвоение значения);
  • чтение значения из переменной. 

В Java перед использованием переменную нужно обязательно объявить, указав тип и имя, поскольку Java — язык со строгой и статической типизацией. Попытка использовать переменную без объявления приведёт к ошибке компиляции. По типу переменные могут быть простыми (числа, символы, логические значения) или ссылочными (массивы, строки, любые другие объекты). В Java есть восемь простых типов (byte, int, short, long, float, double, boolean, char) и бесконечное количество ссылочных.

В примере ниже мы видим объявление двух переменных целого типа (int). Причём переменная second инициируется при объявлении. Затем переменной first присваивается результат выражения, в котором присутствует переменная second. В результате выполнения программы в консоль будут выведены значения обеих переменных: 35 и 10.

class Variables {
    public static void main(String[] args) {
        int first;
        int second = 10;
        first = second * 3 + 5;
        System.out.println(first);
        System.out.println(second);
    }
}

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

Проверка условий

Любой язык программирования высокого уровня позволяет изменять порядок выполнения программы в зависимости от заданного условия. В Java для этого используется конструкция if. После этого ключевого слова в скобках записывается логическое выражение, затем в фигурных скобках — группа команд. Если результат логического выражения — true (истина), то эта группа команд выполняется, если false (ложь) — нет.

class ComparisonShort {
    public static void main(String[] args) {
        int i = 10;
        if (i == 10) {
            System.out.println("i = 10");
        }
    }
}

Результат этого примера — строка “i = 10” в консоли, так как GBM5108 результат логического выражения (проверка на равенство) будет true.

В качестве знаков сравнения допустимы: <, <=, >, >=, ==, !=. Добавив ключевое слово else, получаем полную форму оператора сравнения.

class ComparisonFull {
    public static void main(String[] args) {
        int i = 10 + 2;
        if (i == 10) {
            System.out.println("i = 10");
        } else {
            System.out.println("i != 10");
        }
    }
}

Выполнив эту программу, мы увидим в консоли сообщение “i != 10”, так как результат сравнения значения переменной i и цифры 10 будет false. Поэтому выполнится набор команд в фигурных скобках после слова else.

Циклы

Циклы предназначены для повторения группы команд. Java позволяет использовать два вида циклов:

  • с определённым количеством итераций: for;
  • без определенного количества итераций: while и do-while.
class CycleFor {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
    }
}

Запустив этот пример, мы увидим в консоли колонку чисел от 0 до 4. Это результат работы классического цикла for со счётчиком. В круглых скобках три параметра цикла, разделённые точкой с запятой: объявление и инициализация счётчика, проверка условия продолжения цикла, действие после каждой итерации. В фигурных скобках — тело цикла. В нашем случае это команда, выводящая значение счётчика i в консоль.

Когда будем писать игру, используем циклы while и do-while — там и увидим их работу на практике. Пока достаточно сказать, что их синтаксис проще for, а тело цикла повторяется до тех пор, пока логическое выражение в круглых скобках после while возвращает true.

Пример ниже иллюстрирует вторую форму цикла for — без счётчика. Такой вариант удобен при переборе элементов массива или списка.

class CycleForeach {
    public static void main(String[] args) {
        int[] arr = {5, 4, 3, 2, 1};
        for (int a : arr) {
            System.out.println(a);
        }
    }
}

Импорт и использование классов

Один из важных принципов программирования — DRY: Don’t Repeat Youself (не повторяйся). Разработчик должен уметь использовать то, уже создано, отлажено и работает.

Java поставляется с набором packages (пакетов). Они содержат скомпилированные классы, сгруппированные по тематике. На неё указывает имя пакета: java.io, java.util, java.net и так далее. GBM5591

В игре нам потребуется случайное число от 0 до 9. Писать генератор случайных чисел незачем, так как в пакете java.util есть готовый класс Random. Чтобы использовать класс из пакета, его нужно импортировать. Строки с директивами импорта располагаются в самом начале файла класса.

import java.util.Random;

Создадим объект на основании класса, чтобы можно было вызвать нужный метод. Слева от знака присваивания (=) объявляем ссылочную переменную (объект) random типа Random. Справа создаём объект с помощью директивы new.

Random random = new Random();

Вызываем метод через точку после имени объекта: random.nextInt(10). Цифра 10 ограничивает диапазон генерируемых чисел (от 0 до 9). В результате получим строку из 30 случайных чисел. Запустите программу несколько раз и обратите внимание, что последовательность чисел не повторяется.

import java.util.Random;
 
class RandomInt {
    public static void main(String[] args) {
        Random random = new Random();
        for (int i = 0; i < 30; i++) {
            System.out.print(random.nextInt(10) + " ");
        }
    }
}

Игра «Угадай число»

Мы узнали достаточно, чтобы написать игру «Угадай число». В ней компьютер «загадывает» целое число от 0 до 9, а человек должен угадать его — есть три попытки.

Создадим класс GuessTheNumber с методом main(), импортируем нужные нам классы и добавим соответствующие объекты. Класс Scanner обеспечит чтение чисел с консоли (System.in — консоль).

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
    }
}

Объявим и инициируем три переменные: счётчик попыток count, для чтения числа с консоли — guess, для хранения загаданного числа — number.

int count = 0;
int guess = -1; 
int number = random.nextInt(10);

Опишем основной игровой цикл, используя while. В цикле запрашиваем число с консоли, сравниваем с загаданным. В случае несовпадения выводим подсказку и увеличиваем счётчик попыток на 1.

while (count < 3 && guess != number) {
    System.out.print("Guess the number (0..9): ");
    guess = sc.nextInt();
    if (number != guess) {
        System.out.println("Your number is " +
            ((guess > number)? "greater" : "less"));
        count++;
    }
}

Тело цикла while повторяется, пока логическое значение в скобках возвращает true. Таким образом наш цикл будет повторяться, пока значение счётчика попыток меньше 3 и число не отгадано. Обратите GBM9729 внимание на конструкцию, которая позволяет выбрать одно из двух значений согласно условию в скобках. Это тернарный оператор. Если условие в скобках true, то возвращается значение слева от двоеточия, если false — справа.

(guess > number)? "greater" : "less"

Остаётся добавить строку с выводом результата игры (победа или проигрыш) после цикла — тут снова используется тернарный оператор. Текст работающей программы выглядит так:

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        int count = 0;
        int guess = -1;
        int number = random.nextInt(10);
        while (count < 3 && guess != number) {
            System.out.print("Guess the number (0..9): ");
            guess = sc.nextInt();
            if (number != guess) {
                System.out.println("Your number is " +
                    ((guess > number)? "greater" : "less"));
                count++;
            }
        }
        System.out.println("You " +
            ((guess == number)? "WIN!" : "Lose: " + number));
    }
}

Сохраняем программу в файл GuessTheNumber.java, компилируем (javac), вызываем JVM (java) — и пробуем выиграть у компьютера.

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

import java.util.Random;
import java.util.Scanner;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        do {
            //
            // Вставьте фрагмент, который должен повторяться
            //
            System.out.println("Repeat game? Yes - 1, No - 0");
        } while (sc.nextInt() == 1);
    }
}

Обратите внимание, что тело цикла do-while повторяется на тех же условиях, что и тело цикла while: логическое выражение в скобках должно быть true.

Заключение

На всякий случай прилагаю мой telegram — @biblelamp. Если вас заинтересовала тема, рекомендую почитать «Java-программирование для начинающих» Майка МакГрата и «Изучаем Java» Кэти Сьерра и Берт Бейтс. В следующих статьях GBM4928 мы продолжим начальное изучение Java на примере создания других игр. Следите за блогом!

Если язык Java вас заинтересовал — приглашаем на факультет Java-разработки. Если ещё не совсем уверены — посмотрите истории успеха наших Java-выпускников:

P.S. Загадочные комбинации символов в статье выше — это не странности редактора, это дополнительные ключи для нашей игры «Дешифратор», в которой вы можете выиграть множество разных призов, в том числе бесплатное обучение на факультетах Geek University! Чтобы начать игру, пишите "geekbrains" в комментариях к посту ВКонтакте.

 


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

Быстрый старт с Java: от знакомства до вашей первой игры 

Эта статья рассчитана на новичков в программировании. Её цель — объяснить азы языка Java (классы, методы, компиляция, байт-код, JVM, переменные, условия, циклы, импорт). Этот материал поможет:

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

Java Development Kit (JDK)

Для работы с Java необходимо скачать, установить и настроить Java Development Kit (JDK) — пакет программ и утилит для разработчика. Он бесплатно предоставляется компанией Oracle.
В строку поиска Google вводим запрос “jdk 8 download” и в первой же строке поисковой выдачи видим ссылку на страницу загрузки на oracle.com. Листаем вниз, щёлкаем Accept License Agreement — соглашаемся с лицензией. Выбираем пакет в колонке Download, который соответствует вашей операционной системе и её разрядности (32 или 64 бита). Для скачивания нужно будет зарегистрироваться на сайте. Скачиваем и устанавливаем JDK. При выборе пакетов и папки JDK рекомендую отказаться от Public JRE и сократить имя папки до jdk1.8.

Счастливым обладателям Windows потребуется также настройка системных переменных. Как их найти: Панель управления → Система → Дополнительные параметры системы → Вкладка «Дополнительно» → кнопка «Переменные среды», второе окошко сверху. В нем надо создать переменную JAVA_HOME и изменить (дополнить) Path (для этого используются кнопки «Создать» и «Изменить». Значение для переменной JAVA_HOME содержит путь к папке JDK. Переменную Path дополняем значением %JAVA_HOME%\bin. Обратите внимание, что список путей разделяется точкой с запятой (;). Инструкция есть также на сайте Oracle.

JDK содержит много утилит, но нам потребуется только компилятор (javac) и виртуальная машина Java — JVM (java).

Проверить правильность установки и настройки можно в командной строке (на Windows: Win + R → cmd) или в терминале (Linux, Mac), набрав следующие команды:

javac -version
java -version

В качестве альтернативы можно использовать онлайн-JDK вместе с редактором, например на сайте Repl.it.

Написание кода

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

Для Windows хорошим выбором будет Notepad++ с плагином NppExec. Подробно о его настройке можно прочитать в статье Виктора Темпалова  «Компилируем и запускаем Java-файлы из Notepad++». Для Linux и Мас есть другие текстовые редакторы, например Atom или Sublime Text.

Hello, world!

При изучении нового языка писать программу, выводящую «Hello, world!», — это традиция. Она возникла в 1978 году, с выходом в свет книги «Язык программирования С» Брайана Кернигана и Денниса Ричи.

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

Код начинается с ключевого слова class. Java-программы состоят из классов — это «кирпичики» приложения. В реальных приложениях их могут быть десятки, сотни и тысячи. Затем пишется имя класса — HelloWorld. Имена классов принято писать в стиле CamelCase (все слова слитно, каждое с заглавной буквы). Классам, как и другим сущностям — методам, полям и переменным — рекомендуется давать мнемонические, «говорящие» имена.

После имени в фигурных скобках записывается тело класса. Оно может содержать поля, методы и другие классы. Поля хранят данные. Они подобны переменным, однако в Java это несколько иная сущность. Методы содержат набор команд или код. Имена методов (как и полей, переменных) принято писать в стиле camelCase, со строчной буквы.

В нашем классе только один метод — main(). Он особенный, его часто называют стартовым. Когда виртуальная машина Java получает класс для исполнения, она ищет в нём метод main. Если находит — выполняет код, который содержит метод. Если нет — выдаёт сообщение об ошибке. Важно, чтобы метод main() имел строго определённую сигнатуру: был публичным (public), статическим (static), не возвращающим никакого значения (void), с параметром в виде массива строк (String[] args). В противном случае виртуальная машина его просто не найдёт.

Наш метод main() содержит лишь одну строку, которая выводит в консоль текст "Hello, world!".

Перед компиляцией сохраняем написанный код в файл. Имя файла должно соответствовать имени класса с точностью до регистра символов (Java — регистрозависимый язык). Затем открываем командную строку (или терминал) и вызываем сначала компилятор (javac), а потом виртуальную машину JVM (java).

C:\Users\User>javac HelloWorld.java
C:\Users\User>java HelloWorld
Hello, world!

После компиляции возникнет бинарный файл HelloWorld.class, содержащий байт-код. Имя этого файла (без расширения) передаётся как параметр при вызове виртуальной машины. В результате видим строку «Hello, world!» — это результат выполнения программы.

Переменные

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

  • запись значения в переменную (или присвоение значения);
  • чтение значения из переменной. 

В Java перед использованием переменную нужно обязательно объявить, указав тип и имя, поскольку Java — язык со строгой и статической типизацией. Попытка использовать переменную без объявления приведёт к ошибке компиляции. По типу переменные могут быть простыми (числа, символы, логические значения) или ссылочными (массивы, строки, любые другие объекты). В Java есть восемь простых типов (byte, int, short, long, float, double, boolean, char) и бесконечное количество ссылочных.

В примере ниже мы видим объявление двух переменных целого типа (int). Причём переменная second инициируется при объявлении. Затем переменной first присваивается результат выражения, в котором присутствует переменная second. В результате выполнения программы в консоль будут выведены значения обеих переменных: 35 и 10.

class Variables {
    public static void main(String[] args) {
        int first;
        int second = 10;
        first = second * 3 + 5;
        System.out.println(first);
        System.out.println(second);
    }
}

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

Проверка условий

Любой язык программирования высокого уровня позволяет изменять порядок выполнения программы в зависимости от заданного условия. В Java для этого используется конструкция if. После этого ключевого слова в скобках записывается логическое выражение, затем в фигурных скобках — группа команд. Если результат логического выражения — true (истина), то эта группа команд выполняется, если false (ложь) — нет.

class ComparisonShort {
    public static void main(String[] args) {
        int i = 10;
        if (i == 10) {
            System.out.println("i = 10");
        }
    }
}

Результат этого примера — строка “i = 10” в консоли, так как результат логического выражения (проверка на равенство) будет true.

В качестве знаков сравнения допустимы: <, <=, >, >=, ==, !=. Добавив ключевое слово else, получаем полную форму оператора сравнения.

class ComparisonFull {
    public static void main(String[] args) {
        int i = 10 + 2;
        if (i == 10) {
            System.out.println("i = 10");
        } else {
            System.out.println("i != 10");
        }
    }
}

Выполнив эту программу, мы увидим в консоли сообщение “i != 10”, так как результат сравнения значения переменной i и цифры 10 будет false. Поэтому выполнится набор команд в фигурных скобках после слова else.

Циклы

Циклы предназначены для повторения группы команд. Java позволяет использовать два вида циклов:

  • с определённым количеством итераций: for;
  • без определенного количества итераций: while и do-while.
class CycleFor {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
    }
}

Запустив этот пример, мы увидим в консоли колонку чисел от 0 до 4. Это результат работы классического цикла for со счётчиком. В круглых скобках три параметра цикла, разделённые точкой с запятой: объявление и инициализация счётчика, проверка условия продолжения цикла, действие после каждой итерации. В фигурных скобках — тело цикла. В нашем случае это команда, выводящая значение счётчика i в консоль.

Когда будем писать игру, используем циклы while и do-while — там и увидим их работу на практике. Пока достаточно сказать, что их синтаксис проще for, а тело цикла повторяется до тех пор, пока логическое выражение в круглых скобках после while возвращает true.

Пример ниже иллюстрирует вторую форму цикла for — без счётчика. Такой вариант удобен при переборе элементов массива или списка.

class CycleForeach {
    public static void main(String[] args) {
        int[] arr = {5, 4, 3, 2, 1};
        for (int a : arr) {
            System.out.println(a);
        }
    }
}

Импорт и использование классов

Один из важных принципов программирования — DRY: Don’t Repeat Youself (не повторяйся). Разработчик должен уметь использовать то, уже создано, отлажено и работает.

Java поставляется с набором packages (пакетов). Они содержат скомпилированные классы, сгруппированные по тематике. На неё указывает имя пакета: java.io, java.util, java.net и так далее.

В игре нам потребуется случайное число от 0 до 9. Писать генератор случайных чисел незачем, так как в пакете java.util есть готовый класс Random. Чтобы использовать класс из пакета, его нужно импортировать. Строки с директивами импорта располагаются в самом начале файла класса.

import java.util.Random;

Создадим объект на основании класса, чтобы можно было вызвать нужный метод. Слева от знака присваивания (=) объявляем ссылочную переменную (объект) random типа Random. Справа создаём объект с помощью директивы new.

Random random = new Random();

Вызываем метод через точку после имени объекта: random.nextInt(10). Цифра 10 ограничивает диапазон генерируемых чисел (от 0 до 9). В результате получим строку из 30 случайных чисел. Запустите программу несколько раз и обратите внимание, что последовательность чисел не повторяется.

import java.util.Random;
 
class RandomInt {
    public static void main(String[] args) {
        Random random = new Random();
        for (int i = 0; i < 30; i++) {
            System.out.print(random.nextInt(10) + " ");
        }
    }
}

Игра «Угадай число»

Мы узнали достаточно, чтобы написать игру «Угадай число». В ней компьютер «загадывает» целое число от 0 до 9, а человек должен угадать его — есть три попытки.

Создадим класс GuessTheNumber с методом main(), импортируем нужные нам классы и добавим соответствующие объекты. Класс Scanner обеспечит чтение чисел с консоли (System.in — консоль).

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
    }
}

Объявим и инициируем три переменные: счётчик попыток count, для чтения числа с консоли — guess, для хранения загаданного числа — number.

int count = 0;
int guess = -1; 
int number = random.nextInt(10);

Опишем основной игровой цикл, используя while. В цикле запрашиваем число с консоли, сравниваем с загаданным. В случае несовпадения выводим подсказку и увеличиваем счётчик попыток на 1.

while (count < 3 && guess != number) {
    System.out.print("Guess the number (0..9): ");
    guess = sc.nextInt();
    if (number != guess) {
        System.out.println("Your number is " +
            ((guess > number)? "greater" : "less"));
        count++;
    }
}

Тело цикла while повторяется, пока логическое значение в скобках возвращает true. Таким образом наш цикл будет повторяться, пока значение счётчика попыток меньше 3 и число не отгадано. Обратите внимание на конструкцию, которая позволяет выбрать одно из двух значений согласно условию в скобках. Это тернарный оператор. Если условие в скобках true, то возвращается значение слева от двоеточия, если false — справа.

(guess > number)? "greater" : "less"

Остаётся добавить строку с выводом результата игры (победа или проигрыш) после цикла — тут снова используется тернарный оператор. Текст работающей программы выглядит так:

import java.util.Scanner;
import java.util.Random;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        int count = 0;
        int guess = -1;
        int number = random.nextInt(10);
        while (count < 3 && guess != number) {
            System.out.print("Guess the number (0..9): ");
            guess = sc.nextInt();
            if (number != guess) {
                System.out.println("Your number is " +
                    ((guess > number)? "greater" : "less"));
                count++;
            }
        }
        System.out.println("You " +
            ((guess == number)? "WIN!" : "Lose: " + number));
    }
}

Сохраняем программу в файл GuessTheNumber.java, компилируем (javac), вызываем JVM (java) — и пробуем выиграть у компьютера.

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

import java.util.Random;
import java.util.Scanner;
 
class GuessTheNumber {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        do {
            //
            // Вставьте фрагмент, который должен повторяться
            //
            System.out.println("Repeat game? Yes - 1, No - 0");
        } while (sc.nextInt() == 1);
    }
}

Обратите внимание, что тело цикла do-while повторяется на тех же условиях, что и тело цикла while: логическое выражение в скобках должно быть true.

Заключение

На всякий случай прилагаю мой telegram — @biblelamp. Если вас заинтересовала тема, рекомендую почитать «Java-программирование для начинающих» Майка МакГрата и «Изучаем Java» Кэти Сьерра и Берт Бейтс. В следующих статьях мы продолжим начальное изучение Java на примере создания других игр. Следите за блогом!

Если язык Java вас заинтересовал — приглашаем на факультет Java-разработки. Если ещё не совсем уверены — посмотрите истории успеха наших Java-выпускников:

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

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

Как я выучилась на маркетолога в Испании после университета

Об учебе за рубежом мечтают многие будущие студенты, но все, в основном, остаются учиться в России. С другой стороны, что мешает вернуться к учебе после первого, «обязательного» высшего? В этом посте я расскажу о том, как через семь лет (и после рождения двоих детей) я выучилась на маркетолога в Испании.

Как все начиналось 

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

Приступаю к диджитал-маркетингу 

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

Изначально выбор упал на университет Гранады с почти 500-летней историей. Мои документы позволяли мне поступить в магистратуру на 2-х годичное обучение. Забегая наперед, скажу, что меня приняли, но учиться я не стала. За год я выучила испанский до уровня В2-С1, но в последний момент поняла, что физически не потяну программу магистратуры — к тому моменту у меня было двое детей, одному из которых было всего полгода.

Проконсультировавшись с адвокатом, мужем и парочкой опытных соотечественников, я решила снизить планку и подала документы в Centro de Formación Profesional. Эта организация предоставляет возможность получить среднее и высшее профессиональное образование, а также поступать в университеты без сдачи вступительных экзаменов (только по проходному баллу). Мой выбор пал на профессию главного специалиста по маркетингу и рекламе. Стоимость годового курса составила около 2700 евро с возможностью помесячной оплаты. Никаких экзаменов перед поступлением не требовалось, единственное — нужно было предоставить доказательство завершения хотя бы средней школы в своей стране. У всех иностранцев (во всяком случае, выходцев из стран СНГ) просят омологированный диплом хотя бы о законченном среднем образовании. 

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

Остальные студенты поступили на этот курс по разным причинам: 

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

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

Формат обучения и проблемы с ним 

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

Из предметов на первый год у меня были: 

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

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

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

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


Вот, кстати, расчет чистого дохода

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

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

В конце блока теории и практики мы сдавали экзамены, или, по-нашему, контрольные работы. В конце триместра в течении 1-2 недель мы сдавали финальные экзамены по всему курсу и всем темам. Чаще всего это были письменная проверка знаний, когда нужно было написать развернутый ответ по вопросу. Таких вопросов обычно было около 10, и за час необходимо было исписать 2-3 листа формата А4. 

При несдаче экзамена никаких трагедий не устраивалось. Его пересдавали еще раз, и еще раз, и до тех пор, пока оценка не была приемлемой, а именно 4 из 10. Если после нескольких попыток у студента ничего не выходило, этот экзамен переносился на следующий год. Стоит ли говорить, что выпустились все до единого? Также оценка на экзамене могла быть 5,2 или 8,6. В конце курса она округлялась по усмотрению преподавателя. 

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

Что касается дипломной работы, то тема у всех была одна — составление плана создания компании с нуля, начиная от названия и слогана и заканчивая маркетинговой политикой. Нам давался четкий план с пунктами, которые должны были быть в работе. Как я наивно полагала. На 60 странице диплома, столкнувшись с какой-то проблемой, я решила проконсультироваться с руководителем, который пришел в ужас от объема моей работы. Как выяснилось, мы должны были выбрать всего несколько пунктов, которые нам нравились. Но, напомню, в университете нас учили по-другому, поэтому в своей дипломной работе я расписала все от стоимости аренды здания, заканчивая финансовым балансом и маркетинговыми мероприятиями. Моя 120-страничная работа в итоге выгодно выделялась среди дипломных работ сокурсников с объемом от 20 до 40 страниц. Я даже не уверена в том, что руководитель ее полностью прочитал, а не просто поставил высшую оценку, впечатленный объемом работы. 

Обучение в Испании и России — есть ли разница? 

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

  • Много практики и творческих заданий: мы создавали слоганы, рисовали дизайны сайтов в Photoshop, верстали книги и разрабатывали маркетинговые стратегии для реальных предприятий
  • Презентации и еще раз презентации. Не было и недели, когда мне бы не пришлось выходить к экрану с файлом Power Point на флешке. 
  • Командная работа, которой уделялось очень много внимания. Мы должны были научиться взаимодействовать друг с другом, понимать и выдавать достойный результат. Если ленился или факапил один член команды, страдали все. Поэтому нередкими были и межличностные разборки после презентаций. 
  • Серьезное подход к учебе. Все мы слышали о “поверхностном” уровне образования на Западе. Если вначале я пришла на курс в расслабленном настроении, то уже к первым контрольным работам осознала, во что я ввязалась. 

Подытожив все сказанное, могу с гордостью сказать: ya soy especialista de marketing!  Вообще стоит отметить, что эти два года морально и физически были самыми сложными в моей жизни. Но опыт, который можно получить от обучения в другой стране по другим подходам — неоценим. Учитесь, друзья, если есть возможность, и не отказывайте себе в удовольствии перейти очередной Рубикон.


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

Профессии с того света: 8 работ, умерщвленных технологиями

Ну вообще-то не всех. Умные алгоритмы тоже кто-то должен писать, а роботов проектировать, тестировать, обучать, поддерживать и рекламировать. Если вы следуете принципу lifelong learning, то безработица в ближайшее время вам не страшна, а там и до базового дохода недалеко. Однако кое-кого уже не спасти. Вот вам подборка «мертвых» профессий, которые едва ли восстанут из могил и, в основном, могут напомнить о себе только на жутковатых старых фото.

Вычислитель

Вычислители за работой, 1890 год

До середины XX века работали люди, которые буквально выполняли функцию компьютера. Эта профессия так на английском и называлась — computer. Обычно вычислители работали в команде, где каждый человек выполнял свою часть расчетов. Существовали целые вычислительные организации, в штате одной из известных — Mathematical Tables Project — числились 450 человек. Такой себе живой суперкомпьютер! Разумеется, с появлением ЭВМ профессия устарела.

Перспективная альтернатива — аналитик Big Data. Эта профессия куда интереснее и престижнее. Теперь посчитать не проблема, важно правильно интерпретировать! 

Сотрудник видеопроката

Внутри видеопроката

Некогда желанная работа — ведь можно было первым смотреть все новинки кино! — ушла в прошлое. На смену видеопрокату пришли Netflix, YouTube, торренты. В крайнем случае, автоматы по прокату DVD.

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

Почтальон

Сотрудник доставки почты

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

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

Издатель «Желтых страниц»

Типичный справочник «Желтые страницы»

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

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

Глашатай

Русский вестник XIV века

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

Перспективная альтернатива — PR-менеджер. Только вместо феодалов — бренды, вместо гербов — айдентика (ее разрабатывают в команде с маркетологом и дизайнером), а родословные заменяет сторителлинг.

Телефонистка

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

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

Радар

«Человек-радар» на посту

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

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

Ловец крыс

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

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

А вы помните еще профессии, которые вымерли из-за технического прогресса? Есть идеи насчет современной альтернативы?


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

Голые хипстеры и офисные битвы: что было на Dream Team

Что такое Dream Team

С первых минут на мероприятии я поняла, что никакие оды «особой атмосфере», «незабываемым эмоциям» и «командному духу» не выразят общее настроение лучше, чем одно слово. Dream Team — это кураж! 

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

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

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

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

Кстати, насчет еды: на время мероприятия участники были обеспечены перекусами, водой и, главное, кофе! Был даже обед — правда, на него отвели всего 20 минут. Может, это и к лучшему: никто не успел расслабиться и потерять соревновательный дух.

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

О чем рассказывали на лекциях

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

Иоанн Павловский о гейм-дизайне настольных игр

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

Как сделать крутую карточную игру-филлер?

Отказаться от: 

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

Лучше избегать:

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

Хорошим идеям свойственны:

  • глубокие механики,
  • нелинейный баланс,
  • неординарность.

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

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

Данила Терсков о продвижении продукта

Основа digital-стратегии:

  • определение целей, ЦА и УТП;
  • формирование сообщения;
  • создание креативной стратегии (упаковки);
  • выбор каналов продвижения;
  • медиапланирование;
  • постановка и контроль KPI.

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

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

Креатив должен быть не просто ярким, а с понятной пользой.

Основные каналы продвижения: SEO, Yandex + РСЯ, Google + КМС, MyTarget, таргетированная реклама в Facebook + Instagram, таргетированная реклама в VK, реклама в YouTube, тизерная реклама, CPA-сети, еmail-рассылка, товарные агрегаторы.

Основные цели продвижения — Awareness (охват аудитории), Traffic (посещения, трафик), Interaction (вовлечение), Sales (продажи), Loyalty (лояльность). У целей разные метрики, и их много:

  • Awareness. Охват (Reach, Cover) — сколько представителей ЦА имели контакт с рекламой в рамках компании заданное число раз. KPI охвата: View — количество просмотров рекламного объявления; CPM (cost per millennium) — оплата за тысячу показов рекламного объявления; CPV (cost per view) — оплата за просмотр рекламы. 
  • Traffic. Хосты (посетители) — уникальные посетители сайта. Сеансы — общее число сеансов на сайте; CPC (cost per click) — сумма, которую рекламодатель платит за один клик по его рекламе; CPV (cost per visitor) — за одного посетителя. Это не одно и то же.
  • Interaction. Время, проведенное на сайте, — средний показатель в минутах. Глубина просмотра сайта — среднее число страниц, просмотренных за один сеанс (на одного посетителя). Engagement rate — коэффициент вовлеченности аудитории в публикации контента. 
  • Sales. Orders — количество оформленных заказов. Sales — количество совершенных продаж. CPO (cost per order) — средние затраты на получение заказа. CPS (cost per sale) — средняя стоимость продажи.
  • Loyalty. Retention rate (CRR) — коэффициент удержания клиентов. CRR = ( (E – N) / S) × 100. Где: (Е) — количество клиентов на конец периода; (N) — количество новых клиентов, приобретенных за период; (S) — количество клиентов на начало периода. Churn rate — коэффициент оттока. Грубая оценка: Churn rate = Ушедшие клиенты / Общее число клиентов. 

Mention — суммарное количество упоминаний бренда на чужих площадках. Passion — среднее количество упоминаний бренда одним автором. Net Sentiments Rate — разница между позитивными и негативными упоминаниями.

Из этих этапов продвижения формируется воронка продаж:

Иван Русов о конфликтах в команде

Конфликт складывается из причины и конфликтной среды. 

Возможные причины:

  1. Неправильное распределение зон ответственности. 
  2. Непонимание правил игры.

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

Ставим цели по методике SMART: Specific (конкретные), Measurable (измеримые), Achievable (достижимые), Relevant (значимые), Time bound (определенные по времени). О возможном срыве дедлайнов нужно предупреждать, о косяках — говорить.

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

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

Нужно вызывать у пользователя яркие эмоции и приятные ассоциации! Например, вот так:

Сергей Тиджиев о работе с цветом, графикой и шрифтами

Сергей раскрыл тему цвета, графики и шрифта на примере разработанной им крутейшей книги-игры. Там вы выступаете в роли иммигранта, который переехал в другой город. Нужно адаптироваться в нем и умело выходить из сложных ситуаций — для этого есть небольшой запас денег. Так погрузилась в лекцию, что записала только это: «Хочу книгу серии „ПРИВЕТ СТРАНА“!»

Сергей Илюхин о логике презентаций

Структура презентации: заглавный слайд, бэкграунд, драма, идея, детали идеи, RTB (Reasons to believe), чего ждать.

Заглавный слайд — обложка, по которой будут судить о всей презентации. Красивые картинки — это важно. Бэкграунд — ответ на вопросы: 

  • какая задача?
  • почему вы над ней работаете?
  • как сейчас ситуация на рынке?
  • что делают конкуренты?

Драма дает вывод из бэкграунда и показывает, почему важно решить задачу. Пример драмы: «Игра — это серьезно! Почему тогда награды заслуживают только киберспортсмены, а не обычные геймеры?».

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

Закончить нужно красиво и без «спасибо». Финальный слайд — забавная фраза, которая обобщает всю презентацию.

Впечатления участников

Все студенты геймдев-факультета GeekUniversity, которые участвовали в Dream Team, согласились, что было суперполезно включиться в настоящую командную работу, где у каждого есть своя зона ответственности. А чего всем не хватило, так это времени. Кому-то на разработку, а кому-то — на обед.

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

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

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

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

 

Марго Кашуба, директор по маркетингу OWOX BI — сервиса по маркетинг-аналитике: 

Клотер Рапай. «Культурный код. Как мы живем, что покупаем и почему» 

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

Роберт Чалдини. «Психология влияния»

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

Фредерик Лалу. «Открывая организации будущего» 

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

Авинаш Диксит, Барри Дж. Нейлбафф. «Теория игр. Искусство стратегического мышления в бизнесе и жизни»

 

Для отчаянных маркетологов, которые хотят принимать решения на основе данных в эру data-driven. Одна из лучших книг, которая показывает, как работает стратегическое мышление, и помогает развить его в себе.

 

Владимир Кирко, старший аналитик отдела BI цифрового медиаагентства i.com:

Максим Котин. «И ботаники делают бизнес»

Как-то я случайно зашел в пиццерию «Додо Пицца» и, пока ждал заказа, удивился, насколько слаженно работает персонал. На прилавке меня заинтересовала книга Максима Котина — я ее купил и сразу стал читать. Сегодня рекомендую ее каждому аналитику по трем причинам: она вдохновляет, объясняет ошибки в бизнесе и показывает, почему необходимо анализировать рынок и не терять бдительность. 

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

Джон Коттер. «Лидерство Мацуситы. Уроки выдающегося предпринимателя XX века»

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

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

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

Ричард Брэнсон. «Теряя невинность. Как я построил бизнес, делая все по-своему и получая удовольствие от жизни»

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

Сергей Абдульманов, Дмитрий Кибкало и Дмитрий Борисов. «Бизнес как игра. Грабли российского бизнеса и неожиданные решения»

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

Елена Радевич, маркетолог digital-агентства BDCenter:

Дэвид Огилви. «Огилви о рекламе»

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

Денис Каплунов. «Нейрокопирайтинг. 100+ приемов влияния с помощью текста»

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

Майкл Микалко. «Рисовый штурм» 

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

 

Руслан Галка, директор по маркетингу компании «Системный софт»:

Роджер Бест. «Маркетинг от потребителя»

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

Майкл Портер. «Конкурентная стратегия. Методика анализа отраслей конкурентов»

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

Geoffrey Miller. Spent. Sex, Evolution & Consumer Behavior

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

Йон Спэлстра. «Агрессивный маркетинг»

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

Марк Стивенс. «Ваш маркетинг — отстой!» 

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

 

Александр Салангин, креативный директор Ingate:

Скотт Бринкер. «Agile-маркетинг. Хакерские практики для эффективного бизнеса»

Эджайл медленно, но ожидаемо вырос из «тесных штанишек» IT и добрался до высокого маркетинга. Сегодня читатель интересуется уже не тем, что это такое, а какой эджайл выбрать и как круче его внедрить. Книга дает представление о классических agile-практиках и их применении к маркетинговым стратегиям — в роли мощных драйверов. В тексте дано много теории и кейсов для ознакомления и анализа, а также расписан интересный путь перехода маркетингового хаба в agile-парадигму.

Марина Боровик и другие. Performance-маркетинг. Заставьте интернет работать на вас

 

Первый и единственный закон performance-маркетинга — реклама должна измеряться и окупаться. В книге собраны практические советы по использованию всех важных каналов лидогенерации: поискового продвижения, контекстной рекламы, SMM, RTB, email-маркетинга. Авторы расскажут, как подружить каналы между собой, измерить эффективность вложений и быстро повысить продажи из интернета. «Performance-маркетинг» — простое в исполнении руководство от практиков с многолетним стажем.

Клаус Шваб. «Четвертая промышленная революция»

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

 

Чермен Дзотов, маркетолог, основатель агентства по продвижению экспертов в СМИ «Найдем Эксперта»:

Андерхилл Пако. «Почему мы покупаем, или Как заставить покупать»

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

Маркус Бакингем и Курт Коффман. «Сначала нарушьте все правила! Что лучшие в мире менеджеры делают по-другому?» 

Я считаю, что эту книгу нужно прочесть каждому неравнодушному маркетологу. Она поможет продвинуть продукт на новый уровень и реализовать скрытый потенциал сотрудников. Это пособие от профессионалов: Курта Коффмана, руководителя глобальной практики Института Гэллапа, и Маркуса Бакингема, исследователя организационной природы с двадцатилетним стажем. В книге собраны рассказы лидеров компаний, которые смогли выйти на качественно новый уровень управления и продаж.

 

Лилия Алеева, директор по маркетингу компании ICL Services:

Илья Балахнин. «Маршрут построен!»

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

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

Карл Сьюэлл, Пол Браун. «Клиенты на всю жизнь» 

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

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

А какие книги хотели бы добавить в нашу подборку вы?


28 окт 19, 17:38
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

10 типичных страхов перед сменой профессии

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

Евгения Лютова, клинический психолог

«Боюсь неизвестности»

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

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

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

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

Курунтяева Инна, руководитель департамента по работе с персоналом ГК Dzotov Partners

«Слишком поздно учиться новому»

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

«Не хватит денег»

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

Инна Анисимова, генеральный директор агентства PR Partner

«Я слишком стар»

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

«Я слишком молод»

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

«Вдруг это тоже не мое?» 

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

«У меня нет специального образования — мне не хватит знаний»

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

Анна Иванова, руководитель направления IT & Telecoms международной рекрутинговой компании Hays

«Все, что было до этого, — зря» 

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

«Что же скажут люди»

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

В прошлом году мы были на мероприятии, которое организовали Mail.ru и Geek University для своих студентов, чтобы помочь им в трудоустройстве. Более 80 % анкет, которые мы получили тогда, — от профессионалов в возрасте от 30 до 40 лет, которые оставили свои успешные карьеры в других областях и пошли изучать новую для себя IT-индустрию.

Прапион Медведева, основательница «Зарешай»

«Будет слишком трудно»

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

Почему страх — это нормально

Ольга Горюшкина, психолог, проводит консультации в направлениях СBT (когнитивно-поведенческая терапия) и эриксоновского коучинга

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

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

Чтобы оценить реальность страхов и понять, стоит ли с ними работать на более глубоком уровне, составьте таблицу:

  1. Напишите все ваши страхи.
  2. Оцените риск воплощения каждого из них по 10-балльной шкале, где 10 — наиболее высокая вероятность того, что страх реализуется.
  3. Напротив каждого страха напишите конкретные примеры из вашей жизни: почему вам кажется, что он может в вашем случае реализоваться.
  4. Далее приведите аргументы, которые «страхуют» вас от негативного развития событий.
  5. В конце оцените то, что получилось, и решите, какие действия вы будете предпринимать в отношении ваших страхов перед сменой профессии.

Бонус: как быстро понять, надо ли менять профессию

Евгения Лютова, клинический психолог

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

 

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

2 окт 19, 15:03
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Методологии разработки ПО: RAD

Сегодня расскажем о RAD — Rapid Application Development, или быстрой разработке приложений. 

Меньше слов, больше дела! 

Идея RAD зародилась в 1980-х годах как альтернатива устаревающей методологии Waterfall, о которой мы уже писали. Каскадная модель программирования уже тогда воспринималась как перегруженная формальностями и недостаточно гибкая. Заказчик выдавал разработчику техническое задание и не видел результата до тех пор, пока программа не «сходила с конвейера» уже готовой, — и ожидания пользователя зачастую не оправдывались. Продукт мог оказаться слишком сложным, неудобным, а мог и устареть за время разработки. 

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

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

Идея оказалась перспективной. Ее проработал специалист IBM Джеймс Мартин — в 1991 году вышла его книга «Быстрая разработка приложений» с изложением оригинальной методики применения RAD или Rapid Application Development. Спустя два года Джеймс Керр и Ричард Хантер написали книгу «Внутри RAD: как построить полностью функциональную систему за 90 дней или меньше», где проанализировали подводные камни и возможности, которые они выявили при планировании и реализации успешного проекта RAD.

Эти книги заложили фундамент для практического применения RAD, и с тех пор эта методология остается в арсенале IT-разработчиков.

Нарисуйте мне программу

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

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

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

Методологию быстрой разработки RAD можно сравнить с работой художника. Сначала живописец делает эскиз. Потом создает черновой вариант картины. Затем он начинает прорабатывать элементы, добавляет детали, исправляет недочеты. Разумеется, не каждый заказчик способен по первому наброску представить себе, как будет выглядеть готовая картина, — возможно, он вообще не имеет понятия о перспективе или композиции. Но по крайней мере художнику не придется переписывать весь холст — ведь к завершению работы уже не окажется, что клиент перепутал натюрморт с пейзажем: «Нет-нет, я имел в виду сельский вид, а не корзину с фруктами!» Куда проще внести исправления в эскиз, чем в завершенное полотно.

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

Быстро, качественно, дешево — выберите три из трех

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

Почему быстро?

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

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

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

Почему качественно?

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

Почему дешево? 

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

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

При Rapid Application Development пользователь сам решает, что ему требуется в первую очередь, и постоянно получает все более функциональные прототипы — то есть, фактически, работающие версии программы. Если финансирование внезапно иссякнет — пользователь не останется у разбитого корыта. 

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

Инструментарий RAD

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

Средства автоматизации разработки программ (Computer-Aided Software Engineering), или CASE-инструменты — это программные продукты для проектирования приложений. Такая система позволяет быстро создать модель программы, а затем автоматически сгенерировать программный код. Получается прототип — запускаемый модуль, который можно продемонстрировать заказчику. 

От одноклеточного к развитому: эволюция программы

Разработка приложения по методологии RAD проходит в несколько этапов. 

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

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

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

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

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

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

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

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

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

Финальный этап разработки — переключение. Готовый программный продукт тестируют, развертывают на пользовательских машинах, конвертируют информацию в новый формат или «заливают» в новые базы данных, подготавливают документацию и обучают операторов работе в системе.

Когда мы рады RAD’у, а когда не рады

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

Эффективные варианты применения RAD

  • Если проект легко делится на независимые или слабосвязанные модули. Разработку в таком случае можно вести параллельно, несколькими командами, каждая из которых будет собирать прототип только одного модуля. В конце итерации или всей работы над программой модули объединяют в цельное приложение. 
  • Если требования к программному обеспечению быстро меняются. RAD — отличный выбор, когда заказчик понимает, что программа нужна как можно скорее, но к концу работы над ней часть спецификаций наверняка изменится.
  • В условиях ограниченного бюджета. RAD гарантирует, что заказчик получит продукт, выполняющий поставленные задачи, даже если внезапно закончатся деньги.
  • Когда у пользователя нет ясного представления, как должен выглядеть и работать продукт. Поскольку программу создают небольшими итерациями, во время которых спецификации и требования постоянно уточняются, в итоге заказчик получает продукт, соответствующий его пожеланиям. Но лучше в общих чертах заранее сформулировать бизнес-цели и задачи для приложения.
  • Когда у вас есть коллектив хороших разработчиков и дизайнеров. Задача RAD — быстро создать качественный продукт. А это могут только профессионалы.
  • Если пользователь готов активно участвовать в проекте на протяжении всей работы — обсуждать нововведения и функциональность, тестировать прототип, давать обратную связь. Если у заказчика не хватает на это мотивации, стоит попробовать другие модели — например, Waterfall, где пользователь только формулирует ТЗ или спецификации. 

Преимущества RAD — кратко

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

Недостатки RAD

  • RAD применима для больших команд.
  • RAD зависит от вовлеченности заказчика в работу. Если он не может принять участие в очередном обсуждении проекта, работа может приостановиться.

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


25 сен 19, 15:42
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Изучить ИИ и внедрить в свой бизнес

Начать свое дело

Пять лет назад я решил основать собственный бизнес. До этого с момента окончания вуза я работал программистом 1С, прошел путь от рядового сотрудника до руководителя проектов. За несколько лет в этой сфере я изучил подводные течения рынка, проблемы и потребности клиентов. Из-за медлительности исполнителей, лишней функциональности ПО и банальных сбоев системы крупные компании за одну ночь могли лишиться миллионной прибыли. Со временем у меня сформировалась идея, как автоматизировать типовые процессы в финансовом учете. Чтобы заняться этим, надо было перестать быть наемным сотрудником — лоббирование идей часто отнимает больше сил, чем их воплощение. 

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

Понять, чему учиться дальше

Этот интерес привел меня к тому, что пару лет назад я увлекся разработкой приложений на iOS. Изучая материалы в интернете, наткнулся на портал GeekBrains. Посмотрел несколько вебинаров, изучил блог и описания курсов. В итоге начал обучение по профессии «iOS-разработчик». Вскоре отметил, насколько качественно и быстро сегодня можно получить специальность в IT.

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

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

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

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

Я начал читать книги и статьи. Но в этой области без фундаментального образования не обойтись. А в GeekUniversity как раз стартовал факультет искусственного интеллекта. Я планировал отправить на обучение нескольких сотрудников, но захотелось сначала попробовать самому. Так в апреле 2019 года я снова стал студентом, на этот раз в онлайне.

Просыпаться и заниматься

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

Больших сложностей в обучении нет, мне хватает 4–8 часов в неделю, в том числе на практические задания. Но иногда требуется намного больше — особенно когда берешься за задачи «со звездочкой». Скорее всего, дальше будет сложнее, так как пока мы прошли только вводную часть. Но польза от обучения уже есть. По подаче и актуальности курс мне нравится. Уже думаю над тем, кого из сотрудников наградить поступлением в GeekUniversity.

И сразу использовать знания 

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

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

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

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

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

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

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

UI-дизайн: начало пути и штурм больших заказов

Виталий Асташкин, психолог по образованию, после вуза работал педагогом-организатором. Когда захотел перемен — освоил дизайн интерфейсов в GeekBrains и начал фрилансить. Сейчас у Виталия за плечами несколько проектов для крупных заказчиков, таких как концерн «Калашников», Уральский вагоностроительный завод и правительство Республики Удмуртия.

— Виталий, первый вопрос о том, чем вы сейчас занимаетесь. В каких стартапах и над какими проектами работаете?

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

В одной команде мы создаем виртуальную химическую лабораторию: с помощью VR-очков и контроллера вы можете проводить химические опыты.

Дизайн периодической системы химических элементов. Таблица распечатывается и считывается камерой смартфона для получения дополнительной информации в AR

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

Карточка товара в приложении для подбора одежды FitsMe 

— Расскажите о крупных проектах, в которых участвовали: для концерна «Калашников» и Уральского вагоностроительного завода. 

— Для «Калашникова» я готовил интерфейс AR-приложения, которое показывает на карте мира пути поставок продукции и сведения о заводах концерна. 

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

Экран с информацией о поезде. Проект для Уралвагонзавода

— Где можно посмотреть примеры ваших работ?

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

Кстати, свой первый серьезный заказ я получил именно благодаря аккаунту на Dribbble. Скинул свой профиль, выполнил тестовое задание — и за работу!

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

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

Где-то с августа 2018 я начал выполнять первые небольшие заказы от друзей и знакомых. К маю 2019 года — взял первый крупный заказ.

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

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

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

Инфографика для панорамы 360°

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

— На старте надо владеть программами для прототипирования: например, Figma, Sketch, Axure. Конечно, эскизы приложения можно набросать и на листочке, но собранный в Figma интерактивный прототип будет куда информативнее и привлекательнее для заказчика.

Для подготовки иллюстраций, иконок и сложной графики пригодится Adobe Illustrator.

Для работы с растровой графикой — Photoshop. К слову, некоторые заказчики до сих пор просят исходники в формате .psd.

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

Вообще, чем больше у вас знаний в разных областях, тем лучше. Знакомы с HTML хотя бы на самом базовом уровне? Хорошо. Знаете, что такое Native React? Прекрасно. Прочли книги по копирайтингу? Отлично! 

Текст — неотъемлемый элемент дизайна и интерфейсов. При подготовке макетов, чтобы не вставлять «рыбу» текста или фразы вроде «тут будет заголовок», полезно уметь формулировать ключевые мысли. 

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

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

— С чего начался ваш путь в дизайн? Когда вы решили, что это всерьез и нужно получать дополнительное образование? 

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

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

— Почему выбрали именно UI, а не другие направления?

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

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

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

Не было такого, чтобы я решил для себя «После вуза стану педагогом!». Это был естественный ход событий. 

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

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

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

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

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

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

Прототипирование приложения для подбора авточехлов

— Какими были ожидания от учебы в GB и насколько они оправдались? Какие приобретенные знания и навыки считаете самыми ценными?

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

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

 — Вам в дизайнерской работе доводилось осознанно, специально применять свои знания в области психологии?

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

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

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

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

Планирую углубиться в UX, поведение и паттерны. Главное — не останавливаться.

— Спасибо, что поделились историей, примерами работ, наблюдениями. Успеха вам в профессии и творчестве!

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

11 сен 19, 08:33
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 31 по 40 | всего: 99

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

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

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

Люди

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