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

Блог

Приглашаем на воркшоп по React Native

Приглашаем на воркшоп по React Native в офисе Mail.Ru Group 20 апреля!

Автор воркшопа — разработчик мобильного приложения GeekBrains Даниил Скрипник.

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

Для кого воркшоп?

Этот воркшоп будет полезен всем, кто хочет познакомиться с мобильной разработкой и для тех, кто знаком с React и JS.

Что такое React Native и почему это круто?

Это фреймворк для создания кроссплатформенных приложений на языке JavaScript. Он позволяет писать приложения для IOS, Android, Windows Phone и даже VR (на React VR можно создавать приложения для очков виртуальной реальности).

React Native — это отличная возможность быть ленивым и пользоваться любимыми инструментами «прямо из коробки» (их не нужно настраивать, они работают здесь и сейчас): CSS, ES6, ES7, NPM, Yarn и т.д.

Создатель React Native — Facebook, лидер во front-end, компания, которая вкладывает огромные ресурсы в развитие своих технологий. Facebook активно развивает React и React Native, создает вокруг них целую инфраструктуру и мощное IT-сообщество.

Еще одно преимущество технологии — быстрорастущее комьюнити из компаний, которые используют технологию, инвестируют в нее и поддерживают ее развитие: GeekBrains, Yandex, Airbnb, Wix, Tesla, Soundcloud, Walmart.

На этом фреймворке написаны UberEats, FacebookGroups и частично Instagram и Facebook.

Кто будет вести воркшоп?

Даниил Скрипник — разработчик мобильного приложения GeekBrains.

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

С технологией React Native Даниил познакомился, когда работал в компании Alpha Design в Сербии (партнер Apple, Amazon, Rakuten) и написал прототип кроссплатформенного приложения для покупки одежды.

После этого он работал в компании Evronе и за год написал на React Native три приложения: Дневник еды, приложение по поиску лекарств Pinpill и Криптокошелёк (собрал на ICO 15 млн долларов).

Позже получил предложение о работе от Mail.Ru Group и начал разработку приложения GeekBrains (версия под IOS уже доступна для скачивания).

В каком формате будет проходить воркшоп?

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

Практическая часть — главная, как говорит сам Даниил. За пару часов вы напишете мессенджер на React Native и начнете переписываться с другими участниками воркшопа.

Даниил уже проводил воркшоп по React Native для сотрудников Mail.Ru Group. Участникам очень понравилось, как формат мероприятия раскрывает особенности этой технологии, поэтому мы с Даниилом решили повторить его для более широкой аудитории.

Куда идти и что делать?

Для работы на воркшопе вам понадобится ноутбук.

Регистрируйтесь на мероприятие здесь.


18 апр 18, 13:35
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Разработка ПО: факторы, процессы, этапы

 


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

Система управления проектами: составляющие и правила выбора

 


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

Что нужно знать IoT-разработчику

«Хаябуса» присылает на Землю капсулу с кусочками астероида. Смартфон продолжает следить за временем даже после выключения. Рой роботизированных пчёл роботизированными лапками опыляет цветочное поле. Все эти события объединяет одна аббревиатура — IoT, или интернет вещей. Какова универсальность, не находите?

Мы решили узнать больше о работе IoT-специалистов и пригласили для этого Сергея Романчука — декана недавно появившегося в GeekBrains факультета интернета вещей. Сергей возглавлял технический отдел в Forly Capital, разрабатывал средства сбора данных в Squilla LLC и даже поработал инженером-исследователем в концерне «Калашников». Сейчас Сергей — разработчик в одной из крупнейших  IT-компаний России.

Послушать 21-й выпуск вы можете на разных платформах:

В этом посте мы собрали интересные цитаты из выпуска.

— В России существует несколько интересных проектов, которые делают сельхозтехнику полностью роботизированную, объединённую в сеть. Даже продумываются схемы алгоритмов роя. Это когда несколько устройств друг с другом взаимодействуют и выполняют одну поставленную задачу без участия оператора. Я точно знаю, что на Хабре была статья разработчиков, которые делают роботизированный уборочный комбайн. Они убирают капусту и какие-то ещё кормовые растения.

— С помощью одного робота, которого отправили на Марс, починили другого, который уже был на Марсе и сломался. И потом они начали вести исследование вдвоём. Насколько я помню,  Curiosity уже превысил срок планируемой службы. Здесь можно порассуждать над инженерным чудом. Это всё IoT, так или иначе.

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

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

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

— Наверное, многие вспомнят что если вытащить батарейку из старой «нокии», на ней сбросятся часы. Почему так?  [...] Потому что когда он выключен, он не мог считать время. В нём не было предусмотрено дополнительного устройства, часов реального времени, которые в случае отключения питания имели свою независимую батарейку и просто делали одну задачу — считали время.

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

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

— Есть университетские стартапы, когда группа студентов в университете организует стартап, который является их совместной дипломной работой. Их могут заметить на какой-нибудь выставке и дать инвестирование. Есть просто стартапы, которые вырастают условно из гаражей, каких-то частных мастерских или домашних лабораторий. Например, умные часы Pebble. Это проект с кикстартера. Парень у себя дома собрал прототип часов и выложил на кикстартер. Я был одним из фаундеров проекта Oculus Rift на кикстартере, у меня был первый Rift DK1. Они начинали с кикстартера, а ведь это насколько крутая электроника.

Интересно? По ссылкам в начале статьи вы сможете послушать полную версию и подписаться на обновления подкаста ;) Оставайтесь с нами, впереди много классных выпусков!

 


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

11 приложений для тренировки ума

Кадр из фильма «Области тьмы», 2011, Relativity Media

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

Mensa Brain Training

Приложение выпущено Mensa — старейшей и крупнейшей организацией для людей с высоким IQ, члены которой по результатам теста на коэффициент интеллекта превзошли 98 % населения Земли. Улучшает способность человека рассуждать, выявлять закономерности и учиться. Тренируются пять областей: объем памяти, концентрация, подвижность ума, восприятие, рассуждение. Можно проверить свой уровень по каждому показателю и посмотреть персональный рейтинг среди участников — Mensa Brain Index (MBI). Приложение пока доступно только на IOS.

Peak

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

Elevate

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

 

 

Trivia Crack 2

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

 

   

Lumosity

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

 

Memorado Brain Training

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

 

Clockwork Brain Training

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

 

Brainwell Mind Brain Training

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

 

Curiosity

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

 

Король математики

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

 

Happify: for Stress & Worry

Приложение поможет снизить стресс, избавиться от негативных мыслей и повысить психологическую устойчивость. Методики разработаны ведущими учеными и экспертами в области позитивной психологии и когнитивно-поведенческой терапии. 86 % людей, регулярно пользующихся Happify, через два месяца признались, что чувствуют себя счастливее. А ведь счастье — не рядовая характеристика жизни человека, а главный показатель благополучия, который влияет на все остальное.

 

 

А вы пробовали эти приложения? Знаете ли еще бесплатные тренажеры для ума?


 

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

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

В чем отличие UI от UX? Подробный разбор

Сегодня терминами UI и UX переполнены все ресурсы, относящиеся к дизайну. Начинающие дизайнеры (и не только!) зачастую смешивают эти понятия и используют их как одно целое. Но это не так.

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

Что такое пользовательский опыт, или UX

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

А UX-дизайн — это создание полезных, простых и приятных в использовании продуктов.

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

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

  • Профилирование пользователей (User Profiling) — изучение личных данных пользователей: пол, возраст, страна, интересы и прочее.
  • Создание или улучшение информационной архитектуры, то есть информационной структуры продукта.
  • Исследования пользовательского поведения. Как долго пользователь ищет кнопку «Купить»? Почему уходит со страницы, не достигает цели?
  • Изучение удобства использования. Комфортно ли работать с приложением при слабом интернет-сигнале? Приносят ли уведомления пользу или только раздражают пользователя?
  • Работа с контентом. Сколько информации должно быть на первом экране лендинга? Какой текст стоит разместить на кнопке? Сколько слов должно помещаться на одной строке, чтобы было удобно читать?

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

Что такое пользовательский интерфейс, или UI

User Interface (пользовательский интерфейс) — это способ взаимодействия пользователя с продуктом, сервисом или услугой. UI-дизайнеры фокусируются на том, как выглядит интерфейс: меню, поиск, фильтрация на сайте и другие элементы. Цель UI-дизайнера — создать эстетичный дизайн интерфейса продукта.

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

Посмотрим, каковы обязанности UI-дизайнера.

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

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

Зачем придумали это различие UI от UX?

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

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

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

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

Кто он — UI/UX-дизайнер?

Несмотря на различие этих терминов, на практике они используются чаще вместе, чем по отдельности. Кто же такой этот загадочный UI/UX-дизайнер и можно ли вообще так говорить?

User Interface является инструментом User Experience. Так что эти понятия по факту зависят друг от друга и отдельно в принципе не работают — это не эффективно.

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

Можно ставить эти понятия рядом, но ни в коем случае не объединять: UI- и UX-дизайнеры фокусируются на разном. И зачастую желание «быть универсальным» может на деле означать «быть везде бесполезным».

Кратко

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

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

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

Курсы GeekBrains по самым востребованным профессиям в дизайне:

  1. Факультет дизайна с гарантированным трудоустройством.
  2. Профессия «Веб-дизайнер». Обширный онлайн-курс с возможностью пройти онлайн-стажировку в Mail.ru Group.
  3. Профессия «Графический дизайнер». Онлайн-курс для самых творческих людей в мире дизайна.
  4. Дизайнер интерфейсов (UI/UX). В этом онлайн-курсе навыки интерфейсного дизайна отрабатываются на реальных задачах от крупных компаний.
  5. Гейм-дизайнер. Курс для тех, кто хочет войти в игровую индустрию и начать зарабатывать в ней.

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

Стали ли понятнее различия терминов UI и UX? Как вы воспринимали их до прочтения статьи? Делитесь в комментариях!


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

Сколько языков программирования существует сейчас в мире

Сколько языков программирования существует сейчас в мире

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

Но сколько языков программирования существует вообще? Чтобы ответить на этот вопрос, нужно провести серьёзное исследование. Причём стоит сразу отделить зёрна от плевел, то есть определить, что является языком программирования (ЯП), а что нет. В зависимости от этого разные источники дают самые разнообразные ответы. Если коротко, то от 1000 до 10 тысяч. Всё зависит от того, что признавать языком программирования и определять ли разновидности (если угодно, форки) одного ЯП как разные языки. Но даже если так не делать, то насчитать можно около 700 языков: от самых старых до современных, от практичных и используемых до эзотерических, создаваемых просто для фана. 

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

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

Какие бывают языки программирования

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

Статическая и динамическая типизации 

Статическая и динамическая типизация языков программирования

Здесь речь идёт о процессе проверки соответствия типов. Система типов — это набор правил, присваивающих свойство («тип») ряду сущностей: переменным, выражениям, функциям, модулям. В статической типизации переменным типы присваиваются в момент объявления — так работают Go, С++, C#, Java и ряд других языков. При динамической типизации это происходит в момент присваивания значения, как в PHP, Python, JavaScript, Ruby и подобных ЯП.

Высокоуровневые и низкоуровневые языки

Высокоуровневые и низкоуровневые языки программирования

Здесь всё проще. Как правило, к низкоуровневым языкам относятся ЯП первых поколений. Это машинный код и ассемблеры, которые появились на заре цифровой эры. Тогда горы были высокими, деревья зелёными, а ЭВМ занимали целые здания.

Низкоуровневые языки: Assembler и машинный код

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

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

Интерпретируемые и компилируемые языки 

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

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

Примеры компилируемых языков: Pascal, Basic, Visual Basic, Cobol, Swift, Go, Haskell, C#, Kotlin. Интерпретируемые: PHP, JavaScript, Python, Lava, Perl.

Визуальные и текстовые языки

Визуальные языки программирования

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

Примеры таких языков: Sketchware, App Inventor, Блокли, HiAsm и другие. К текстовым относится множество других языков, к которым мы привыкли больше.

Эзотерика и just for fun 

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

Lolcode

Этот язык в 2007 году создал научный сотрудник Ланкастерского университета Адам Линдсей. Lolcode использует словарь интернет-мема «лол кот». 

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
   UP VAR!!1
   VISIBLE VAR
   IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE

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

Glass

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

{F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*(_a)(le).?=/(_isle)^\(_n)*(_a)
s.?(_t)f.?(_n)*(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)=(_nlm)
=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*(_a)a.?=(_nlm)(_n)*
(_a)(le).?=\]}

Участок кода выше выводит последовательность чисел Фибоначчи. 

Brainfuck

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

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.
<<+++++++++++++++.>.+++.------.--------.>+.>.

Выше — участок кода, отвечающий за вывод «Hello, World».

Chicken

А в этом языке всего одно ключевое слово — угадаете какое? И количество повторений с новыми линиями определяет код используемой операции. 

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

Это был пример работающего кода. 

Какие языки программирования самые востребованные

По версии сервиса TIOBE, первую тройку рейтинга востребованности занимают Java, C и Python. А вот топ-20:

Рейтинг языков программирования TIOBE

Каждый год топ изменяется — иногда очень заметно, а порой незначительно. Рейтинги 2020 и 2019 годов почти не отличаются. 

Какие разработчики больше всего зарабатывают

Сервис «Хабр.Карьера» регулярно выкладывает статистику зарплат программистов, работающих с разными языками. Самая высокая медианная зарплата у разработчиков Elixir: 165 тысяч рублей. Затем идут разработчики Objective-C — 151 тысяч рублей в месяц. Далее — Scala с Go: специалисты по ним получают 150 тысяч рублей. Распределение самых «доходных» ЯП выглядит так: 

Зарплата разработчиков на разных языках программирования

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

Зарплата разработчиков на разных специализациях разработки

Большое влияние на эти цифры оказывает и локация работодателя. Если взять среднее значение зарплат программистов, то медиана по Москве — 140 тысяч рублей, в Санкт-Петербурге — 116 тысяч, в других регионах — 80 тысяч рублей. 

Так сколько языков программирования существует? 

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

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

 


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

Кодстайл CSS – правила хорошего тона при вёрстке

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

Оформление классов

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

Некорректно:

Корректно:

Используйте нижний регистр. Также в названиях классов принято использовать только строчные буквы. А вместо пробелов, как правило, — дефис (символ “-”).

Некорректно:

Корректно:

Пользуйтесь популярными тегами. Среди разработчиков уже сложился список общепринятых имён для классов. Например, для картинок используют img (сокращение от англ. image – картинка), а для кнопок — button (в переводе с английского «кнопка»). 

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

Некорректно:

Корректно:

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

Некорректно:

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

В примере ниже можно избавиться от селектора button-2, используя класс button для размеров и white-color для цвета. Так мы сможем потом гибко переиспользовать второй селектор. 

Корректно:

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

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

Некорректно:

Корректно:

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

Как и в HTML, у CSS есть свои правила оформления отступов и пробелов.

Начинайте свойство в классе с отступа, равному 2 пробела или 1 таб.

Некорректно:

Корректно:

Между свойством и значением ставьте пробел.

Некорректно:

Корректно:

Между селекторами ставьте пустую строку.

Некорректно:

Корректно:

Между селектором и открывающей скобкой ставьте пробел.

Некорректно:

Корректно:

Оформление свойств

В CSS нет каких-либо строгих правил и рекомендаций относительно порядка свойств. Но есть несколько подходов к этом вопросу.

Упорядочивать свойства по алфавиту. 

  

Упорядочивать свойства по определенной логике. Вот пара примеров использования таких правил: 

И несколько правил хорошего тона

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

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

Некорректно:

Корректно:

Корректно:

Если пишите 0 у свойства, то не указывайте единицу измерений.

Некорректно:

Корректно:

CSS также можно проверить на валидность при помощи онлайн-валидатора.

 


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

Продакт-менеджер: основные аспекты профессии

Этой статьёй мы начинаем серию постов по быстрому погружению в продакт-менеджмент. Весь курс в видеоформате можно бесплатно пройти на GeekBrains, а здесь — первая лекция в формате для чтения. Педагог — Лаша Харчилава, head of product (services for seekers) в «Работа.ру».

Кто такой продакт-менеджер

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

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

Чего ждёт руководство от product-менеджера

Обычно от продакт-менеджера ждут двух возможных результатов:

  1. Запуск продукта в продакшен. Если продукта нет, задача продакт-менеджера — запустить его за определённое время, то есть сделать так, чтобы потребители могли им воспользоваться: заказать товары, прочитать новости и т. д. Функциональность зависит от продукта.
  2. Увеличение ARPU (средней выручки на пользователя) или конверсии в покупку. Бывает, что продакт увеличивает показатели уже готового продукта.

Как продакт-менеджеру достичь результатов

Прежде чем мы перейдём к навыкам, разберём, чем в принципе занимается успешный продакт.

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

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

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

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

Контролирует разработку. Это следует делать каждый день или раз в несколько дней.

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

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

Какими навыками нужно обладать продакт-менеджеру

Навыки продакта, как и любого профессионала в IT, делятся на soft skills и hard skills. И здесь первые как минимум не менее важны, чем вторые.

Перечислим софт-скилы:

  • Коммуникационные навыки. Работа продакта минимум на 70% состоит из встреч, на которых нужно общаться, договариваться, принимать решения и т. д. Общаться нужно много и с разными людьми. 
  • Лидерские навыки. Продакт — это лидер направления, и за ним идут разработчики. Они должны понимать, что именно он принимает решения, и по всем вопросам обращаться к нему.
  • Гибкость. Продакту нужно объективно оценивать то, что он делает. Если понял, что ошибся, потратил много времени и сил на разработку ненужной фичи — он не должен бояться её бросить.
  • Личная эффективность и тайм-менеджмент. Продакту необходимо делегировать задачи разработчикам, а к части задач подходить суперэффективно, чтобы закрывать их не за 2 часа, а за 30 минут. Нужно применять методики, которые помогут работать не 24 часа в сутки.
  • Навыки мотивирования команды. Продакт должен сплотить и замотивировать команду, постоянно вовлекать её в продукт и в бизнес. Необходимо, чтобы люди не просто делали свою работу, а подходили к ней осмысленно, понимали, к чему приводит выполнение той или иной задачи.
  • Умение говорить «нет». Каждый день к продакту будут приходить владельцы компании и говорить, что у них суперважная задача, которую нужно выполнить прямо сейчас. В такие моменты продакт должен сказать «нет» и защитить продукт от посторонних, которые постоянно хотят закинуть в него что-то «очень важное».
  • Умение гасить конфликты. Продакт взаимодействует со всеми отделами компании: финансовым, маркетинговым, инженерным и другими. Когда появляются конфликты, он не сжигает мосты, а пытается разрулить ситуацию так, чтобы все были довольны.
  • Умение решать проблемы. Продакту прилетают максимально абстрактные задачи. Он должен отделить зёрна от плевел и решить, что принесёт продукту наибольшую пользу.
  • Управление ожиданиями. В начале квартала продакт должен очень чётко проговорить, какие задачи будут выполнены, а какие — нет, и почему. Тогда у владельцев компании не будет претензий.

Рассмотрим теперь хард-скилы:

  • Работа с пользователями. Продакт должен уметь использовать CustDev, общаться с пользователем и строить Customer Journey Map (CJM — описание клиентского пути от первого контакта с компанией до первой или повторной покупки).
  • Понимание рынка и бизнес-модели продукта. Продакт определяет объём рынка и бизнес-модель продукта.
  • Работа с метриками. Продакт должен уметь анализировать данные, проводить А/В-тесты и рассчитывать юнит-экономику. 
  • Выстраивание процессов разработки. Продакту нужно следить за разработкой, мониторить и выстраивать этот процесс. В этом ему помогут Scrum, Kanban, фреймворки приоритизации продуктовых задач и навык формирования дорожной карты продукта.

Чем продакт отличается от проджекта

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

Если формулировать максимально кратко: продакт-менеджер отвечает на вопросы «куда» и «что», а проджект-менеджер — на вопрос «как».

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

Теперь сопоставим работу продакта и проджекта более подробно — для наглядности. Продакт-менеджер:

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

Теперь посмотрим, что делает проджект:

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

Зарплата продакт-менеджеров

Как и другие специалисты, продакт-менеджеры делятся на три уровня: junior, middle, senior.

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

Куда развиваться продакту

Внутри компании продакт-менеджер может дорасти до СРО (директора по продукту) или даже CEO (исполнительного директора). В среднем путь по карьерной лестнице выбирают 85% продактов. Оставшиеся 15% предпочитают запускать стартапы.

Гипотеза для продакт-менеджера

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

Для получения гипотез используют:

  1. CustDev — коммуникацию с клиентами или пользователями.
  2. Анализ конкурентов.
  3. Аналитику.
  4. Генерацию идей.
  5. Текущий бэклог — список гипотез, отсортированных по приоритету, которые планируется реализовать. Вариант Капитана Очевидности :)

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

Для CustDev можно пообщаться с руководителями — у них есть видение продукта. Не помешает поговорить с экспертами, клиентами и пользователями, друзьями на Facebook, менеджерами по продажам, службой технической поддержки.

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

Этот подход помогает «оцифровать» конкурентов, когда нет вводных, и понять, на кого ориентироваться.

Чтобы сформулировать гипотезы с помощью аналитики, изучите ключевые метрики (выручку, конверсию в покупку, конверсию в регистрацию, средний чек и т. д.) и воронки — шаги к конкретной цели. Например, сто человек зашли на сайт, десять открыли карточку продукта и один купил. Для работы с аналитикой можно воспользоваться сервисами Яндекс.Метрика, Google Analytics, Tableau, Power Bl. Учтите, что задача продакта — работать с цифрами, а не доставать их.

Чтобы добыть гипотезы через генерацию идей, можно провести мозговой штурм: классический или по методикам «Цветок лотоса», «Метод 100» и морфологического анализа.

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

Выработанные гипотезы включаются в непрерывный цикл по методологии HADI:

  1. Гипотеза. Мы формулируем её и заранее определяем метрики для оценки успешности.
  2. Действие. Запускаем этап разработки в продукте.
  3. Аналитика. Собираем полученные данные по итогам изменений в продукте.
  4. Вывод. Анализируем полученные данные и сравниваем их с первоначальными целями.

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

 


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

Выпускные проекты: перевод динамического контента в Django

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

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

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

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

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

Коротко о самом проекте 

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

Перевод динамического содержимого осуществляется:

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

При этом Django-tof готов к работе сразу после установки и указания в Installed_APPS, плюс полностью интегрирован в админку Django. Таким образом, Django-tof гармонично дополняет модуль i18n, который уже встроен в Django и позволяет переводить статистические данные вроде названия кнопок и пунктов меню.

Рассмотрим практический пример. Представим, что у нас есть проект на Django для хранения «Названия Вина» и есть общее описание (model Wine). И теперь нужна локализация, скажем, на немецкий (или любые другие языки).

Чтобы перевести это содержимое, нужно установить Django-tof. Это очень просто.

pip install django-tof
 
INSTALLED_APPS = [
      	…
        	‘tof’,]
 
python manage.py migrate tof

При необходимости указываем:

python manage.py collectstatic

Ну а потом приступаем к переводу:

  1. Добавляем новое вино. Непереведённая информация будет отображаться без изменения.
  2. Добавляем поле Title из модели Wine в переводимые поля. Тем самым мы обозначаем, что это поле будет переводиться. 
  3. Добавляем перевод на английский и немецкий языки. 
  4. Переключаем Django на нужный язык.

 Добавление поля данных в переводимые 

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

FALLBACK_LANGUAGES по умолчанию:

[SITE_ID: (‘en’, ‘de’, ‘ru’), ‘fr’: (‘nl’, ),)

Добавляем перевод на английский и переключаемся на немецкий. Всё работает!

Ну а теперь делаем процесс ещё более удобным. Для этого в admin.py класс для Вина наследуем от TofAdmin:

from tofadmin import TofAdmin
class  WineAdmin (TofAdmin):

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

from tofadmin import TofAdmin, TranslationTabularinline
class  WineAdmin (TofAdmin):
 …
inlines = (TranslationTabularinline, )

Отображение переводов — это хорошо, но есть ещё один важный момент — поиск по переводам. В нашей библиотеке за поведение поиска отвечает настройка DEFAULT_FILTER_LANGUAGE: по умолчанию “current”. В ней можно указать, по каким переводам осуществлять поиск. Примеры значений: all, current, [‘en’, ‘de’], {‘en’, (‘en’, ‘de’, ‘ru’)}

При значении DEFAULT_FILTER_LANGUAGE равным “current” поиск будет производиться только в текущем языке. При значении DEFAULT_FILTER_LANGUAGE равным “__all__” поиск будет производиться по всем переводам. 

Как шла разработка?

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

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

Алгоритм решения каждой из задач был достаточно простой:

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

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

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

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

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

Пара советов студентам GeekBrains

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

Дополнительная информация по проекту Django-tof:

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

 


28 фев 20, 12:55
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 11 по 20 | всего: 1491

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

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

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

Люди

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