Pull to refresh
7
0
Send message

Собеседование на программиста в Amazon

Reading time7 min
Views126K

Представляю вашему вниманию перевод своей статьи Amazon software engineer interview, изначально опубликованной на английском на sobit.me.


Amazon - We Pioneer


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


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


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

Читать дальше →
Total votes 71: ↑62 and ↓9+53
Comments258

Покупка бренда на конвейере

Reading time3 min
Views4.7K
Относительно недавно проскакивал пост про Стилэйт – киберсквоттеров в приятной шуршащей упаковке. Не подумайте ничего плохого, сервис полезный для горящих идеями. Когда у тебя в голове выстроена красивая система зарабатывания денег в ай-ти сфере, то хочется побыстрее назвать его стартапом, найти деньги, взлететь и расправить крылья. Однако, как знает каждый из нас, самая вкусная часть — мечтать и планировать, всегда упирается в дальнейшую кропотливую работу над всеми мелочами нового проекта. Зачастую, это офис, наём сотрудников, покупка/изготовление хорошей доски, подготовка юридической фигни и прочее. В том числе и брендирование.

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

Предлагаю небольшой обзор нескольких, заслуживающих внимания, сервисов для экономии творческого порыва юного стартапера:
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments9

Структура и интерпретация компьютерных программ

Reading time1 min
Views12K
image
Перевод второй лекции Джеральда Сассмана
«Процедуры и процессы: подстановочная модель.»

Эти лекции были прочитаны 25 лет назад сотрудникам HP, но на самом деле это тот легендарный вводный курс 6.001, который читался в MIT в 1980 году. С тех пор эти лекции sine qua none во всем мире программирования. Хотелось бы чтобы каждый программист посмотрел этот курс, ничего не учит абстрактному мышлению лучше, чем SICP.
Приятного просмотра на ночь глядя.
Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments37

SICP теперь по-русски

Reading time1 min
Views63K
image

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

В качестве эксперимента выкладываю перевод первой из 20 лекций. Если это получит должный отклик, буду переводить дальше.
Читать дальше →
Total votes 97: ↑92 and ↓5+87
Comments61

Много книг, хороших и разных

Reading time20 min
Views96K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Total votes 139: ↑124 and ↓15+109
Comments89

33 правила для увеличения Вашей продуктивности (Стив Павлина)

Reading time6 min
Views3.8K
Оригинал: 33 Rules to Boost Your Productivity
Автор: Стив Павлина (Steve Pavlina)
Перевод: Евгений Ефремов

Эвристика — это набор правил, предназначенных для того, чтобы помочь решать вам свои задачи. Когда задача сложна или просто велика, а оптимальное решение неясно, применение эвристических методов поможет вам продвинуться в ее решении, даже если у вас нет четкого видения всего решения целиком.
Предположим, что вашей целью является покорение горы, но ни одна дорога не ведет к вершине. Примером эвристического решения может быть: Двигаться напрямую к вершине до тех пор, пока вы не встретите препятствие, которое не сможете преодолеть. Когда вы встретите подобное препятствие, следуйте вдоль него направо до тех пор, пока не сможете двигаться к вершине снова. Это не самый лучший или самый полный вариант применения эвристики, но во многих случаях он будет нормально работать, и вы достигните вершины.
Эвристика не гарантирует, что вы найдете оптимальное решение, более того, она не гарантирует, что вы найдете хоть какое-нибудь решение. Но для определенного типа задач эвристика бывает весьма полезна. Ее сила в том, что она помогает сдвинуться с мертвой точки, когда вы не можете принять решение, и приступить к действиям. Когда вы начинаете действовать, вы исследуете возможные варианты, что углубляет ваше понимание задачи. И получая больше информации о задаче, вы понемногу повышаете свои шансы найти ее решение. Если вы пытаетесь решить задачу, не зная точно, как это сделать, зачастую вы можете найти решение в процессе. Причем такое, до которого не смогли бы додуматься, не начав действовать. Особенно это справедливо для творческой деятельности, например для разработки программного обеспечения. Там вы часто не знаете, что вы хотите сделать, пока не начнете это делать.
Эвристика имеет множество приложений, одним из моих любимых является применение в личной продуктивности. Эвристика в задачах продуктивности — это набор поведенческих правил (иногда общих, иногда — ситуационных), которые помогают нам делать вещи более эффективно. Вот некоторые из мои любимых:
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments28

Тонкости благополучного git-merge

Reading time8 min
Views355K

Вступительное слово


Считается, что «киллер фичей» СКВ Git является легковесное ветвление. Я ощутил это преимущество в полной мере, ведь я перешел на Git с SVN, где ветвление было достаточно дорогим процессом: для создания ветки нужно было скопировать весь рабочий каталог. В Git все проще: создание ветки подразумевает лишь создание нового указателя на определенный коммит в папке .git/refs/heads, который является файлом с 40 байтами текста, хешем коммита.

Основными командами пользовательского уровня для ветвления в Git являются git-branch, git-checkout, git-rebase, git-log и, конечно же, git-merge. Для себя я считаю git-merge зоной наибольшей ответственности, точкой огромной магической энергии и больших возможностей. Но это достаточно сложная команда, и даже достаточно длительный опыт работы с Git порой бывает недостаточным для освоение всех ее тонкостей и умения применить ее наиболее эффективно в какой-либо нестандартной ситуации.

Попробуем же разобраться в тонкостях git-merge и приручить эту великую магию.

Здесь я хочу рассмотреть только случай благополучного слияния, под которым я понимаю слияние без конфликтов. Обработка и разрешение конфликтов — отдельная интересная тема, достойная отдельной статьи. Я очень рекомендую так же ознакомиться со статьей Внутреннее устройство Git: хранение данных и merge, содержащей много важной информации, на которую я опираюсь.
Читать дальше →
Total votes 76: ↑75 and ↓1+74
Comments47

Сертификаты MySQL DBA и MySQL Developer по 50 долларов

Reading time2 min
Views10K
Вчера Oracle Certification запустила beta-сертификацию MySQL 5.6 DBA и MySQL 5.6 Developer Beta-программа продлится около двух месяцев. В это время у вас есть возможность получить сертификаты за 50 USD

Это первый официальный экзамен по MySQL за очень долгое время: предыдущий был для версии 5.0 и много багов утекло с той поры. Для меня лично это событие значимо ещё и потому, что я принимала активное участие в создании и редактировании вопросов вместе с другими инженерами из команды MySQL Support. А гордиться нам есть чем.

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments6

Масштабировать просто. Часть третья — стратегии

Reading time6 min
Views14K
В предыдущих частях (тут и тут) мы говорили об основных архитектурных принципах построения масштабируемых порталов. Сегодня продолжим разговор об оптимизации правильно построенного портала. Итак, стратегии масштабирования.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments3

Почему бережливый стартап все изменил?

Reading time16 min
Views30K

Запуск нового проекта, будь то технологичный стартап, мелкий бизнес либо совместное предприятие в виде крупной корпорации — это всегда проект из разряда «пан или пропал». В соответствии с многолетней формулой, вы пишите бизнес план, расхваливаете его инвесторам, собираете команду, выводите продукт на рынок и начинаете продавать настолько интенсивно, насколько это возможно. И скорее всего где-то в этой последовательности событий вас ждет неизбежный провал. Перевес не в вашу пользу: новое исследование, проведенное Шикхаром Гошем из Гарвардской Школы Бизнеса, показывает, что 75% всех стартапов терпит неудачу.

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

Однако, движение бережливого стартапа еще не стало мейнстримом, и нам еще только предстоит почувствовать его полное воздействие. В большинстве своем оно примерно в том же состоянии, в котором было движение больших данных пять лет назад – состоящее в основном из терминов, которые пока что не осознаны в должной степени, и чьи последствия компании только начинают понимать. Но со все большим распространением, они кардинальным образом меняют общепринятые понятия о предпринимательстве. Новые предприятия, всевозможных видов, пытаются повысить свои шансы на успех следуя их принципам «fail fast» и постоянного обучения. И несмотря на название методологии, в долгосрочной перспективе дивиденды могут получить и крупные компании, применившие данные принципы.

В данной статье я предложу краткий обзор методов бережливого стартапа и то, как они эволюционировали. Что более важно, я объясню, как, в сочетании с другими трендами в деловой сфере, они могут положить начало новой предпринимательской экономике.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments20

На пути к созданию безопасного веб-ресурса. Часть 1 — серверное ПО

Reading time7 min
Views98K
Я уже довольно долгое время хочу формализовать все свои мысли, опыт, ежедневно применяемый на практике, и многое другое в одном месте и предоставить их общественности. Уверен, многим этот материал будет полезен. Он посвящен различным моментам в конфигурации серверного ПО Linux и безопасным подходам к созданию сайтов/приложений на php (все же это до сих пор одна из самых популярных связок, хоть её успешно и подвигают другие технологии. Но советы так же легко применимы и к веб-ресурсам на других технологиях).

Т.е. речь идет о типичной ситуации. Проект (стартап), купили под него сервер и разворачиваем на нем сайт. Бизнесу не нужно тратить лишних денег на сервера (поэтому будут выбраны наиболее производительные связки ПО), а так же нужно, чтобы все было безопасно, при чем бесплатно :)
Много текста. По-другому никак
Total votes 170: ↑159 and ↓11+148
Comments47

MySQL Performance real life Tips and Tricks. Part 3-rd.

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

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

Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments40

Немного про Deadlock

Reading time2 min
Views127K
Это совсем краткий пост о причинах возникновения Deadlock

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

«Deadlock found when trying to get lock; try restarting transaction»

Главное не паниковать при виде этих страшных слов, сейчас мы разберемся почему это происходит.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments50

Ресурсы имеют значение

Reading time2 min
Views23K


Я уже писал о ресурсе, который отбирает лучшие и бесплатные пользовательские интерфейсы. Сейчас настала очередь более интересеного и потенциального ресурса AgileDesigners , Созданный Гонкогской компанией Webalys, известная разработкой User Interface Design Framework для Illustrator.

AgileDesigners


Является тематическим каталогом лучших ресурсов, которые рекомендуют специалисты со всего мира. Ресуры разбиты на 4 типа:
  • Дизайн;
  • Разработка;
  • Управление;
  • Обучение;

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

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

Методика проекта очень простая: Под каждым ресурсом есть счетчик людей которые им пользуются и рекомендуют. Если Вы нашли ресурс, который посещяете и рекомендуете, просто поставье «Лайк» I USE THIS (поскольку проект еще в бете, лайки пока работают только со страницы ресурса, а не в общей ленте), что поднимет общий рейтинг ресурса. Сейчас Проект находится в стадии «Beta», много подчерпнуть из него врядли удасться, но потенциально пользоваться им будет удобней, нежели вычитывать по одной рекомендации по разным источникам.
PS: Хабрахабр уже добавлен.
В дополнении, немного ресурсов которые я собрал для вас на этой неделе
Total votes 51: ↑46 and ↓5+41
Comments15

Таблицы в учетных системах

Reading time8 min
Views9.5K
Когда-то давным давно угораздило меня попасть в мир учетных систем, да не просто учетных, а работающих через Web. Много воды утекло с тех пор, много систем родилось, некоторые из них уже погибли. Это очень динамичный мир. В этом мире множество систем, от брутальной, умудренной сединами , до совсем молодой Acumatica. Есть гламурненькие Эльба с FinoBox, есть и крутой Мегаплан, есть мой любимый, суровый, но симпатишный Oreodor. Во всех них очень умные формы, ещё более умная (чем пользователь) навигация, ну, и таблицы! Давайте подойдем ещё ближе.

Все это Web, все это работает, все функционально, а функционала много.
Хотите посмотреть?
Total votes 40: ↑38 and ↓2+36
Comments59

Постигаем Git

Reading time6 min
Views55K
От переводчика: в этой статье нет описания команд git, она подразумевает, что вы уже знакомы с ним. Здесь описывается вполне здравый, на мой взгляд, подход к содержанию публичной истории в чистоте и порядке.

Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
Читать дальше →
Total votes 126: ↑120 and ↓6+114
Comments91

Elevator Pitch или грамотная презентация проекта за 60 секунд

Reading time2 min
Views6.1K
Я хочу рассказать вам про то, как создать грамотный Elevator Pitch – одноминутную презентацию проекта потенциальному инвестору на базе собственного опыта. Когда у вас есть всего одна минута, чтобы презентовать проект, вы должны четко понимать, на что потратить эти драгоценные секунды.

Краткость — сестра таланта

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

Первое впечатление

Первая фраза – самая важная, попробуйте написать несколько вариантов, покажите эти варианты старшему поколению, если они вас не понимают – перепишите. Повторяйте упражнение до тех пор, пока большей части видящих текст впервые, он не станет понятен.
Читать дальше →
Total votes 68: ↑55 and ↓13+42
Comments20

Модели реальности и их роль в жизни людей

Reading time4 min
Views16K
Есть модель мира, и есть реальный мир.
Как в физике — есть какое-то явление, а есть его модели.

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

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

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

Вот только отличий от физиков тут три. Первое — это незнание природы работы мозга. И отсюда вытекающая уверенность, что все, что человек видит, думает и знает — и есть истина. То есть человек себя убедил (читай сделал себе модель) в том, что Windows лучше, чем Linux — все, теперь в его модели мира может быть только этот факт. Второе отличие как раз в уточнении модели. Люди не уточняют модели реальности, как правило, более того, мозг специально отсекает факты, противоречащие модели, либо вырабатывает «адаптеры» в виде «логических объяснений», чтобы не нарушить комфорта в восприятии мира — все знают нелюбовь к изменениям, боязнь, что «мир встанет с ног на голову».
Читать дальше →
Total votes 128: ↑103 and ↓25+78
Comments96

Тайм-менеджмент — это действительно просто

Reading time3 min
Views12K
Сначала они не замечают тебя, потом смеются над тобой, потом борются с тобой. А потом ты побеждаешь.
Махатма Ганди

Эффективность направлена на максимальное приближение к цели, рациональность — на максимально экономное выполнение процесса.
Тим Феррис

Был очень рад прочитать сегодня статью «Тайм-менеджмент: эволюция». Человек рассказал, что и как получилось. Хочу рассказать немного о том, почему, на мой взгляд, так произошло.

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

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

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

Итак, я считаю, нужно уметь делать следующее:
  • Не делать ненужные вещи (принцип Парето), на каждую задачу смотреть под углом, как ее не делать, как отложить ее решение, или как передать другому;
  • Выделять нужные вещи. На практике часто нельзя поставить приоритеты 1,2,3 — поэтому нужно составить список нужных вещей, затем отфильтровать с точки зрения отказа от каждой задачи;
  • Делать до конца одну-две нужные (читай, важные) вещи в день, и делать эффективно. Значит, научиться оценивать свою эффективность и постоянно ее повышать, доводя каждую задачу до логического конца.

Читать дальше →
Total votes 116: ↑92 and ↓24+68
Comments78
1

Information

Rating
Does not participate
Registered
Activity