![]() |
Модераторы: Се ля ви |
![]() ![]() ![]() |
|
webz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2010 Репутация: нет Всего: нет |
Добрый день.
Не знаю, правильно ли выбрал раздел для вопроса. У меня несколько вопросов: Начал изучать программирование (около 2 месяцев PHP, если точно) Столкнулся с тем, что сам синтаксис языка выучить, найти нужную функцию в документации относительно просто. Но никак не получается начать "думать" как программист. Видеть как-то решение задачи.. Дальнейшие поиски повернули в сторону алгоритмов. Видимо это самое важное, а как написать на языке уже второй вопрос. Учебники, которые находил (книги Кнута, книга Кормена "Алгоритмы. Построение и анализ") - все требует знания математики. У меня эти знания со школы уже подвыветрились. Может есть что-то более доступное для понимания? Если заниматься с преподавателем математики - на чем акцентировать внимание? Рад услышать любые советы. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 1 Всего: 160 |
Есть. Например, Ананий В. Левитин, Алгоритмы: введение в разработку и анализ. Или недавно вышедшая книга Никлауса Вирта. Но без математики всё же никак. Надо знать многие разделы математического анализа. Можно воспользоваться классическим учебником В. А. Ильин, В. А. Садовничий, Бл. Х. Сендов, Математический анализ. В 2 частях. В продаже сам найти не смог, но по сети ходит электронная версия середины 80-х. Ну и без дискретной математики далеко не уедешь. Тут могу рекомендовать два труда с одинаковым названием "Дискретная математика для программистов" за авторством Ф. А. Новикова и Р. Хаггарти. -------------------- |
|||
|
||||
webz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2010 Репутация: нет Всего: нет |
kemiisto, спасибо!
|
|||
|
||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: нет Всего: 18 |
По моему скромному мнению, математика не настолько уж необходима, чтобы начинать с неё. Хотя я сам как раз таки алгоритмами достаточно плотно занимаюсь, но всё же, на мой взгляд, чтобы стать хорошим программистом, не обязательно начинать с всяких графов, теории сложности, и прочего.
Конкретную книгу я советовать не буду, тем более тут всё от языка сильно зависит. Только PHP на эту роль никак не тянет ![]() Лично я поступал следующим образом: сначала я некоторое время тратил на хорошее изучение синтаксиса языка. Несколько месяцев я читал различные книги, начиная с самых азов, и постепенно переходя ко всё более углубленным книгам. За это время помимо самого языка впитывается и его "философия", ведь в этих книгах даются рекомендации опытных людей, обобщающие в себе огромный накопленный опыт. И только потом я устанавливаю среду программирования себе на компьютер. Затем я ставлю себе какую-нибудь учебную задачу, поначалу простую, но и чтобы ей было интересно заниматься, и долблю-долблю её, пока всё не выйдет так, как я и хотел, и чтобы при этом и код был достаточно красивым и отвечал требованиям профессионалов ![]() И математика при этом редко оказывается нужна, точнее, когда оказывалось необходимым решить конкретную задачу, я искал книги/статьи по теме и разбирался в решении. Изучать все подряд алгоритмы, пусть даже и совсем базовые и простые, в такой ситуации мне кажется неразумным. Дискретная математика, комбинаторика, теория чисел - во всё это я углубился позже, когда вплотную занялся олимпиадами (опомнился вдруг, в универе, поиграться решил ![]() ![]() |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: нет Всего: 12 |
Математика в алгоритмах не так важна. Важно абстрактное мышление которому как раз и учит математика. А также математика это язык на котором приходится разговаривать чтобы понимать некоторые вещи.
Предлагаю начать с "С. Окулов Программирование в алгоритмах". Алгоритмы можно писать на любом языке. Даже на бэсике. В книжке достаточно теории для реализации и есть задачи. И минимум математике. А если захочется задач по интересней то можно найти много сборников. К примеру "Особенности национальных задач по информатике". Можно найти также много книг с математикой. Сам я увлекся распознаванием образов и обработкой сигналов. Вот тут мне встретилась вся высшая математика и не только. |
|||
|
||||
webz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.1.2010 Репутация: нет Всего: нет |
maxdiver,
Pavia, спасибо большое за ответы! |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: нет Всего: 34 |
Не знаю, подойдет ли это Вам, но сам я большой поклонник старых-добрых блок-схем. Алгоритм расписывается в виде схемы и, таким образом, становится ясным и наглядным.
Может стОит взять пару-тройку несложных общеизвестных алгоритмов (например сортировку перестановкой, сортировку пузырьком, еще что-нибудь) и попробовать самому расписать их в виде блок-схем по всем правилам? Потом взяться за собственную задачу, не намного более сложную, и нарисовать до того, как начать программировать. Понятно, что когда пойдут сложные задачи, придется составлять отдельные схемы для подпрограмм (методов, функций). Когда втянетесь, уже не будете, конечно, рисовать блок-схемы для всего, что понадобилось. Просто представлять будете себе ясно шаги алгоритма, а уж разрисовывать - только самые сложные и запутанные структуры. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
Vad118 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.12.2009 Репутация: нет Всего: нет |
Кстати говоря ведь именно так и проходит обучение программированию в учебных заведениях. Берите учебник по программированию, по любому языку(можно и по php главное чтоб там были как-раз задачки подобного типа - сортировка пузырьком, поиск в массиве, и прочие элементарные, если таковых нет, ищите другой учебник ![]() Никакая высшая математика, и проч. не понадобится, всё что вам нужно - алгебра логики - это школьникам ещё дают - элементарщина, если пороетесь в инете найдёте. В принципе дискретная математика тоже в эту сторону. Но основой этих простых алгоритмов будет только ваше собственное логическое мышление, а когда набьёте руку на этих простых задачах, сами поймёте что вам нужно дальше. |
|||
|
||||
esperanto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: нет Всего: 4 |
1) Нет. Не так. 2) Вы заблужаетесь, мало выдумать алгоритм. Наде уметь доказать что он работает правильно. Уметь посчитать его сложность и оценить эффективность. --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
КСТАТИ, ДА. Важно абстрактное мышление, а путей натренировать это абстрактное мышление лучше математики - на настоящий момент нету. Добавлено через 14 секунд esperanto, +1 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
hkdkest |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 30.11.2008 Репутация: нет Всего: 1 |
без азов математики никуда (то что в школе проходят)
|
|||
|
||||
bumbastic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
||||
|
||||
bumbastic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.5.2007 Репутация: нет Всего: 1 |
нет значит в электронном виде? так понимать "молчание НЕягнят"?
![]() Альфред В.Ахо, Джон Э.Хопкрофт, Джеффри Д.Уильман "Структуры данных и алгоритмы" очень доступно написано. даже я понял ![]() |
|||
|
||||
jijidesign |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 31.8.2010 Репутация: нет Всего: нет |
ох, ох. Да, да абстракция это хорошо, НО мы забываем что программисты люди конкретные, и им много приходится думать, рассуждать, связывать цепочки и анализировать это. Логическое мышление - это наше все. Как говорят люди играющие на профессиональном уровне в шахматы, бридж могут стать хорошими программистами. А математика, не вся нужна программистам, ну конечно программисткую математику не надо запрещать, а вот мат анализ бывает лишний, просто у нас в РОССИИ всей же обучают по Советской программе, когда все 5 курсов долбят матаном. Да это полезно, но не всегда. Вид может человеку некогда не пригодится векторная алгебра, линейная алгебра, аналит. геометрия - он просто не хочет писать свой 3D движок.
Так что, надо определится чем хочешь заниматься, какими отраслями, и с этого пункта уже ориентироваться на какие в первую очередь нужны знания. ;) Например я стал изучать математику, не потому что мне нужно, а потому что нравится, и охота научится решать самому сложные примеры, и искать свои методы решения. - Нравится, и все. Хотя, лень убивает бывает. Так что удачи в свои начинаниях, помни всегда правило дедушки "Учись, учист и еще раз учись". Надеюсь чью то самооценку не задел. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 1 Всего: 160 |
Хороший двухтомник. Удалось купить у букинистов. Кстати говоря, вышла новая версия классичсекого труда Н. Вирта. Алгоритмы и структуры данных. Хорошая книга. -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила раздела "Философия программирования": | |
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Философия программирования | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |