Pull to refresh
12
-1
KIRILL NOVIKOV @kirill3333

User

Send message

Есть ли польза от решения алгоритмических задач на LeetCode?

Reading time8 min
Views83K

Пожалуй каждый программист, который сталкивался с вопросом: "А как устроиться на работу в FAANG?" - получал ответ, что ему нужно разобраться с алгоритмами, со структурами данных и прорешать порядка 300-400 задач на leetcode по алгоритмам.

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

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

Читать далее
Total votes 51: ↑43 and ↓8+50
Comments182

15 ошибок начинающего Хабр-автора

Reading time9 min
Views2.5K

В один прекрасный момент случается «8 чудо света»: эксперт хочет написать статью в блог на Хабре. Искра, буря, безумие — и если всё это происходит в компании, то на горизонте появляется редактор, с которым можно вместе размышлять над черновиком. Примерно так я уже 6 лет работаю рука об руку с авторами корпоративных блогов.

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

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

Ошибки, раступитесь!
Total votes 34: ↑26 and ↓8+26
Comments20

Знакомьтесь, MiSTer

Reading time14 min
Views43K

Я долго придумывал вступление к теме FPGA-реимплементации в контексте ретро, но это сложнее чем кажется. Давайте попробуем издалека. Сейчас электроника довольно неплохо стандартизирована, но ведь 40-50 лет назад ситуация была гораздо сложнее. То, что мы сейчас принимаем как должный и абсолютный незыблемый стандарт, когда-то таковым не являлось. Как, например, то, что в 1 байте 8 бит. Были машины и с 6 и с 9 битными байтами и много чего еще. Тем собственно старая техника и интригует. Сколько человекочасов было убито на её проектирование, какие гениальные и не очень решения принимались. И всё это будет утеряно? Да и просто - как это всё работало? Вопрос, который, думаю, интересовал многих ретро-энтузиастов ещё с детства.

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments13

Как пропатчить ОС 1996 года с помощью Ghidra

Reading time7 min
Views11K

Не так давно автор материала работал над сложной головоломкой: как пропатчить операционную систему сэмплового синтезатора 1996 года Kurzweil K2500. О путешествии автора в старый код музыкального инструмента рассказываем к старту курса по разработке на C++.

Читать далее
Total votes 58: ↑58 and ↓0+58
Comments8

Где и как изучать машинное обучение?

Reading time2 min
Views76K

Всем привет!


Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

Путь для развития новичка я вижу примерно так:

Untitled_presentation
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments19

Лекции по биоинформатике: анализ данных, нейросети, и их применение в биологии и медицине

Reading time10 min
Views16K
Почти год назад, летом 2017 года, на базе МФТИ состоялась традиционная летняя школа от Института биоинформатики. Основной темой школы в этом году стал интеллектуальный анализ данных. Почему? Количество получаемых данных в биологии и медицине растет с невероятной скоростью. В то же время обнаружить ранее неизвестные вещи в таком объеме информации вручную физически невозможно (да и классическими алгоритмами уже тоже сложновато), поэтому приходится использовать статистику и дополнять естественный интеллект искусственным.

Именно этим активно и занимались участники летней школы. В этом посте собрано 22 видеозаписи лекций со слайдами и описанием для всех интересующихся темой анализа данных в биоинформатике. Лекции, которые можно смотреть без дополнительной подготовки, отмечены звёздочкой «*» (таких половина).

image
Хочу всё знать
Total votes 14: ↑14 and ↓0+14
Comments4

Не просто ностальгия: самодельные игры для NES продолжают выпускаться

Reading time9 min
Views22K

Моё детство пришлось на эпоху Nintendo Entertainment System, и я всегда хотел создать собственную игру для NES. Я записывал идеи в блокнотах, чертил уровни на миллиметровке и тратил кучу времени, сочиняя MIDI-саундтреки для несуществующих игр. Все эти идеи оставались погребёнными в прошлом до 2018 года, когда я увидел документальный фильм Джо Гранато The New 8-bit Heroes о его одиссее по созданию игры своей детской мечты. Сегодня, после успешного сбора средств на его ПО NESMaker в Kickstarter, этот проект может упростить процесс создания собственных игр для NES. Однако Джо был не первым, самодельные (homebrew) игры имеют длинную историю. Сегодня мы исследуем этот уголок истории NES и расскажем о создании игр для NES на протяжении 20 лет после завершения официальной коммерческой жизни системы.
Total votes 22: ↑22 and ↓0+22
Comments13

Редизайн с большой буквы: изучаем перезапуск Smashing Magazine в 2017-м

Reading time24 min
Views7.1K
Редизайн популярного сайта — всегда большая и сложная задача, где в миллионе вопросов всё может пойти не так. А когда речь о Smashing Magazine, всё становится ещё интереснее: какие решения приняли создатели сайта, который рассказывает миллионам читателей как раз о возможных веб-решениях?

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

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


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments3

Поиск и устранение неисправностей Node.js-приложений под капотом

Reading time14 min
Views13K
С момента появления Node.js диагностика совершенствовалась в несколько этапов, от отладки приложений до глубокого анализа производительности. В этот раз речь пойдет о стратегиях использования таких инструментов, как core dump debuggers, flame graphs, ошибках в production и утечке памяти.


Мы расшифровали для Хабра доклад Николая Матвиенко из Grid Dynamics с нашей конференции HolyJS. Далее повествование идёт от лица спикера.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments1

Топ VSCode расширений, которые ускорят вашу разработку на JavaScript

Reading time5 min
Views156K
VSCode — это кроссплатформенный редактор с открытым исходным кодом, ставший любимым среди программистов, особенно среди веб-разработчиков. Он быстрый, расширяемый и имеет массу возможностей и настроек. Если вы до сих пор не работали с ним, то советую попробовать.

Для VSCode созданы тысячи расширений. Я намерен представить несколько из них, которые использую каждый день. Приступим!


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

SEO оптимизация статьи: актуальный план

Reading time12 min
Views106K

Осторожно! Лонгрид.


Речь пойдет об оптимизации страницы статьи для поисковых систем. Данный материал больше подходит для продвижения в Яндексе.


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


27.04.2018 UPD// Эта страница уже в ТОПе Яндекса "оптимизация статьи". И в топе Google.


SEO оптимизация статьи
Читать дальше →
Total votes 29: ↑21 and ↓8+13
Comments24

Как работает JS: отслеживание изменений в DOM с помощью MutationObserver

Reading time7 min
Views53K
Сегодня, в переводе десятого материала из серии, посвящённой особенностям работы механизмов JavaScript, мы расскажем о том, как отслеживать изменения в DOM с помощью API MutationObserver.

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



Всё это ведёт к усложнению задачи контроля состояния интерфейсов приложений в процессе их жизненного цикла. Эта задача становится ещё масштабнее в том случае, если речь идёт о разработке чего-то вроде фреймворка или даже обычной библиотеки, когда, например, нужно реагировать на то, что происходит со страницей и выполнять какие-то действия, зависящие от DOM.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments7

«Репетитор: математика» для подготовки к ЕГЭ и ВПР — от идеи до релиза. Рассказ об уникальном образовательном проекте

Reading time22 min
Views9K

Содержание


Вступительное слово
С чего все началось?
Зарождение идеи и задач
Как перевести в цифровой формат то, что делает профессиональный репетитор?
Основные идеи приложения
Как обеспечить индивидуальный подход к каждому пользователю?
Продумывание основных элементов проекта
Дизайн приложения и его флоу-чарт
Дизайн бэк-энда (системы создания и управления ресурсами приложения)
В какой последовательности все делать?
Создание контента
Авторский контент
Перевод авторского контента в систему создания и управления ресурсами
Разработка IT-решения
Разработка бэк-энда
Разработка фронт-энда
Разработка дизайна
Трудности перед релизом
Функционал покупки
Единство дизайна
Логотип приложения
Релиз
Дальнейшие планы развития проекта: что мы делаем сейчас?
Функционал экспертной поддержки
Чат
Кроссплатформенная покупка
Партнерская программа
Блог для учеников и их родителей, учителей и репетиторов и другой контент
Эпилог



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


Уже более года назад — в декабре 2016 г. мы начали продумывать идею приложения «Репетитор: математика», которое позволило бы любому школьнику самостоятельно, просто и эффективно готовиться к экзаменам, которые встретятся в его жизни. При этом хотелось, чтобы наше приложение также было полезно учителям, репетиторам и родителям, являясь для них своего рода "готовыми рельсами" для работы с детьми.



Самый актуальный экзамен в жизни любого школьника — своего рода кульминация всего 11-летнего обучения — это Единый государственный экзамен, известный всем под аббревиатурой ЕГЭ. Подготовка к нему сложна и терниста, особенно если учесть, что в современных реалиях нашего образования далеко не каждый школьный учитель может подготовить своих учеников к сдаче этого экзамена на максимальный балл.
Читать дальше
Total votes 24: ↑23 and ↓1+22
Comments17

Разработка изоморфного RealWorld приложения с SSR и Progressive Enhancement. Часть 2 — Hello World

Reading time17 min
Views5.9K
В предыдущей части туториала мы узнали что такое проект RealWorld, определились целями туториала, выбрали стек технологий и написали простой веб-сервер на Express в качестве основы для изоморфного фронтенда.

В этой части, мы допилим серверную часть и напишем изоморфный «Hello World» на Ractive, а также соберем все это с помощью Webpack.


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

Как работает JS: веб-воркеры и пять сценариев их использования

Reading time13 min
Views127K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

Публикуем перевод седьмой части часть серии материалов об особенностях работы различных механизмов JavaScript. Наша сегодняшняя тема — веб-воркеры. В частности, речь пойдёт о различных типах веб-воркеров, о том, как организована совместная работа тех частей, из которых они состоят, а также об их возможностях и об ограничениях, с которыми можно столкнуться в разных сценариях их использования. Здесь же будет показано 5 вариантов практического применения веб-воркеров.

image
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments21

Фронтенд-2017: о самом важном

Reading time17 min
Views32K
Много всего произошло в 2017-м, на самом деле — и подумать страшно — сколько всего случилось. Всем нравится шутить о том, как быстро всё меняется в разработке фронтенда, и в последние несколько лет это, вероятно, так и было. Рискуя быть неоригинальным, хочу сказать, что в 2017-м всё было не так, как прежде. Тенденции веб-разработки стабилизировались. В частности, популярные библиотеки стали, в большинстве своём, ещё популярнее, вместо того, чтобы сдвинуться на второй план под натиском конкурентов. В целом же веб-разработка стала гораздо более зрелой средой, чем раньше.



В этом материале мы поговорим о некоторых важных событиях, которые произошли в этом году в экосистеме клиентской веб-разработки, обращая особое внимание на общие тренды.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments11

Дайджест свежих материалов из мира фронтенда за последнюю неделю №294 (18 — 24 декабря 2017)

Reading time4 min
Views14K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments0

Дайджест свежих материалов из мира фронтенда за последнюю неделю №293 (11 — 17 декабря 2017)

Reading time4 min
Views16K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments3

Список лучших инструментов для web-анимации

Reading time5 min
Views48K
image

Список лучших инструментов для web-анимации. SVG/CSS/Canvas/DOM анимация + GUI инструменты для генерации кривых Безье и CSS анимации.

Репозиторий: github.com/sergey-pimenov/awesome-web-animation
Страница-каталог: awesome-web-animation.netlify.app

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

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

Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments17

Stryker, мутационное тестирование в JavaScript

Reading time6 min
Views9K

Недавно я познакомился с методом тестирования ПО под названием «Мутационное тестирование» и уже успел стать фанатом такого подхода к написанию тестов.


Сначала теория


Цель мутационного тестирования состоит в выявлении неэффективных и неполных тестов, то есть это по сути тестирование тестов.


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

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

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer, Mobile Application Developer
Lead
JavaScript
React
React Native
Node.js
TypeScript