Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Дневник студента

Логические асаны для новичка

Время чтения статьи ~1 минута
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Логические асаны для новичка главное изображение

Тяжело в процессе освоения материала колоть сложные задачи. Потому что сложными задачами всегда оказываются простые!

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

Например, эффективность этой сортировки выражена в коде тем, что там есть вложенный цикл. И длительность обоих циклов равна длине сортируемого массива. То есть когда мы вынуждены для каждого элемента массива пройти по массиву столько раз сколько в нём есть элементов — это же и есть 0(n2).

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

Потому что описание работы алгоритма — суперпростая вещь. Тебе всё ясно, и ты уже готов идти дальше. Но действительно ли готов?

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

Аватар пользователя Вячеслав Несмеянов
Вячеслав Несмеянов 16 декабря 2020
6
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря