«От нуля до кода»
3 поста
3 поста
Продолжая серию постов об обучении на backend-разработчика, расскажу про следующий тематический блок: основы алгоритмов. Выяснил, почему они важны для программиста. Ведь от правильного выбора алгоритма зависит скорость работы программы даже при большом объёме данных!
Разобрал несколько популярных алгоритмов:
- Линейный поиск (перебираем элементы массивы один за другим);
- Бинарный поиск (сравниваем целевой элемент с серединой отсортированного массива);
- Сортировка пузырьком (элементы как бы "всплывают" вверх по мере сортировки массива).
Выяснил, что такое «сложность алгоритма». Оценивали её по двум параметрам: времени выполнения и потребляемой памяти. Это помогло лучше понять, какие алгоритмы работают быстрее и эффективнее.
Также познакомился с понятием «структуры данных», которое описывает способы хранения информации. Узнал, насколько важно учитывать типы данных при выборе алгоритмов.
Изучил популярные методы решения задач:
- «Наивный» подход: просто делаем так, чтобы работало;
- Метод двух указателей: позволяет сразу отбрасывать неподходящие варианты;
- Метод скользящего окна: работаем с частью массива, постепенно перемещаясь по нему.
Заключительное задание блока — задача службы доставки. Нужно было написать программу для марсохода, который перевозит роботов-исследователей. У каждого робота свой вес, а платформа имеет ограниченную грузоподъемность. Требовалось найти минимальное число платформ для транспортировки всех роботов.
Задача оказалась интересной и сложной, но я справился! Блок завершён успешно. :)
Предыдущие посты серии здесь:
Я знаю, что прошлый пост вызвал критику, и мне действительно жаль, что многие восприняли его как рекламу курсов. Но я хочу подчеркнуть - моей целью не является продвижение каких-то конкретных курсов. Напротив, в будущем я планирую поделиться и негативными аспектами этих курсов. Это объективный взгляд, основанный на моём опыте.
Итак, продолжим...
Курс состоял из нескольких тематических блоков, каждый из которых включал теоретические занятия, практические задания в онлайн-тренажере и проекты. Первым блоком был Python, который мы изучали 5 недель.
За эти недели я освоил базовые концепции программирования: переменные, типы данных, функции, основы отладки, требования к коду и даже начал знакомиться с объектно-ориентированным программированием. Все знания закреплялись через практику в онлайн-тренажере и проекты.
Проекты:
1. Проект «Холодильник»: программа управляет списком продуктов, отслеживает их количество и сроки хранения. Можно добавлять новые товары и просматривать содержимое холодильника.
2. Игра «Змейка»: необходимо разработать игровую логику, создать нужные классы и методы. Графическая оболочка уже была предоставлена, наша задача заключалась в реализации самой механики игры.
После завершения каждого проекта они отправлялись на ревью. Проверяющий оценивал работу, давал комментарии и возвращал на доработку, пока все требования не были выполнены.
К моему удивлению на этом наше путешествие по изучению Python подошло к концу. Но впереди ещё много интересного!
Всем привет! Меня зовут Anasych, и я хочу поделиться своим опытом погружения в мир IT. В 30 лет я задумался о смене профессии и решил попробовать себя в программировании. Поскольку никаких специальных навыков у меня тогда ещё не было, друзья-айтишники посоветовали мне заняться backend-разработкой. Для тех, кто не в курсе: backend — это внутренняя часть сайта или приложения, отвечающая за обработку данных и взаимодействие с базой данных.
Я выбрал язык программирования Python и начал с бесплатного курса на Яндекс Практикуме (спасибо друзьям за рекомендацию!). Курс понравился, и я понял, что дело пошло. Тогда я решился на следующий шаг — записался на платный курс «Python-разработчик». Обучение длится 14 месяцев, и каждый месяц обходится примерно в 16 тысяч рублей. Этот курс привлёк меня большим количеством учебных проектов и возможностью спокойно осваивать материал.
После оплаты курса меня распределили в когорту (это такая учебная группа) под номером 53. Когорта получила своего куратора, который решает организационные вопросы, и наставника, помогающего с учебными проблемами. С этого момента началась моя интенсивная учёба!
Поскольку я работаю на основной работе полный день, посвящаю программированию минимум 20 часов в неделю: по два часа вечером после работы и по пять часов в выходные. Так продолжается уже почти полгода. Если уделять меньше времени, есть риск не успеть сдать проекты вовремя — ведь на курсе действуют строгие дедлайны. А за несвоевременную сдачу грозит перевод в другую когорту, которая начала обучение позже.
К счастью, курс предусматривает каникулы, хотя они, как и всё хорошее, проходят очень быстро.
На этом знакомство заканчиваю. В следующем посте расскажу подробнее о самом учебном процессе и о том, чему уже успел научиться.