Как научиться программировать?

Обсуждение отвлеченных тем.

Модераторы: Letun, Юрий, max-sever, BlackIsle

force
Участник
Сообщения: 907
Зарегистрирован: 01.01.1970 3:00
Откуда: Belarus
Контактная информация:

Как научиться программировать?

Сообщение force » 17.05.2004 22:23

Очень хочется самому, ещё до поступления в вуз выучить какой-нибудь язык программирования. Но как это можно сделать? Ещё прошлым летом пытался учить Delphi. Была у меня книга Фаронов Delphi 5 учебный курс. Ну я её читал, вроде когда читал всё было понятно (хотя применить некоторые вещи на практике не совсем было понятно). Но на следующий день я уже не помнил ничего из прочитанного, потому что это ни как не закреплялось. С чего нужно начинать, и как правильно учить, чтобы знания сохранялись ни на один день. По какому учебнику лучше учить? Какой подходит для абсолютных чайников в программировании?
PS Начинать я так понял надо с Delphi, я прав?

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 18.05.2004 9:26

Программирование должно быть средством, а не самоцелью. Если нет желания что-то сделать, а только желание как в "Матрице": "Теперь я знаю кунг-фу!", то лучше и не браться. Захотите чего-нибудь сделать - и проблемы
на следующий день я уже не помнил ничего из прочитанного, потому что это ни как не закреплялось
не будет. Есть ресурс www.manual.ru , на котором два сайта по алгоритмам, а чем именно алгоритмы делать - главное не бейсиком(!).

Lovrik
Модератор
Сообщения: 1487
Зарегистрирован: 22.01.2004 15:48
Откуда: Россия, Питер
Контактная информация:

Сообщение Lovrik » 18.05.2004 11:10

DrEvil
а чем именно алгоритмы делать - главное не бейсиком(!).
:D
force Освой Visual C ++, Delphi, Perl, ну и если хочешь занятся web-программированием
то и PHP пригодится...Вообще язык программирования это вещь подбираемая сугубо индивидуально
в зависимости от поставленной цели ,а зубрить их как english or deutch не стоит.
Вот вы к примеру захотели чтобы в вашей любимой гамезе вода выглядела как в реале, а не как в Unreal :) Assembler и Visual C ++ , шейдеры 3.0 и у вас вся жизь впереди чтобы это сделать :)
Дерзайте !

Hamburger
Участник
Сообщения: 262
Зарегистрирован: 01.01.1970 3:00
Откуда: Москва
Контактная информация:

Сообщение Hamburger » 18.05.2004 19:04

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

Прочитав учебник, ты ознакомился с правилами нового для себя языка, но еще далек от понимания, а не то что бы написания на нем...

Вторым (очень эффективным и полезным) шагом должно стать чтение чужих, качественных исходных текстов чужих готовых программ и их понимание. (Минимальное требование - выполнение упражнений из учебника)

Затем должно прийти умение (при наличии желания) написания (читай - сочинения) своих текстов и их редактирования в соответствии с изученными ранее правилами "грамматики" языка.

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

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 18.05.2004 23:04

force
Но как это можно сделать?
Чтобы научится писать программы, нужно писать программы. И ещё нужно очень много читать. Причем желательно на английском. Знание английского языка это обязательное условие.
По какому учебнику лучше учить? Какой подходит для абсолютных чайников в программировании?
Хорошая книжка "Как программировать на С++" Х. М. Дейтел и П. Дж. Дейтел.

Хороший язык для начала - С. Строгий и практически классичекое воплощение основных конструкций программирования. Управляющие конструкции, типы данных, способы адресации. Неограниченные возможности роста (если желание останется).

Простая и достаточно удобная IDE - Borland C++ 3.1. Первое время важно избавиться от виндовых заморочек и работать чисто с языком.

Полезным при изучении программирования является изучение принципов функционирования операционных систем и компиляторов.

force
Участник
Сообщения: 907
Зарегистрирован: 01.01.1970 3:00
Откуда: Belarus
Контактная информация:

Сообщение force » 18.05.2004 23:22

djpython С английским не намного хуже чем с русским, т.е. хорошо. А где-нибудь можно найти в инете электронную версию этой книги?

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 18.05.2004 23:42

force
А где-нибудь можно найти в инете электронную версию этой книги?
Не знаю, у Мошкова только если глянуть и на Яндексе.

Ground Zero
вошь-токарь
Сообщения: 2807
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение Ground Zero » 19.05.2004 0:10

"Кто сам не умеет - учит других" (С)

Рискну посоветовать начать с веб-программирования.
Не потому что сам сижу в этом болоте, а потому как сам с него начинал (им и довольствуюсь), как мне кажется, оно гораздо проще для новичка, чем обычное.

Если абстрагироваться от "закулис" - вообще за неделю можно "въехать".

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 19.05.2004 7:08

Ground Zero
В принципе разницы нет, но web гораздо менее удобно отлаживать и проверять на ошибки, коих на начальном этапе великое число. Кроме того в них гораздо сложнее реализовать такую вещь как ввод данных нужный в экспериментах.
Воообще после С PHP я освоил (как язык) за 1 день (они практически одинаковы по синтаксису), больше ушло на освоение регулярных выражений :). Parser и т.п. это специфические "полуязыки" которые дадут немного извращенное понятие о самом программировании.

НО, в принципе самое главное, повторюсь, это программировать. Чем больше, тем лучше. И не очень важно на чём, главное чтобы не на Basic :).

Ground Zero
вошь-токарь
Сообщения: 2807
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение Ground Zero » 19.05.2004 14:25

djpython
Parser и т.п. это специфические "полуязыки"
Ну вот этого не надо.
Давай, ты сначала освоишь, чего-нить напишешь, разберёшься с структуре и логике а потом будешь делать заявления?

Ибо, если так подходить к вопросу, то всё, кроме ассемблера -
"полуязыки"
.


Отлаживать, да, действительно не так удобно, но это не недостаток языков, это проблема отсутствия сред разработки. А нет их, потому как языки достаточно просты, чтобы обходиться без таковых сред.

Оно, конечно, на любителя, с чего начинать, но у меня есть друг, который уже четвёртый год учится на программиста. Начинал с Паскаля, сейчас C++.
При попытках затащить его на веб-программирование - он после двух недель сказал, что не понимает логики. Ибо отличия в подходах всё же существенные.
Веб-то оно что - фактически голая обработка текста и работа с ним.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 19.05.2004 15:41

Ground Zero
Ну вот этого не надо.
Давай, ты сначала освоишь, чего-нить напишешь, разберёшься с структуре и логике а потом будешь делать заявления?
Не принимай близко к сердцу, просто "полуязыки" не в смысле возможностей, но в самом их представлении и способе использования.
При попытках затащить его на веб-программирование - он после двух недель сказал, что не понимает логики. Ибо отличия в подходах всё же существенные. Веб-то оно что - фактически голая обработка текста и работа с ним.
Ну не знаю тогда что это за программист такой... Я бы не сказал что Web это обработка текста. Это конечно так, но это всё ерунда. Вэб это кукисы, сессии, авторизации... Вот здесь у меня проблемы, т.к. это уже специфика, с которой лень разбираться (просто нет нужды). Вот эта конференция типичный пример web-программирования. А тексты что... тексты это ерунда.

Ground Zero
вошь-токарь
Сообщения: 2807
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение Ground Zero » 19.05.2004 16:23

djpython
Не принимай близко к сердцу, просто "полуязыки" не в смысле возможностей, но в самом их представлении и способе использования.
А я и не принимаю.
Ещё раз предлагаю сначала освоить и использовать, а потом делать выводы.

Вэб это кукисы, сессии, авторизации...
Это тоже по сути текстовые данные :)
Просто по сути вэб - это ведь текст и русунки, соответственно и веб-програмирование такое же.
Вот здесь у меня проблемы, т.к. это уже специфика
Ну, это, пожалуй, самое сложное (кроме кук). Если это освоишь, остальное вообще детским лепетом покажется.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 19.05.2004 17:12

Ground Zero
Ну-ну, только не надо детских аналогий. Типа вэб это графика и рисунки. Типа Windows это окна и иконки :).

Vulture
Участник
Сообщения: 636
Зарегистрирован: 01.01.1970 3:00
Откуда: КИЕВ, Украина
Контактная информация:

Сообщение Vulture » 19.05.2004 17:26

force Правильно написал DrEvil видать слабенькое желание было :) У меня после нескольких месяцев похождений на курсы программирования где то лет 9 назад (и полного их непонимания, ну разве что чуть чуть(имеются ввиду алгоритмы а нет синтаксис) в основном списывал у соседа:)) просто случилось прозрение насколько это просто, и потом сосед списывал у меня :)
Так что главное желание, и подход "Разобраться как оно работает - а не заучил и использую"(неплохо бы его применять ко всему) ато есть такие програмеры, у них программы как куча "№;№!";% ну и работоспособность этих программ такая же.

Ground Zero
вошь-токарь
Сообщения: 2807
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение Ground Zero » 19.05.2004 18:53

djpython

Какие детские аналогии? Я почти серьёзно.
Ну авторизировал ты пользователя, отследил права все его.
А дальше что?
Нужно ему страницу показать, а страница это что?
Именно сборка страницы (чтение/запись в БД, генерация/загрузка рисунков, построение списков, применение стилей и т.п.) и есть основное в веб-программировании.
Опять же, регулярные выражения шире всего в веб-программировании используются, а они что по сути?
Обработка, поиск, сортировка текста.


По цели.
Да, всё верно, пока что-либо хобби ты и знать будешь только то, что тебе интересно.
А вот когда приспичит что-то сделать - вот тут, хочешь не хочешь, поймёшь и выучишь почти всё, что для изготовления этого чего-то необходимо.
Только цели дожны быть реальные.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 19.05.2004 19:12

Ground Zero
Ну и что по твоему
чтение/запись в БД, генерация/загрузка рисунков
и есть работа с текстом?! Это работа с БД, с генератором рисунков, и т.д. Это всё равно сказать что основное программирование в игрушках это вывод рисунков. Внутренняя логика к обработке текстов имеет минимальное отношение, основное логика, читай "движок".

Ground Zero
вошь-токарь
Сообщения: 2807
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение Ground Zero » 19.05.2004 23:05

djpython

Я говорю не про работу с какими-то модулями, а про работу по выводу текста.
Большинство данных для записи в ту же БД - текст.
Внутренняя логика тоже направлена на его вывод.

И вообще, разве не понятно, что утрирую?
Это всё равно сказать что основное программирование в игрушках это вывод рисунков
Точнее - их генерация :)

force
Участник
Сообщения: 907
Зарегистрирован: 01.01.1970 3:00
Откуда: Belarus
Контактная информация:

Сообщение force » 20.05.2004 19:16

А какую нормальную книгу по Делфи для начинающих псоветуете (можно в электронном виде, можно в бумажном (можно на русском(желательно) или английском языке))? А то моя Учебный курс по Делфи5 (автор Фаронов) для новичков явно не очень подходит. Очень мало примеров, в основном теория. А теория без практики ничего не даёт. Хотя бы какие-нибудь упражнения были.

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 23.05.2004 1:19

По дельфи не знаю, а вот по С есть списочек - http://forum.ru-board.com/blog.cgi?id=106

Гость
Старожил
Сообщения: 1418
Зарегистрирован: 01.01.1970 3:00
Откуда: Из матери..
Контактная информация:

Сообщение Гость » 23.05.2004 1:40

force
А какую нормальную книгу по Делфи для начинающих псоветуете
Я по Архангельскому(это автор) Делфю точил.. ЛУЧШИЕ книги! Слава ему - я на этом много зарабатывал и многому научил других людей(старшего брата - он щас мне пишет проги под заказ, несколько школьников вытянул за уши по Паскалю и информатике..) Хотя основы получил в ВУЗе, спец. "Программное обеспечение" :oops:

Гость
Старожил
Сообщения: 1418
Зарегистрирован: 01.01.1970 3:00
Откуда: Из матери..
Контактная информация:

Сообщение Гость » 23.05.2004 1:44

force Начни с Паскаля, кто не пыхтел над ДОСовским Паскалем, тот НИКОГДА не будет программистом на Делфе.. Паскаль заставляет думать в сложной задаче, а Делфи заставляет как бы это всё упростить и найти функцию постандартней.. ;)

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 23.05.2004 11:55

Выдержка из известного анекдота:

Код: Выделить всё

Программист на Паскале. Просматривает пустыню полным перебором. Обнаружив льва, строит вокруг него клетку. 
Опытный программист на Паскале. Сортирует пустыню по возрастанию, после чего ищет льва двоичным поиском и строит вокруг него клетку. Если в процессе строительства лев уходит, бросает работу с криком "Range Check Error". 
Программист на Дельфи. Пишет во все конференции: "Народ, где взять компонент, который ищет в пустыне льва и помещает его в клетку?"

Гость
Старожил
Сообщения: 1418
Зарегистрирован: 01.01.1970 3:00
Откуда: Из матери..
Контактная информация:

Сообщение Гость » 23.05.2004 13:49

DrEvil именно это я и хотел сказать! :lol:

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 24.05.2004 2:05

Первое, с чего нужно начинать изучение программирования как такового – это алгоритмы, их понимание и умение применить на практике. Есть языки, предоставляющие огромные возможности, никак не ограничивающие фантазию программиста, однако начинать нужно ни в коем случае не с Ассемблера и не с Си. Лучше всего начать изучение программирования с Паскаля и Паскале-подобных языков. Их синтаксис максимально упрощён и близок к обычному английскому языку (а главное – не нужно час рыться в msdn’е для того, чтоб узнать, что надо include’ть для того, чтоб программа просто скомпилировалась), однако все принципы и основные механизмы программирования Паскаль содержит.
Главным достоинством Паскаля (как обычного так и Object’ного) является то, что он очень хорошо продокументирован и позволяет осуществить 100%-ов своих замыслов, не написав ни одной лишней строчки кода. В том же Си, IMHO, главный недостаток заключается в том, что в Source-файле более 10kb практически нереально разобраться без пол-литры. Delphi, напротив, настолько интуитивен, что читается не сложнее книги. Если для каких-то целей Delphi покажется недостаточно (уверен, что в первый год программирования не покажется), то можно подучить ASM и вперёд. На Pascal/Delphi + ASM можно создать всё: от базы данных до сложной игры и операционной системы.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 24.05.2004 8:20

Detonator/LX
В том же Си, IMHO, главный недостаток заключается в том, что в Source-файле более 10kb практически нереально разобраться без пол-литры.
Не реально разобраться в любом сорсе без комментариев. Если они есть, то можно понять любой.

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 24.05.2004 17:16

однако начинать нужно ни в коем случае не с Ассемблера и не с Си
- млин, я с C начинал... :( Жизнь прожита зря?

SMB
Новичок
Сообщения: 8
Зарегистрирован: 21.04.2004 10:47
Контактная информация:

Сообщение SMB » 24.05.2004 17:45

Вот точно, главно не с АСМа начинать, я вот тяжело на языки высокого уровня переходил с 2-х то лет программинга на АСМе, ёй, до сих пор на высоких языках в голове все сначала прогонятеся как это будет после компиляции выглядить, особенно с шаблонами и классами пришлось туго, все понять никак не мог, как это применить, все аналогии проводил с АСМом...:-(

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 24.05.2004 21:34

SMB
Эх, не понимаешь ты своего счастья! :)
Программистов (хороших) на ASM гораздо меньше чем просто программистов. Посему имеешь весомое преимущество в некоторых областях, хотя их конечно не очень много, но всё же...

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 24.05.2004 22:47

ViC
Спокуха! :) Я тоже с ЦПП начинал (Borland C++ 4, кажется), но после того, как окончательно запутался во всех этих скобках, #include чёрти-что.h , бесконечных повторяющихся подпрограммах и однообразных участках кода, забил на программирование года на два.
Уже потом, когда без программирования было никак не обойтись, начал с Паскаля, постепенно освоив C, TASM, Object Pascal.
ASM - это вообще, отдельная философия. Этот язык хорош в сочетании с C++ или Pascal, но если начинать с него, то придётся весьма не просто.


djpython
Не реально разобраться в любом сорсе без комментариев.
В GUI'ёвых программах под Delphi, IMHO, можно разобраться даже без комментариев. Там всё настолько логично и очевидно, что трудно не разобраться (я говорю не про Hello, World, а про полноценные программы под Delphi).

RazzoR
Клубмен
Клубмен
Сообщения: 1623
Зарегистрирован: 01.01.1970 3:00
Откуда: Челябинский филиал Воевода Шадринского уезда Автомобиль: ВАЗ-2112 Квартира: четырёхкомнатная
Контактная информация:

Сообщение RazzoR » 24.05.2004 22:58

Долго пытался писать на С <TurboC 2.0> (надо было, когда учился). Нифига... IMHO - либо дано либо нет. И всё тут...

Ответить