[08.06.1999, 17:52:23]
Дмитрий Турецкий, <dmitri@listsoft.com> Научи меня программировать!
Сегодняшняя заметка ориентирована не на компьютерщиков, а на пользователей, как, впрочем, и большинство остальных. Среди пользователей часто встречаются два диаметрально противоположных мнения о программировании: то, что это страшно сложно и простому смертному недоступно; и то, что достаточно прочитать книжку Фигурнова, чтобы стать программером. Я попробую немножко рассказать о том, что и как требуется для написания своих собственных программ.
Прежде всего, в программировании есть два больших раздела: алгоритмизация и кодирование. Трудно сказать, что важнее, но, наверное, все-таки алгоритмизация, т.к. без алгоритма не будет и программы, насколько бы блестяще вы не владели языками. Правда, если вы не знаете ни одного языка, компьютер вас просто не поймет...
Алгоритм - это последовательность действий, которая должна привести к решению задачи. Например, чтобы сварить яйцо, вам надо налить воду в кастрюлю - положить яйцо в воду - зажечь огонь - поставить кастрюлю на огонь - дождаться, пока вода закипит - подождать еще 5 минут - погасить огонь - достать яйцо из кастрюли. Разумеется, это очень простой пример, но он иллюстрирует принцип. Дело в том, что компьютер - железяка тупая, думать не умеющая, и поэтому вам надо все продумать за него. Если вы сумеете правильно составить алгоритм, предусмотрев все возможные действия пользователя, логические ветвления и т.д., то это залог качественной программы. Естественно, что алгоритм может иметь разный уровень детализации, в идеале сводясь к набору простых команд, понимаемых компьютером. Однако для более или менее сложных программ предусмотреть все варианты становится очень сложно, а это может привести к тому, что программа не будет "знать", как реагировать на какие-то действия. Следует учесть, что ошибки алгоритма (они еще называются ошибками в логике программы), как правило, приводят к самым тяжелым последствиям - вам придется все переделывать с самого начала. Вообще, создание алгоритмов требует очень хорошо развитого логического мышления и, в какой-то мере, приближается к искусству. Если вы можете создавать алгоритмы, то, скорее всего, сможете и сравнительно легко научиться их кодировать.
В последнее время большое распространение получило объектно-ориентированное программирование (ООП). Его смысл заключается в том, что программы составляются из объектов, как из кубиков. Объект - это некая программная конструкция, которая обладает какими-то свойствами. Например, обращали ли вы внимание, что в Windows все программы используют похожие кнопки? Они могут быть разного размера, на них может быть разный текст, но все-таки они очень похожи... Все дело в том, что кнопка - это стандартный объект Windows, который обладает свойствами размера, текста и т.д. То же самое относится к окнам, текстовым полям, меню, диалогам открытия и сохранения файлов и т.д. Именно таким методом программа приобретает "знакомый интерфейс", даже если вы ей еще ни разу не пользовались. В своих программах вы сможете использовать существующие объекты, а также создавать свои собственные.
В программировании для Windows популярны визуальные средства разработки, т.е. такие системы, которые позволяют вам как бы "рисовать" свою будущую программу. Но нарисовать, как программа будет выглядеть, это одно, а вот связать все элементы управления в единое целое - это уже другое. Тут-то и понадобится язык программирования.
Следующий этап при создании программы - это, собственно, кодирование, т.е. запись алгоритма на каком-либо языке, понятном компьютеру. На стандартный вопрос "какой язык лучше?" ответа нет, хотя "религиозные войны" по этому поводу среди компьютерщиков не утихают. Я думаю, что языки нужны разные, т.к. каждый из них имеет какие-то свои особенности, помогающие при решении определенных задач.
Из наиболее популярных языков можно выделить три: C++, Delphi и Visual Basic. По большому счету, любую программу можно написать на любом языке, вопрос только в скорости работы программы и ее размере. Как обычно, выигрывая в одном - проигрываешь в другом. Basic проще всего выучить, с хорошей книжкой вы сможете написать первую программу уже часа через два, но написанные на нем программы будут большими и неповоротливыми. Delphi сложнее, но все еще остаются в пределах понимания нормального человека. Язык Паскаль, который используется в Delphi, в свое время был разработан именно для обучения студентов программированию. Кстати, в России "Дельфийская школа" очень сильна, и если вы решите учить именно этот язык, то без труда найдете в Интернете множество мест, где вам помогут. Си плюс-плюс - это весьма сложный, зато очень мощный язык; программы, написанные на нем, работают очень быстро и имеют максимальные возможности. Но на изучение даже основ языка у вас уйдет недели две, а на качественное его освоение - не в пример больше времени.
Вообще, программирование - это штука очень опасная. Затягивает. Передать чувства, возникающие, когда ваша программа начинает работать как надо, практически нереально. Да и сам процесс очень интересен... Как вы думаете, почему на любом download сайте много бесплатных программ? Просто потому, что люди пишут их для души. Есть одна хорошая фраза: "настоящий программист всегда удивляется, получая зарплату за то, что он бы и так делал для собственного удовольствия" ;-) В общем, попробуйте - не пожалеете!
|