Во-первых, позвольте мне дать некоторую предысторию, прежде чем я действительно сформулирую вопрос. Я изучаю физику, и все мои классы программирования были на таких простых языках программирования, как MATLAB. Под легким я подразумеваю, что язык делает большую часть мышления для вас ... В течение следующих лет я буду посещать курсы информатики, и я думаю продолжить карьеру в программировании.
Учитывая, что многие курсы для колледжей написаны на C ++, будет ли использование пакета линейной алгебры (Armadillo) с синтаксисом, аналогичным MATLAB, считаться ленивым?
Я сейчас пишу генетический алгоритм, и, хотя он работал быстро в MATLAB, он занимал много времени в C ++ без помощи этих пакетов.
Как это работает в реальной жизни? Какие пакеты вы можете использовать?
Например, я не хотел бы расширять свои знания C ++ с помощью броненосца и не иметь глубоких знаний о других более широко используемых пакетах, таких как «vector.h», «алгоритм», «список» и т. Д.
источник
lazy
наsensible
в названии, и ответ «да» (при условии, что вы выполняете задачу, которая включает линейную алгебру, конечно).Ответы:
Комментарий Ричарда - большая часть ответа уже. Всякий раз, когда вы программируете для чего-то, кроме упражнений в классе, вы захотите повторно использовать как можно больше существующего кода, с учетом всего лишь нескольких других соображений.
Преимущества повторного использования кода:
Есть только несколько вещей для рассмотрения:
Как говорится, для программиста лень это добродетель.
источник
Что вы подразумеваете под «разрешено»? Думаю, я мог бы добавить кое-что, что могло бы помочь прояснить заблуждение некоторых начинающих студентов: вас просят написать свой собственный код, алгоритмы и т. Д. В университете, потому что вы изучаете курс и хотите объединить то, что вы узнали на уроках, фактически написав код самостоятельно. Такое кодирование является помощником в вашем процессе обучения . Например, после изучения конкретной структуры / алгоритма данных вы пишете свой собственный код, чтобы увидеть, как он на самом деле работает, и углубить свое понимание. Это имеет смысл.
Когда вы делаете реальный проект по программированию, вы не пишете код в качестве помощника в изучении некоторых концепций / знаний; Вы пытаетесь произвести инженерный продукт. Инжиниринг на самом деле не об изобретении, а о том, что уже заложено в основу, заложенную другими, для решения конкретной практической задачи. Есть поговорка, что программирование - это 80% чтения / повторного использования чужих библиотек / кодов и 20% написания своих собственных. Может быть, немного преувеличено, но вы получите дух.
В вашем случае, если вы делаете проект по программированию для курса и он явно просит вас написать собственный алгоритм, вы не захотите использовать внешние библиотеки. Если вы делаете свой собственный инженерный проект, то используйте как можно больше библиотек, прежде чем пытаться придумать свой собственный.
Проясните это различие, и вы поймете, что делаете.
источник