Это продолжение моего предыдущего вопроса, где я спросил, нужно ли изучать алгоритмы и структуры данных. Я чувствую, что да, это так.
Сейчас я работаю в среде, где у меня никогда не будет возможности научиться этому, экспериментируя или практически, или на любом задании. Какой правильный подход, например, правильные книги, правильные проблемы, правильные ресурсы, которые я могу использовать, чтобы дать шесть месяцев или год или два для изучения алгоритмов и структур данных? А также сформировать мой разум таким образом, чтобы он мог связать проблемы со структурами данных и алгоритмами.
self-improvement
algorithms
data-structures
сушил бхарвани
источник
источник
Ответы:
Читать.
Нет, правда, читай.
Прочитайте все об алгоритме и дизайне, которые вы можете найти. Там есть феноменальные книги. Книги по алгоритму Седжвика хороши. Руководство по разработке алгоритмов от Skiena также хорошо. Вместе эти книги следуют за мной на каждой книжной полке на каждой работе, на которую я иду, наряду с Мифическим Человеком-Месяцем.
Затем спроси.
Поговорите с людьми, которых вы уважаете. Спросите их, какие точки принятия решений они имели и почему они приняли решения, которые они сделали. Хорошие всегда будут в состоянии сказать вам: «Я решил сделать X, потому что это лучше, чем A, B в этих отношениях. Я мог бы пойти с C, но я чувствовал, что это был лучший выбор из-за этого».
Далее делай.
Сборка вещей. Создавайте вещи, которые вы никогда не будете использовать. Создавайте вещи, которые вам никогда не понадобятся. Иди напиши программу, которая решает головоломку судоку. Теперь иди, сделай это снова. И снова. Постройте его 5 совершенно разными способами. Создайте программу, которая генерирует головоломки Судоку и подайте ее в решатели. Найти, какой решатель является самым быстрым. А потом...
Узнайте почему.
«Что» почти никогда не важно. Я имею в виду, да, очень важно завершить проект под рукой, но в конце концов, если вы знаете «что», не зная «почему», то вы, возможно, так и не сделали бы этого в первую очередь. Вы получили пулю в своем резюме. Иди принеси печенье и поздравь себя. «Почему» гораздо важнее, чем «что».
И для протокола судоку был примером. Я провел много свободного времени, выполняя это упражнение с кучей логических головоломок в Kongregate, и многому научился на этом пути.
http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/ http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/
источник
Алгоритмы
Я брал уроки магии в группе, когда мне было двенадцать лет. Мага звали Джо Карота. Он сделал трюк один раз, и я выпалил: "Как ты это сделал?" В тот день он сказал что-то, что застряло со мной с тех пор.
Ответ Джо: «Майкл, если ты действительно хочешь знать, как делается этот трюк, ты должен понять, как ты это сделаешь сам».
Ну, конечно, это не то, что я хотел услышать, но все же я сосредоточился на решении проблем. Это было решение проблем с моей точки зрения. Если моя первая попытка решить проблему состояла из семнадцати шагов и была действительно хитрой, хорошей новостью было то, что я решил проблему.
Затем, взглянув на разработанное мной решение и выяснив способы его усовершенствования, я узнаю, как упростить конечный результат. Позже в своей жизни в области компьютерного программирования я узнал, что этот процесс называется «пошаговое уточнение». Я думаю, что сегодня они называют это рефакторингом.
Это работало тогда, это все еще работает сейчас.
источник
здесь следующая ссылка перенаправляет вас на один из самых успешных классов DS и Algorithms от MIT, за которым я когда-либо следовал.
http://academicearth.org/courses/introduction-to-algorithms
Надеюсь, вам понравится этот сериал. Удачи !!!
источник
Посмотрите, сможете ли вы пройти онлайн-курс или пройти обучение. В противном случае это появилось в быстром поиске Google. Прошлой весной я просто взял урок по этому предмету (впервые я перешел с EE на программное обеспечение), и его было не сложно найти, если вы хорошо понимаете указатели .
источник
Если вы не можете пройти курс по этому вопросу, я бы порекомендовал Руководство по разработке алгоритмов. Там это бесплатный PDF здесь , но это стоит того , чтобы настоящую книгу , если вы планируете программировать профессионально.
источник
Попробуйте записаться на курс бакалавриата по структурам данных и алгоритмам, всегда полезно изучать эти концепции вместе с другими.
источник
Начните работать над решением классических задач, например, в сфере онлайн , сайт может показаться не таким уж и причудливым, но мальчик, это классические проблемы программирования, которые требуют многих важных структур данных и алгоритмов, используемых сегодня.
Решения могут быть представлены на разных языках программирования: от C / C ++ до JavaScript, Lisp, Smalltalk, ассемблер + еще около 40. Таким образом, вы можете полностью сосредоточиться на решении проблемы с любым языком программирования, который вам удобнее.
источник
CLRS
Это, безусловно, мой любимый ресурс. Я использовал его в своем курсе по компьютерным алгоритмам для студентов и закончил тем, что купил 4 года спустя книгу для самостоятельного чтения, чтобы подготовиться к моим курсам MS Comp Sci. Это нелегко читать любым способом, но если вы работаете, чтобы понять некоторые из представленных математических / корректурных данных, а затем внедрите псевдокод на своем любимом языке (языках), это будет стоить довольно дорогого ценника. Руководство по разработке алгоритмов, о котором упоминали другие, также является отличным ресурсом для выявления проблем с обучением, но я обнаружил, что CLRS лучше для чистых деталей.
источник
Вы всегда можете попробовать что-то вроде этого: http://codekata.pragprog.com/
Я всегда учился лучше, думая об этом, а не читая. Тем не менее, вы должны иметь документацию / материалы для чтения, чтобы искать ответы.
источник
Купи эту книгу , займись этим или укради это! Отдых последует :)
Введение в алгоритмы Ривеста и Кормена. Первоначально будет очень трудно следовать, как только вы ознакомитесь с объяснением Mergesort во введении. Все разворачивается к вам красиво.
Кроме того, вам станет лучше, если вы решите проблемы, описанные в книге. Я никогда не хотел расставаться с книгой даже после окончания аспирантуры. Это так хорошо.
источник