Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Назад Введение в мир программирования.
Глава 1. Введение
Вперед

Глава 1. Введение

Добро пожаловать в мир программирования!

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

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

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

Заканчивая читать большинство книг, посвящённых введению в мир программирования, продолжаешь спрашивать ``как на самом деле работает компьютер'' и не получаешь достойного ответа. В этих книгах не затрагиваются сложные, но важные темы. Мы хотим помочь вам разобраться в сложных вопросах и привести к пониманию того, как создавать толковые программы. Вы не будете знать всего, но разберётесь в том, какие элементы и каким образом взаимодействуют в процессе программирования. Прочитав эту книгу, вы будете готовы делать следующее:

  • понимать как программа работает и взаимодействует с другими программами;
  • читать программы других людей и разбираться в том, как они работают;
  • быстро осваивать новые языки программирования;
  • быстро разбираться в сложных концепциях из сферы компьютерных наук.

Мы не научим вас всему. Компьютерные науки представляют из себя очень обширный раздел знаний, особенно если пытаться комбинировать теорию с практикой программирования ЭВМ. Тем не менее, мы поможем вам освоить базовый материал, для того, чтобы дальше вы могли двигаться самостоятельно в любом направлении.

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

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

Данная книга является развитием англоязычного проекта Programming from the Ground Up (у этого проекта есть лист рассылки pgubook-readers@nongnu.org, подписаться на который вы можете по адресу http://mail.nongnu.org/mailman/listinfo/pgubook-readers).

Литература для самообразования

  1. Керниган Б., Пайк Р. Практика программирования.: Пер. с англ. М.: Издательский дом ``Вильямс'', 2004. 288 с.
  2. Норвиг П. Научитесь программировать за десять лет. URL: http://www.williamspublishing.com/21-days.html (дата обращения: 18.02.2012).
  3. Спинеллис Д. Анализ программного кода на примере проектов Open Source.: Пер. с англ. М.: Издательский дом ``Вильямс'', 2004. 528 с.

Предыдущий раздел: Оглавление Следующий раздел:
Предисловие   Ваш инструментарий