Pull to refresh
1
0
Динар @Donquih0te

Java developer

Send message

10 полезных книг: от разработчиков и для разработчиков

Reading time5 min
Views26K
Чтение книг — по-прежнему прекрасный способ открыть нечто новое или научиться чему-то, особенно если вы разработчик, чтобы оставаться востребованным в изменчивой индустрии.
В этой подборке я представлю 10 фантастических книг для разработчиков, которые написали разработчики. Здесь не будет привычных общепринятых книг, которые вы найдете в любой подборке «мастрид для программистов», в этой статье — вручную отобранные сокровища от экспертов с проверенным послужным списком.


Приятного чтения!
Total votes 47: ↑31 and ↓16+15
Comments9

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Reading time12 min
Views61K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!
Total votes 61: ↑55 and ↓6+49
Comments71

Эволюция теории струн до М-теории

Reading time7 min
Views56K
Доброго времени суток, уважаемое хабрасообщество. После моего долгого отсутствия я решил вновь взяться за перо клавиатуру. Сегодня мы попробуем проследить эволюцию теории струн до М-теории, и найти ответы на вопросы: что подтолкнуло ученых к развитию данной теории, с какими проблемами им пришлось столкнуться, и над чем сейчас ломают головы лучшие умы человечества.

Теория струн


На Хабре уже была статья по теории струн. Если вкратце в 1968 году ученые обратили внимание, что математическая функция, которая называется бета-функция Эйлера, идеально описывает свойства частиц, которые участвуют в так называемом сильном взаимодействии — одном из четырёх фундаментальных взаимодействий во Вселенной.

При дальнейших проверках этот факт получил подтверждение, интересно было и то, что ранее данная функция в основном применялась при описании колебаний натянутых струн.
Читать дальше →
Total votes 130: ↑128 and ↓2+126
Comments119

Как выучить иностранный язык

Reading time10 min
Views114K

Я расскажу о том, как изучать иностранный язык и буду это делать на примере личного опыта изучения английского языка. Английский я начал учить в 36 лет, а уже сейчас у меня свободный английский язык (как письменный, так и устный), подтверждённый официальными сертификатами. Чтобы не быть голословным: у меня есть сертификат IELTS 7.5 баллов (это С1 level) и сертификат переводчика NAATI. Короче, я знаю о чем говорю.


Оглавление:


  1. Отступление про умных людей и прочих полиглотов
  2. Первый шаг
  3. Какой преподаватель нужен (уровень преподавателя)
  4. Где искать преподавателя
  5. Развитие навыков: слушание
  6. Развитие навыков: чтение
  7. Развитие навыков: письмо
  8. Развитие навыков: разговор: произношение
  9. Развитие навыков: разговор: языковой барьер
  10. Словарный запас
  11. Самое главное


Итак, вопрос: “Как выучить английский язык?”.

Читать дальше →
Total votes 97: ↑92 and ↓5+87
Comments158

Bash-скрипты: начало

Reading time11 min
Views1.7M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Total votes 69: ↑61 and ↓8+53
Comments123

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

Reading time6 min
Views392K
У каждого кандидата в конце собеседованию рекрутер обычно спрашивает, есть ли вопросы. Часто люди теряются и не находят, что спросить. И лишь по прошествии некоторого времени (часто, когда человек уже работает в компании) сами собой всплывают вопросы, о которых нужно было поинтересоваться заранее, а не брать кота в мешке и удивляться «Как я сюда попал? Куда я смотрел? Почему я об этом не подумал?». Это так называемый «эффект лестницы». Я подготовил шпаргалку, что ты, %habrauser%, не растерялся.

Общее


1. Рабочий график и можно ли его двигать?
Я люблю поспать. Но на моей прошлой работе «рабочее утро» начиналось в 7:30. Мало того, что я довольно часто не мог прийти к этому времени, я еще пол дня занимался тем, что пытался привести себя в рабочую форму. Где то до 10:00. С 10:30 до 11:30 я усердно работал. Потом был обед. А потом мне хотелось спать, а не работать, т.к. я не высыпался еще с утра. Надо ли говорить, что вместо 8 часов, на которые меня нанял работодатель, я работал в «потоке» только часа 3-4. Так что для себя нужно решить вопрос – когда я наиболее трудоспособен? И обговорить рабочий график с руководством. И еще один нюанс. Попробуйте закрепить обговоренный график в трудовом договоре или контракте (далее ТД), если работодатель идет на персональный рабочий график для Вас. Никаких устных договоренностей. Иначе Вам начнут крутить руки уже в процессе работы (как это было со мной).
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments30

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

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



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

Web Security Testing Starter Kit

Reading time12 min
Views22K
Всем привет!

Меня зовут Андрей. Уже 10 лет я занимаюсь поиском уязвимостей в различных веб-сервисах. и готов поделиться своими знаниями с вами. В мае прошлого года я выступал с докладом про это на конференции Heisenbug, а теперь готов поделиться своими знаниями еще и здесь, на просторах Хабра. Итак, начнем.

Однажды я нашел уязвимость на серверах небезызвестной компании Facebook. Ребята забыли обновить ImageMagick (библиотеку по обработке изображений) и поплатились за это:) Этим примером я хотел показать, что все мы люди, и все можем допускать ошибки, неважно, в каких компаниях и на каких должностях мы работаем. Проблема только в том, что эти ошибки могут приводить к разного рода рискам.
Чем сложнее у вас приложение/сайт/инструмент, тем больше вероятность того, что что-то может пойти не так.
Проверять на уязвимости нужно. Глупо не делать этого совсем.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments8

Docker контейнер с данными на Postgres для интеграционного тестирования и лёгким расширением

Reading time7 min
Views89K

Про использование Docker и Docker-compose последнее время написано очень много, например рекомендую недавнюю статью на Хабре, если вы до сих пор не прониклись. Это действительно очень удобно, а в связке в ansible особенно. И я его использую везде. От разработки, до автоматического интеграционного тестирования на CI. Про использование в тестировании, тоже писали. Это здорово и удобно. Однако, для локальной разработки, для траблешутинга данных "как в продакшене" или тестирование производительности, на "объёмах близких в продакшену", хочется иметь под рукой образ, содержащий базу, "как в продакшене"!


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


./gradlew dockerRun

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


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


Разумеется мы поговорим о написании Dockerfile для такого образа с данными, и некоторых подводных камнях этого процесса.

Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments2

Лекции Технотрека. Администрирование Linux

Reading time4 min
Views134K


Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.

Total votes 61: ↑60 and ↓1+59
Comments9

Как написать отличную ленту новостей ВКонтакте за 20 часов

Reading time9 min
Views14K
Всем привет! Недавно прошёл конкурс от ВКонтакте Mobile Challenge, и моя работа заняла призовое место. По заданию второго этапа необходимо было разработать ленту новостей для мобильных устройств, а главными критериям оценки были плавность скроллинга и загрузки постов. Ещё когда участвовал решил, что вне зависимости от конечного результата, попробую написать статью о подходе к реализации ленты и о своих эмоциях и переживаниях во время конкурса. Что я и сделал. Под катом советы и рекомендации по разработке новостной ленты в режиме сторителлинга.


Total votes 23: ↑21 and ↓2+19
Comments25

Все, что вы хотели знать об обработке запросов, но стеснялись спросить

Reading time12 min
Views18K

Что такое сетевой сервис? Это программа, которая принимает входящие запросы по сети и обрабатывает их, возможно, возвращая ответы.


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


Выбор способа обработки запросов имеет далеко идущие последствия. Как сделать чат-сервис, выдерживающий 100.000 одновременных соединений? Какой подход выбрать для извлечения данных из потока слабоструктурированных файлов? Неправильный выбор приведет к пустой трате сил и времени.


В статье рассмотрены такие подходы как пул процессов/потоков, событийно-ориентированная обработка, half sync/half async паттерн и многие другие. Приводятся многочисленные примеры, рассматриваются плюсы и минусы подходов, их особенности и области применения.

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments5

Разбираем лямбда-выражения в Java

Reading time14 min
Views36K

image


От переводчика: LambdaMetafactory, пожалуй, один из самых недооценённых механизмов Java 8. Мы открыли его для себя совсем недавно, но уже по достоинству оценили его возможности. В версии 7.0 фреймворка CUBA улучшена производительность за счет отказа от рефлективных вызовов в пользу генерации лямбда выражений. Одно из применений этого механизма в нашем фреймворке — привязка обработчиков событий приложения по аннотациям, часто встречающаяся задача, аналог EventListener из Spring. Мы считаем, что знание принципов работы LambdaFactory может быть полезно во многих Java приложениях, и спешим поделиться с вами этим переводом.


В этой статье мы покажем несколько малоизвестных хитростей при работе с лямбда-выражениями в Java 8 и ограничения этих выражений. Целевая аудитория статьи — senior Java разработчики, исследователи и разработчики инструментария. Будет использоваться только публичный Java API без com.sun.* и других внутренних классов, поэтому код переносим между разными реализациями JVM.

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

Лучшие способы запоминания английских слов

Reading time6 min
Views45K
Hello, everyone! Все еще сражаетесь с армией незнакомых слов? В сегодняшней статье мы поделимся боеприпасами, а именно: техники запоминания, о которых вы не знали; как не упустить важное; как сделать процесс обучения увлекательным и как придумать контекст для слов.

Вы уже слова и на карточках писали, и на мебель клеили, и в телефоне напоминания ставили, а они все никак?
Total votes 17: ↑16 and ↓1+15
Comments9

Как облегчить изучение английского: 5 полезных сервисов

Reading time2 min
Views22K


Привет, Хабр! В последние пару лет я увлекся изучением английского языка и периодически пробую различные новые сервисы. В сегодняшнем топике я поделюсь список из пяти новых приложений и сайтов, которые помогают улучшить навыки устного общения, расширить словарный запас, освоить грамматику и повысить качество письменного английского.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments14

Слова-паразиты в английском языке

Reading time7 min
Views31K
Словами-паразитами в английском пользуются все. Ну или почти все — английская королева не в счет. Как только британцу или американцу задаешь вопрос, на который нужно подумать, сразу начинаются эти «emm...», «you know...», «like...».

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

Иногда их называют «crutches» — «костыли», что тоже логично. В русском языке тоже иногда без костылей не обойдется.
Total votes 19: ↑16 and ↓3+13
Comments23

Моя история прохождения интервью в IB IT (Java разработчик, investment bank) в Лондоне с примерами типичных заданий

Reading time13 min
Views21K

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


Один из аспектов, который актуален на протяжении всей карьеры, это поиск работы и прохождение интервью. Я сам проводил очень мало интервью (4-5), но посетил большое их количество (>100). У меня было 3-4 периода по поиску работы за последние ~7 лет, когда я ходил на интервью месяц-два, по 1-2-3 в день иногда.


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


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

Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments86

О-нотация в проектировании программного обеспечения

Reading time7 min
Views11K
Разбираясь с SOLID, я часто натыкался на то, что неследование этим принципам может приводить к проблемам. Проблемы известны, но плохо формализованы. Эта статья написана с целью формализовать типичные ситуации, возникающие в процессе написания кода возможные решений и вытекающие из этого последствия. Мы поговорим, чем нам грозит плохой код и как проблемы растут вместе с ростом программы.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments5

Загрузка ядра Linux. Часть 1

Reading time12 min
Views61K
От загрузчика к ядру

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

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

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments40

Как работает Android, часть 1

Reading time8 min
Views216K


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

Читать дальше →
Total votes 92: ↑91 and ↓1+90
Comments51
1

Information

Rating
Does not participate
Location
Татарстан, Россия
Date of birth
Registered
Activity