GeekWeek. "Зачем?" - главный вопрос создателя интерфейсов



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

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

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

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

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

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

Всем приходят на ум примеры деятельности компании Apple, однако есть и другие. Тот же Google со своей экосистемой делает достаточно много прорывных для пользователя вещей, которые, однако, гораздо менее заметны.

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

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

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

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

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

  • Можете ли Вы поделиться собственными успешными кейсами? Возможно, показателями статистики?

Если не заниматься конкретными интерфейсными задачами типа увеличения конверсии, то статистику успешности в этой области собрать не так то просто. Самый лучший показатель качества интерфейса — это отсутствие недовольства со стороны пользователей. Лично я самыми успешными своими работами считаю игру Heroes of Might&Magic V и продукт для банковского сектора Kaspersky Fraud Prevention. 
  • 0
  • мне нравится
    не нравится
    0

Международная IT-конференция GeekWeek-2015



Друзья!


Меньше чем через месяц, 16 ноября 2015 года, состоится GeekWeek-2015 — масштабное событие, совмещающее формат конференции и обучающего интенсива по программированию.

Ежедневно основатели, тимлиды и разработчики из Microsoft, Яндекс, LinguaLeo, Kaspersky Lab и других компаний (с некоторыми из них мы поближе познакомимся на страницах нашего блога) будут делиться с вами своим опытом. 



Среди основных тем конференции: 

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

Готовьтесь поработать!

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

Целая неделя – с 16 по 22 ноября – будет посвящена исключительно вашему профессиональному развитию. И только представьте – никуда ехать не надо! Ведь все будет происходить в онлайн-режиме, а, значит, можно будет легко совместить комфортные условия с активной созидательной работой мозга. :)

 

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

— Фатеев Евгений, евангелист Ruby и Rails, web deweloper instamotor.com

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

Сам же я расскажу историю нашей команды, которая работает над проектом «Типичный программист». О том, с чего всё начиналось, причём тут Линус Торвальдс, как всё устроено сейчас и какие у нас планы на будущее"

Алексей Михайлишин, основатель сообщества "Типичный программист"

 

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

 

До встречи!

 
  • 0
  • мне нравится
    не нравится
    0

Мобильная революция: спрос на программистов будет расти!



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

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

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

Ватикан, выборы Папы римского в 2005 и 2013 годах



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

От игр к серьёзному бизнес-софту

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



Источник: Gartner, 2015г.

И вот теперь аналитики, которые ранее печально предрекали застой, кардинально изменили своё мнение. Например, Gartner сейчас утверждает, что в первой десятке глобальных технологических трендов, которые будут определять ближайшее будущее IT-отрасли, шесть принадлежит мобильным технологиям. Именно технологиям – т.е. сервисам, которые объединяют в себе и ПО, и средства коммуникации, и бизнес-процессы, которые будут генерировать прибыль проектам.

Какие сервисы будут нужны?

Что должны делать эти сервисы? Аналитики перечисляют: дистанционный контроль и управление всевозможными информационными системами (в том числе Интернет вещей, АСУ ТП в промышленности, системы информационной и физической безопасности),платежи в сети, а также расширение функционала систем, изначально не являющихся мобильными. Сюда можно отнести сбор данных о здоровье пациентов в медицине, геолокационные сервисы для рекламы, всем известные агрегаторы такси и отелей, образование и, например, устройства для автоматизации деятельности разъездных мерчендайзеров или маркетологов.

Есть и иные точки роста отрасли, связанные, к примеру, с использованием мобильных устройств в качестве офисной техники непосредственно в офисах. Ведь для многих планшет уже стал частью жизни, зачем им еще что-то новое на работе? Да и понятие офиса сейчас быстро теряет границы. Люди работают, там, где им удобно. Специалисты даже выделили эту сферу разработок в специализированное направление -BYOD (Bring Your Own Device – приносить ваше собственное устройство). Но чтобы эта концепция реально претворилась в жизнь, необходимо решить целый ряд проблем из области информационной безопасности. 

Uber уже дороже Газпрома

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

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

Не менее стремителен взлёт и ряда российских разработчиков для мобильных устройств. Достаточно вспомнить рекорды по росту аудитории и доходов компании Game Insight, а также нескольких стартапов из ее бизнес-инкубатора. Вспомним и то, что сделано разработчиками для оглушительного успеха Home Credit Bank или Банка Тинькофф.

Кадры решают всё

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

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

9 вещей, которые нужны разработчикам больше денег



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

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

Гигиена и мотивация


В 1950-х исследователь Фредерик Херцберг изучил мнения и условия труда 200 инженеров и бухгалтеров в США. На основании результатов опроса он вывел теорию, получившую название "Теория двух факторов" — одну из широко распространенных теорий удовлетворенности работников своим трудом.

Итак, два фактора, влияющих на удовлетворение:

1. Гигиенический: условия труда, уровень заработной платы, безопасность и т.п.
2. Мотивационный: возможность достижений, признание, ответственность, личностный рост, продвижение по службе...

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

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

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

С другой стороны, условия работы ужасны: серые душные кабинки, свисающие с потолка кабели и т.д.

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

1. Ясность цели


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

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

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

2. Превосходный менеджмент


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

Результат — не только лояльные и мотивированные работники, но и хороший софт на выходе.

3. Постоянное обучение новому


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

Все разработчики любят показывать, что освоили новые технологии. В середине 90-х это были Perl и HTML, в конце — ASP, PHP и Java, сегодня — AJAX и Ruby (и в некоторых кругах ASP.NET 2.0). Дайте сотрудникам использовать эти "игрушки", и они не только смогут похвастаться приобретенными знаниями, но и станут выполнять свою работу лучше.

4. Творчество и решение проблем


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

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

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

Правильный вызов — тот, что учит и заставляет учиться. Например: "Объединить эти 5 RSS-каналов, настроить отображение заголовков, выяснить, как использовать AJAX, чтобы получилось круто". Плохой пример: "Исправить код другого парня. Мы его не использовали, потому что боялись, что он создаст проблемы в системе. Он очевидно написан очень плохо, поэтому нужно исправить косяки и вообще сделать его качественным".

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

5. Право голоса


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

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

6. Признание


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

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

7. Созидание чего-то важного


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

Ищите в своем продукте масштабную цель.

8. Работа без бюрократии


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

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

9. Минимальное количество устаревших ограничений


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

Итог

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

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

Хочется верить, что да: только с комфортного рабочего места не хочется бежать,
только с сильным кадровым составом компания может претендовать на успех.
  • 0
  • мне нравится
    не нравится
    0

GeekBrains. Мы в числе победителей!

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






Конференция привлекла работников сферы образования, представителей государственных структур, а также бизнес-сектора. На мероприятии присутствовали Заместитель Председателя Правительства РФ Аркадий Дворкович, ректор НИУ ВШЭ Ярослав Кузьминов, основатели международных образовательных платформ, инвесторы и другие значительные игроки из области образования. 

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

А пока спешим сообщить, чтообразовательный портал GeekBrains принял участие в первом Международном Конкурсе Массовых Открытых Онлайн Курсов (МООК) и завоевал второе место!



Почетного приза удостоился уже известный вам бесплатный видеокурс «Основы программирования» преподавателя GeekBrains Жарикова Андрея.  

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

Празднуем победу и готовы к новым достижениям!

 

Ваш GeekBrains

 
  • 0
  • мне нравится
    не нравится
    0

Бесплатный курс "Объектно-ориентированное программирование"



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

Объектно-ориентированное программирование (ООП) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов. ООП применяется для программирования и проектирования программных продуктов, и главное в его применении, как ни странно, уметь думать объектно-ориентированным способом.

Это как?

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

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

Для прохождения нового бесплатного курса по ООП понадобится:

  1. Среда разработки. В качестве неё возьмем Visual Studio Community с официального сайта. Эта версия программы бесплатна, поэтому просто качаем ее и устанавливаем к себе на ПК.
  2. Система контроля версий. Берём Git. Для облегчения работы с Git посмотрите курс "Git. Быстрый старт".

«Этот курс я считаю своим большим достижением. Материал с одной стороны весьма непрост для новичков, с другой стороны — является невероятно важным для любого программиста, — говорит преподаватель курса Евгений, — курс ориентирован на новичков, которые уже освоили"Основы программирования" и готовы идти дальше».

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

Основные понятия в объектно-ориентированном программировании – это объекты и классы.

Основные принципы – наследование, полиморфизм, инкапсуляция и абстракция.  

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

В течение всего курса вы будете разрабатывать конкретный продукт – игру «Змейка». Для написания её вы будете использовать язык С#. Большой плюс состоит в том, что даже если вы изучаете другой язык программирования – ничего страшного, ведь принципы ООП для любого языка одинаковы.

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

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

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

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

Вопросы преподавателю:  

 Почему именно «Змейка»?


  — На «Змейку» меня вдохновила моя жена. Мы вместе учились на факультете ВМиК МГУ, и данная программа была домашним заданием. Супруга напомнила мне, насколько это было круто и увлекательно, писать свою собственную игрушку. Тогда я написал программу кое-как, несмотря на то, что она работала. Только спустя годы работы программистом я понял, как можно написать ИДЕАЛЬНУЮ змейку, получив максимально читаемый, масштабируемый код. И насколько здорово эта программа отражает принципы ООП, если разрабатывать её правильно»

Куда двигаться дальше? 


По окончании курса можно будет выбрать любое направление: изучать Java, Python, C++, C#, Ruby, Php — практически в любом языке вам придется столкнуться с ООП и использовать эти принципы при написании ЛЮБОЙ программы. Понимание базовых принципов ООП поможет вам с бОльшей легкостью освоить любой язык программирования.

 
  • 0
  • мне нравится
    не нравится
    0

Как отметить День программиста?


Друзья!

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

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

День, когда мы вышли из подполья

Ратовать за узаконивание этого праздника наши программисты начали еще в 2002-м. Тогда сотрудник веб-студии «Параллельные технологии» Валентин Балт начал собирать подписи под обращением к Правительству РФ о придании празднику официального статуса.

Программисты добились своего и 24 июля 2009 года Министерство связи и массовых коммуникаций Российской Федерации подготовило документ «О Дне программиста», благополучно подписанный уже в сентябре того же года Президентом России. С тех пор наш праздник вышел из подполья, и вот уже 6-й год является официальным Днем всех разработчиков.


Как будем праздновать?

А теперь к самому интересному.

13 сентября мы вместе с нашими давними друзьями из сообщества «Типичный программист» соберемся в уютном московском тайм-кафе :gltf.

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

Подробности мероприятия читайте по ссылке.

Далеко ехать? Тогда станьте организатором Дня программиста в своем городе!

Присылайте нам в группу фотографии с ваших встреч с указанием города и хештегом #tprogerday2015. Авторам лучших фотографий мы вышлем памятные призы, а, самое главное, — вам будет что вспомнить!

Отметим Наш День массово!
  • 0
  • мне нравится
    не нравится
    0

Git – распределенная система управления версиями



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

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

Без Git-а или его аналога не обходится ни одна командная разработка. Система полезна не только команде, но и отдельным разработчикам.

Git – распределенная система управления версиями, была создана Линусом Торвальдсом, чтобы управлять разработкой ядра Линукс. На сегодняшний день многие проекты используют Git. Среди них PHP, jQuery, Wine, Android, Qt, Drupal и другие.

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

Устанавливать Git можно и на Linux, и на Mac, и на Windows. Главная задача — это правильная настройка системы. Git достаточно гибкая, что даёт возможность реализации практически любых клиентов с интерфейсом по желанию.

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

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

Несомненное удобство системы контроля версий – это ветвление: возможность параллельной разработки нескольких версий ПО. На простом примере это можно сравнить с большим паззлом, например, на 3 тысячи кусков, который собирают 10 человек. Каждый участник сборки складывает свой кусок картинки и, когда он её сложит, этот кусок (ветку) ему необходимо прикрепить к общей картинке. Теперь представьте, что этот паззл с картинкой автомобиля. Пока вы собирали свой кусок, у автомобиля поменялся дизайн фары – так вот та ветка, которая отвечала за фару, имеет возможность быть выключенной и быть собранной по-другому и вставиться целиком. Смысл Git заключается как раз в этом: есть центральная линия, на которой всё понятно и всё работает. В нашем случае это рабочая оттестированная версия программы, которую в любой момент можно показать заказчику или отдать пользователям, и есть боковые ветки, где производится доработка или изменения, которую, кроме самих разработчиков и лиц, имеющих доступ к коду, не видит никто.

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

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

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

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

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

Пройти бесплатный курс «Git. Быстрый старт»

Автор: Игнатова Наталья
  • 0
  • мне нравится
    не нравится
    0

Новый бесплатный курс по Objective C. Мнение


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

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

Немного о языке
Для начала я закопалась в теорию, чтобы вспомнить всё, что знала про данный язык, и узнать то, чего мне не было известно – технологии развиваются постоянно и это надо учитывать!
Objective-C (он же Objective C, Obj-C, ObjC) — компилируемый объектно-ориентированный язык программирования корпорации Apple. Язык построен на основе языка Си и парадигм Smalltalk. Он является расширением Си, поэтому код, написанный на Си, полностью понимается компилятором Objective-С.
В основном Objective-C используется для Mac OS X и iOS, но компилятор входит в набор компиляторов GNU Compiler Collection (GCC), который доступен на большинстве основных платформ.

Язык был создан в компании Stepstone Бредом Коксом в 1980 году. Цели, которые преследовал разработчик при создании языка, были таковы: классы должны были быть полноценными объектами, из которых можно было бы собирать программы, а язык – простым для перехода на него с Си.
Objective-C намного более гибкий чем С++, аналогично с Java, имеет протоколы. По аналогии с Ruby для создания объектов необходимо вызвать метод класса. При вызове метода ищется нужный селектор (строка из идентификаторов) и, при отсутствии нужного, вызывается универсальный обработчик.
Objective-C — message-oriented. Это означает, что он ориентирован на обработку сообщений. Происходит посылка сообщений объекту, а не вызов функции; есть поддержка протоколов, с поддержкой множественного наследования. По большому счету это набор ключевых слов и управляющих конструкций над Си.

Для разработки приложений на Objective-C можно использовать среду разработки Хcode, созданную Apple. Стабильная бесплатная версия есть в Mac App Store. И, само собой, необходима «железка» с Mac OS X.

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

Писали мы небольшое приложение для iPhone To-Do List (список дел) Да! В итоге получилось полноценное приложение, выполняющее все привычные действия.

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

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

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

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

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

Хочу сказать спасибо (и говорю спасибо!) автору и создателю курса за очень подробное, грамотное, а, главное, понятное изложение материала.

Автор: Игнатова Наталья

Источник
  • 0
  • мне нравится
    не нравится
    0

С# с нуля. Вкусный рецепт по освоению


На GeekBrains стартовал бесплатный обучающий видео-курс «С#. Мини-программы» по использованию технологии Windows Forms Net.Framework на языке C#. Курс предназначен для тех, кто желает изучить основы программирования на С#. В процессе прохождения курса есть возможность написать несколько утилит и понять, что программирование – весьма интересная вещь, доступная каждому.


Итак, рецепт для начала освоения С#.
На весь объем Вашего огромного потенциала Вам понадобится:

1. Наш курс «С#. Мини-программы» – 1 шт.
2. Желание нескончаемое – 1 шт.
3. Компьютер с .NET Framework – 1 шт.
4. Практика, практика, практика. — чем больше, тем лучше

Объектно-ориентированные языки программирование основываются, как понятно из названия, на определении «объект», т.е. тоv, что имеет некие данные и определяющие его свойства или действия.

C# (читается как Си Шарп) – это объектно-ориентированный язык программирования, созданный Microsoft в 2001 году для написания приложений для Microsoft .NET Framework и относится к языкам с С-подобным синтаксисом. Название С# получается из цепочки, созданной из «С» и четырех знаков «+», если их разместить по углам квадрата. Большим плюсом языка является то, что компилятор С имеется в составе .NET, а это позволяет писать на нём даже без инструментальных сред.

Как работает С#


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

Что можно делать на C#?


Весьма многое: простые приложения под Windows, приложения типа «клиент-сервер», приложения для баз данных… Теоретически, на нём можно сделать всё, практически – выбор всегда только за вами. Будучи объектно-ориентированным языком, С# поддерживает понятия инкапсуляции, полиморфизма, наследования.

С# очень сильно зависит от Common Language Runtime (CLR) и чем сильнее развивается CLR, тем сильнее развивается C#, т.к. является языком прикладного уровня для CLR. Последняя версия языка С# вышла в июле 2015 г под .NET Framework 4.6. Этот язык является языком, включенным в Visual Studio, но при её использовании всё же полезно обложиться всеми лицензиями от Microsoft.

Говоря о С#, нельзя не упомянуть о платформе .NET Framework. Программы, что написаны на С#, выполняются именно в данной среде. Она была разработана Microsoft в ответ на платформу Java и выпущена в 2002 году.

В основе платформы лежит Common Language Runtime (CLR) – общеязыковая среда исполнения, которая подходит для многих языков программирования. Главная идея .NET Framework состоит в свободе для разработчика при написании им ПО под различные среды и устройства. Объектные классы содержатся в единой библиотеке и доступны для всех языков программирования, поддерживаемых платформой. Виртуальная машина CLR исполняет написанный код, управляет памятью и обеспечивает безопасность, что освобождает разработчика от этих задач.

Windows Forms – это часть .NET Framework, набор библиотек для стандартных задач. Она разработана и предназначена для упрощения создания элементов графического интерфейса. Грубо говоря, это оболочка низкоуровневых Windows-компонентов. Сюда включен большой набор элементов управления таких как: кнопки, списки, текстовые поля, контекстное меню и многие другие. Т.е всё то, что необходимо для создания привычного вида и способа управления. Главным «полем событий» является форма, на которой разработчик реализовывает то, что ему необходимо. Классы для интерфейса программирования приложений не зависят от языка, на котором пишет программист. Windows Forms одинаково может использоваться как для программ на С# так и для ПО на С++.

Немного об обучении

Понятно, что писать придется не только на чём-то, но и в чём- то. В нашем случае средой разработки будет Visual Studio (вполне подойдет Express). Таким образом, помимо того, что вы будете учиться писать на языке, вы одновременно познакомитесь со средой разработки, потому как её использование не ограничивается С#.
Одним из главных моментов при разработке является то, что всё делается на форме. Она является площадкой для всех остальных элементов управления, которые будут на ней располагаться. В процессе написания утилит, вы познакомитесь с созданием основных элементов формы, научитесь задавать им свойства и заставлять компоненты делать то, что вам необходимо для вашей задачи.

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

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

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

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

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

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

В общем, добро пожаловать на курс!

Автор статьи: Наталья Игнатова
  • 0
  • мне нравится
    не нравится
    0