2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3, 4, 5, 6  След.
 
 Изучение программирования
Сообщение27.02.2014, 15:30 
Хочу изучить программирование,но не знаю,с каких учебников начать обучение.Мне бы хотелось понять программирование-что такое языки программирования и чем они отличаются,как работают команды и т.д.,то есть хочу понимать смысл моих действий.Я раньше только в школе на Паскале писал и,естественно,ничего не понимал,просто писал команды.Сейчас пробовал опять работать(возникла необходимость) на нем,но ничего не понимаю-не знаю,какие мне нужны команды,как правильно подобрать команду,как запомнить их название и т.д.Ну и посоветуйте,пожалуйста,языки программирования,которые мне нужно изучить-я хочу заняться ИИ,роботами и другими интересными вещами :D

(Оффтоп)

Очень трудно разобраться в кибернетике вообще,сплошная каша.Изучать математику ,физику и биологию намного легче,там все грамотно разбито на различные области и понять,какие области нужно изучать для определенных целей, очень легко :mrgreen:

 
 
 
 Re: Изучение программирования
Сообщение27.02.2014, 19:19 
Аватара пользователя
Daft
Daft в сообщении #831093 писал(а):
Очень трудно разобраться в кибернетике вообще,сплошная каша.

Кибернетика вещь простая. Она состоит из автоматов и основ ТАУ и основ системного анализа. Это обычно рассказываться на первом курсе института.
Прочитать можно в любой книжке про дискретную математику. Также надо прочитать про машины Тьюринга.
Правда как по мне там описано очень сухо. А вот научно популярную литературу по этому поводу не знаю.

Помимо кибернетике есть ещё информатика, информационные технологии, программирование.

Daft в сообщении #831093 писал(а):
Мне бы хотелось понять программирование-что такое языки программирования и чем они отличаются

Надо читать про языки программирования. Советую начать со статей Дейкстры и Вирта. А затем уже прочитать более серьёзную литературу такую как
Пратт Т., Зелковиц М. Языки программирования. Разработка и реализация
4-e издание.


Daft в сообщении #831093 писал(а):
как работают команды и т.д.,то есть хочу понимать смысл моих действий.

Считаю что надо начинать с низов переходя к более сложному.
Внизу лежат сигналы и регистры и булева логика. Затем идут автоматы. Поверх автомата идёт ассемблер. Затем языки высокого уровня. Алгоритмы и структуры данных. Далее объектно ориентированное программирование и шаблонное проектирование.

Для более глубокого освоения надо будет ещё изучать и смежные области. Конечно параллельно надо изучить ещё и математику.

Daft в сообщении #831093 писал(а):
Я раньше только в школе на Паскале писал и,естественно,ничего не понимал,просто писал команды.Сейчас пробовал опять работать(возникла необходимость) на нем,но ничего не понимаю-не знаю,какие мне нужны команды,как правильно подобрать команду,как запомнить их название и т.д.

Будем считать что вы не знаете языка.
Вначале вам нужен учебник по конкретному языку. В нём вы получите основные знания.
Затем вам понадобиться справочная литература.
По конкретным библиотеки, фреймворкам.
Для ориентации в справочной литературе надо знать английский язык. Без него никуда.
Запоминание достигается тренировкой. Но обычно есть среды программирования которые облегчают разработку предоставляя контекстную справку.

Daft в сообщении #831093 писал(а):
Ну и посоветуйте,пожалуйста,языки программирования,которые мне нужно изучить-я хочу заняться ИИ,роботами и другими интересными вещами :D

Учи всё. При работе с железом популярен язык Си. Для ИИ более популярен Java и Си++. Что касается роботов и автоматизации то тут специализированные языки.

 
 
 
 Re: Изучение программирования
Сообщение27.02.2014, 20:08 
Pavia Спасибо за ответ.
Цитата:
Кибернетика вещь простая. Она состоит из автоматов и основ ТАУ и основ системного анализа. Это обычно рассказываться на первом курсе института.
Прочитать можно в любой книжке про дискретную математику. Также надо прочитать про машины Тьюринга.
Правда как по мне там описано очень сухо. А вот научно популярную литературу по этому поводу не знаю.
Помимо кибернетике есть ещё информатика, информационные технологии, программирование.

В данный момент я читаю серию книг по дискретной математике под авторством Верещагина Н. К., Шеня А. Достаточно ли этого материала или нужно еще больше информации?
А что входит в сферу информатики и нужна ли она мне для достижения моей цели?

Цитата:
Надо читать про языки программирования. Советую начать со статей Дейкстры и Вирта. А затем уже прочитать более серьёзную литературу такую как Пратт Т., Зелковиц М. Языки программирования. Разработка и реализация 4-e издание.

А можно сразу начать с данной книги или лучше этого не делать?

Цитата:
Вначале вам нужен учебник по конкретному языку. В нём вы получите основные знания.

Посоветуйте,пожалуйста,пару книг по разным языкам.

Цитата:
Учи всё. При работе с железом популярен язык Си. Для ИИ более популярен Java и Си++. Что касается роботов и автоматизации то тут специализированные языки.

А ассемблер нужен?И для чего вообще его используют?

 
 
 
 Re: Изучение программирования
Сообщение27.02.2014, 22:01 
Аватара пользователя
Daft
не надо отказываться от уже приобретенных когда-то знаний, тем более, что в школе Вас учили очень правильному языку (но раз "каша" - значит, плохо учили, или м.б. Вы плохо учились ;-) ). Паскаль по мнению многих экспертов более всего подходит для обучения (и не только для обучения). Начните с книги Н.Вирт, Алгоритмы + структуры данных = программы, М.: Мир, 1985 (Обратите внимание - Вам нужна именно эта книга про Паскаль, т.к. были у Вирта римейки с похожими названиями для Модулы и т.д.). Можно начать с книги попроще: П.Грогоно, Программирование на языке Паскаль, М.: Мир, 1982. Если Вы поймете эти две книги, то и подходы ИИ сумеете освоить (не без дополнительной литературы!), а силу и трудоемкость ассемблера Вам поможет понять последняя глава книги Вирта, где шаг за шагом автор приводит разработку компилятора. Не торопитесь, перечитывайте по несколько раз, пытайтесь воспроизвести примеры, решайте упражнения - не на бумаге, а на компе! Забудьте о других книгах, пока полностью не освоите названных. С них многие начинали, и у них головокружительный рейтинг. Что касается выбора языка, то раз Вы уже знаете Паскаль, перед Вами этой проблемы не стоит, пока Вы не научитесь программировать - по секрету скажу, что и на других языках люди ухитряются создавать отличные программы, но подозреваю, что с гораздо большими трудозатратами ;-)

Успехов!

 
 
 
 Re: Изучение программирования
Сообщение28.02.2014, 10:15 
bin Спасибо за ответ!
Цитата:
Начните с книги Н.Вирт, Алгоритмы + структуры данных = программы, М.: Мир, 1985 (Обратите внимание - Вам нужна именно эта книга про Паскаль, т.к. были у Вирта римейки с похожими названиями для Модулы и т.д.).
Спасибо за совет.Эти книги http://www.ozon.ru/context/detail/id/24021059/ и http://www.ozon.ru/context/detail/id/24 ... cgodsp4a8q - римейки?

(Оффтоп)

Цитата:
(но раз "каша" - значит, плохо учили, или м.б. Вы плохо учились ;-) )

Да,не очень я хотел понимать все это,я в тот момент только физику любил :D

 
 
 
 Re: Изучение программирования
Сообщение28.02.2014, 17:40 
Аватара пользователя
Да, римейки. Сделайте поиск в гугле.

 
 
 
 Re: Изучение программирования
Сообщение01.03.2014, 19:25 
Рекомендую попробовать начать с книги "Изучаем С++" Крупника А. Б. Она начинает с самых азов и сразу же знакомит с объектно-ориентированным программированием и замечательным языком программирования C++.

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 10:43 
Аватара пользователя
warlock66613
Согласитесь, что С++ не самый простой язык. Он предоставляет очень много возможностей, в том числе и для написания путанного плохо читаемого кода, что особенно опасно при самообразовании. Для изучения основ программирования, совсем не обязательно, а есть распространенное мнение, что и не желательно начинать с ООП. Человеку, который хочет научиться программировать, прежде всего, нужно освоить классические алгоритмы сортировки и поиска, а не разбираться в развесистой иерархии объектов и груде библиотек. Я не случайно посоветовал Pascal, а не ОО-Pascal (Delphi), т.к. в последнем случае, как отмечает Дж. Бакнелл в своей книге Фундаментальные алгоритмы и структуры данных в Delphi, получаются «программисты», считающие, что все проблемы сортировки всегда решаются простым вызовом list.sort. Вопрос в теме поставлен «Хочу изучить программирование», а не изучить сложный язык или наведение красот GUI. К сожалению, очень часто наблюдаемая картина: неискушенный новичок хватает первый попавшийся учебник по визуальному программированию, за пару-тройку месяцев разбирается в технике таскания кнопочек на форму, и этим все кончается – он считает, что теперь он знает программирование. Надо начинать с фундаментальных алгоритмов и делая первые шаги не терять время на вспомогательные технологии, которые при систематическом обучении в последствии осваиваются очень просто и быстро при наличии базовых знаний. Что касается C++, то обязательной книгой при его изучении ИМХО является книга С. Мейерс, Эффективное использование С++, где очень подробно объясняется, как не надо программировать на этом языке. BTW сейчас С++ вышел из моды, видимо не случайно ;-)

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 10:53 
Аватара пользователя
Книга Шеня "Программирование. Теоремы и задачи", по моему скромному мнению, лучшая в качестве первого чтения, особенно если нет сильного отвращения к Pascal.

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:24 
Аватара пользователя
Сейчас для "бытовых" нужд есть только языки "бейсик" и "флэш". Нормальный понятный бейсик - это тот, что живёт в Word и Excel и называется VBA. Но предпочитаю автономную версию VB6. К сожалению, Windows слабо поддерживает его, несмотря на обещания.

Сейчас вся жизнь уходит в интернет, а там сейчас господствует язык Флэш или точнее, AS2. Этот чуть посложнее бейсика будет.

Все остальные языки - "для машинисток", которые программируют всю жизнь без перерывов. Чуть небольшой перерыв и всё - начинай всё изучать с нуля)) примерно так

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:41 
Аватара пользователя
lisek в сообщении #831933 писал(а):
Сейчас для "бытовых" нужд есть только языки "бейсик" и "флэш".
Непонятно, что Вы называете бытовыми нуждами. По мне так для бытовых нужд хватает формул Excel.

lisek в сообщении #831933 писал(а):
Сейчас вся жизнь уходит в интернет, а там сейчас господствует язык Флэш или точнее, AS2. Этот чуть посложнее бейсика будет.
Во-первых, уже лет семь как AS3. Во-вторых, флэш последнее время уходит в нишу игрушек, web-приложения все чаще делаются на js.

lisek в сообщении #831933 писал(а):
Все остальные языки - "для машинисток", которые программируют всю жизнь без перерывов. Чуть небольшой перерыв и всё - начинай всё изучать с нуля)) примерно так
Это относится ко всем языкам в равной мере.

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:43 
bin в сообщении #831896 писал(а):
как отмечает Дж. Бакнелл в своей книге Фундаментальные алгоритмы и структуры данных в Delphi, получаются «программисты», считающие, что все проблемы сортировки всегда решаются простым вызовом list.sort
Я всё-таки считаю, что то, о чём вы говорите, - это следующий этап изучения программирования, до которого ТС ещё не дошёл.
bin в сообщении #831896 писал(а):
в том числе и для написания путанного плохо читаемого кода, что особенно опасно при самообразовании
Такая опасность есть, но, опять же, для уровня ТС любой язык предоставляет достаточно средств для этого.
bin в сообщении #831896 писал(а):
сейчас С++ вышел из моды, видимо не случайно
Это не так. С одной стороны, "вышел из моды" он не сейчас, а уже довольно давно. С другой стороны, в определённых нишах он никогда из моды не выходил.

Почему я всё-таки рекомендую изучать C++ (ну может не обязательно сразу, может после Паскаля) - я заметил, что очень легко объяснить что такое делегат человеку, знающему что такое указатель на функцию, в отличие от человека, не знающего этого. В свою очередь, понятие "указатель" легче всего усваивается при "низкоуровневом" программировании на C++ (ну или на C).

В одном я с вами полностью согласен - ни в коем случае не следует учиться кидать кнопочки на форму. Про кнопки и окна лучше надолго забыть.

-- 02.03.2014, 15:46 --

lisek в сообщении #831933 писал(а):
Сейчас для "бытовых" нужд есть только языки "бейсик" и "флэш". Нормальный понятный бейсик - это тот, что живёт в Word и Excel и называется VBA.
Седая древность, которой уже мало кто пользуется. В Windows-мире сейчас рулит .NET. Для любителей бейсика там есть VB.NET, для нелюбителей - C#.NET. Этого действительно достаточно для "бытовых" оффлайн-нужд.

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 16:48 
Аватара пользователя
lisek в сообщении #831933 писал(а):
Сейчас вся жизнь уходит в интернет
Интернет - всего лишь среда, т.е. сумма технологий. Основные наиболее сложные задачи всегда будут связаны с системным (начиная с драйверов устройств и кончая компиляторами, поддержкой параллельных вычислений, средствами распознавания речи, изображений, рукописного текста и т.д. до распознавания естественного языка) и прикладным программированием (сложные программные комплексы для инженерных и научных расчетов, моделирования, систем принятия решений, СУБД и т.д.). Без ОС интернет невозможен, без сложных прикладных программ он мало полезен. Не стоит преувеличивать сложность "интернет-программирования": есть интернет-протоколы разного уровня и есть соответствующий интерфейс - процесс такого программирования не многим сложнее, чем "кнопочки на форму сыпать":
warlock66613 в сообщении #831938 писал(а):
В одном я с вами полностью согласен - ни в коем случае не следует учиться кидать кнопочки на форму. Про кнопки и окна лучше надолго забыть.

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 20:48 
warlock66613 в сообщении #831938 писал(а):
Почему я всё-таки рекомендую изучать C++ (ну может не обязательно сразу, может после Паскаля) - я заметил, что очень легко объяснить что такое делегат человеку, знающему что такое указатель на функцию, в отличие от человека, не знающего этого.
И closure прям сразу понимается? Указатели на функцию ничем таким не болеют.

Странно, что сюда из других тем ещё не пришли люди, советующие начинать с, например, Scheme. :-) Почему бы и нет?

 
 
 
 Re: Изучение программирования
Сообщение02.03.2014, 22:23 
arseniiv в сообщении #832049 писал(а):
И closure прям сразу понимается? Указатели на функцию ничем таким не болеют.
Нет, замыкания - это отдельная песня.
Но, между прочим, GCC в качестве расширения позволяет создавать примитивные замыкания (примитивные, потому что их можно использовать только пока поток выполнения не ушёл из объемлющей функции и соответсвующие локальные переменные лежат на стеке).

 
 
 [ Сообщений: 84 ]  На страницу 1, 2, 3, 4, 5, 6  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group