Pull to refresh
0
@Bazread⁠-⁠only

User

Send message

Как проходят алгоритмические секции на собеседованиях в Яндекс

Reading time9 min
Views407K

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


Так что мы подготовили для вас следующие материалы:


  • Специальный контест, содержащий задачи, похожие на те, что мы даём на интервью.
  • Этот пост. В нём рассказывается, почему нужно проводить такие секции, а также разбираются все задачи контеста.
  • Два видео, в которых разбираются задачи из контеста: в первом — задача попроще, во втором — две задачи посложнее. Из этих видео вы узнаете о типичных ошибках, допускаемых и при прохождении алгоритмических секций, и при написании продакшен-кода.
Читать дальше →
Total votes 86: ↑52 and ↓34+18
Comments105

Организация отступов в верстке (margin/padding)

Reading time4 min
Views177K


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

Ниже перечисленные принципы выполняются в среде позиционирования элементов на странице. В элементах декора тоже выполняются. Но не так категорично.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments44

Персона. Командир Нортон

Reading time7 min
Views29K
image

Питер Нортон известен большинству пользователей персональных компьютеров. Правда, не все об этом задумываются, не все представляют, насколько велики его заслуги. За плечами Питера годы работы над такими продуктами, как Norton Commander, Norton Utilities, Norton Disk Doctor. Он также является автором таких популярных книг, как «Внутри IBM PC», «Внутри OS/2» и «Справочник программиста».

Нортон создал новое направление разработки ПО. Он был новатором и с точки зрения рынка, и в техническом плане. Однако Питер Нортон работал не ради денег и славы. По крайней мере, сам он в это верит.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments60

[в закладки] Bash для начинающих: 21 полезная команда

Reading time9 min
Views140K
Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной команде. Также мы поговорим о том, как пользоваться флагами команд и псевдонимами Bash, которые позволяют ускорить ввод длинных инструкций.



Также читайте в нашем блоге цикл публикаций про bash-скрипты
Читать дальше →
Total votes 58: ↑34 and ↓24+10
Comments25

JavaScript: загадочное дело выражения null >= 0

Reading time6 min
Views52K


Однажды я собирал материалы чтобы устроить ликбез по JavaScript для пары коллег. Тогда я и наткнулся на довольно интересный пример, в котором рассматривалось сравнение значения null с нулём. Собственно говоря, вот этот пример:

null > 0; // false
null == 0; // false
null >= 0; // true

На первый взгляд — полная бессмыслица. Как некое значение может быть не больше, чем 0, не равно нулю, но при этом быть больше или равно нулю?
Total votes 52: ↑49 and ↓3+46
Comments52

Я всё ещё здесь: возвращение в Cеть спустя год без Интернета

Reading time9 min
Views267K


Я был неправ.

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

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

Теперь я собираюсь рассказать вам, как всё это решило мои проблемы. Я собирался быть просвещённым, более «реальным». Более совершенным.

На самом деле сейчас 8 вечера, и я только проснулся. Я спал весь день, проснулся с восемью сообщениями на голосовой почте от друзей и коллег. Я пошёл в своё обычное кафе за обедом, игрой Knicks, двумя моими газетами и копией The New Yorker. А сейчас я смотрю «Историю игрушек», попутно уставившись и моргая на мигающий курсор в этом текстовом документе, надеясь, что он напишет себя сам, сгенерирует те прозрения моей жизни, которых я не смог достичь.

Я не хотел встречать такого Пола в конце моего годового путешествия.
Читать дальше →
Total votes 215: ↑168 and ↓47+121
Comments147

Веб-серверы на солнечных батареях

Reading time1 min
Views1K
С сегодняшнего дня компания Greenest Host начинает предоставление хостинговых услуг на серверах, полностью питающихся энергией Солнца.

Хостинговая компания из Сан-Диего (Калифорния, США) предлагает свои услуги за $14,95 в месяц. Все сервера и другое оборудование Greenest Host питаются от солнечных батарей. В некоторых случаях будут использоваться пропановые генераторы, однако они не должны способствовать парниковому эффекту.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments2

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

Reading time5 min
Views96K
Как-то знакомый преподаватель английского языка рассказал, что вчера был на вечеринке и услышал анекдот:

— Ложась спать программист ставит рядом на столик 2 стакана.
— Один с водой — если захочет пить, второй пустой — если не захочет.

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

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

Disclaimer. Сейчас программистов много. Хороших и разных. Я буду писать про хороших. И то, не про всех, а про большую часть из тех, с кем имел честь вместе разрабатывать ПО.
Читать дальше →
Total votes 355: ↑220 and ↓135+85
Comments159

Парсим на Python: Pyparsing для новичков

Reading time6 min
Views185K
Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

import matplotlib.pyplot  as plt

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

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

{ 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }

Данное выражение представляет собой словарь Python, который имеет два ключа: 'import' и 'as'. Значением для ключа 'import' является список, в котором по порядку перечислены названия импортируемых модулей.

Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

r'^[ \t]*import +\D+\.\D+ +as \D+'

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

В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

Читать дальше →
Total votes 57: ↑46 and ↓11+35
Comments12

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Reading time3 min
Views82K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



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

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Total votes 124: ↑114 and ↓10+104
Comments27

О книге Боба Мартина «Чистый код»

Reading time5 min
Views210K

(Картинка без намека, просто уж очень хотелось котика в статью добавить! Ведь это основной залог популярности в интернетах, правда? :))

У меня очень неоднозначное отношение к книгам Роберта Мартина… В них довольно много здравых и интересных мыслей, но иногда они выражаются столь категорично, что неокрепшим программерским мозгом они могут восприниматься неправильно. Если же мозг читателя достаточно окреп, чтобы воспринимать советы прагматично, то есть все шансы, что ничего нового из этих советов он (мозг или программист) не вынесет.
Читать дальше →
Total votes 78: ↑59 and ↓19+40
Comments59

Особенности jQuery методов fadeIn, fadeOut и fadeTo

Reading time2 min
Views52K
Итак, рассмотрим что же не так в методах fadeIn и fadeOut, которые, как утверждает документация, являются аналогами метода fadeTo, но имеют некоторые свои особенности. На первый взгляд ничего, всё написано в документации. Однако, это не всегда верно, и не все особенности можно найти в документации.
Читать дальше →
Total votes 42: ↑32 and ↓10+22
Comments14

Динамические деревья

Reading time8 min
Views36K
Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

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

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

Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments5

Какой должна быть магистерская диссертация по computer science?

Reading time3 min
Views44K
Санкт-Петербургский академический университет продолжает набор в магистратуру. Спешите подать заявку, первые собеседования уже прошли.

В этом посте мы порассуждаем о том, какой должна быть магистерская диссертация computer science.

Магистерские диссертации: плохие и хорошие


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

На нашей кафедре защищают два типа магистерских диссертаций: теоретические (теоретическая информатика и биоинформатика) и прикладные (разработка ПО).
Читать дальше →
Total votes 50: ↑30 and ↓20+10
Comments51

Интернет-радио с множеством ведущих из разных городов и звонками в прямом эфире

Reading time11 min
Views16K
С 1 по 4 мая 2014 года в Воронеже уже в пятнадцатый раз пройдёт ежегодный всероссийский фестиваль японской анимации. Фестиваль стал для нас традицией, посетители съезжаются со многих городов России.

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

Однако, это осложнено тем, что сам оргкомитет фестиваля географически весьма распределён. Мы находимся в разных городах, в числе которых Кобе (Япония), Москва, Ростов-на-Дону, Вальдкирх (Германия), Краснодар, и конечно же, Воронеж, и это весьма долго и дорого — собраться физически в одном месте. (Достаточно того, что на сам фестиваль все съезжаются.) А нужно ещё организовать входящие звонки в эфир, и желательно тоже бесплатно. При этом хотелось бы максимально простых и безопасных инструкций, например, использования уже имеющегося ПО на компьютерах аудитории.

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

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

Примечание по поводу скриншотов: они были сделаны не в самый последний момент. Они отражают суть, но не точные настройки, которые использовались. Если что-то отличается, верить следует тексту, а не картинкам.
Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments24

Bootstrap Dropdown Menus Enhancement

Reading time1 min
Views43K
Мне очень нравятся выпадающие меню из Bootstrap. Благодаря простой и понятной семантике их легко и приятно использовать при верстке.

Но для полного счастья мне не хватало некоторой функциональности.

Итак, встречайте расширения Dropdowns
Total votes 51: ↑47 and ↓4+43
Comments14

Двухпанельный менеджер закладок для Firefox на ExtJS

Reading time5 min
Views16K
Приветствую хабражителей. Я бы хотел рассказать о своем расширении и попросить небольшой помощи.
Называется расширение Total bookmarks, т.к. его интерфейс почти полностью позаимствован у Total commander'а.

image
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments37

TDD for Responsive Design. Или как автоматизировать тестирование отображения сайта для разных устройств с помощью Galen Framework

Reading time11 min
Views19K
Трудно одним заголовком сформулировать, чем же является Galen Framework. Все началось с того, что у меня возникла потребность тестировать сайты в различных браузерах и проверять: не поехала ли разметка, например, в том же Internet Explore или Chrome. Затем возникла мода на Responsive Web-Design, и пришлось вручную менять ширину браузера и проверять, как отображаются сайты. И, хотя все это время были WebDriver и Selenium Grid под рукой, так и не получалось нормально тестировать верстку сайта в Java коде. Одна из идей была: делать скриншоты в разных браузерах в Selenium Grid и затем собирать их все в один большой отчет, по которому один из тестировщиков обязан пробежаться глазами и, в случае обнаружения несоответствий, рапортовать о дефекте. К сожалению, вся эта затея долго не продержалась. Тестировщикам стало лень листать огромный отчет и сравнивать скриншоты, и они все равно пропускали мелкие дефекты. А затем пошли требования внедрения во всех сайтах Responsive Design. И вот тут появился Galen Framework. Решение оказалось простым: проверять размер и расположение элементов относительно друг друга. Для этого понадобился специальный язык Galen Specs, который было бы легко читать и понимать.



Если коротко, Galen Framework — это специальный язык и инструмент для тестирования отображения сайта в браузере. Он позволяет тестировать адаптивный дизайн, а также проводить кросс-браузерное тестирование сайта.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments8

Django и особенности использования транзакций в MySQL

Reading time6 min
Views12K
Наверное всем известно, что Django является одним из самых популярных фреймворков для web-разработки на python-е. И даже если в основе web-проекта лежит сторонний код, то зачастую при разработке используют отдельные части этого фреймворка — например ORM. В данной статье я хотел бы рассказать об особенностях использования Django ORM при работе с базой данных MySQL, а именно про транзакции и подводные камни, связанные с ними. Так, например, если в какой-то момент вы осознаёте, что вместо ожидаемых данных, возвращается совершенно другой результат, то возможно, данная статья поможет разобраться что к чему.
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments21
1
23 ...

Information

Rating
Does not participate
Registered
Activity