Яндекс Практикум. Программирование и анализ данных
11.8K subscribers
545 photos
2 videos
1 file
534 links
Полезное для начинающих разработчиков, тестировщиков и аналитиков данных. Отвечаем на вопросы и делимся новостями Практикума. Выбрать курс и попробовать свои силы бесплатно: https://ya.cc/t/3bO2f2245AmCeQ

Номер заявления в РКН 4970781590
Download Telegram
В IT есть понятие грейдов — уровней, которые проходит специалист в своей карьере. Их три:

1️⃣ Джуниор или джун — начинающий специалист;
2️⃣ Мидл — программист с опытом;
3️⃣ Сеньор — специалист высокого уровня, который может обучать других.

Разобрались в карточках, что именно скрывается под каждым из понятий ⬆️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🫡6👌4🦄3🤓2
Напоминаем, на каких курсах начинается обучение в этом месяце ⬇️


⏺️Разработчик 1С — обучение длится 6 месяцев, начнётся 25 июля

⏺️Разработчик С++ — обучение длится 9 месяцев, начнётся 25 июля

⏺️ Java-разработчик — обучение длится 10 месяцев, начнётся 4 июля. Вы ещё успеете присоединиться!

⏺️ Python-разработчик — обучение длится 9 месяцев, начнётся 11 и 25 июля

⏺️ Инженер по тестированию — обучение длится 4 месяца, начнётся 11 и 25 июля

⏺️ Фронтенд-разработчик — обучение длится 10 месяцев, начнётся 4 и 18 июля

⏺️Фулстек-разработчик — обучение длится от 16 месяцев, начнётся 18 июля

Курсы для новичков и специалистов с опытом стали ещё лучше — в большинство из них мы добавили полноценный модуль по YandexGPT, где вы сможете научиться использовать нейросеть в своей работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🆒2😎2👍1
Работа в IT: как выбрать профессию и с чего начать

Вы хотите построить карьеру в сфере IT, но не знаете, с чего начать и какое направление выбрать? Боитесь высокой конкуренции и не уверены, что сможете найти работу? Присоединяйтесь к бесплатному вебинару «Как выбрать цифровую профессию по душе и начать карьеру в IT».

→ Встреча пройдет 16 июля в 19:00 по московскому времени

Практикующие эксперты из IT помогут справиться с сомнениями, ответят на ваши вопросы и расскажут:

⏺️почему онлайн-обучение — это сложно, но эффективно;
⏺️как заниматься, чтобы получать знания, востребованные работодателями;
⏺️каким новичкам не страшна конкуренция в IT.

Кроме того, мы обсудим, какие навыки ценят работодатели, сколько готовы платить новичкам и как правильно откликаться на вакансии, чтобы получить оффер.

→ Зарегистрируйтесь на вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴4🫡31
Помните Савву Лебедева? Ранее он делился с нами подборками бесплатных ресурсов по C++. А теперь он принес нам еще одну интересную задачу для этого языка программирования. Время размять наши серые клеточки:

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

Пример 1:
Ввод: nums = [2,2,1]
Вывод: 1

Пример 2:
Ввод: nums = [4,1,2,1,2]
Вывод: 4

Пример 3:
Ввод: nums = [1]
Вывод: 1

Ограничения:
• 1 <= nums.size() <= 3 * 10^4
• -3 * 10^4 <= nums[i] <= 3 * 10^4
• Каждый элемент в массиве повторяется дважды, кроме одного: он будет единожды.

int FindSingleNumber(vector<int>& nums) { 
...
}
👍11🥴3🤔2🤓2🔥1
Возвращаемся с оптимальным решением задачи из предыдущего поста от Саввы:

int FindSingleNumber(const vector<int>& nums) {
int result = 0;

for (int n : nums) {
result ^= n;
}

return result;
}


Такой способ позволяет решить за O(n) по времени и O(1) по памяти.
Это возможно с помощью оператора XOR — исключающее ИЛИ.
Числа состоят из байтов, а байты из битов. XOR работает с битами двух чисел и возвращает в результате третье число. Операция производится поразрядно по одному биту из каждого числа.

XOR вернёт 1, если только один бит равен 1. Получится вот так:

A B C
0 0 0
1 0 1
0 1 1
1 1 0


На примере вот такого вектора: {12, 11, 12} рассмотрим что будет происходить. Покажем только 4 первых бита:

Изначально result равен нулю, значит:
0 ^ 120000 ^ 1100 = 1100
1100 ^ 111100 ^ 1011 = 0111
0111 ^ 120111 ^ 1100 = 1011

В конце получился 1011, это 11 в двоичной системе исчисления.
Первое число просто присвоилось переменной result, а далее биты другого числа вычитались из него. После второго числа в переменной было число 0111 — число 7. Если бы не условие, что все числа будут повторяться дважды, кроме одного, то наличие числа 7 в векторе всё бы испортило и превратило число назад в 0. Второе повторение того же числа (необязательно даже последовательное) отменяет первую операцию. А так как одно число повторяется только один раз, то его никто не компенсировал, и оно осталось храниться в результате.

Битовые операции используются в разных трюках. Попробуйте решить эту задачу менее оптимальным способом по памяти, например с использованием множества или словаря.
😱8👍72
Книжная полка разработчика🔖

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

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

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

Техлид и автор курса «Python-разработчик» Бартенев Евгений собрал библиотеку книг, которые в разные моменты времени помогли ему, его студентам и коллегам. На видео он рассказывает, какие книги не теряют актуальности и будут полезны любому разработчику.

🔴Программист-прагматик. Путь от подмастерья к мастеру (The Pragmatic Programmer: Your Journey to Mastery), Эндрю Хант, Дэвид Томас
🔴Чистый код: создание, анализ и рефакторинг (Clean Code: A Handbook of Agile Software Craftsmanship), Роберт Мартин
🔴Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих (Grokking Algorithms), Адитья Бхаргава
🔴Совершенный код (Code Complete), Стив МакКоннелл
🔴Изучаем Python (Learning Python), Марк Лутц
🔴Python. К вершинам мастерства (Fluent Python), Лучано Рамальо

⚙️Смотреть видео «Книжная полка разработчика в эпоху интернета и искусственного интеллекта»

Какие книги стоят на вашей книжной полке? Делитесь в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103😁1🥴1🗿1
Зарплаты IT-специалистов в первой половине 2024

Каждые полгода Хабр Карьера проводит исследование, чтобы узнать, сколько зарабатывают в IT. Большая статья с графиками и всеми подробностями уже доступна в их блоге.

Читать отчёт Хабр Карьеры

Делимся основными выводами:

🟢 Медианная зарплата сейчас — 151 666 ₽, это на 8% больше, чем полгода назад.

🟢 Медианная зарплата в Москве — 200 000 ₽, в Санкт-Петербурге — 165 000 ₽, в регионах — 135 000 ₽.

🟢 Ощутимее всего выросли зарплаты у тестировщиков — на 20%, до 127 000 ₽.

🟢 Зарплата архитекторов ПО остается самой высокой среди разработчиков — 388 000 ₽ (+8%), меньше всех получают HTML-верстальщики — 66 000 ₽ (+10%).

🟢 Среди разработчиков больше всего за полугодие выросли зарплаты Программистов 1С — на 18%, до 180 000 ₽.

🟢 Самые высокооплачиваемые языки программирования — Objective-С, Elixir, Scala, Golang и Kotlin, а самый низкооплачиваемый — C.

🟢 Ощутимее всего выросли зарплаты у разработчиков Kotlin — на 16% до 290 000 ₽, и C (+14%) до 180 000 ₽.

🟢 Больше всего IT-специалисты зарабатывают в Авито (351 000 ₽), Райффайзенбанке (340 000 ₽) и в Холдинге Т1 (315 000 ₽).

Мы попросили Настю из Хабр Карьеры немного рассказать об исследовании, передаём ей слово 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥841
This media is not supported in your browser
VIEW IN TELEGRAM
👍16🔥65🆒4🏆3
Ответы на вопросы от эксперта.

Савва предлагает ответить на ваши вопросы по C++.

Напоминаем, что Савва не только программист с семилетним стажем, но также наставник и менеджер команды наставников на курсе «Разработчик C++».

Вы можете задать свои вопросы в комментариях под этим постом, а на следующей неделе Савва ответит на них.
🤓5👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥85👍5😁1
Новая задача! На этот раз про Python от Кирилла Быкова, программиста с 18-летним стажем, наставника на курсе «Python-разработчик».

Дана отсортированная последовательность целых чисел и число k. Необходимо найти в этой последовательности число, максимально приближённое к k и вернуть его индекс.

Размер последовательности: 1 <= N <= 10^6
Число k: 0 <= k <= N
Индекс элемента: 0 <= index < N

Примеры
[1, 3, 4, 7, 9, 12] k = 5
Ответ: 2 (число 4)


[1, 3, 4, 12, 15, 15, 18] k = 14
Ответ: 4 (первое число 15)

Решение не должно превышать по временно́й асимптотике O(log(N)), где N — длина массива.
3👍1
А вот и решение задачи от Кирилла

from bisect import bisect_left

def find(a: [int], k: int) -> int:
if not a:
return -1
i = bisect_left(a, k)
if i >= len(a):
return len(a) - 1
if not i or abs(k-a[i]) <= abs(k-a[i-1]):
return i
return i-1


Если задача показалась вам слишком легкой, Кирилл предлагает попробовать выполнить ее без модуля bisect.
👍2🤔2