Pull to refresh
9
0
Илья @IlyaMS

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

Send message

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time 12 min
Views 203K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Total votes 201: ↑196 and ↓5 +191
Comments 342

Функциональное программирование для всех

Reading time 33 min
Views 351K

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

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Total votes 188: ↑181 and ↓7 +174
Comments 151

Почему CNTK?

Reading time 8 min
Views 15K
Привет, Хабр! Меня зовут Женя. В начале карьеры я был Data Scientist, когда это еще не было мэйнстримом. Потом переключился на чистую T-SQL разработку, которая под конец успела перерасти в бизнес-аналитику. Теперь я — технологический евангелист в Microsoft с очевидным упором на платформу данных, хотя это не мешает мне заниматься в свободное время другими классными темами, как, например, Docker контейнеры или Mixed Reality.

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


Читать дальше →
Total votes 40: ↑32 and ↓8 +24
Comments 18

Функциональное программирование в JavaScript с практическими примерами

Reading time 20 min
Views 90K

image


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


Хочу подчеркнуть: в статье сделан упор на том, ЗАЧЕМ нужна фича Х, а не на том, ЧТО такое фича Х.

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

Лучшие онлайн-курсы по Data Science

Reading time 4 min
Views 16K

image


В последние несколько лет курсы по Data Science стали, наверное, самыми популярным направлением онлайн-образования: десятки предложений можно найти на Coursera, edX, а для освоения анализа данных на базовом уровне появились даже специальные проекты, посвященные лишь этой дисциплине (например, DataCamp). В этой подборке мы собрали самые интересные курсы по Data Science на различных платформах. Для вашего удобства мы внимательно изучили отзывы – как на сайтах самих образовательных провайдеров, так и на сторонних порталах, где оцениваются преимущества и недостатки тех или иных курсов и специализаций. Поскольку количество курсов огромно, мы сделали акцент на тех, что предлагают научить слушателя целому комплексу навыков – например, в случае Coursera речь пойдет не об отдельных курсах (даже в области Data Science их число приближается к сотне, а содержание многих дублирует друг друга), а о специализациях.


Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 0

ИП и IT: вечный спор о главном

Reading time 6 min
Views 35K
У всех авторов есть цель публикаций на Хабре: моя — донести до сообщества те проблемы, которые не видны на первый взгляд, но имеют колоссальное значение для экономики, социальных отношений и, конечно же, развития технологий.

Одна из таких тем, которую пытался поднимать и не раз — это проблемы ИП в IT.

Судя по полученным (и не только на Хабре) данным, есть две — противоположные — позиции: одни утверждают: «при этой схеме я о налоговой единственное что и знаю — только то, что туда надо декларацию отправлять почтой, и раз в квартал отчислять 6%. Возможно на других схемах какие-то непреодолимые трудности, тут не знаю. При этом я с радостью эти 6% отчисляю, они позволяют мне иметь белый доход ни от кого не прячась».

Вторая говорит о том, что налог сам по себе — не проблема, а вот бюрократия (на местах особенно), отсутствие гарантий за все взносы (скажем, из недавнего — заморозка пенсий при отсутствии заморозки выплат в ПФР и другие фонды), а главное — коррупция даже «на местах» — это беда, которая для it и секторов с ним связанных, скажем, e-commerce куда более глубокая, чем видится на первый взгляд.


Читать дальше →
Total votes 40: ↑33 and ↓7 +26
Comments 160

Конфигурирование стиля кода в Visual Studio 2017

Reading time 5 min
Views 29K

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

Visual Studio 2017 обеспечивает соблюдение стиля написания кода и поддержку EditorConfig. Новая версия включает в себя больше правил для code style и позволяет разработчикам настраивать стиль кода через EditorConfig.
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 7

Интернационализация (i18n) в Angular 2

Reading time 5 min
Views 33K
Для создания мультиязычных интерфейсов Ангулар предлагает использовать механизм разметки HTML шаблонов специальным маркером i18n который после компиляции удаляется из финального кода. Для этого достаточно указать этот маркер как атрибут тега окружающего текст.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 10

FixPrice Agile или SCRUM через Ж… иру

Reading time 5 min
Views 21K
Существует множество подходов к ведению IT- проектов и каждый из них находит своих последователей, успешно используется в одних проектах, с треском проваливается в других, приводит в восхищение часть клиентов и вызывает негодование у другой части. Порассуждаем о том, можно ли смешивать подходы, методы и методологии, чтобы достигать поставленных целей.

Важно!

  • В статье присутствует определенная доля иронии.
  • Статья ни в коем случае не ущемляет чьи-либо интересы.
  • В статье не противопоставляется SCRUM водопаду и не смешивается «мягкое с теплым».
  • У каждого свое мнение на процесс разработки проектов, свой опыт или его отсутствие, свой счастливый клиент или свой провалившийся проект, выполненный по методологии, с помощью проектных методик, руководствуясь принципами или интуицией.
  • Будьте добрее!

image
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 48

Реализация ООП-наследования в классах, работающих с SQL и MS Entity Framework

Reading time 5 min
Views 18K
Эта статья посвящена созданию модели данных, которая красиво ложилась бы на SQL и содержала в себе «правильное» ООП наследование. Надо сказать, что эта задача возникала у меня в разное время на разных проектах, и решалась она там тоже по-разному. Названия подходов взяты из сложившейся на соответствующих проектах терминологии.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 17

Использование Tarantool в .NET-проекте на Windows

Reading time 21 min
Views 23K

В последнее время на Хабре появляется достаточно много статей про Tarantool — базу данных и сервер приложений, который используется в Mail.Ru Group, Avito, Yota на разных высоконагруженных проектах. И вот, когда в маленьком стартапе, который я иногда консультирую, возникла необходимость разделения прекрасного, но, к сожалению, монолитного приложения на микросервисы, я подумал: а чем мы хуже других компаний? — и решил посмотреть в сторону Tarantool. Однако, в отличие от большинства компаний, где используется Tarantool, в нашем случае разработка проекта ведётся в Visual Studio на Windows. Предполагается, что даже с переходом на микросервисную архитектуру большинство микросервисов будет написано на языке C#. А Tarantool… Стоит зайти на официальный сайт — и сразу понимаешь: Tarantool даже установить на Windows проблематично, так как на эту операционную систему он не портирован. Как я боролся с такими сложностями, для какого именно микросервиса выбрал Tarantool и как вы можете использовать Tarantool в своих .NET-проектах, я расскажу в данной статье. А пока спойлер — практически все трудности преодолимы, и мой опыт можно без сомнений назвать положительным. Например, на то, чтобы скачать и запустить Tarantool, а потом сделать к нему запрос из кода на языке C#, у меня ушло менее десяти минут. И я покажу вам, как это сделать!


image


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

Читать дальше →
Total votes 70: ↑69 and ↓1 +68
Comments 31

CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF

Reading time 21 min
Views 11K
Меня все спрашивают — «Зачем это нужно?». На что, я гордо отвечаю — «Я в 1С использую для доступа к торговому оборудованию, к Вэб-сервисам по ws-протоколам, готовым компонентам. 1С, Linux, Excel, Word, OpenXML,ADO и Net Core. Кроме того, сделаю передачу JS объектов на сторону .Net с использованием через DynamicObject.

Можно сделать определенную конфигурацию CEF для всех платформ и можно делать кросспалатформенные декстопные приложения. Как аналог Electron. .Net Core развивается и можно достаточно легко перевести приложения под WPF и UWP на Angular 2» сделав описание классов и использовать IntelliSense при кодировании на TypeScript.

Но я прекрасно понимаю, что это всего лишь высокопарные слова, и мало кому это нужно. Но мне чертовски интересно, особенно после программирования на 1С.
Читать дальше →
Total votes 21: ↑12 and ↓9 +3
Comments 255

О сравнении объектов по значению — 6: Structure Equality Implementation

Reading time 5 min
Views 6.9K

В предыдущей публикации мы рассмотрели особенности устройства и работы структур платформы .NET, являющихся "типами по значению" (Value Types) в разрезе сравнения по значению объектов — экземпляров структур.


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


Поможет ли пример для структур более точно определить с предметной (доменной) точки зрения область применимости сравнения объектов по значению в целом, и тем самым упростить образец сравнения по значению объектов — экземпляров классов, являющихся ссылочными типами (Reference Types), выведенный в одной из предыдущих публикаций?

Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 15

Как PVS-Studio ищет ошибки: методики и технологии

Reading time 21 min
Views 12K
Что внутри у PVS-StudioPVS-Studio — статический анализатор исходного кода для поиска ошибок и уязвимостей в программах на языке C, C++ и C#. В этой статье я хочу дать обзор технологий, которые мы используем в анализаторе PVS-Studio для выявления ошибок в коде программ. Помимо общей теоретической информации я буду на практических примерах показывать, как та или иная технология позволяет выявлять ошибки.

Введение


Поводом для написания статьи стало моё выступление с докладом на открытой конференции ИСП РАН 2016 (ISPRAS OPEN 2016), проходившей в первых числах декабря в Главном здании Российской академии наук. Тема доклада: «Принципы работы статического анализатора кода PVS-Studio» (презентация в формате pptx).

К сожалению, время выступления было сильно ограничено, поэтому мне пришлось подготовить весьма короткую презентацию и не рассказать в докладе многое из того, что хотелось. Поэтому я решил написать эту статью, где более подробно расскажу о том, какие подходы и алгоритмы мы используем при разработке проекта PVS-Studio.
Читать дальше →
Total votes 74: ↑66 and ↓8 +58
Comments 33

NoSQL – коротко о главном

Reading time 17 min
Views 87K


Сергей Туленцев (TextMaster)


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

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

Поговорим также про типичные примеры применения и как не надо применять NoSQL базы данных.
Читать дальше →
Total votes 94: ↑92 and ↓2 +90
Comments 39

О сравнении объектов по значению — 5: Structure Equality Problematic

Reading time 4 min
Views 10K

В предыдущей публикации мы вывели наиболее полный и корректный способ реализации сравнения по значению объектов — экземпляров классов (являющихся ссылочными типами — Reference Types) для платформы .NET.


Каким образом нужно модифицировать предложенный способ для корректной реализации сравнения по значению объектов — экземпляров структур (являющихся "типами по значению" — Value Types)?


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


Для предопределенных типов, таких как Boolean или Int32, под сравнением по значению понимается сравнение непосредственно значений экземпляров структур.


Если структура определена разработчиком — пользователем платформы (User defined struct), то сравнение по умолчанию автоматически реализуется как сравнение значений полей экземпляров структур. (Подробности см. в описании метода ValueType.Equals(Object) и операторов == и !=). Также при этом автоматически определенным образом реализуется метод ValueType.GetHashCode(), перекрывающий метод Object.GetHashCode().


И в этом случае есть несколько существенных подводных камней:

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 40

Просто Angular

Reading time 10 min
Views 129K

Введение


8-9-го декабря 2016 года была проведена первая конференция по Angular в Бельгии. Игор Минар (ведущий разработчик Angular) выступил в качестве основного докладчика с несколькими интересными объявлениями относительно того, по какому графику будет выпускаться Angular. И представьте себе, в марте 2017 года нас ждет релиз Angular 4. При этом, на данный момент уже опубликована бета-версия.


От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы выясним куда делась третья версия, и почему мы по-прежнему можем быть верны Angular. Сейчас начинающему фронтенд-разработчику, изучающему JavaScript, довольно трудно определиться: какой же фреймворк или библиотеку им взять и изучить, оставаясь в тренде? Конечно, без слова React, сейчас не обходится ни один разговор на тему фронтенда, однако, в свое время я начал с первой версии Angular, начитался много руководств по написанию фронтенда на ES6 (с классами и прочим добром) и до сих пор не жалею. Да, вы можете писать корпоративные приложения с использованием только jQuery, но по мере развития и сложности проекта вы начнете закапывать себя в спагетти-коде, смешивая логику и представление, MV*-фреймворки же этого сделать вам не дадут.

Total votes 36: ↑35 and ↓1 +34
Comments 43

Как я научился не волноваться и полюбил микросервисы, часть 1: Эффекты плохого кода

Reading time 5 min
Views 17K

Преамбула


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

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

Я постараюсь выделить объективные или почти-объективные плюсы — преимущества, которые дадут положительный эффект любому разработчику независимо от языка программирования, размера команды или диеты. Первая статья посвящена стоимости плохо написанного кода – мы сравним эффекты влияния такого кода на монолитные приложения и на микросервисы.
Читать дальше →
Total votes 22: ↑15 and ↓7 +8
Comments 85

ASP.NET Core, Angular 2, SignalR для чайников

Reading time 8 min
Views 49K
Всем привет! Хочу поделиться своим опытом использования ASP.Net Core и Angular 2 с использованием SignalR.

Будучи программистом 1С, часто приходится решать задачи, которые на 1С решить сложно или невозможно. Очень помогает знание .Net. Но вот, что касается клиентской части сайтов, то здесь много тонкостей (JavaScript, CSS, JQuery итд), которые быстро забываются, если ими не пользоваться.

Angular 2 позволяет значительно упростить создание клиентской части. Так TypeScript значительно ближе к C# (и главное позволяет использовать Руслиш), а с шаблонами несложно разобраться зная Razor и Xaml.

Главное, что вы работаете с данными, по аналогии с WPF. При этом есть куча контролов.

Хочу поделиться с такими же бедолагами как я, или кто только начинает изучение Angular 2, ASP.Net Core, так как потратил значительное время, на поиски материалов для изучения.

Для тренировки на кошках был выбран мой проект 1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp. Исходники Здесь

Пока не вышел. Net Core 1.2 и NetStandard 2, сейчас нет поддержки клиента для SignalR под .Net Core

Итак, начнем. Для работы нам потребуется:

1. ASP.NET Core + Angular 2 шаблон для Visual Studio
2. Руководство по ASP.NET Core
3. Руководство по Angular 2
4. Руководство по TypeScript
5. Компоненты от PrimeNG
6. Компоненты Bootstrap
Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Comments 34

Конкурентность: Параллелизм

Reading time 5 min
Views 50K

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


И, надеюсь, кому-нибудь это может оказаться полезно, ибо кто-нибудь может чего-нибудь не знать, или, наоборот, окажется полезно мне, если кто-нибудь покажет что-нибудь ещё/укажет на изъяны в моих знаниях.


Читать дальше →
Total votes 50: ↑42 and ↓8 +34
Comments 40

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity