В этой серии публикаций я поделюсь своим опытом изучения двух тем, которые широко обсуждаются как в академической среде, так и в крупных технологических компаниях: алгоритмы и структуры данных. Хотя на первый взгляд эти темы могут показаться пугающими, особенно для таких, как я, у которых не было возможности вникать в них на протяжении всей своей карьеры из-за других профессиональных проблем, моя цель — сделать их доступными.
Я начну с самых базовых концепций и перейду к более сложным темам, записывая свою эволюцию. Я надеюсь, что эти посты также будут полезны для всех, кто находится на том же пути обучения. Чтобы копнуть глубже, я буду использовать сочетание практических задач на таких платформах, как LeetCode, а также материалы для чтения и обсуждения теории, лежащей в основе каждого алгоритма. Язык программирования, который я выбрал для этого путешествия, — JavaScript.
Почему стоит изучать алгоритмы?
Алгоритмы и структуры данных являются фундаментальными компонентами создания любого программного обеспечения. Многие из них являются результатом многолетних исследований, направленных на эффективное решение сложных задач, и могут применяться в различных областях ИТ, таких как веб-разработка, бэкэнд, искусственный интеллект и других. Понимание алгоритмов — отличный способ написать оптимизированный код. Кроме того, владение этими концепциями часто оценивается на технических собеседованиях в крупных технологических компаниях, что может быть интересно каждому, кто хочет присоединиться к одному из этих гигантов.
Что такое алгоритмы?
Алгоритмы — это наборы инструкций, которые решают задачу. Распространенная аналогия, которую я слышал в колледже, — это рецепт торта: вы выполняете ряд шагов, чтобы получить конечный результат, то есть торт.
Согласно книге Введение в алгоритмы, она объясняет, что алгоритм принимает значение или набор значений в качестве входных данных и генерирует значение или набор значений в качестве выходных данных. Более практичный пример, направленный на развитие: представьте, что у вас есть неорганизованный список чисел и вам нужно упорядочить их от меньшего к большему. В этом случае неупорядоченный список является входными данными, а алгоритм представляет собой последовательность шагов, которые переставляют числа, генерируя на выходе упорядоченный список.
Что такое структуры данных?
Структуры данных — это способы организации и хранения информации, чтобы мы могли получить к ней доступ и использовать ее, когда это удобно. Если мы подумаем о книжной полке, мы увидим, что книги можно организовать несколькими способами: по теме, автору, алфавитному порядку, цвету и другим. То, как мы их организуем, напрямую влияет на то, насколько легко мы найдем конкретную книгу.
По мере продвижения в этой серии статей я намерен прояснить эти темы и создать прочную основу знаний как для себя, так и для всех, кто следит за моими публикациями. Путь к освоению алгоритмов и структур данных может быть непростым, но при регулярной практике и любопытстве, я считаю, мы все можем преодолеть первоначальные трудности и достичь уровня квалификации, соответствующего требованиям рынка, а также стать более эффективными и способными разработчиками. оптимального решения проблем.
Я надеюсь, что этот обмен опытом будет таким же полезным для моего обучения, как и для вашего. И что, помимо продуктивности, этот процесс может быть даже увлекательным. Не стесняйтесь предлагать темы, новые инструменты, учебные материалы или даже дополнительные задачи. Мне понравится учиться вместе с вами!
Рекомендации
Кормен Т.Х., Лейзерсон К.Э., Ривест Р.Л. и Стейн К. (2009). Введение в алгоритмы (3-е изд.). MIT Press.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3