2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5, 6  След.
 
 Изучение программирования
Сообщение27.02.2014, 15:30 


19/02/13
39
Уфа
Хочу изучить программирование,но не знаю,с каких учебников начать обучение.Мне бы хотелось понять программирование-что такое языки программирования и чем они отличаются,как работают команды и т.д.,то есть хочу понимать смысл моих действий.Я раньше только в школе на Паскале писал и,естественно,ничего не понимал,просто писал команды.Сейчас пробовал опять работать(возникла необходимость) на нем,но ничего не понимаю-не знаю,какие мне нужны команды,как правильно подобрать команду,как запомнить их название и т.д.Ну и посоветуйте,пожалуйста,языки программирования,которые мне нужно изучить-я хочу заняться ИИ,роботами и другими интересными вещами :D

(Оффтоп)

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение27.02.2014, 19:19 
Аватара пользователя


31/10/08
1244
Daft
Daft в сообщении #831093 писал(а):
Очень трудно разобраться в кибернетике вообще,сплошная каша.

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

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

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

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


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

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

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

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

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

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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение27.02.2014, 20:08 


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

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

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

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

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

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

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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение27.02.2014, 22:01 
Аватара пользователя


22/09/09

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

Успехов!

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение28.02.2014, 10:15 


19/02/13
39
Уфа
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 
Аватара пользователя


22/09/09

1907
Да, римейки. Сделайте поиск в гугле.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение01.03.2014, 19:25 
Заслуженный участник


02/08/11
6892
Рекомендую попробовать начать с книги "Изучаем С++" Крупника А. Б. Она начинает с самых азов и сразу же знакомит с объектно-ориентированным программированием и замечательным языком программирования C++.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 10:43 
Аватара пользователя


22/09/09

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 10:53 
Заслуженный участник
Аватара пользователя


08/11/11
5940
Книга Шеня "Программирование. Теоремы и задачи", по моему скромному мнению, лучшая в качестве первого чтения, особенно если нет сильного отвращения к Pascal.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:24 
Аватара пользователя


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

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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:41 
Заслуженный участник
Аватара пользователя


06/10/08
6422
lisek в сообщении #831933 писал(а):
Сейчас для "бытовых" нужд есть только языки "бейсик" и "флэш".
Непонятно, что Вы называете бытовыми нуждами. По мне так для бытовых нужд хватает формул Excel.

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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 14:43 
Заслуженный участник


02/08/11
6892
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 
Аватара пользователя


22/09/09

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 20:48 
Заслуженный участник


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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение02.03.2014, 22:23 
Заслуженный участник


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу 1, 2, 3, 4, 5, 6  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group