Pull to refresh
12
0

Software Developer

Send message

Подводные камни при работе с enum в C#

Reading time9 min
Views19K

0844_EnumBoxing_ru/image1.png


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

Читать дальше →

Подводные камни HttpClient в .NET

Reading time9 min
Views96K
Продолжая серию статей о «подводных камнях» не могу обойти стороной System.Net.HttpClient, который очень часто используется на практике, но при этом имеет несколько серьезных проблем, которые могут быть сразу не видны.

Достаточно частая проблема в программировании — то, что разработчики сфокусированы только на функциональных возможностях того или иного компонента, при этом совершенно не учитывают очень важную нефункциональную составляющую, которая может влиять на производительность, масштабируемость, легкость восстановления в случае сбоев, безопасность и т.д. Например, тот же HttpClient — вроде бы и элементарный компонент, но есть несколько вопросов: сколько он создает параллельных соединений к серверу, как долго они живут, как он себя поведет, если DNS имя, к которому обращался ранее, будет переключено на другой IP адрес? Попробуем ответить на эти вопросы в статье.
Читать дальше →

Лурк, великий и ужасный: восход и закат энциклопедии рунета

Reading time6 min
Views141K

Шёл далёкий уже 2006 год: время мемной революции, удешевления доступа к сети и стремительного роста населения рунета. Из «сделанной из разного и палок пристройки к настоящей англоязычной сети» рунет на глазах превращался в самобытное информационное пространство. Медвед и Ктулху были повсюду, расцветали ЖЖ, дайри, бесконечные форумы на всевозможные темы. Имиджборды бурлили уходящими в небытие тредами, полными контркультурного андерграунда и всевозможной дичи, превращаясь в реакторы самого неожиданного и яркого контента.
Что же с ним стало?

Почему ты не будешь доволен результатами твоего performance review

Reading time16 min
Views35K

Syn ack, Хабр!

Если ты зашел сюда, то скорее всего уже знаешь, что такое performance review и скорее всего ты недоволен его результатами:

According to Gallup, only 14% of employees strongly agree their performance reviews inspire them to improve

Как видишь ты не один и в этой статье мы поговорим, почему твое ревью не оправдывает твоих ожиданий.

Читать далее

Как бесплатно поступить в Стэнфорд, Гарвард, MIT: опыт Дильназ Камаловой

Reading time11 min
Views51K
Всем привет!

Ontol — это github для бесплатных текстов и видео, которые оказывают значимое влияние на жизнь и судьбу человека.

Годы, проведенные в университете — самые определяющие в жизни человека, и от того, какой университет вы выбрали, колоссально зависит ваша дальнейшая судьба. Но иногда, увы, этот выбор сделан рандомно и халатно, а иногда и «под давлением» друзей, семьи, военкомата, халявы (дипломов с олимпиад), районной администрации, государства, и человек поступает в университет номер 461, а в универститеты номер 1, 2, 3, 4, 5 он даже не посмел подать заявку (если вообще знал о их существовании).

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

image

Я учусь в выпускном классе школы НИШ Алматы. Занимаюсь робототехникой и развитием индивидуальных проектов. В апреле этого года узнала, что поступила в 6 вузов США. А именно в Принстонский, Стэндфордский, Гарвардский, университет Райса, Лихайский, университет Дьюк.

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

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

Обход графа: поиск в глубину и поиск в ширину простыми словами на примере JavaScript

Reading time5 min
Views243K
Доброго времени суток.

Представляю вашему вниманию перевод статьи «Algorithms on Graphs: Let’s talk Depth-First Search (DFS) and Breadth-First Search (BFS)» автора Try Khov.

Что такое обход графа?


Простыми словами, обход графа — это переход от одной его вершины к другой в поисках свойств связей этих вершин. Связи (линии, соединяющие вершины) называются направлениями, путями, гранями или ребрами графа. Вершины графа также именуются узлами.

Двумя основными алгоритмами обхода графа являются поиск в глубину (Depth-First Search, DFS) и поиск в ширину (Breadth-First Search, BFS).

Несмотря на то, что оба алгоритма используются для обхода графа, они имеют некоторые отличия. Начнем с DFS.
Читать дальше →

Выгорание, поставленное на поток. Как в Китае работает система «Третий глаз», и почему программисты из-за нее умирают

Reading time7 min
Views178K


В крупнейших китайских IT-компаниях действует система наблюдения под названием Ди Сан Цзи Янь, «Третий глаз». Она получает данные из камер в офисах и из ноутбуков каждого человека, чтобы определить, кто стоит повышения, а кого нужно уволить. «Третий глаз» позволяет отслеживать экраны программистов в режиме реального времени, записывать их чаты, их активность в браузере и каждое редактирование документа. Часть компаний устанавливают систему даже в туалетах.


Программа автоматически отмечает «подозрительное поведение», такое как посещение сайтов поиска работы или платформ с потоковым видео. Отчеты генерируются еженедельно, суммируя время, потраченное на «непрофильные» веб-сайты и приложения. Даже если вы посещали их в свое обеденное время или сидя в уборной.


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

Читать дальше →

Изучаем Docker, часть 3: файлы Dockerfile

Reading time12 min
Views931K
В переводе третьей части серии материалов, посвящённых Docker, мы продолжим вдохновляться выпечкой, а именно — бубликами. Нашей сегодняшней основной темой будет работа с файлами Dockerfile. Мы разберём инструкции, которые используются в этих файлах.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными


Бублики — это инструкции в файле Dockerfile
Читать дальше →

Что я не знал про образование

Reading time14 min
Views107K


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

Она не учит детей методам решения задачи, она учит их сначала найти саму задачу, потом прикинуть спектр вариантов подхода, а уже потом — как конкретно получить ответ.

Она относится к детям как ко взрослым во многих аспектах.

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

Она разрешает готовить шпаргалки и списывать. Разрешает детям «выпихивать» на ответ того, кто выучил тему. Использует понятную детям игрофикацию для мотивации.

В общем, всё настолько пропитано здравым смыслом, что просто не может и не должно происходить в школе. В чёртовой школе!
Читать дальше →

Как работает менторство

Reading time10 min
Views12K
image

До какого-то момента самый быстрый способ профессионального роста – это выделяться компетенцией. То есть быть крутым специалистом, который в одно лицо может всё. Это очень комфортная и приятная позиция, потому что вы отвечаете только за себя, не несёте огромных расходов каждый месяц и не делаете ничего такого, что стало бы серьёзным риском.

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

Следующий потолок ещё интереснее: выясняется, что бывают задачи, к которым вообще непонятно, как подступаться. Оказывается, что самый быстрый способ — это использовать чей-то опыт, причём приложенный максимально практически к конкретной ситуации. Нужен опытный чувак, который всё знает, всё умеет и вдруг будет вам помогать советом.

Проблема в том, что даже если такой есть, вы ему нафиг не нужны.

Тем не менее, оказывается, менторство так или иначе распространено в бизнесе. Сразу скажу, что этот термин сильно попортили всякие деятели от инфобизнеса. Но я бы хотел поговорить про саму модель, поскольку выглядит она довольно интересно. Не факт, что вы её захотите использовать, но её как минимум стоит понимать.
Читать дальше →

Считаешь себя синьором? Да кого ты обманываешь

Reading time7 min
Views95K


Мой друган в очередной раз объяснял кому-то в уличной курилке, как устроен C#. Я глотнул кофе, закурил и облокотился на ограду, чтобы послушать. Он рассказывал, какие интересные тонкости нашел в сборщике мусора. Говорит, в дотнете он устроен довольно просто снаружи, но очень хитро в деталях реализации.

Я не встревал — просто слушал и мотал на ус. Было 11 утра, я только что закрыл тикет, который от меня ждали завтра, и мог весь оставшийся день слоняться по офису. Витян всегда был очень прокачанным парнем. Он контрибьютил в рослин, изучал сорцы всех инструментов, которыми пользовался, и действительно глубоко шарил в дотнете. Я знал — мне до него как до луны. Но у нас все равно почему-то были одинаковые позиции и зарплаты.
Читать дальше →

Зачем уметь работать в командной строке?

Reading time13 min
Views24K

Сегодня мы поговорим о том, зачем учить операционную систему GNU/Linux, о преимуществах работы в командной строке и о том, как это все связано с философией Unix.

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

Читать далее

Производная и интеграл — проще некуда

Reading time12 min
Views99K

19 декабря 2020 г. на Хабре вышла статья «Интуитивное объяснение интеграла».

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

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

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

Я попробую изложить материал максимально коротко, просто, без подробностей и отсылок. Так, чтобы школьники, наконец, поняли, пусть и с помощью родителей.

Итак:

Переезд из Java в Kotlin: как забрать коллекции с собой

Reading time12 min
Views18K
Меня зовут Борис Николаев, и в первой статье на Хабре хочу сравнить Java и Kotlin при работе с коллекциями. Она будет полезна всем, кто планирует перебираться в Kotlin и не хочет долго осваиваться.

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

Читать дальше →

Продвинутые дженерики в TypeScript. Доклад Яндекса

Reading time14 min
Views18K
Дженерики, или параметризованные типы, позволяют писать более гибкие функции и интерфейсы. Чтобы зайти дальше, чем параметризация одним типом, нужно понять лишь несколько общих принципов составления дженериков — и TypeScript раскроется перед вами, как шкатулка с секретом. AlexandrNikolaichev объяснил, как не бояться вкладывать дженерики друг в друга и использовать автоматический вывод типов в ваших проектах.

— Всем привет, меня зовут Александр Николаичев. Я работаю в Yandex.Cloud фронтенд-разработчиком, занимаюсь внутренней инфраструктурой Яндекса. Сегодня расскажу об очень полезной вещи, без которой сложно представить современное приложение, особенно большого масштаба.
Читать дальше →

Финальные классы в PHP, Java и других языках

Reading time3 min
Views8.7K
Использовать финальные классы или не использовать финальные классы? Вот в чём вопрос. А ещё в том, когда и как это делать правильно.


Читать дальше →

«Почему Kotlin хуже, чем Java?»

Reading time6 min
Views77K

Такой провокационный вопрос задал реддитор nenemen в сабреддите Java:

«Я думаю о том, чтобы свой следующий проект сделать на Kotlin + Spring Boot, но мощь всенародной любви к Kotlin и одновременно ненависти к Java заставляют всё это походить на какой-то культ. Поэтому хотел бы услышать аргументы «против».

Мы в FunCorp в своё время сделали именно такой выбор в пользу Kotlin. И сегодня соотношение Java/Kotlin у нас составляет примерно 20 на 80, продолжая уменьшаться при каждом удобном случае. Поэтому ответы на этот вопрос меня заинтересовали, и я стал листать секцию комментариев. Там наткнулся на реплику реддитора rzwitserloot, которая мне показалась настолько взвешенной, многосторонней и рациональной, что я захотел поделиться ей с нашей командой, а заодно и читателями Хабра.

Далее перевод его аргументов.

Читать далее

Тесты должна писать разработка (?)

Reading time4 min
Views14K
Привет! Есть старый холивар на тему, кто же должен писать тесты: разработчики или тестировщики. Вроде как если в команде есть тестировщики, то логично, что тесты пишут они, правда? С другой стороны, ребята из разработки (помимо самой разработки) точно знают, как работает их код и как будет вести себя в тех или иных ситуациях. Как минимум предполагают.


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

Если тесты пишет разработка, можно решить сразу несколько проблем, например:

  • Ощутимо ускорить релизный цикл.
  • Снять нагрузку с тестирования.

В большинстве команд процесс выглядит примерно так:

  1. Разработчик создаёт новые фичи и допиливает существующие.
  2. Тестировщик всё это тестирует и пишет различные тест-кейсы.
  3. Автоматизатор, оправдывая название должности, автоматизирует всё по написанным тест-кейсам из п.2.

Вроде бы всё выглядит просто.

Но в этой парадигме есть слабые места.
Читать дальше →

Как составить резюме на английском для иностранной компании

Reading time6 min
Views41K
Привет! Меня зовут Лео Скляр, я методист направления английского языка в Яндекс.Практикуме. Сейчас занимаюсь подготовкой курса английского для работы. Он может быть полезен как программистам, так и другим специалистам из digital-сферы. Я решил обобщить актуальную и самую ценную информацию из этого курса в гайд по грамотному составлению резюме на английском.

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



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

1. Специфика англоязычного резюме


В отличие от принятого в России резюме, которое больше похоже на CV (Curriculum vitae — описание профессионального пути на две–три страницы в хронологическом порядке) — резюме для американских и европейских компаний — это одностраничный документ, составленный по чёткой структуре. Такая лаконичность может казаться удивительной, но одна страница — это общепринятый стандарт резюме за рубежом. Даже если опыт большой, в резюме стоит сохранить упоминание только трёх–пяти последних мест работы, вашу позицию и ключевые достижения. Как правило, работодателя интересует актуальный опыт. Если ему потребуется узнать о вас больше, он может запросить расширенную версию резюме.
Читать дальше →

Боль в спине — понимание с позиции современной медицины

Reading time8 min
Views184K
Плохое понимание людьми причин болей в спине подтолкнуло меня к тому, чтобы адаптировать мой недавно опубликованный обзор по болям внизу спины для более массового читателя.

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


Несмотря на акцент на болях в области поясницы в целом все написанное применимо в контексте болей и в других отделах позвоночника.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity