Как стать автором
Обновить
1
0

Разработчик

Отправить сообщение

Сказ о том, как я за год решил более 600 leetcode задач

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров74K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Всего голосов 150: ↑141 и ↓9+132
Комментарии407

Принятого не воротай: Enumerable vs List

Время на прочтение4 мин
Количество просмотров20K

Когда-то я работал в команде, где слегка недолюбливали LINQ, за то, что такой код якобы сложно отлаживать. У нас была договоренность: после каждой цепочки LINQ, разработчик создает локальную переменную, в которую записывает результат ToArray(). Независимо от того, потребуется ли массив далее по методу, или он работает только с IEnumerable. Перед return, результат также приводился к массиву, кажется, во всей кодовой базе не было методов, возвращающих или принимающих коллекцию, отличную от массива.

Бородатое легаси! - подумаете вы и будете правы. Однако, несмотря то, что прошло много лет, с тех пор, как LINQ стал использоваться повсеместно, а IDE позволяют смотреть данные в отладке, некоторые разработчики все еще плохо представляют себе критерии выбора принимаемого и возвращаемого типа, если речь заходит о коллекциях.

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии25

Тестирование Backend с помощью Charles Proxy

Время на прочтение5 мин
Количество просмотров4.3K

Charles proxy – это инструмент мониторинга HTTP и HTTPS трафика. Он выступает в роли прокси-сервера (промежуточного звена) между тестируемым приложением и сервером на бэкенде, позволяя не только видеть, но также перехватывать и редактировать запросы.

Для просмотра запросов/ответов при тестировании WEB приложений достаточно взаимодействия с Postman через API, либо просмотра в DevTools. Но для отслеживания трафика при тестировании мобильного приложения могут возникнуть сложности.
Взаимодействие происходит по локальной сети, к которой подключены ПК и мобильное устройство.

Установка

Для начала необходимо скачать Charles на ПК по ссылке https://www.charlesproxy.com/download/ . Далее установить и открыть программу.

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Все эссе Пола Грэма на русском

Время на прочтение1 мин
Количество просмотров6.1K

Журналисты издания The New York Times сообщили, что Пол Грэм является одним из самых уважаемых людей среди разработчиков, основателей и инвесторов. Он является профессиональным программистом, хакером, создателем дерзкого инкубатора Y Combinator, философом.

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

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

К началу работы я сумел найти 156 эссе, хотя переводов существовало больше, я не сумел восстановить утерянные. В 22 переводах не было примечаний и еще 56 эссе не были переведены целиком.

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

Я регулярно отслеживаю выход новых эссе на сайте Пола и перевожу их.

Ознакомьтесь с переводами и следите за новыми на сайте.

Читать далее
Всего голосов 20: ↑14 и ↓6+8
Комментарии17

Обзор топ-5 полезных утилит для Docker

Время на прочтение5 мин
Количество просмотров29K

Проект Docker, запущенный в 2013 году, стал одним из самых популярных инструментов в области контейнеризации. Спустя почти 10 лет Docker активно развивается, однако, не только сама компания Docker Inc привносит улучшения в свой продукт – обычные пользователи тоже вносят свой вклад, создавая различные инструменты, которые совершенствуют взаимодействие с системой Docker.

В статье мы рассмотрим топ-5 полезных утилит, которые упростят работу с Docker.

Читать далее
Всего голосов 23: ↑20 и ↓3+17
Комментарии11

Как освоить иностранный язык без преподавателя. Часть 1. «Мой опыт»

Время на прочтение6 мин
Количество просмотров40K

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


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


таблица-вертушка неправильных глаголов


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

Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии79

Как освоить иностранный язык без преподавателя. Часть 2. «Пошаговая стратегия»

Время на прочтение12 мин
Количество просмотров69K

Languages are not taught, they are learnt!


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


Примечание: Материалы статьи опираются на исследования Е.Д. Авериной, Д.Б. Никуличевой, Э.В. Гуннемарка и П.Нейшна, пропущенные через призму моего восприятия и опыт изучения 3 иностранных языков.

Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии65

Времена в английском языке

Время на прочтение7 мин
Количество просмотров45K

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

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

Читать далее
Всего голосов 51: ↑46 и ↓5+41
Комментарии50

.Net Microservices The Hardcore Way: туториал от инженеров Microsoft, получаем PROD опыт

Время на прочтение4 мин
Количество просмотров12K

Для тех кто хочет погрузиться в проектирование .Net микросервисов, Kubernetes, Azure и Azure DevOps процессы. 

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии7

Как научиться чему угодно с помощью техники Фейнмана

Время на прочтение9 мин
Количество просмотров197K


Ричард Фейнман был физиком, удостоенным Нобелевской премии, который внёс значительный вклад в такие области, как квантовая механика и физика частиц. Он также стал пионером квантовых вычислений и ввел понятие нанотехнологии. Он был известным лектором, преподавал в Корнелльском университете и Калифорнийском технологическом институте.

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

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

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

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

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Всего голосов 85: ↑74 и ↓11+63
Комментарии106

Тотальный JavaScript: изучаем JS с акцентом на практической составляющей

Время на прочтение3 мин
Количество просмотров11K


Доброго времени суток, друзья!

Когда речь заходит об изучении JavaScript, будь то первое знакомство с языком или углубление имеющихся знаний, найти в «интернетах» теоретические материалы не составляет особого труда. Мой топ-5:


Однако, когда дело касается практических аспектов JavaScript, информацию приходится собирать буквально по крупицам. Собственно, этим я и занимался на протяжении последних 4-5 месяцев.

Предлагаю вашему вниманию «Тотальный JavaScript».

Вот что вы найдете в этом репозитории:
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии3

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров987K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

11 библиотек (наборов компонентов) для Angular, о которых стоит знать в 2018-м

Время на прочтение4 мин
Количество просмотров34K
11 библиотек (наборов компонентов) для Angular, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для Vue, о которых стоит знать в 2018-м
11 библиотек (наборов компонентов) для React, о которых стоит знать в 2018-м

Перед вами третий материал из серии, посвящённой обзору библиотек для популярных веб-фреймворков. В прошлые разы мы говорили о React и Vue. Сегодня наша тема — Angular. В этом материале, помимо традиционных 11-ти библиотек, мы упомянем ещё несколько наборов инструментов, достойных внимания.

image
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии8

Питер Хинченс: Психология архитектуры программного обеспечения

Время на прочтение6 мин
Количество просмотров9.7K
Один из принципов Социальной Архитектуры заключается в том, что способ нашей организации важнее того, кем мы являемся.

imageДиркжан Октман (Dirkjan Ochtman) обратил мое внимание на определение архитектуры программного обеспечения в Википедии: «совокупность структур, требуемых для понимания системы, которая объединяет элементы программного обеспечения, связи между ними и их принадлежность». Для меня эта бессодержательная и цикличная болтовня служит хорошим примером того, как унизительно мало мы знаем о том, что на самом деле важно при создании масштабной архитектуры программного обеспечения.

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

Основные проблемы в архитектуре программного обеспечения кроются в человеческой психологии, а не в технологиях. Наша психология по-разному может влиять на нашу работу. Я могу привести примеры того, как группа людей словно становится глупее по мере того, как она расширяется, или когда им приходится работать, будучи разделенными огромным расстоянием. Значит ли это, что чем меньше команда, тем она эффективней? Как же тогда такое крупное глобальное сообщество как ZeroMQ умудряется успешно работать?
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

SQL Server Integration Services (SSIS) для начинающих – часть 1

Время на прочтение8 мин
Количество просмотров191K

Часть 2
Часть 3

SSIS – это инструмент, который позволяет в удобном виде реализовать интеграцию, т.е. реализовать процесс переноса данных из одного источника в другой. Этот процесс иногда называют ETL (от англ. Extract, Transform, Load – дословно «извлечение, преобразование, загрузка»).

Думаю, данный практический курс будет полезен тем, кто хочет изучить SSIS и не знает с чего начать. Здесь в режиме Step By Step мы начнем с самого начала, т.е. установки всего необходимого.

Дальше будет очень много картинок!
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии7

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

Время на прочтение7 мин
Количество просмотров77K

Программировать быстро — это легко! Так считает инженер-программист компании Google, который все публикации в своем блоге подписывает лаконичным «Макс». Макс также работает главным архитектором, комьюнити-менеджером и релиз-менеджером в Bugzilla Project. Мы в Alconost впечатлились и перевели его советы о том, можно ли как научиться программировать с космической скоростью.

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

Они, конечно, правы в том, что в условиях сжатых сроков разработчики, как правило, будут писать сложный код. Впрочем, дедлайны не должны приводить к сложности. Вместо фразы «Этот дедлайн помешал мне написать простой код» можно произнести равноценную: «Я недостаточно быстро программирую, чтобы писать просто». То есть чем быстрее вы как программист — тем меньше влияния на качество вашего кода имеют дедлайны.

Теперь давайте разберемся, как, собственно, стать быстрее? Может, это врожденное магическое умение? Надо ли быть «умнее» других, чтобы быть быстрым?

Нет, это вообще не магия и не врожденный дар. На самом деле существует всего одно простое правило, считаясь с которым, со временем вы полностью решите проблему:
Читать дальше →
Всего голосов 45: ↑34 и ↓11+23
Комментарии47

ASP.NET Core: Создание справочных страниц веб-API ASP.NET с помощью Swagger

Время на прочтение10 мин
Количество просмотров50K
При создании высоконагруженных приложений бывает сложно разобраться в различных API. Сформировать качественную документацию и справочные страницы в рамках веб-API посредством Swagger с интеграцией Swashbuckle .NET Core так же просто, как добавить пару пакетов NuGet и изменить Startup.cs.


Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии2

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.6M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Жаргон функционального программирования

Время на прочтение10 мин
Количество просмотров91K


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии113

Как работает реляционная БД

Время на прочтение51 мин
Количество просмотров534K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Всего голосов 232: ↑229 и ↓3+226
Комментарии134
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность