Елена Б.
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 сообщений
#5 лет назад
Цитата (floppox):
как готовится суши,
Я бы сказал что нужно знать сколько стоят ингредиенты.
Елена Б.
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,

из математики запомнились задачи на составление уравнений..  реально мышление. На предвузовских курсах попался препод в теме.. расчерчивал на доске обычную вроде задачу до ночи, хотя вряд ли его кто то уже слушал. До сих пор в шоке.
Дмитрий Ш.
357 сообщений
#5 лет назад
Я админ и то Кнута читал. Как начнёшь разговаривать с горе программистами, которые даже не знают, что такое файл, или адресное пространство Смеяться охото.