Подскажите в какую сторону копать... (обучение программированию)
6863 сообщения
#5 лет назад
Еще по поводу алгоритмов и готовых решений. Реальность такова, что изучать первые так же нет смысла в виду наличия вторых. Я изучала. Единствинный алгоритм, который регулярно испльзую - это поиск золотым сечением при отладке прерыванием. Тоесть, использую я его в своих действиях, а не в коде. Других не помню.
При это дважды за десять лет возникала ситуация, когда мне не хватало быстро всплывающего в голове мудрого алгоритма. Но мы же не олимпиадные задачи решаем, и гугл никто не отменял.
Отказ от использования готовых решений - это не класс, а типичная ошибка и дурной тон. Изобретение велосипедов - это потеряное время, отсутствие архитектуры, и как следствие - тот самый, непонятный через полгода код.
С другой стороны, любая библиотека или плагин имеют свой порог вхождения, и часто нет смысла его преодолевать. Именно поэтому у сторонников "чистых" языков так много приверженцев.
Я далеко не фанат закрывать любую щель свеженьким репозиторием с гитхаба. Но основные фреймворки и библиотеки своего стека нужно знать и любить.
Главное же, что на первом месте должна быть архитектура. Даже самый гениальный алгоритм превращается в говнокод, если он реализован в трех местах програмы тремя разными способами.
2787 сообщений
#5 лет назад
Цитата (floppox):Отказ от использования готовых решений - это не класс, а типичная ошибка и дурной тон. Изобретение велосипедов - это потеряное время, отсутствие архитектуры, и как следствие - тот самый, непонятный через полгода код.До сих пор казалось, что у меня есть оправдания почему мне готовые решения не подходят. Типа были уникальные задачи... Но Вы уже не первая кто в этой теме говорит что нужно использовать фреймворки и готовые библиотеки. Вряд ли же у всех здесь всегда типовые задачи, а только у меня уникальные... Плотно задумался. Буду насильно пытаться внедрять готовые решения.
Цитата (floppox):
Главное же, что на первом месте должна быть архитектура. Даже самый гениальный алгоритм превращается в говнокод, если он реализован в трех местах программы тремя разными способами.ну... вот это вот точно про меня. Убедили...
2787 сообщений
#5 лет назад
Вспомнилось еще одно оправдание почему не полюбились готовые библиотеки. И, наверное, по-честному, это главная причина)):Потому что в них часто используются те методы, которые я никогда не использовал и мне их сложно читать, разбирать. Библиотеки всегда большие. 99% в них того, что под конкретную задачу не пригодится. И нужно разобрать эти 99% с непонятными мне решениями и методами, что бы найти тот самый нужный 1% что бы доделать его под себя.
Вот, теперь видится, что в этом была большая ошибка. Смотрел бы как раз на правильный код пока разбирал 99% не нужного. Ну и учил бы непонятные методы, что бы в сл. раз читать их быстрее или использовать самому.
п.с. еще раз спасибо... глаза открыли в очередной раз в этой теме
3315 сообщений
#5 лет назад
Цитата:Математика вообще не нужна. Совсем. Ни капельки.Если вы программирует графику, нужны знания геометрии и часто - не только школьной программы. Если это моделирование финансовых процессов, то, как я уже писал, дискретка и матлогика. Она же - дискретка нужна как воздух тем, кто занимается логистикой построения маршрутов, разработкой БД. Матстатистика используется при любом прогнозировании например, в написании ботов для игры на бирже. Вспомните банальную теорию графов, которая используется ну просто везде и всюду. А есть ещё криптография, машинное обучение и там вообще нужно знать все, что я перечислил.
Другой вопрос, что все это нужно только, когда нужно. И начинать с этого - бред. Впрочем, я уже это писал.
Да, если это решения простых и тривиальных задач, то можно все слепить из готовых библиотек, но так выглядит не все программирование, как таковое, верно ?)) Кто-то делает вещи, более сложные, чем фильтрация товаров в каталоге. А кто-то пишет вот эти все библиотеки и "готовые решения".
Про то, что не нужно знать базовые алгоритмы и уметь рассчитывать их сложность и скорость их работы - даже не смешно. Не забывайте, что человек - 0. И то, что для вас - ну это само собой разумеющееся, это и так понятно, это учить не нужно - для него темный лес и поле, усеянное граблями.
212 сообщений
#5 лет назад
UniText, поскольку вы уже варитесь в теме довольно долго, то "начать с чистого листа" у вас не получится. Оптимальным будет параллельное развитие: 1) по выбранной специализации (конкретная среда разработки, языки программирования, библиотеки, прикладная математическая база, специальные алгоритмы и т.д.) - это чтобы были деньги на хлеб насущный.
2) по основам, которые вы пропустили - чтобы хлеб из пункта 1) доставался легче. Тут сложно что-то советовать, не зная, какой базис у вас уже имеется. Вне зависимости от используемых сейчас или в будущем ЯП и IDE, вам пригодится дискретная математика, объектно-ориентированный подход, теория множеств, паттерны программирования.
6863 сообщения
#5 лет назад
Цитата (revladov):Если вы программирует графику, нужны знания геометрии и часто - не только школьной программы. Если это моделирование финансовых процессов, то, как я уже писал, дискретка и матлогика. Она же - дискретка нужна как воздух тем, кто занимается логистикой построения маршрутов, разработкой БД. Матстатистика используется при любом прогнозировании например, в написании ботов для игры на бирже. Вспомните банальную теорию графов, которая используется ну просто везде и всюду. А есть ещё криптография, машинное обучение и там вообще нужно знать все, что я перечислил.Вообще, это называется прикладной областью. Чтоб написать приложение для суши-бара, надо понимать, как готовится суши, но это не значит, что любому программисту кровь из носу нужны курсы восточной кухни.
3315 сообщений
#5 лет назад
floppox, естественно это нужно для конкретных специализированных задач. Но мы ведь обсуждаем профессию, как таковую. Никто не знает, чем займётся ТС и какие задачи он будет решать. А вы написали "Математика вообще не нужна. Совсем. Ни капельки". И это не так. И сравнивать суши-бар и комбинаторику не корректно. Комбинаторика - это не часть прикладной области, это общий инструмент, который используется в том или ином объеме в большом спектре задач. Вот вы сто раз в коде используете логические выражения, а ведь это часть теории множеств и булевой алгебры.
565 сообщений
6863 сообщения
#5 лет назад
Цитата (revladov):Вот вы сто раз в коде используете логические выражения, а ведь это часть теории множеств и булевой алгебры.В том-то и дело, что чтобы что-то использовать, не обязательно тратить на это годы обучения.
Особенно, если вся аргументация сводится к тому, что "это нужно и может пригодиться".
295 сообщений
#5 лет назад
У автора комплекс что он недостаточно глубоко владеет темой.. а потому хочет углубится в вопросы о которых когда то где то слышал и они поэтому кажутся важными. Но думаю углубившись в те вопросы ничего не изменится.. реальность как песок будет утекать. Как ни странно даже знание алгоритмов не сделатет вас сильно умнее/продуктивнее. Но идея изучить их неплохая.. сам иногда думаю уделить этому вопросу больше времени, пока в основном изучаю теорию урывками в туалете)) Ваша сила как специалиста состоит в хорошем владении какими либо темами и базовые вопросы имеют приоритет. Но целиком возлагать на них надежды я бы не стал. Рекомендуются к прочтению книги о программированиии вообще.. о психологии программирования.. тайм менеджменте.. Недавно попалась книга 'балдеющие от адреналина' - думаю вам будет интерестно.
3001 сообщение
#5 лет назад
Занимательное чтиво у вас тут для простых смертных)) как будто на инопланетном языке общаетесь, у меня сын в сторону программирования после школы смотрит, вот так через пару лет перестану его понимать))
10571 сообщение
#5 лет назад
Цитата (UniText):Но Вы уже не первая кто в этой теме говорит что нужно использовать фреймворки и готовые библиотеки. Вряд ли же у всех здесь всегда типовые задачи, а только у меня уникальные... Плотно задумался. Буду насильно пытаться внедрять готовые решения.Елена, абсолютно права. Если есть готовые решения, которые подходят под задачу, нужно использовать их. Это сократит время разработки и бюджет проекта. Последнее время все сложнее найти заказчика с задачей, которую нужно решать с нуля. Про бюджеты нынешние молчу, они предполагают шаблонные решения в основном или крекнутые сборки в паблике...
Было как-то попросили написать абсолютно уникальный магазин для Joomla, компонент, он отличался от всего известного. Программист писал только год для себя все - заметки, наброски, потом еще год делал и собрал, а потом оказалось, что нужно еще миллион доделок. Игра не стоила свеч. Бюджет предложенный в начале и не пересмотренный, оказался никаким в конце...
Надо быть все же математиком немного, чтоб правильно оценить свои силы, время и гонорар. Часто все идет в минус и делаешь ради науки
Программированием - точнее его изучением занималась не один раз Но не возможно это делать, когда постоянно отвлекают и не дают мыслить. Поэтому я понимаю код, немного знаю обо всем и всегда мечтаю чтоб в голове сложились все пазлы и смогла сама взять и написать то, что хочу, так как готовые решения мне всегда кажутся не такими удобными, как в моей голове...
ссылка желаю вам удачи, самое главное терпение и желание и все получится. Не думаю, что 3 года вы потратили напрасно, все равно что-то да пригодится в будущем.
6863 сообщения
#5 лет назад
AlexsimA, как математика поможет решить проблему неявной постановки задач?
3318 сообщений
#5 лет назад
А я до сих пор помню вывеску в кабинете математики со школы: "Математику затем учить следует, что она ум в порядок приводит" )))Неявная постановка задачи - это тоже надо определить посредством критического анализа, а затем уточняющими вопросами добить белые пятна. Критический анализ - есть навык, который формируется при определенном мышлении.
Все же лучше соображать в математике, чем не соображать программисту.
10571 сообщение
#5 лет назад
floppox, я не пишу о высшей математике. Элементарно сделать расчет по вводным данным - нужно уметь, это вроде математикой назвывается, может арифметика3318 сообщений
#5 лет назад
Приведу пример своего блестящего гения ) Когда ходил на подготовку в политех, был очень сильный учитель высшей математики, ну она тогда меня в рамках подготовки к вступлению натаскивала. Что я по итого умел - в 11 классе. Решать школьные задачи 3 разными методами. В голове настолько шаблонизатор укрепился, что я выбирал наиболее короткий путь решения, чем приводил в восторг школьного учителя. И для меня специально (а также других отличных учеников) справа на доске дописывали примеры, которые мы решали быстрее остальных. По окончанию урока на 2-3 сложных примера впереди всего класса. Пригодится ли это в программировании - да. Самому такое образование не постичь, нужен учитель. Так что если реально хочется прокачать мозги - топайте к репетитору, действующему преподавателю в универ с математическим уклоном. Ну и после математики уже к учителю по программированию. Тогда да - будет по науке. По крайней мере так быстрее освоишь нужное и пропадут сомнения - правильно ли калякаешь кнопки.Ну а то, чтобы учебники школьные ковырять, это хорошо при поступлении в ВУЗ, я так и сделал - за ночь перечитал с 7 по 9 класс алгебру, геометрию, что там еще было... Ну и понял, что многое упустил, часть конечно пригодилась при поступлении, только что в итоге - системные знания не так получают.
P.S. А сейчас вообще молчу, я бездарь. Без практики увы, мозг увядает.
10571 сообщение
#5 лет назад
Мой муж начал повторно изучать математику и счастлив, так как это помогло ему во все. Особенно в музыке. Он сам научился играть и играет лучше учителей музыке, недаром математика названа - царицей наук. Можно ее и вовсе не знать, конечно. Но, кто знает - рад. Так как она везде помогает.Цитата:
Математика — это язык, на котором написана книга природы.
ссылка
6863 сообщения
#5 лет назад
Цитата (regado):Неявная постановка задачи - это тоже надо определить посредством критического анализа, а затем уточняющими вопросами добить белые пятна. Критический анализ - есть навык, который формируется при определенном мышлении.Это социальная коммуникация.
Цитата (regado):
справа на доске дописывали примеры, которые мы решали быстрее остальных. По окончанию урока на 2-3 сложных примера впереди всего класса.Это тайм-менеджмент.
295 сообщений
#5 лет назад
regado, из математики запомнились задачи на составление уравнений.. реально мышление. На предвузовских курсах попался препод в теме.. расчерчивал на доске обычную вроде задачу до ночи, хотя вряд ли его кто то уже слушал. До сих пор в шоке.