Pull to refresh
0
0
Артем Семенов @Distemper

User

Send message

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

Level of difficulty Easy
Reading time 5 min
Views 28K

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

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

Читать далее
Total votes 80: ↑33 and ↓47 -14
Comments 62

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

Reading time 4 min
Views 12K

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

Читать далее
Total votes 40: ↑38 and ↓2 +36
Comments 10

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

Reading time 6 min
Views 55K
Здравствуйте, дорогие айтишники!

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


Читать дальше →
Total votes 157: ↑118 and ↓39 +79
Comments 407

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

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

Читать дальше →
Total votes 35: ↑29 and ↓6 +23
Comments 22

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

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

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

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

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

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

Reading time 7 min
Views 163K


Предисловие


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


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


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

Читать дальше →
Total votes 70: ↑67 and ↓3 +64
Comments 76

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

Reading time 5 min
Views 245K


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

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

Reading time 4 min
Views 30K

image


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

Total votes 43: ↑40 and ↓3 +37
Comments 8

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

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

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

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

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


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

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

Reading time 14 min
Views 555K


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

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

Reading time 11 min
Views 103K

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



Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Comments 5

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

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


Total votes 38: ↑37 and ↓1 +36
Comments 27

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

Reading time 7 min
Views 1.5M
image

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

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

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

Reading time 23 min
Views 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, добро пожаловать под кат.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 46

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

Reading time 6 min
Views 18K

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

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

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

Reading time 6 min
Views 141K


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity