2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4  След.
 
 Выбор языка и теория
Сообщение10.10.2014, 16:13 


15/05/14
23
Здравствуйте.
Интересуюсь программированием и архитектурой компьютеров, теорией алгоритмов. Хотелось бы уметь программировать для UNIX-подобных систем (в частности, для дистрибутивов Линукса).
Подскажите книги по теории и по практике, желательно с примерами кода и решениями конкретных задач. С какого языка начать, в какой среде?
Имеет ли смысл изучение ассемблера, есть ли для этого учебники?
Математическая подготовка сейчас — неполные девять классов. Что необходимо к этому добавить?
Программирование под Виндовс интересует только в виде потенциального источника дохода.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение10.10.2014, 17:26 
Заслуженный участник


09/05/12
25179
М-да, тяжело...

KOH в сообщении #917228 писал(а):
Интересуюсь программированием и архитектурой компьютеров, теорией алгоритмов.
В общем, всем и сразу. :D

KOH в сообщении #917228 писал(а):
Хотелось бы уметь программировать для UNIX-подобных систем (в частности, для дистрибутивов Линукса).
Это непринципиально (по крайней мере, сначала).

KOH в сообщении #917228 писал(а):
Подскажите книги по теории и по практике, желательно с примерами кода и решениями конкретных задач. С какого языка начать, в какой среде?
Выбор языка, вообще говоря, определяется целями изучения программирования, а их фактически нет (или они очень широки). Какой-либо средой для начала лучше вообще не пользоваться.

KOH в сообщении #917228 писал(а):
Имеет ли смысл изучение ассемблера, есть ли для этого учебники?
Для Вас сейчас - явно не имеет. В дальнейшем, при определенных конкретных целях занятий - может быть.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение10.10.2014, 22:47 
Заслуженный участник


02/08/11
7013
KOH в сообщении #917228 писал(а):
С какого языка начать, в какой среде?
Это неправильный вопрос. Если вы уже неплохо знаете программирование на каком-либо языке и вас интересует именно программирование под Линукс (программирование чего - простых игр? калькулятора? системных утилит? драйверов?) - это одно. Если вы хотите начать изучать программирование/какой-то язык программирования - это другое. В последнем случае ищите именно учебники по соответствующему языку - почти все охватывают тройку систем Windows+Linux+Mac OS X. Что касается выбора языка для программирования - под UNIX можно писать на всём. Но классический вариант - это C++ и C. Но в качестве первого языка программирования ни C ни C++ не рекомендуются. Учить ли сначала C, а потом C++ или же наоборот, а то и одновременнно, - это опять-таки сложный вопрос. Всё-таки я склоняюсь к варианту "сначала C".

-- 10.10.2014, 23:56 --

Pphantom в сообщении #917272 писал(а):
Какой-либо средой для начала лучше вообще не пользоваться.
Спорный вопрос. Лучше попробовать оба варианта - с IDE и без IDE. Программирование без IDE даёт понимание как оно в принципе всё работает - что такое компилятор и т. д. Это важно. А программирование с IDE даёт удобство - автодополнение там и т. д. Впрочем я помнится начинал программировать в Лине с KDevelop, и удобства не почуствовал, как я понял потом - без IDE было бы наоборот удобнее. В конце концов, редакторов с подсветкой кода полно.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение12.10.2014, 20:41 


22/09/13
1

(Оффтоп)

Неполные девять классов - это не про заработок, тем более программированием.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение12.10.2014, 21:08 


23/05/12

1245
KOH
Начните с питона, пригодится точно.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 12:43 
Заслуженный участник


02/08/11
7013
Lukum в сообщении #918178 писал(а):
Начните с питона, пригодится точно.
Кстати, да. На пайтоне :-) часто пишут гуй для линуксовых программ. Правда у него есть минус - динамическая типизация. Но, несмотря на это, много умных людей рекомендуют его как первый язык (но я не в их числе).

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 14:38 
Заслуженный участник
Аватара пользователя


09/02/14

1377

(Оффтоп)

warlock66613 в сообщении #918427 писал(а):
Правда у него есть минус - динамическая типизация.

Очень странный «минус».

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 17:24 


15/05/14
23
Хорошие вопросы были заданы, надо было обдумать.

Pphantom в сообщении #917272 писал(а):
Выбор языка, вообще говоря, определяется целями изучения программирования, а их фактически нет (или они очень широки).


Судя по всему, мне для начала подошёл бы самоучитель, где на примере любого языка рассматривались бы принципы программирования, самые общие, либо характерные для некоторой группы языков.
Собственно, моя проблема заключается в том, что учителя у меня нет, и я прошу книгу, которая помогла бы мне понять, что, собственно говоря, происходит, чтобы дальше видеть, куда я шагаю и какие вообще есть дороги. Сейчас перед мной просто туман.

warlock66613 в сообщении #917446 писал(а):
В общем, всем и сразу. :D


Это, конечно, верно, но я просто обрисовываю ситуацию в целом, всё, что я знаю о ней. Чем больше исходных данных, тем (иногда) проще найти ответ.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 17:32 
Заслуженный участник


09/05/12
25179
KOH в сообщении #918520 писал(а):
Судя по всему, мне для начала подошёл бы самоучитель, где на примере любого языка рассматривались бы принципы программирования, самые общие, либо характерные для некоторой группы языков.
Возьмите древнюю классику: Н.Вирт, "Алгоритмы + структуры данных = программы", будет примерно то, что требуется.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 17:55 


07/08/14
4231
значит если хотите ассемблер, то начните с суровых азов:
берете любую логику (элементы И-НЕ и т.п.), паяете на ней $1$-у ячейку памяти (увидите как это просто) и две кнопки к ней - нажатием первой кнопки зажигаете светодиод № $1$, если в ячейке $1$, или светодиод № $2$, если в ячейке $0$, нажатием второй кнопки меняете состояние ячейки памяти.
всё, практически все основы ассемблера усвоены. если очень хочется, можно спаять две ячейки памяти и поэкспериментировать со светодиодами, зажигая их в разных количествах и комбинациях.
дальше устройство можно выбросить в мусорное ведро (процесс выбрасывания можно снять на видео), а уже затем начать возиться с процессорами, кэшами, адресацией памяти и т.д., читать техдокументацию ... например заставить уже компьютер включать выключать светодиод, воткнутый, в разные места (в USB-порты и вообще везде где можно). рисовать всякие красоты на мониторе нежелательно, лучше заставлять крутиться шаговые двигатели, ездить головы принтеров туда-сюда и все в таком духе. где-то год на это уйдет.
если не ассемблер, то лично я убежден, что в 9-м классе, лучше пока отложить в сторону программирование и поплотнее заняться математикой, причем так конкретно взяться за диффисчисление, комбинаторику, теорию множеств, теорию чисел, теорию графов.

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 18:25 
Заслуженный участник


09/05/12
25179
KOH в сообщении #918520 писал(а):
Судя по всему, мне для начала подошёл бы самоучитель, где на примере любого языка рассматривались бы принципы программирования, самые общие, либо характерные для некоторой группы языков.
Кстати, если с английским неплохо, можно найти в сети SICP (прямо по этому сокращению, расшифровывается она как Structure and Interpretation of Computer Programs).

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 19:16 


24/05/09

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

Я бы посоветовал Qt С++, версии 4.7 4.8. Бесплатная. Си учить начнёте. Не хотите Си - учите Паскаль. Начинайте уже писать свою первую программу, а там определитесь, что именно вам нужно.

А вообще довольно странно. Чел отучился неполные 9 классов, интересуется програмированием - и до сих пор не програмирует. Боится?

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 20:06 
Аватара пользователя


31/10/08
1244
KOH
Это не тот случай когда много информации помогает сделать правильный выбор. Всё меняется и развивается. Появляются новые языки, старые забываются. И среды программирования тоже меняются. Так что читайте как можно больше, решайте примеры. Пишите что хотите и в конце концов станете экспертом.

Архитектурой компьютеров - это вообще отдельное направление электроники в котором список дисциплин тоже не маленький.
А вот что касается программирования, то вот далеко не полный список направлений.

Основные дисциплины:
1. Основы программирования: арифметика и логика, простые типы, циклы, условный оператор, массив, матрицы, функции и рекурсия, составные типы:
2. Структуры данных и основные алгоритмы: списки, деревья, графы, таблицы, сортировка, поиск, вставка, обход графа;
3. Сложные алгоритмы;
4. ООП и шаблоны проектирования;
5. "Качественный код";
6. Дискретная математика.
Второстепенные дисциплины:
7. Шифрование и кодирование;
8. Численные методы;
9. Вычислительная геометрия;
10. Компьютерная графика;
11. Распознавание образов;
12. Цифровая обработка сигналов;
13. Программирование под Виндоус;
14. Программирование под Линукс;
15. Ассемблер RISC и MISC;
16. Программирование сетевых приложений;
17. Параллельное программирование;
18. Компиляторы и интерпретаторы.
19. Базы данных и системы управления базами данных.
и тд.

По каждой дисциплине есть очень много книг десятки а может и сотни. Все они разного качества. Есть отличные издания есть не очень. Кто-то стал классиком кто-то нет. Не думаю что надо перечислять все книги, кто ищет тот и сам найдёт.

Так вот основы программирования, как правило рассматриваются в книгах по конкретному языку. Какой именно язык учить первым или второй я советовать не буду. Выбирайте сами какой вам по душе.
Так уж сложилось что лет десять назад время в России был популярен Паскаль. Поэтому вкратце о нём.
Вирт конечно хорошая книга. Но я бы взял Окулова. Пишет также если не более подробно. Или книгу Попова у него тоже хорошая книга, только подход обучения не столько на примере сколько на задаче.

По Си++:
Прата С.-Язык программирования С++. Лекции и упражнения-ИД Вильямс(2012)
По Си:
«Язык программирования Си» Брайана Кернигана и Денниса Ритчи
По Паскалю:
Попов В. Б. Turbo Pascal для школьников. (2-издание 1999 или 3-издание)
Вирт Н. "Алгоритмы + структуры данных = программы"-Мир (1985 вариант книги паскаль)
Окулов С. М.-Основы программирования - (2002)
Окулов С. М.-Программирование в алгоритмах - (2002)

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 20:15 


27/08/14
207
Плюсую для обучения Паскаль. Строгий синтаксис по началу убережёт от мелких орфографических ошибок, при которых программа компилируется, но работает не совсем так, как задумывалось. Сам изучал Паскаль по Фараонову, но думаю сейчас это уже не очень актуальный учебник :-) .

 Профиль  
                  
 
 Re: Выбор языка и теория
Сообщение13.10.2014, 21:48 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Progger в сообщении #918579 писал(а):
Сам изучал Паскаль по Фараонову

По Фаронову.

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

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



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

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


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

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