Как стать автором
Обновить
0
0
Артем Семенов @Distemper

Пользователь

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

Как я в 22 года получил «лычку» Senior

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

Привет, читатель! Хотел поделиться историей о том, как я пришёл в IT в 18 лет и к 22 годам получил статус Senior в EPAM. Senior — тот самый Священный Грааль, о котором мечтают все новички.

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

Читать далее
Всего голосов 75: ↑28 и ↓47-14
Комментарии62

Самый запутанный краш в моей жизни

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

Я работаю над приложением Альфа Мобайл для физических лиц. Однажды с утра пораньше мне прилетел тикет, в котором была описана проблема с лагающим UI. Этот баг воспроизводился только на 21 api. Собственно как делали наши предки я решил для начала попытаться воспроизвести этот баг. Запускаю я билд и вижу вот такое:

Читать далее
Всего голосов 35: ↑33 и ↓2+36
Комментарии10

Экономический ликбез для айтишников

Время на прочтение6 мин
Количество просмотров55K
Здравствуйте, дорогие айтишники!

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


Читать дальше →
Всего голосов 157: ↑118 и ↓39+79
Комментарии407

Простой Telegram-бот на Python за 30 минут

Время на прочтение4 мин
Количество просмотров1.2M
На Хабре, да и не только, про ботов рассказано уже так много, что даже слишком. Но заинтересовавшись пару недель назад данной темой, найти нормальный материал у меня так и не вышло: все статьи были либо для совсем чайников и ограничивались отправкой сообщения в ответ на сообщение пользователя, либо были неактуальны. Это и подтолкнуло меня на написание статьи, которая бы объяснила такому же новичку, как я, как написать и запустить более-менее осмысленного бота (с возможностью расширения функциональности).

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

СДВГ. Вечные прокрастинаторы, лгуны и неряхи

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

Синдром дефицита внимания и гиперактивности

Нас 5-10% (в зависимости от региона). У большинства из нас после выравнивания гормонального фона в постпубертатный период патология становится менее выраженной. В этом случае нас отличает неряшливость, прокрастинация, шумность, безалаберность и непунктуальность. Мы отвратительные работники, если выбранное нами дело требует системного подхода и длительной концентрации. Вообще-то, честно говоря, почти любое дело требует системного подхода и концентрации. Даже маркетинг и продажи в 21 веке это десятки методик и сотни талмудов. Ну, а программирование, инженерное дело — это вообще не для нас. Продажи и коммуникации — это те сферы, где мы обычно оседаем. Мы быстры и болтливы, к тому же часто очень эмпатичны, поэтому кажемся сами себе менеджерами-суперменами в сравнению с остальными увальнями. Но штука в том, что в этой сфере занято много некомпетентных идиотов. В России нас спасает повальный непрофессионализм и дичайшая некомпетентность серой массы работников этой сферы.

Ах да, еще мы убеждены, что мы не серая масса.
Читать дальше →
Всего голосов 80: ↑70 и ↓10+60
Комментарии261

Пишем бота-кликера на Python для Lineage 2

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


Предисловие


Как можно развлечься в новогодние праздники? Поиграть в компьютерные игры? Нет! Лучше написать бота, который это будет делать за тебя, а самому пойти лепить снеговика и пить глинтвейн.


Когда-то в школьные годы был увлечен одной из популярных MMORPG — Lineage 2. В игре можно объединяться в кланы, группы, заводить друзей и сражаться с соперниками, но в общем игра наполнена однообразными действиями: выполнением квестов и фармом (сбор ресурсов, получение опыта).


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

Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии76

Долой таблички! Как выучить английские времена

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


Времена в английском языке традиционно считаются одной из самых сложных тем в обучении. Они прочно ассоциируются с зазубриванием длинных малопонятных таблиц и запоминанием неочевидных правил. На самом деле, все не так. Рассказываем, как быстро овладеть временами и их аспектами, чтобы начать говорить по-английски, не спотыкаясь.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии97

Лекции Технотрека. Проектирование СУБД (осень 2016)

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

image


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

Всего голосов 43: ↑40 и ↓3+37
Комментарии8

Руководство начинающего программиста графических шейдеров

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

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

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
Читать дальше →
Всего голосов 94: ↑90 и ↓4+86
Комментарии40

Нейронные сети для начинающих. Часть 2

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


Добро пожаловать во вторую часть руководства по нейронным сетям. Сразу хочу принести извинения всем кто ждал вторую часть намного раньше. По определенным причинам мне пришлось отложить ее написание. На самом деле я не ожидал, что у первой статьи будет такой спрос и что так много людей заинтересует данная тема. Взяв во внимание ваши комментарии, я постараюсь предоставить вам как можно больше информации и в то же время сохранить максимально понятный способ ее изложения. В данной статье, я буду рассказывать о способах обучения/тренировки нейросетей (в частности метод обратного распространения) и если вы, по каким-либо причинам, еще не прочитали первую часть, настоятельно рекомендую начать с нее. В процессе написания этой статьи, я хотел также рассказать о других видах нейросетей и методах тренировки, однако, начав писать про них, я понял что это пойдет вразрез с моим методом изложения. Я понимаю, что вам не терпится получить как можно больше информации, однако эти темы очень обширны и требуют детального анализа, а моей основной задачей является не написать очередную статью с поверхностным объяснением, а донести до вас каждый аспект затронутой темы и сделать статью максимально легкой в освоении. Спешу расстроить любителей “покодить”, так как я все еще не буду прибегать к использованию языка программирования и буду объяснять все “на пальцах”. Достаточно вступления, давайте теперь продолжим изучение нейросетей.
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии37

Глубокое обучение для новичков: распознаем рукописные цифры

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

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



Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии5

Биология поведения человека: Лекция #1. Введение [Роберт Сапольски, 2010. Стенфорд]

Время на прочтение1 мин
Количество просмотров33K
Уже давно мы получили одобрение от профессора Стенфордского университета Роберта Сапольски на перевод и озвучку его авторского курса по биологии «Биология поведения человека»:


Всего голосов 38: ↑37 и ↓1+36
Комментарии27

Нейронные сети для начинающих. Часть 1

Время на прочтение7 мин
Количество просмотров1.5M
image

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
Читать дальше →
Всего голосов 70: ↑60 и ↓10+50
Комментарии64

Реализация бизнес-логики в MySQL

Время на прочтение23 мин
Количество просмотров24K
Привет Хабр! Хочу рассказать в статье мой опыт реализации бизнес логики (БЛ) в MySQL.

Есть разные мнения насчёт вопроса стоит ли хранить БЛ в базе. Я много лет работаю с Oracle и философия Oracle подразумевает, что БЛ в БД это Best Practices. Приведу пару цитат Тома Кайта:

Tom Kyte. Effective Oracle by Design
If the database does something, odds are that it does it better, faster and cheaper, that you could do it yourself
Том Кайт. Oracle для профессионалов.
Прежде чем начать, хотелось бы объяснить вам мой подход к разработке. Я предпочитаю решать большинство проблем на уровне СУБД. Если что-то можно сделать в СУБД, я так и сделаю. [...] Мой подход состоит в том, чтобы делать в СУБД все, что возможно. [...]
При разработке приложений баз данных я использую очень простую мантру:

  • если можно, сделай это с помощью одного оператора SQL;
  • если это нельзя сделать с помощью одного оператора SQL, сделай это в PL/SQL;
  • если это нельзя сделать в PL/SQL, попытайся использовать хранимую процедуру на языке Java;
  • если это нельзя сделать в Java, сделай это в виде внешней процедуры на языке C;
  • если это нельзя реализовать в виде внешней процедуры на языке C, надо серьезно подумать, зачем это вообще делать...

В то же время в среде web-разработчиков приходится слышать мнения, что БЛ в БД это чуть ли не антипаттерн. Но я не буду останавливаться на вопросе стоит ли реализовывать БЛ в БД. Пусть каждый решает сам. Тем, кто хочет посмотреть, что у меня получилось в свете не столь обширного (по сравнению с Oracle) инструментария MySQL, добро пожаловать под кат.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии46

За что вам платят деньги на работе?

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

В своей речи в 1935-ом году Иосиф Сталин выдвинул лозунг, ставший впоследствии крылатой фразой: «Кадры решают все». Историческая оценка автора фразы неоднозначна, но озвученный им принцип взят на вооружение. Спустя шестьдесят шесть лет семнадцать человек, среди которых были Бек, Кокбёрн и Фаулер, подписали Agile-манифест разработки программного обеспечения, первой ценностью которого значилось: «Люди и взаимодействие важнее процессов и инструментов».

Сейчас много написано о том, насколько важны люди для любого бизнеса, что нужно отбирать лучших и как это делать. Эти книги написаны специалистами по HR для других специалистов по HR или руководителей, подбирающих себе сотрудников. Но что это означает на практике для «простых людей» — специалистов, ищущих работу, желающих строить карьеру и развиваться профессионально?
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии13

На пути к правильным SQL транзакциям (Часть 1)

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


Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии6

Решения разработки баз данных

Время на прочтение5 мин
Количество просмотров19K
Добрый день! В процессе развития проекта приходится сталкиваться с проблемой производительности баз данных, т.к. объём данных растёт, и волей неволей выплывают проблемные участки.

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

Пост больше рассчитан на более опытных разработчиков, которые уже возможно ищут решения, поэтому буду краток.
Читать дальше →
Всего голосов 30: ↑16 и ↓14+2
Комментарии37

Лямбда-выражения в Java 8

Время на прочтение19 мин
Количество просмотров462K
В новой версии Java 8 наконец-то появились долгожданные лямбда-выражения. Возможно, это самая важная новая возможность последней версии; они позволяют писать быстрее и делают код более ясным, а также открывают дверь в мир функционального программирования. В этой статье я расскажу, как это работает.

Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.

Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии24

Как прокачивать мозг

Время на прочтение8 мин
Количество просмотров174K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

Не правда ли, картинка объемна?

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.

Но обо всем по порядку.

Понимание роли мозга


Нет невежества страшнее, чем невежество по отношению к самому себе.

Мозг управляет почти всем в нашем организме — от дыхания, работы органов чувств до сложных мыслительных процессов и воображения. Существует множество методик и советов по развитию, однако, как я убедился, мало какие делают упор на роль мозга в процессе.
Читать дальше →
Всего голосов 340: ↑281 и ↓59+222
Комментарии229

Как должны выглядеть Android приложения?

Время на прочтение7 мин
Количество просмотров31K
Платформа Android не имеет жестких рекомендаций, как должны выглядеть и работать приложения. Google с самого начала дал ясно понять, что у них нет планов начать диктовать, что приемлемо, а что нет. Существует набор UI рекомендаций, но они в основном концентрируются на мелочах вроде значков, виджетов и меню.
Читать дальше →
Всего голосов 54: ↑48 и ↓6+42
Комментарии24
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность