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

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

Книги для новичков по машинному обучению

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

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

Книги по машинному обучению на русском языке

«Введение в машинное обучение с помощью Python», Андреас Мюллер, Сара Гвидо

Так как большинство разработок в сфере сегодня ведётся на языке Python, то в первую очередь следует штурмовать именно его. В нашем контексте новичкам лучше всего подойдёт вот эта книга по machine learning, поскольку акцент в ней сделан на теоретическую часть обработки данных, а библиотеки и операции в Python ー лишь прикладная иллюстрация. Всё в соответствии с названием.

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

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

«Машинное обучение без лишних слов», Андрей Бурков

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

«Python и машинное обучение», Себастьян Рашка

Эта книга уже требует от читателя хотя бы элементарных навыков работы с Python, необходимых, чтобы шагнуть на новую ступень знаний в machine learning. Здесь рассматриваются профильные библиотеки языка по машинному обучению, в частности scikit-learn, Keras, Theano. Перечень задач широкий: обработка простых баз данных, анализ текста и визуальной информации, нейронные сети и многое другое. У книги есть два издания, но для вводной части не важно, какое именно попадётся вам в руки. 

«Идеи машинного обучения», Шалев-Шварц Шай, Бен-Давид Шай

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

«Машинное обучение и TensorFlow», Шакла Нишант

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

«Грокаем глубокое обучение», Эндрю Траск

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

Книги по machine learning на английском языке

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

Machine Learning For Absolute Beginners: A Plain English Introduction, Oliver Theobald

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

Machine Learning For Dummies, John Paul Mueller, Luca Massaron

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

Machine Learning In Action, Peter Harrington

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

Python Machine Learning: A Technical Approach to Machine Learning for Beginners, Leonard Eddison

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

Data Mining: Practical Machine Learning Tools and Techniques, Ian H. Witten, Eibe Frank, Mark A. Hall

Работа с огромными объёмами данных — это одна из наиболее частых причин,  почему сторонние специалисты начинают интересоваться машинным обучением. В этой книге есть для таких людей есть ответы на все вопросы. Как? Зачем? С чьей помощью? Насколько это долго и сложно? Можно ли обойтись без машинного обучения? Если вам тоже требуется погружение в принципы обработки данных с использованием искусственного интеллекта, а английский язык не смущает — тогда это та книга по machine learning вам точно не помешает. 

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

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

В связи с коронавирусом всё больше и больше людей вынужденно переходят на удалённую работу или учёбу. Если у вас освободилось время, которое вы обычно тратите на дорогу, можно провести его с пользой и заняться самообразованием. С 19 по 31 марта 2020 г. мы дарим скидку до 70 000 рублей на обучение GeekBrains. Будьте здоровы! :)

 

 


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

Две работы и учёба: сколько можно успевать, если не лениться

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

Почему программирование и Python

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

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

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

Почему разработка не даётся с наскока

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

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

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

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

Космос, банки и GeekBrains

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

Начало работы в IT

Я приступил к учёбе на курсах в мае 2018 года. К августу, когда мы дошли до разработки мессенджера, я понял, что не успеваю выполнять учебные задачи и не справляюсь с ними. Решил перепройти курс. За пару недель до повторного обучения я устроился верстальщиком в команду, которая делала приложение типа BlaBlaCar. На тот момент я даже JavaScript не знал — только разметку HTML и CSS.

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

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

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

Как джун я рассчитывал начать с простых задач, однако на третьей неделе работы мне сказали: «Вот есть основной сервис, сделай так, чтоб люди могли брать кредиты». У меня сразу паника, страх: «Вы что, с ума сошли?! Я несколько месяцев назад написал свой первый интернет-магазин — плохо, не до конца. А тут система выдачи кредитов, где нужно обеспечить безопасность и всё остальное!»

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

Жизнь становилась всё веселее: 5/2 в офисе, где мы писали дрянной код без нормальной работы менеджмента и учёта современных технологий, затем — сутки-трое в Роскосмосе плюс учёба. Я быстро понял, что дальше развиваться как программист в таких условиях не смогу, и снова начал искать работу.

Начинать заново — обычное дело

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

Был я и на собеседовании в Mail.ru Group. Прошёл дистанционное интервью, но в офисе тимлид меня просто уничтожил — стало ясно, как многому ещё предстоит научиться. Вакансия была уровня Strong Junior / Middle, и я никак не вписывался, потому что не был знаком с асинхронным программированием, Docker-контейнерами и виртуализацией. Я и сейчас ещё вникаю в это.

Но оставаться в неинтересном проекте отчаянно не хотелось. Я повысил желаемую зарплату в резюме на hh.ru с 65 000 до 75 000 рублей, продолжил поиск и вскоре получил предложение с нынешней работы. Интересно, что кандидатов с зарплатными ожиданиями ниже 70 000 они не рассматривали.

Тимлид в то время болел и провёл собеседование в Skype, где к нам присоединился менеджер проекта. Сначала было стандартное интервью, затем мне дали участок кода и задание на час — обработать два массива данных. Тут мне пригодились опыт предыдущей работы и знание библиотеки Functools, которую мы дополнительно изучали на курсах Python в GeekBrains.

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

Работа, где можно развиваться

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

Сейчас ни один сервис не живёт своей основной функцией. Посмотрите на Яндекс.Драйв: он был просто каршерингом, а теперь он интегрирован с проектом «Яндекс.Авто», предлагающим дополнительные сервисы и бортовые компьютеры для автомобилей.

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

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

Если говорить о стеке технологий, мы используем Django REST framework, Vanilla JS, набор стилей на базе Bootstrap, мультипроцессорность и многопоточность для выполнения фоновых backend-задач и чата, а ещё, конечно, Docker. Поскольку команда у нас небольшая и тестировщика нет, тесты пишем сами.

Памятка начинающему разработчику

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

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

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

3. Выучите фреймворк Django REST и основные библиотеки к нему как «Отче наш». Кто умеет быстро что-то создавать на этой основе — без труда найдёт работу. Страшные для каждого джуна слова Strong (!) knowledge of Django REST сейчас есть в требованиях ко многим вакансиям на рынке. Медицинским (и не только) стартапам нужны отраслевые IoT-решения — следовательно, надо писать API, а пишут их чаще всего на Django REST. Не только, конечно, но свой основной фреймворк надо знать хорошо.

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

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

Хотите узнать больше о выпускниках Python-факультета GeekUniversity? Вот их истории:

В связи с коронавирусом всё больше и больше людей вынужденно переходят на удалённую работу или учёбу. Если у вас освободилось время, которое вы обычно тратите на дорогу, можно провести его с пользой и заняться самообразованием. С 19 по 31 марта 2020 г. мы дарим скидку 20% (до 44 000 рублей) на обучение в GeekBrains. Будьте здоровы! :)

 

 


20 мар 20, 12:12
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Быстрый старт с Go: первые шаги

Go (также Golang) – компилируемый язык программирования, разработанный в компании Google и официально представленный в 2009 году. Он предназначен для создания высокоэффективных программ, рассчитанных на многоядерные и многопроцессорные компьютеры.

В этой статье мы рассмотрим азы Go, делая простые последовательные шаги:

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

Устанавливаем компилятор

Сначала посетим официальный сайт golang.org, чтобы скачать и инсталлировать компилятор Go. После этого в командной строке (терминале) станет доступна команда go. Вот пример диалога в командной строке Windows – здесь используется параметр version, который показывает версию установленного компилятора:

C:\Users\user>go version
go version go1.13 windows/amd64

Пишем «Hello, World!»

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

Разумеется, лучше использовать редактор с подсветкой синтаксиса и плагином, автоматизирующим компиляцию и запуск. Для Windows подойдёт Notepad++ с плагином NppExec. Для Linux и Мас – Geany или Atom.

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

package main
 
func main() {
    println("Hello, World!")
}

Код начинается с ключевого слова package – объявления имени пакета. Для исполняемых файлов это всегда будет main, а для библиотек – имя директории, в которой находится файл. Функция main() – стартовая, своего рода точка входа в приложение. Она содержит вызов встроенной функции println(), которая выводит в консоль текст в скобках, заключённый в кавычки.

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

C:\Users\User>go run hello.go
Hello, world!

Знакомимся с переменными

В программировании традиционно разделяют код и данные.

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

Для хранения данных используются переменные. Их можно представить образно – как коробки с данными, на каждой из которых написаны имя и тип переменной. Нам доступны:

  • запись значения в переменную (или присвоение значения) – замена содержимого коробки;
  • чтение значения из переменной – изъятие этого содержимого.

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

package main
 
func main() {
	var x string = "Hello, world!"
	println(x)
}

В этом примере для вывода приветствия используется строчная переменная. Она объявляется при помощи ключевого слова var, после имени указывается тип string. Знак равенства означает присваивание, запись значения в переменную.

Допустима сокращённая запись, без указания типа и слова var. В этом случае перед знаком равенства ставится двоеточие (получается := вместо =). И компилятор определяет тип по значению, которое присваивается.

Правильное именование переменных – важная часть разработки. Имена должны начинаться с буквы и могут содержать буквы, цифры и знак _ (подчёркивание). Имя должно быть мнемоническим – то есть «говорящим», объясняющим назначение переменной.

package main
 
func main() {
	hello := "Hello, world!"
	println(hello)
}

Узнаём про условия и циклы

В программировании часто требуется выполнять одну или другую группу команд в зависимости от результата проверки (ветвление). Такую возможность предоставляет оператор if.

package main
 
func main() {
    water := 0
    println("Take a kettle")
    if water == 0 {
        println("Pour water into the kettle")
    } else {
        println("Enough water")
    }
    println("Put the kettle on fire")
}

Эта программа иллюстрирует ветвление, моделируя ситуацию с чайником. После ключевого слова if идёт логическое выражение (water == 0), где значение переменной water сравнивается с нулём на равенство. Если water равна нулю (в чайнике нет воды), то результат выражения будет true (истина). И, согласно заданному условию, будет выполнен блок команд в фигурных скобках после логического выражения. В противном случае – если результат выражения false – выполнится блок после else.

Помимо ветвлений в программировании используются циклы, позволяющие повторять группы (блоки) команд. Работу с циклами в Go обеспечивает оператор for. Его базовая форма содержит три фрагмента (инициализация, условие, приращение). Первый и последний фрагменты могут отсутствовать. Пустой for создаёт бесконечный цикл.

Ниже приводим код, который иллюстрирует классический for, с использованием счётчика i. Результатом его работы будет колонка чисел от 0 до 4 – значения счётчика цикла на каждой итерации (повторе).

package main
 
func main() {
    for i := 0; i < 5; i++ {
        println(i)
    }
}

Импортируем пакеты

Один из важных принципов программирования – DRY: Don’t Repeat Yourself (не повторяйся). Это значит, что нам не нужно писать все модули своей программы с нуля. Вместо этого можно использовать уже готовые блоки или фрагменты, написанные кем-то ранее.

Поэтому Go поставляется с богатой библиотекой, которая содержит множество пакетов (packages). Каждый пакет имеет определённую тематику, на которую указывает его имя, и содержит соответствующие функции. Подробную документацию с описанием всех пакетов и функций можно найти на сайте Go в разделе “Packages”.

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

package main
 
import "fmt"
 
func main() {
    fmt.Println("Hello,", "world!")
}

Создаём игру «Угадай число»

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

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

import "fmt"
import "math/rand" 

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

count := 0
guess := -1
number := rand.Intn(10)

Опишем основной игровой цикл. Условие его повторения описано после слова for. Тело цикла повторяется, пока значение счётчика неудачных попыток не достигнет числа 3 и при этом “загаданное” число ещё не будет отгадано.

В теле цикла читаем число-догадку с консоли и сравниваем с загаданным. В случае несовпадения выводим подсказку (больше или меньше) и увеличиваем счётчик неудачных попыток на 1. В случае совпадения цикл прекратится.

for count < 3 && guess != number {
    fmt.Print("Guess the number (0..9): ")
    fmt.Scanln(&guess)
    if guess != number {
        if guess < number {
            fmt.Println("Your number is less")
        } else {
            fmt.Println("Your number is bigger")
        }
        count++
    }
}

Также понадобится вывести результат игры (победа или проигрыш) после завершения игрового цикла.

if guess == number {
    fmt.Println("Your WON!")
} else {
    fmt.Println("Your lose...")
}

Остаётся правильно собрать все эти фрагменты в одном файле – и можно пробовать сыграть с компьютером.

Заключение

Если у вас всё получилось – поздравляю. Если нет или возникли вопросы – пишите мне, не стесняйтесь. Меня можно найти в Telegram под ником @biblelamp или на сайте GeekBrains. Я желаю всем удачи и рекомендую никогда не останавливаться в изучении программирования.

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

 


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

Как стать дизайнером с нуля

Источник: 99designs.com

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

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

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

Насмотренность 

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

Многие рекомендуют начинающим дизайнерам копировать работы, которые зацепили. Автор заметки How To Become An Awesome Designer In 365 Days приводит интересные аналогии. Если вы занимаетесь в спортзале, значит, точно видели людей, которые тренируются каждый день и постоянно развивают ловкость, координацию, выносливость. То же самое с музыкантами и танцорами: они повторяют композиции или связку до тех пор, пока не начинают исполнять их по памяти. Практика помогает учиться новому и усваивать информацию: в мозг создаются новые нейронные связи, и мы начинаем видеть проблему в новом свете. Насмотренность и копирование помогают развивать творческие способности.

В статье Ильи Сидоренко описана главная ошибка дизайнера — забывать, что такое дизайн, слишком увлекаться визуальной частью вместо решения реальных проблем. Илья цитирует руководителя портальной дизайн-команды Mail.Ru Group Юрия Ветрова: «Главная ошибка начинающих дизайнеров — это упор на рисование экранов вместо того, чтобы думать об общей картине (бизнес-задачи, сценарии взаимодействия и ожидания пользователей)». Чтобы видеть задачу, а не просто рисовать мокапы, тоже нужна насмотренность.

Ещё можно вспомнить слишком часто цитируемую фразу Стива Джобса «Хорошие художники копируют, великие — воруют». Автор статьи Bad artists copy, great artists steal — or, how to become a great designer подробнее рассматривает эту фразу и пишет, что разница между копированием и воровством — в намерении, и во втором случае это намерение всем только на пользу. 

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

.

Дизайн скоростного поезда — результат насмотренности японских дизайнеров. Источник: Medium

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

Основные инструменты

Стать дизайнером можно и с нулевым бэкграундом, но желательно для начала обучиться базовым навыкам работы в основных программах. Какая именно вам пригодится в работе, зависит от конкретной специальности. Графический дизайнер чаще имеет дело с Adobe Illustrator, веб-дизайнер делает макеты в Figma или Sketch. Photoshop, так или иначе, нужен всем.

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

Illustrator. Многие дизайнеры рекомендуют начать с этой программы, а только потом перейти к освоению Photoshop. Именно Illustrator используется при создании логотипов и иконок. Сейчас можно найти множество ютуб-каналов и сайтов с туториалами, платными и бесплатными — например, Карен Ченг рекомендует эти онлайн-уроки: Creating an Environmentally Friendly Green Type Treatment и How to Create a Landscape Wallpaper for your Desktop. В первом научат делать проработанный векторный логотип, во втором — нарисовать обои для рабочего стола с пейзажем. Ещё Карен советует две книги: Adobe Illustrator Classroom in a Book и Vector Basic Training.

Photoshop. По этой программе есть множество обучающих материалов, и необходимые можно подобрать самостоятельно. Вот что рекомендует Карен Ченг: сайты PSDTuts и TutsPlus, мануалы по созданию приложения и макет сайта

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

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

After Effects. Это программа для создания презентаций с анимированной графикой и эффектами. С её помощью дизайнер сможет анимировать свои макеты.

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

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

Навыки

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

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

Вот четыре навыка, которые рекомендует прокачивать Дэвид:

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

Мы добавим к этому списку ещё тройку скиллов:

  • Основы графического дизайна. Если планируете стать графическим дизайном, для начала хорошо бы научиться базовым навыкам рисования. Карен Ченг рекомендует книгу You Can Draw in 30 days, в которой научат рисовать за месяц через ежедневную практику, если уделять этому полчаса в день. Ещё есть книга Picture This — она основана на сказке и в лёгкой форме учит основам рисунка и графдизайна. А вот подборка из 50 бесплатных уроков на английском, с которых можно начать новичкам. 
  • Основы UX. Не нужно глубоких знаний об индустрии и знакомства с «Ководством» Артемия Лебедева, чтобы понимать, что дизайн — про пользу, а не красивые картинки. Вот книги про суть дизайна и его полезное действие для пользователя, с которых рекомендует начать Карен — The Design of Everyday Things и Don’t Make Me Think.
  • Умение учиться. В любой творческой профессии это главный навык. Без умения учиться не получится достичь необходимого уровня насмотренности: чтобы дизайнер был в курсе трендов и понимал, как решить проблему разными способами, нужно изучить сотни работ и вещей вокруг.  Здесь помогут дизайнерские ресурсы вроде Behance, Dribbble, Awwards, Pinterest, блоги дизайн-студий. 

Источник: www.mann-ivanov-ferber.ru

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

Рекомендуем почитать.

Портфолио

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

  • Переделайте какой-нибудь устаревший или неудобный сайт. Сделайте продуманный, удобный и приятный глазу интерфейс, используя навыки, которым обучились.
  • Придумайте сами себе задание. Или откройте любую фриланс-биржу и возьмите простенький заказ, чтобы отточить навыки и попробовать работу с реальным заказчиком. Если всё пройдёт хорошо, эту работу можно положить в портфолио. 
  • Делайте всё, что душе угодно. Портфолио для себя не ограничено рабочими проектами, можно придумать много всего: разрабатывайте принты для футболок, сделайте редизайн приложения, которым пользуетесь каждый день, Попробуйте сделать что-нибудь небольшое на бирже 99 designs, выполните упражнения из книги Creative Workshop, найти местную компанию, которая вам нравится, и предложите им безвозмездную помощь.

Портфолио советуем разместить на Behance, Dribbble, макеты приложений — на pttrns, веб-дизайн — на patterntap

Рекомендуем почитать.

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

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

 


27 фев 20, 11:10
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Хакатон Sports.ru: создаём сервисы для спорта и путешествий

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

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

Победителей выбрало жюри хакатона, куда вошла команда продактов Sports.ru во главе с нашим преподавателем Алексеем Понтяковым.

Самым перспективным был признан проект Sports Points от команды «Ачивка». Это мобильное приложение, где можно искать спортивные мероприятия, а также организовывать собственные туры, тренировки и состязания. Контент генерируют пользователи: они могут рассказывать, где побывали и в чём участвовали, выкладывать фото и видео, копить баллы по программам лояльности и экономить с ними в поездках.

По задумке авторов продукт может приносить владельцу доход с каждой пользовательской транзакции. Команда протестировала идею на представителях ЦА, создала прототип сервиса в Figma и предложила запустить MVP на 22 млн пользователей, чтобы проверить, насколько активно аудитория будет скачивать программу и покупать партнёрские туры. Над проектом работали Ольга Кутейникова, Екатерина Тиханкина и Лилия Юрлова. Поздравляем с победой!

Другие проекты нашего экспресс-хакатона также были весьма интересны.

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

Sports Walker от команды AARRR-Brains – приложение для «игровых» пробежек по городу. На выбранном маршруте пользователи посещают достопримечательности и собирают артефакты в дополненной реальности. Программа также позволит находить компанию для совместного прохождения маршрута. Создатели планируют, что Sports Walker должен приносить доход от продажи контента – дополнительных локаций и маршрутов – плюс от рекламы партнёрских продуктов.

Команда ProdBrains предложила создать сервис покупки туров и поиска попутчиков на матчи прямо на сайте Sports.ru. Благодаря партнёрству владельцев сервиса с организаторами туров клиент сможет не только посетить спортивное мероприятие, но и посмотреть принимающую страну. Для большего вовлечения пользователей предусмотрены функции соцсети: шэринг, комментарии, лайки. Предусмотрены и элементы геймификации: получение статусов за поездки, по аналогии со «знатоком города» в известном сервисе карт. Пользователям предложат копить бонусы и зарабатывать призы для себя или в команде. Собрать команду можно будет по любому принципу: например, местоположению и любимому спортивному клубу. За счёт функций соцсети сервис будет дополнительно мотивировать юзеров на покупку туров.

Marketplace спортивных туров от команды «2Столицы» призван решать проблемы спортивного туриста в комплексе: билеты, проживание, перелёт и трансфер до стадиона, координация с друзьями и единомышленниками, оптимизация расходов.

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

Валерия Храмченкова, методист GeekBrains: «Идея хакатона пришла, когда мы задумались о расширении практики для наших студентов. Хочется, чтобы у них в портфолио появились интересные кейсы, которые можно показать на собеседовании. Всё получилось без каких-либо сложностей — онлайн-формат позволял взаимодействовать быстро, а для вопросов у руководителей команд был чат с продактами Sports.ru, где всегда можно было что-то уточнить».

Это был стремительный и полный идей продуктовый марафон, который позволил студентам проверить свои силы и найти пути дальнейшего развития. Помимо нового опыта, все участники получили в подарок настольную игру, а победителям достался ещё и призовой набор: книги от GeekBrains, бейсбольные биты и толстовки от Sports.ru. И, разумеется, у ребят появилась интересная строчка в портфолио.

Хотите принять участие в хакатонах ведущих медиа и других компаний? Ждём вас на факультете продакт-менеджмента GeekUniversity!

 


25 фев 20, 17:33
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

10 книг, которые стоит прочитать каждому продакт-менеджеру

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

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

«Четыре шага к озарению. Стратегии создания успешных стартапов», Стив Бланк

Пусть вас не смущает слово «стартапы» в названии — перед нами классическое руководство по построению бизнес-стратегий в условиях современного мира. Автор книги Стив Бланк — американский предприниматель. Он создал несколько успешных стартапов и методику Customer Development. Переводы термина чаще всего неловкие, поэтому просто обсудим суть. Custdev — это тестирование будущего продукта на потенциальных потребителях. Так вы можете узнать, будет ли он успешен, до того как потратите кучу денег на производство. Звучит разумно, не правда ли? Подход Бланка основан на том, чтобы ставить в центр не продукт, а клиента с его нуждами и болями. 

«Как создать продукт, который купят. Метод Lean Customer Development», Синди Альварес

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

«Спроси маму: как общаться с клиентами и подтвердить правоту своей бизнес-идеи, если все кругом врут»,  Роб Фитцпатрик

Стиву Бланку в «Четырёх шагах к озарению» советует тестировать продукт на потенциальных потребителях. Но это нужно делать правильно. Если вы пойдёте с расспросами к заведомо лояльной аудитории, то получите искажённую картину. Фитцпатрик научит вас, как докопаться до истины.

«На крючке. Как создавать продукты-хиты», Марти Кеган

Совладелец Silicon Valley Product Group делится опытом о том, как получить продукт, который будет реально привлекательным. Это будет особенно полезно тем, кто работает в IT-сфере. К слову, один из критериев успеха — не смешивать управление продуктом с маркетингом и управлением проектом.

«На крючке. Как создавать продукты, формирующие привычки», Нир Эяль и Райан Хувель

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

«Поведенческая экономика. Почему люди ведут себя иррационально и как на этом заработать», Дэн Ариели

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

« Дизайн привычных вещей», Дональд Норман

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

«Сначала скажите “нет”. Секреты профессиональных переговорщиков», Джим Кэмп

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

«Психбольница в руках пациентов», Алан Купер

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

«Дилемма инноватора. Как из-за новых технологий погибают сильные компании», Клайтон Кристенсен

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

Бонус: подборка книг для мотивации и анализа

  • «Доставляя счастье. От нуля до миллиарда. История создания выдающейся компании из первых рук», Тони Шей, основатель Zappos
  • «Как чашка за чашкой строилась Starbucks», Говард Шульц.
  • «ВкусВилл. Как совершить революцию в ритейле, делая всё не так», Евгений Щепин.
  • «Как я создал Walmart», Сэм Уолтон.
  • «Alibaba. История мирового восхождения от первого лица», Дункан Кларк.
  • «И ботаники делают бизнес 1+2», Фёдор Овчинников, основатель «Додо Пиццы».

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

А какие из описанных книг уже читали? Какие стоит добавить в список? Поделитесь с нами в комментариях :)

 


20 фев 20, 12:28
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Диплом, колл-центр, GeekBrains и наставничество

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

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

— Ты учился на специалиста по информационным системам. Расскажи, чем он занимается. 

— Специалист по информационным системам — действительно моя специальность, но по ней я никогда работал. Это человек-оркестр: он умеет в системное администрирование, создание сайтов с нуля (бэкенд и фронтенд), также работает с CMS, занимается 1С-программированием и даже ремонтирует технологическое оборудование. Но в первую очередь это тот, кто умеет создавать и администрировать сложные информационные системы.

Дизайн и глитчевая анимация. Делал просто для себя

— Почему решил перебраться в Москву? Трудно было найти работу, искал перспектив или просто так вышло?

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

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

Я решился на переезд уже когда отучился на дизайнера в GeekBrains. Во время обучения подрабатывал специалистом в колл-центре «МегаФона» в Кстово. 

Лендинг KIA Soul, сделанный в рамках курса по веб-дизайну

— Расскажи, что это за работа. 

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

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

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

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

Дизайн и анимация страницы с ошибкой 404

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

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

— Почему потом решил кардинально сменить сферу и пойти в дизайн? 

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

Изначально я хотел стать программистом. Но после обзорного курса осознал: немного не моё. Начал понимать основы IT с технической и софтверной точек зрения и в итоге... выбрал дизайн. Понял, что он меня больше всего привлекает по всем составляющим: это разработка прототипов, юзабилити-тестирование, умение работать в Figma, Photoshop, Illustrator, After Effects, выстраивание композиции.

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

Сайт стриминговой музыкальной платформы в рамках курса по веб-дизайну

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

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

— Почему в итоге остановился на GeekBrains, если изучал и другие площадки?

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

Ещё в GeekBrains больше устраивал преподавательский состав и возможность пойти на стажировку к арт-директору Mail.ru. До курса я слышал о преподавателях Илье Полянском и Сергее Чиркове. 

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

Сайт стриминговой музыкальной платформы в рамках курса по веб-дизайну

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

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

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

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

— Ещё и наставником успел побывать?

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

В основном студенты присылают вопросы по домашкам и вещам, связанным не с программой обучения, а с дизайном вообще. Например, когда не получается что-то сделать в Figma или нет идей, как усовершенствовать пользовательский опыт магазина «Пятёрочка». Ещё был кейс по наставничеству с вопросами «Какие бывают гайды, стандарты индустрии?», «Все ли дизайнеры их соблюдают и кто это проверяет?», «Что такое вёрстка и лендинг простыми словами?»

.

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

Сейчас я работаю на фул-тайме в офисе GeekBrains. Ещё как фрилансер делаю заказы на дизайн, в том числе крупные — например, для стартапа, который может стать конкурентом «ДомКлика», ЦИАНа и «Домофонда».

— Кого тебе всё-таки больше — менеджера или дизайнера?

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

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

Материалы для веб-дизайнеров. Рекомендации Артемия 

Статьи

Книги 

Телеграм-каналы

Хотите узнать больше о выпускниках факультета веб-дизайна GeekUniversity и других дизайнерских факультетов и профессий GeekBrains? Вот их истории:

 


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

Этому «марио» нужна своя фишка

26 января в 12:00 в московском офисе Mail.ru Group мы собрали студентов факультета разработки игр и профессии гейм-дизайнера. Зачем? Чтобы, объединившись в пары, они попробовали себя в роли тех самых ребят из книги «Кровь, пот и пиксели» — с ограниченными возможностями, полыхающими дедлайнами и острой потребностью придумать что-нибудь классное.

Условием задачи был демоплатформер от разработчиков Unity. В него было необходимо добавить новую механику, которая использовалась бы и при перемещении, и в бою с врагами. С заданием участники могли ознакомиться за сутки до проекта. На совместную работу в паре «гейм-дизайнер — разработчик» на мероприятии отводилось несколько часов.

Помогали ребятам в работе и определяли победителей наши преподаватели: Иоанн Павловский со стороны гейм-дизайна и Илья Афанасьев от разработки.

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

Вот как звучало задание для ребят: „Добавьте только одну новую механику, которая будет применима и в бою, и в движении. По желанию: измените баланс тех механик, которые уже есть в игре“. Такая задача одновременно и давала полную свободу, и выставляла жёсткие ограничения — в этом и была наша задумка. Чтобы выиграть, нужно было подойти к задаче креативно, найти лазейки в условиях и понять, как сделать в игре больше того, что кажется возможным, и не нарушить правила.

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

Преподаватели рассмотрели множество интересных идей и признали победителем с точки зрения гейм-дизайна проект Вероники Танаевой.

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

Это первый прототип, а в дальнейшем с этой лестницей можно развлекаться, насколько хватит фантазии: спаунить в прыжке и бежать по ней, пока она падает; цепляться за крюки; в конце концов, возвести из нескольких лестниц памятник Сэму Бриджесу [главный герой игры Death Stranding — прим. ред.] :) Преимущество нашей лестницы в том, что одна механика даёт множество вариантов использования — значит, игроки долго будут получать фан при минимальных затратах на разработку. Мы с Олегом работали за разными устройствами, и из-за этого нам не хватило времени, чтобы «подружить» мой вариант уровня и его скрипты. Оригинальный уровень с сайта Unity не раскрывал все возможности нашей лесенки :)

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

Понравилось, что это мероприятие было организовано явно с учётом пожеланий с прошлого. Приятно знать, что мы не зря пишем отзывы :) Благодарю педагогов за все эти события — отличное дополнение к официальной учебной программе! И желаю сил и терпения, чтобы возиться с нами и проводить ещё джемы».

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

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

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

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

Лучше всех с заданием, на мой взгляд, справился Павел Небольсин. Он не вмешивался в работу стандартного кода, следовал принципам SOLID, не изменял, а только расширял функциональность приложения. При реализации новой механики ему не пришлось ломать то, что уже было в демоприложении. Его код получился элегантным и хитрым, из простых вещей Павел получил мощный инструмент — всё по принципу KISS (Keep It Simple Stupid). Такую работу было легко оценить — сразу ясно, как всё работает, без дополнительных вопросов. Визуально проект получился органичным, будто новая механика была в уровне изначально».

А вот что говорит о своём проекте и соревновании сам Павел: «Мы придумывали механики, в которых будут сочетаться перемещение и атака. Остановились на той, что похожа на способность адептов в StarCraft II. Персонаж мог выпустить свою астральную копию, на которую в нашем случае не действовала гравитация, и потом перемещаться на её место.

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

В этом задании мне помогли вебинары по Unity, которые ведут Илья Афанасьев и Роман Муратов. И конечно, знание языка C#, за что спасибо Сергею Камянецкому.

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

Идея Павла нам понравилась — мы обязательно продолжим собирать гейм-дизайнеров и разработчиков в офлайне :) Ждём вас на факультете разработки игр и профессии гейм-дизайнера — присоединяйтесь!

 


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

20 полезных Telegram-каналов для маркетологов

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

Русский маркетинг

Количество подписчиков: 70 000+.

Частота обновлений: 1–3 записи в день.

Канал о digital-маркетинге от специалиста по маркетингу Grow Food Семёна Ефимова. По наполнению частично пересекается с одноимённым пабликом ВКонтакте от того же автора, но не дублирует его. Здесь можно найти новости, полезные материалы для маркетологов и SMM-специалистов. У «Русского маркетинга» также есть дочерние каналы с примерами плохой и хорошей рекламы.

Записки маркетолога

Количество подписчиков: 20 000+.

Частота обновлений: 1–2 публикации в день.

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

Маркетолог

Количество подписчиков: 10 000+.

Частота обновлений: 1–2 публикации в день.

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

Маркетолог в телеграм

Количество подписчиков: 5 000+.

Частота обновлений: 1 публикация в день.

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

SMM | Инстаграм

Количество подписчиков: 50 000+.

Частота обновлений: 1 публикация в день.

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

Мастер рекламы | Маркетинг

Количество подписчиков: 20 000+.

Частота обновлений: 1–2 публикации в день.

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

Lazy Marketer

Количество подписчиков: 10 000+.

Частота обновлений: публикации нерегулярные.

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

Setters

Количество подписчиков: 60 000+.

Частота обновлений: 1–2 публикации в день.

Это канал коммуникационного агентства Setters — того самого, что создало неофициальный Instagram-аккаунт старейшей в Санкт-Петербурге пышечной и перезапустило соцсети «МегаФона» с минимальным бюджетом. Авторы публикуют лаконичные и понятные правила выживания, новости и советы, как прокачать ваш маркетинг.

Pressfeed. Маркетинг без бюджета

Количество подписчиков: 5 000+.

Частота обновлений: 2 публикации в день.

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

DNative — блог про SMM и Instagram

Количество подписчиков: 40 000+.

Частота обновлений: 1–2 публикации в день.

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

Статистика недавних сбоев Instagram, взятая с канала DNative. Весьма наглядно

Бизнес и социальные сети

Количество подписчиков: 30 000+.

Частота обновлений: 1 публикация в день.

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

Телеграм Маркетинг

Количество подписчиков: 10 000+.

Частота обновлений: нерегулярные публикации.

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

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

Психология маркетинга

Количество подписчиков: 20 000+.

Частота обновлений: нерегулярные публикации.

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

Главред

Количество подписчиков: 40 000+.

Частота обновлений: 1–2 публикации в день.

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

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

Инструменты редактора

Количество подписчиков: 5 000+.

Частота обновлений: 1 публикация в день.

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

Интернет-аналитика

Количество подписчиков: 30 000+.

Частота обновлений: нерегулярные публикации.

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

Рекламщик от Бога

Количество подписчиков: 20 000+.

Частота обновлений: 1–2 публикации в день.

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

Канал ленивого SMMщика

Количество подписчиков: 30 000+.

Частота обновлений: нерегулярные публикации.

Автор канала преобразует собственный опыт в SMM в отличные советы по продвижению бизнеса и организации работы.

Нейромаркетинг

Количество подписчиков: 10 000+.

Частота обновлений: 1 публикация в день.

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

Партизанский Маркетинг

Количество подписчиков: 10 000+.

Частота обновлений: 1–2 публикации в день.

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

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

 


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

«Стал „тестировщиком“ за два дня»

Привет! Меня зовут Илья, и с сентября 2013 года я занимаюсь ручным тестированием. Сейчас работаю ведущим тестировщиком в Bell Integrator. В этой статье я расскажу, как начать карьеру в сфере QA, чем высокооплачиваемый тестировщик отличается от обычного и как прокачаться, чтобы тебя ценили. Главным образом буду говорить о ручном тестировании, но затрону и автоматизированное.

Как я сменил профессию за два дня

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

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

На следующий день я успешно прошёл собеседование в компанию с броским названием S&T International. Так начался мой путь в тестирование и IT в целом. Но не всё так просто. Получить работу — ещё не значит стать крутым специалистом. Поэтому самое интересное началось дальше.

Ожидания работодателей

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

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

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

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

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

О чём спрашивают на собеседовании

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

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

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

Приведу пример «до» и «после». На телефонном собеседовании в крупном банке меня спросили, какие техники тест-дизайна я знаю. Ответ их не устроил, но мне дали ссылку на тест, где надо было набрать от 65% правильных ответов. Увы, в тот раз мне даже поисковик не помог — настолько хитро были поставлены вопросы. А вот после курсов этот же тест на другом собеседовании я уже прошёл и получил предложения от нескольких отделов того же банка. Правда, всё равно к ним не пошёл — отпугнули бюрократией. Но это другая история.

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

Примеры тестовых заданий

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

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

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

Другой пример — задание на автотестирование от разработчика ПО. Надо написать на Python класс Deposits, который парсит страничку www.banki.ru и собирает информацию из блока «Предложения месяца > Вклады». Результат должен выглядеть как таблица, где напротив названий вкладов — проценты. Дополнительно просят реализовать дочерний класс, который наследуется от Deposits и подбирает наиболее и наименее выгодный вклад.

Самое обстоятельное собеседование было в HeadHunter. Начали с большого предварительного интервью. Спрашивали, почему занимаюсь тестированием и каким проектом горжусь. Просили рассказать о самом интересном (!) случае из практики, а ещё — в чём состоит тестирование, что такое качество, какой у меня опыт автоматизации, какие пять команд Linux я чаще всего использую в работе. Ещё просили назвать две-три книги или статьи по тестированию и программированию, а затем рассказать, что я из них вынес. На очном собеседовании давали тесты по SQL-запросам и командам Linux.

Кстати, когда вас спросят, какие книги по тестированию вы прочли, рекомендую назвать «Быстрое тестирование» (Калбертсон, Браун, Кобб) и «Тестирование DOT COM» Романа Савина. Чтобы понимать, о чём речь, прочтите хотя бы вступление к каждой из этих книг, а лучше — первую главу :)

Этапы развития и как их проходить

Есть несколько уровней мастерства тестировщика.

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

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

Исследователь. Самый сложный уровень — exploratory testing. Нет ни тестовой модели, ни подробной документации (в лучшем случае — список задач для разработчиков). Задача — найти все баги ПО. Тут придётся включить фантазию и моделировать работу конечного пользователя. Да не простого, а пользователя-ломателя.

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

Но прежде всего надо разобраться:

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

Полезно уметь подключаться к серверу или удалённой машине с помощью программ типа WinSCP. Но они только показывают файлы (в том числе логи), а для отправки команд серверу понадобится изучить ещё и Putty либо аналог. 

Плюс надо понимать, что такое командная строка, и знать основные команды Linux. Открою секрет: на первых порах можно ограничиться пятью командами, но их придётся запомнить.

Условия карьерного роста

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

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

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

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

Горизонталь и вертикаль

Профессиональный рост бывает вертикальным и горизонтальным. 

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

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

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

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

Помимо автоматизации есть ещё нагрузочное тестирование. Тут тоже надо быть немного программистом (писать скрипты) и аналитиком — уметь анализировать результаты.

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

Я хочу попробовать себя в Data Science. Тут очень пригодится школьный и университетский курс математики и статистики.

О стереотипах

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

О личных качествах тестировщика

Мне запомнилась статья, где сказано, что хороший тестировщик «обладает ломательной психологией» :) Ещё говорят, что он должен понять то, чего не понял разработчик. Лично я считаю, отличие здесь — в направлении внимания к продукту. Разработчик глубоко знает узкую тему, а тестировщик меньше роет вглубь, но смотрит шире.

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

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

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

Хотите узнать больше о выпускниках факультета тестирования ПО GeekUniversity? Вот их истории:

 


16 янв 20, 13:20
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 11 по 20 | всего: 99

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

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

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

Люди

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