Pull to refresh
7
0

Software developer

Send message

Суровая правда о разработчиках и разработке

Reading time6 min
Views18K

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

Огромных зарплат в те времена не было, компании по разработке ПО создавались романтиками в съемных комнатушках-офисах, в которых часто приходилось и ночевать. Кто-то не выдерживал и сдавался, кто-то создавал шедевры и богател, но в те времена никто не говорил, что люди получают зарплату просто так. Те времена подарили нам кучу программ, часть из которых остаются самыми популярными в своей сфере и по сей день (Например, MS Excel. Страшно думать, но до сих пор большинство инвестиционных банкиров используют для своих моделей именно MS Excel). Те времена подарили нам таких людей как Питер Нортон и Андерс Хейлсберг или Джон Кармак с Сидом Майером, если игры вам ближе.

А что дальше и не параноик ли автор?
Total votes 33: ↑23 and ↓10+19
Comments103

Дизайн и подходы создания Big Data пайплайнов

Reading time23 min
Views9K
image
(Корень всех зол в data engineering лежит в излишне сложном конвейере обработки данных)

Исторический контекст


Разработка конвейера данных достаточно серьезная задача, а с учетом областей с огромными объемами данных, эта сложность многократно увеличивается. Инструменты и концепции, связанные с большими данными, начали развиваться примерно в начале 2000-х годов, когда масштабы и скорость интернета резко начали возрастать. Компании внезапно обнаружили, что им приходится иметь дело с огромными объемами и скоростью передачи данных. Возможно, одним из пионеров в этой области был Google, инженеры которого боролись с поисковым сканером и индексатором. По сути это по, которое в то время лежало в основе поисковика Google. Поскольку количество веб-сайтов и страниц астрономически росло, Google не мог решить, как масштабировать свой сканер/индексатор, используя существующие вычислительные ресурсы, которые были распределены географически. Ни одна из коммерческих баз данных или технологий в то время не могла масштабироваться быстро и с минимальными затратами, и обе эти технологии были необходимы Google для масштабирования своего основного продукта.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера

Reading time18 min
Views35K


Привет, Хабр! Меня зовут Сергей Бевзенко, я ведущий разработчик Delivery Club в команде Discovery. Наша команда занимается навигацией пользователя по приложению Delivery Club: мы отвечаем за основную выдачу ресторанов, поиск и всё, что с этим связано.

Я расскажу про Kafka Connect: что это такое, какова общая концепция и как работать с этим фреймворком. Это будет полезно тем, кто использует Kafka, но не знаком с Kafka Connect. Если у вас огромный монолит и вы хотите перейти на событийную модель, но сталкиваетесь со сложностью написания продюсеров, то вы тоже найдёте здесь ответы на свои вопросы. В комментариях можем сравнить ваш опыт использования Kafka Connect с нашим и обсудить любые вопросы, которые с этим связаны.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments10

Как научиться программировать на Java: почему стоит и где начать

Reading time8 min
Views125K
image

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

Было бы проще, если бы среди всех языков программирования был «лидер рынка»? И тогда у всех новичков всегда будет безопасный выбор — выучите этот язык, и вы наверняка будете востребованы. Но это конечно же невозможно. Языки являются «инструментами» для решения многочисленных задач. Один из языков, к которому стоит присмотреться, является Java.

Java — это хорошо структурированный, объектно-ориентированный язык, который может показаться простым для начинающих. Вы можете справиться с ним довольно быстро, так как много различных процессов запускаются автоматически. В первое время не потребуется углубляться глубоко в «как там все работает». Java является кроссплатформенным языком. Это позволяет программисту создать приложение, которое можно развернуть на любом устройстве. Это предпочтительный язык для IoT(интернет вещей), отличный инструмент для создания enterprise приложений, мобильных приложений и т.д.

Что важно для новичка, у Java есть одно из крупнейших сообществ и очень качественная документация. Если у вас есть проблема, с высокой вероятностью ответ есть уже в документации. Еще два преимущества Java — это обширные библиотеки и фреймворки, которые покрывают большинство проблем, с которыми вам придется столкнуться как младшему разработчику.
Читать дальше →
Total votes 8: ↑4 and ↓4+3
Comments16

Как и по каким причинам провалились мои первые 5 стартапов

Reading time6 min
Views8.3K
До того, как Loki.ai стал финансово устойчивой компанией, я потерпел неудачу с первыми 5 стартапами за 5 лет.

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

Я запустил свой первый «бизнес» когда я еще учился в школе в 2009 году. Я занимался продажей футболок и доход нашей команды составлял 25 000 долларов. Но несмотря на доход, нам так и не удавалось получить какую-либо прибыль. В свои 17 лет я почему то стал считать, что разобрался в том, как делается бизнес. Но позже я понял, что продавать на площадках, где вы не пользуетесь популярностью и известностью, далеко не тоже самое что продавать футболки друзьям в школе. Это был мой самый первый опыт.

С момента окончания школы я запустил 6 стартапов и с треском провалился в 5 из них.

image

Все 5 неудач имели разные причины. Но уроки, которые я извлек из них, помогли на шестой попытке сделать то, что долго не удавалось (3 года и более).
Читать дальше →
Total votes 6: ↑4 and ↓2+4
Comments11

Кластер Elasticsearch на 200 ТБ+

Reading time14 min
Views23K


С Elasticsearch сталкиваются многие. Но что происходит, когда хочешь с его помощью хранить логи «в особо крупном объёме»? Да ещё и безболезненно переживать отказ любого из нескольких дата-центров? Какой стоит делать архитектуру, и на какие подводные камни наткнёшься?


Мы в Одноклассниках решили при помощи elasticsearch решить вопрос лог-менеджмента, а теперь делимся с Хабром опытом: и про архитектуру, и про подводные камни.

Читать дальше →
Total votes 33: ↑31 and ↓2+41
Comments20

Как запустить стартап с минимальными потерями: 23 правила

Reading time13 min
Views7K
За 5 лет бутстрэппинга я попробовал много всего и обнаружил, что существует много способов создать себе сложности, которые отнимают время и энергию. В результате ты вынужден разбираться с ними вместо того, чтобы заниматься делом и наращивать ценность своего продукта.

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

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

Правило #1: Организуйте стабильный доход


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

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

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


Читать дальше →
Total votes 8: ↑7 and ↓1+9
Comments3

Мой опыт проведения 1000 интервью. Конспект доклада Егора Бугаенко

Reading time15 min
Views8.5K

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

Читать дальше →
Total votes 29: ↑10 and ↓19-7
Comments25

Обеспечение высокой доступности приложений с Kafka Streams

Reading time10 min
Views14K
Kafka Streams — это Java-библиотека для анализа и обработки данных, хранящихся в Apache Kafka. Как и в любой другой платформе потоковой обработки, она способна выполнять обработку данных с сохранением и/или без сохранения состояния в режиме реального времени. В этом посте я попытаюсь описать, почему достижение высокой доступности (99,99%) проблематично в Kafka Streams и что мы можем сделать для того, чтобы ее достичь.

Что нам нужно знать


Прежде чем описывать проблему и возможные решения, давайте рассмотрим основные концепции Kafka Streams. Если вы работали с API-интерфейсами Kafka для консьюмеров/продьюсеров, то большинство из этих парадигм вам уже знакомы. В следующих разделах я попытаюсь в нескольких словах описать хранение данных в партициях, перебалансировку групп консьюмеров и как основные концепции Kafka клиентов вписываются в библиотеку Kafka Streams.

Kafka: Партицирование данных


В мире Kafka приложения-продьюсеры отправляют данные в виде пар ключ-значение в определенный топик. Сам топик разделен на один или несколько партиций в Kafka брокерах. Kafka использует ключ сообщения, чтобы указать, в какую партицию следует записывать данные. Следовательно, сообщения с одинаковым ключом всегда оказываются в одной партиции.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

Как доводить до конца долгосрочные цели

Reading time5 min
Views14K
Данная статья является продолжением к самым важным советам по повышению продуктивности: «Личная продуктивность (только проверенные на себе подходы)».

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

Для примера я взял ОЧЕНЬ упрощенный кейс (личный давний опыт), который мне помог найти мою первую работу в большой международной компании на позиции Android-разработчик.

Данная статья подготовлена на базе нащего скринкста комманды Java Hexlet, выпуск №3. Посему, если вы слушали скринкаст, то можете смело проигнорировать статью.
Читать дальше →
Total votes 16: ↑10 and ↓6+4
Comments5

Стартапер «С нуля», мой опыт, истории успехов

Reading time19 min
Views84K
Свой текущий стартап я запустил в марте 2012. До этого я занимался предпринимательской деятельностью в вебе с 1999 года. Я начинал в г. Кривой Рог, Украина. Допотопную телефонную линию, на которой периодически висели беседы неизвестных мне людей, мог пробить только модем USRobotics. С его помощью можно было попасть в магический мир — лучик надежды посреди тотальной бесперспективности.

С тех пор мне удалось поэкспериментировать с запусками десятков трех проектов, которые, обрастая опытом, плавно перетекали друг в друга, превратившись в 6 прибыльных проектов.
Читать дальше →
Total votes 166: ↑123 and ↓43+80
Comments144

Почему мы должны перестать заниматься пет-проектами

Reading time6 min
Views42K
image

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

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

Все это так, но удовольствие видеть, как твоим продуктом пользуется кто-нибудь еще, видеть, что он решает чьи-то проблемы — несравнимо выше. Так что я решил во что бы это ни стало довести хотя бы один проект до релиза.
Нужно было всего лишь разобраться, что мне мешало сделать это раньше.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments10

Ричард Хэмминг: Глава 17. Цифровые фильтры — IV

Reading time14 min
Views5.3K
«Цель этого курса — подготовить вас к вашему техническому будущему.»

imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 393k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.

Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

Мы уже перевели 24 (из 30) главы. И ведем работу над изданием «в бумаге».

Глава 17. Цифровые фильтры — IV


(За перевод спасибо Пахомову Андрею, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом, версткой и изданием книги — пишите в личку или на почту magisterludi2016@yandex.ru

А сейчас мы обратимся к рекурсивным фильтрам, которые имеют следующий вид:

image

Из этой формулы видно, что мы располагаем значениями только с одной стороны от текущего n-ого значения. Мы используем предыдущие значения сигнала и его значение в текущий момент времени un а так же предыдущие значения полученные на выходе фильтра.
Этот классический подход является результатом того, что часто мы обрабатывает сигнал в режиме реального времени и у нас нет доступа к будущим значениям сигнала.

Вспомнив основы, мы увидим, что если бы у нас были «будущие значения», вероятно, двухстороннее прогнозирование было бы намного более точное. Тогда бы для вычисления yn мы столкнулись бы с системой, которая должна была бы моментально решать линейные уравнения — ничего страшного в век дешевых вычислений.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments1

11 кругов ада для тех, кому не хватает опыта на новой работе

Reading time12 min
Views122K
image
Eugene Smith, «Country Doctor» («Сельский доктор», 1948 г.)

Случалось ли вам попадать в ситуацию, когда вы открывали новую веху в своей профессиональной жизни (например, устроились на работу мечты), но поняли, что вам катастрофически не хватает опыта, а позиция требует вполне конкретных успешных результатов? Мне – да.

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

И это всё правда. И я даже скажу категорично: обучение новым видам деятельности и вообще сам процесс постижения нового – это очевидное благо.

Но теперь представьте себе такую ситуацию: вы проходите онлайн-курсы, читаете какие-то учебники, ходите на воркшопы, и в какой-то момент оказываетесь на заветной позиции (сменили работу, получили повышение или открыли своё дело); вы смогли убедить других людей в своей годности, оказались среди профессионалов, и теперь вам нужно действовать… и тут руки начинают дрожать, глаза и мысли – метаться: вы не имеете ни малейшего представления, что именно делать – из-за нехватки опыта. Иными словами, вы – выскочка, и вы это поняли.
Читать дальше →
Total votes 93: ↑82 and ↓11+71
Comments58

Блокчейн 101: книги, исследования и статьи по теме

Reading time6 min
Views40K
Мы подготовили дайджест из 30 полезных материалов о блокчейне: это книги, статьи, видео для тех, кто «что-то слышал, но хочет лучше разобраться в теме». Этот список мы формировали на основе собственных материалов и исследований, а также рекомендаций резидентов платформ Hacker News, Quora, Reddit.

Как устроены смарт-контракты, как объяснить концепцию биткойна ребенку и (самое интересное) как сделать свой собственный блокчейн — обо всем под катом.

Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments4

Использование kubernetes для разработки блокчейн проектов на Hyperledger Fabric

Reading time7 min
Views7.1K

Добрый день, дорогие хабровчане.
Я являюсь разработчиком научно-технического центра IBM в Москве. Мы ведем разработку продуктов IBM совместно с другими лабораториями по всему миру. Если позволяет время и есть желание, то у нас разрешено использовать часть рабочего времени на проекты, которые не являются основной занятостью. Такой подход расширяет кругозор и поддерживает творческий настрой. Для меня такой областью является разработка блокчейн-решений на Hyperledger Fabric. Тем более, что такие проекты стали востребованы на нашем рынке.
Надеюсь, что статья будет не о блокчейне, а о том, что мы используем для разработки таких решений, но тем не менее стоит все-таки начать с предметной области.
Статья не претендует на полноту и нацелена на создание рабочего облачного окружения для разработки блокчейн-проектов на Hyperledger Composer. В результате наших практических изысканий мы должны получить следующую инфраструктуру:


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

Статический анализ в Go: как мы экономим время при проверке кода

Reading time7 min
Views24K


Привет, Хабр. Меня зовут Сергей Рудаченко, я техлид в компании Roistat. Последние два года наша команда переводит различные части проекта в микросервисы на Go. Они разрабатываются несколькими командами, поэтому нам понадобилось задать жесткую планку качества кода. Для этого мы используем несколько инструментов, в этой статье речь пойдет об одном из них — о статическом анализе.


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


В статьях по этой теме часто встречается термин «линтер». Для нас это удобное название простых инструментов для статического анализа. Задача линтера — поиск простых ошибок и некорректного оформления.

Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments12

Методика разработки высоконадёжных серверов на Go

Reading time26 min
Views18K
Время от времени перед веб-программистами встают задачи, способные нагнать страху даже на профессионалов. Речь идёт о разработке серверных приложений, которые не имеют права на ошибку, о проектах, в которых стоимость сбоя чрезвычайно высока. Автор материала, перевод которого мы сегодня публикуем, расскажет о том, как подходить к решению таких задач.


Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments11

Курс о Deep Learning на пальцах

Reading time2 min
Views174K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


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

Как AI вставляет Николаса Кейджа в фильмы и делает порно со знаменитостями

Reading time6 min
Views88K


Теперь нельзя верить политикам, говорящим что-то в YouTube-роликах, и «сливам» секс-видео звёзд. Реддит-юзеры научили AI заменять лица на видео, и в последние недели это так взорвалось, что ни одна знаменитость не осталась нетронутой. Больше всего досталось Нику Кейджу, который, с его экспрессивностью, давно стал золотой жилой для создателей мемов. Благодаря искусственному интеллекту и возможностями машинного обучения это вышло на новый уровень, так что сейчас к технологии присматриваются и в Голливуде. Эффекты иногда получаются лучше, чем в последних блокбастерах. Вот только у некоторых пользователей другие интересы…

Total votes 53: ↑48 and ↓5+43
Comments106
1

Information

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