• Фэйковый дизайн

    • Перевод
    image

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

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

    Вы можете сказать: «Какая пустая трата времени на неоплачиваемую работу».
    Я бы ответил: «Боже, вы не понимаете тонкостей проектирования для реального мира».

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

    • Перевод
    image

    Я только что закончил семь собеседований в компаниях Кремниевой долины. В конечном итоге я принял предложение разработки программного обеспечения в Facebook.

    Вот как я готовился к этим собеседованию и чему я научился на этом пути.

    Мой многолетний путь в Кремниевую долину


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

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

    Я оставил свое место в качестве ведущего инженера iOS в чудесной компании в Мельбурне и я вернулся обратно в мой родной город Перт, чтобы учиться. Тут я буду готовиться к переговорному процессу которое ждет меня в Кремниевой долине. Я знал, что это будет невероятно сложно и тяжело.

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

    Ради этой статьи я не буду вступать в эту дискуссию. Вместо этого я рассмотрю различные типы методов интервью с точки зрения кандидата. Я также сосредоточу внимание на том, что я узнал из этого процесса.
    Читать дальше →
  • Что я узнал после 1000 code review

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

    Вот мои 3 (+1 бонусная) наиболее распространенные рекомендации по код-ревью.

    image

    Рекомендация 1: Выбрасывайте исключения, если что то идет не так


    Зачастую паттерн выглядит так:

    List<String> getSearchResults(...) {
      try {
        List<String> results = // make REST call to search service
        return results;
      } catch (RemoteInvocationException e) {
        return Collections.emptyList();
      }
    }


    Этот паттерн вызвал перебои в одном из мобильных приложений, над которыми я работал. Поиск на стороне сервера, который мы использовали, начал выбрасывать исключения. Оказалось, на серверном API приложения был некоторый код, похожий на приведенный выше. Поэтому приложение получало 200 ответ сервера и с радостью показывало пустой список для каждого поискового запроса.
    Читать дальше →
  • 8 учебных проектов

    • Перевод
    «Мастер совершает больше ошибок, чем новичок — попыток»

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

    Проект 1. Клон Trello


    image


    Клон Trello от Indrek Lasn .

    Что вы освоите:

    • Организация маршрутов обработки запросов (Routing).
    • Drag and drop.
    • Как создавать новые объекты (доски, списки, карточки).
    • Обработка и проверка входных данных.
    • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
    • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

    Тут пример репозитория, сделанного на React+Redux.
    Читать дальше →
  • Эволюция «img»: Gif без формата GIF

    • Перевод
    image

    tl;dr

    • GIF — это круто, но в плане качества и производительности они ужасны.
    • Замена GIF на video хорошая идея, но есть недостатки: они не подгружаются предварительно, используют range запросы.
    • Сегодня вы можете использовать img src =".mp4" в Safari Technology Preview.
    • Предварительные результаты показывают, что mp4s в тегах отображаются в 20 раз быстрее и декодируются в 7 раз быстрее, чем GIF-эквивалент — в дополнение к тому, что размер файла равен 1/14!
    • Фоновые CSS-видео и адаптивные видео могут стать клевой фишкой.
    • Наконец, синемаграфы будут без недостатков GIF.
    • Теперь мы ждем, когда другие браузеры пойдут следом: этот пост весит — 46 МБ на Chrome, и всего 2 МБ в Safari TP.

    Особая благодарность: Эрику Портису, Джеку Ноблу, Джону Дэвису, Дорону Шерману и Йоаву Вайсу.
    Читать дальше →
  • Как быстро спроектировать сайт с помощью CSS Grid

    • Перевод
    image

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

    В этой статье я научу вас, как это сделать.

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

    Если вы совершенно не знакомы с CSS Grid, вам может понадобиться просмотреть мою предыдущую статью Учим CSS Grid за 5 минут.
    Читать дальше →
  • Я создал приложение, которое делает изучение алгоритмов и структур данных гораздо интереснее

    • Перевод
    image

    Интерфейс CS-Playground-React

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

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

    Зайдите на CS-Playground-React, простую браузерную JavaScript-песочницу для изучения и практикования алгоритмов и структур данных.

    Это приложение не требует регистрации и автоматически сохраняет ваши достижения, предлагает решения когда вы застряли, и имеет кучу ссылок на полезные статьи, туториалы, и другие ресурсы, чтобы помочь сделать ваше обучение не очень болезненным, как было у меня.
    Читать дальше →
  • Учим CSS Grid за 5 минут

    • Перевод
    Быстро познакомимся с будущим макетов веб-сайтов.

    image

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

    В этом году модуль также получил нативную поддержку основных браузеров (Safari, Chrome, Firefox), поэтому я считаю, что всем фронтенд разработчикам придется изучать эту технологию в недалеком будущем.

    В этой статье я быстренько расскажу вам об основах CSS Grid.
    Читать дальше →
  • Хакерские байки c Quora

    • Перевод

    История первая


    Восемь лет назад в старшей школе я хакнул основной сервер моей школы и нанес реальный вред.

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

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

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

    Он не знал, что на флешке был мой самозапускаемый троян. Файл был зашифрован, поэтому он проскочил через уже устаревший антивирус и заразил его терминал. Поэтому теперь оставалось лишь ждать, когда он попробует залогиниться на основном сервере.
    Читать дальше →
  • Фрэймворк для разработки продуктов от Facebook

    • Перевод
    Julie Zhuo, директор по продуктовому дизайну в Facebook, однажды выступала на «TNW Europe», и рассказывала о фрэймворке, который используется в Facebook, чтобы сфокусироваться на разработке продукта.

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

    Этот список не идеальный и не полный. Если бы была какая-то пошаговая инструкция (Шаг 1: Идея. Шаг 2: ??? Шаг 3: Профит!), тогда я бы потратила на неё хорошие деньги, а потом похлопала нас по спинам и смотрела бы, как новые потрясающие продукты цветут вокруг нас, словно цветочные поля в мае.

    Путешествие завершено на 1%. Давайте продолжим идти дальше и обучаться.

    Фрейминг


    1. Продукт успешен, потому что решает проблемы за людей. Это звучит очень просто, но это самая важная вещь, которую нужно понимать в создании хороших продуктов.
    2. Первым шагом в создании чего-то нового является понимание того, какую проблему ты хочешь решить и для кого. Это должно быть предельно ясно до того, как вы начнете думать над решением.
    3. Третий вопрос, который вы должны себе задать: «Почему именно эту проблему стоит решать?»
    4. Если аудитория, для которой вы создаете, узко определена (и вы её часть), то вы можете положиться на свою интуицию, чтобы принимать решения по продукту. Если же нет, то стоит полагаться на исследования и данные.
    5. Если вы — основатель стартапа, будет легче начать с решения проблем узкой аудитории, а затем расширяться к общей аудитории после того, как вы заручитесь изначальной поддержкой.
    6. Проблема, которую вы пытаетесь решить, должна быть поняла за пару предложений и резонировать с кем-либо из вашей целевой аудитории. Если этого не происходит, то считайте это тревожным признаком.
    Читать дальше →
Самое читаемое