Я программист PHP, и до сих пор мне не нужно было изучать алгоритмы ...
Теперь я начинаю изучать Python (настоящий язык программирования), потому что мне нужно использовать matplotlib. Имеет ли смысл начинать с чтения книги по алгоритму Python, а затем изучать matplotlib и numpy или мне следует перейти к matplotlib и numpy?
С уважением,
learning
python
algorithms
Андре
источник
источник
Ответы:
Абсолютно. Не зная алгоритмов, как еще вы поймете, как программа делает то, что делает?
Важно понимать разработку алгоритмов, чтобы вы могли программировать более эффективно и писать лучшие программы. Начнем с того, что вы должны, по крайней мере, знать основы таких понятий, как поток управления (может быть, через автомат состояний, но это не всегда необходимо) и нотация Big O и как это может повлиять на производительность.
источник
Ответ и да, и нет. Вам не нужно знать подробности того, как работают разные алгоритмы, или теорию, лежащую в их основе - это работа компьютерных ученых, - но вам нужно знать основы, например, какие алгоритмы доступны для решения конкретной задачи и какой из них лучше всего подходит для данной ситуации.
В вашем случае вы можете просто начать использовать упомянутые вами библиотеки - они были созданы кем-то только для того, чтобы облегчить жизнь другим. Вам, конечно, не нужно знать алгоритмы, которые пошли на его создание, просто чтобы использовать его.
источник
Да, чтобы вы понимали, как применять один подход к другому. Вы также не хотите «изобретать велосипед», так как существует множество алгоритмов, которые уже работают. Если вы не знаете, что они существуют, вы потратите время на изобретение потенциально более слабого решения и даже не поймете, почему оно слабее.
источник
Алгоритмы программиста - это молот кузнеца. Конечно, вы можете обойтись без и использовать альтернативы, чтобы выполнить работу, но если вы хотите сделать это правильно и делать это хорошо, это важно.
Преимущество алгоритмов в том, что они не зависят от языка программирования, поэтому изучите теорию один раз, и вы сможете реализовать ее на любом языке. Вот хороший веб-сайт, с которого я начинаю учиться: www.ambesty.com Они используют Java, но он поставляется с примером кода для изучения. Они предлагают простые алгоритмы ADT и сортировки для более сложных, таких как алгоритмы сжатия данных. Очень интересно читать. Удачи
источник
В зависимости от вашего опыта PHP, если вы находитесь на этапе, когда вы можете адаптировать основные концепции программирования с одного языка на другой, сделайте это . Это был бы самый эффективный способ провести время.
Прочитайте, что вам нужно сделать, чтобы интегрировать Matplotlib , numpy и Python. А потом, если вы застряли, продолжайте погружаться глубже. Я рекомендую этот заказ, потому что
источник
Если вы разрабатываете бизнес-приложения (только), начните изучать только основы, такие как списки, очереди, сортировку, поиск по строкам и т. Д., Чтобы вы могли изучить терминологию, как влияет и измеряется производительность, и так далее. Лучшее использование вашего времени будет сосредоточено на новых технологиях, шаблонах OO, эффективном проектировании баз данных, приложениях. методологии развития и тому подобное!
источник
Хорошо - я знаю, что это не совсем то, что вы имели в виду, но вы уже знаете (как это сделать) алгоритмы. В зависимости от вашего определения вы можете взять каждую программу в качестве примера для алгоритма.
Так что не бойся. Полезно знать основные алгоритмы, более полезно знать основные структуры данных, но еще лучше знать «шаблоны» дизайна. В конце концов основные алгоритмы и структуры данных будут реализованы в выбранной вами структуре, но шаблоны, скорее всего, не будут ...
источник
Сначала изучите python, затем, если вам так хочется, вы можете изучить алгоритмы; Поскольку алгоритмы не являются специфичными для Python - они являются общими для всех языков.
источник
До того, как я начал работать в университете, я верил, что я довольно приличный программист, и у меня был опыт работы на пару лет. Но после того, как я узнал об алгоритмах и структурах данных в университете, я чувствую, что это знания, которые вы должны иметь! Это важно для всего, что вы делаете. Даже если вы не будете использовать эти знания непосредственно каждый день, они все равно окажутся на вершине вашей головы и сделают вас лучшим программистом.
Вы многое узнаете о производительности, и хотя производительность обычно не является номером один, знание алгоритмов не позволит вам делать какие-то глупости с действительно плохой производительностью. Несмотря на то, что производительность не является номером один, нет никаких причин не использовать эти знания для принятия правильных решений.
источник