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

22 февр. 2011 г.

О программировании в школе

Одной из самых сложных наук, изучаемых в школе, является, несомненно, программирование. Казалось бы, что сложного в том, чтобы научиться выдавать последовательность действий, которые компьютер бы преобразовал в программу? Ведь программирование, по сути, сродни переводу. Точно также, как мы переводим тексты с русского на английский, программист перевод последовательность действий в программу на одном из языков программирования. Что в этой схеме сложного? Как ни странно, та самая магическая "последовательность действий", называемая алгоритмом.

Алгоритм — это набор логически связанных, часто последовательных, действий, приводящий к заданному результату. Я не буду углубляться в свойства теории алгоритмов, в понятия дискретности, полноты и конечности, а остановлюсь лишь на фразе "логически связанных". Чтобы программировать необходимо знать и понимать логику и логическое мышление. В обычной жизни мы руководствуемся правилами. Программа — это жёсткий набор действий (за исключением декларативных языков, но они — тема отдельного разговора). Возьмём самое простое — заварку чая. Вы когда-нибудь задумывались над тем, что необходимо сделать, чтобы заварить чай. Вспоминается "вскипятить воду, налить в кружку, положить пакетик чая и сахар, выпить". Однако алгоритм, даже приблизительный, выглядел бы по-другому:

  1. Взять чайник
  2. Если в чайнике нет воды, налить туда холодную воду.
  3. Поставить чайник и включить его.
  4. Ждать до тех пор, пока чайник не закипит.
  5. Когда чайник закипел, взять кружку.
  6. Положить в кружку пакетик с чаем и сахар.
  7. Залить водой из чайника.
  8. Если чай не сладкий, то добавить сахара. 
  9. Повторять п. 8 до получения приемлимого вкуса

19 янв. 2011 г.

Случайность — это непознанная закономерность

По мотивам записи из моего твиттера.

В конце 2010 года, практически под Рождество, известным ныне блоггером Навальным был открыт сайт Роспила России — http://rospil.info. На ресурсе публиковались и публикуются странные или откровенно завышенные тендеры с сайта государственных закупок. Ввиду присутствия большого количества IT-шников в этих наших Интернетах, по большей частей разбираются именно тендеры в области высоких технологий.

Не так давно проводился тендер на создание сайта РосПотребНадзора. Сам тендер звучит следующим образом:
Федеральная служба по надзору в сфере защиты прав потребителей и благополучия человека («Роспотребнадзор») заказывает создание интернет-портала (веб-сайта) Федеральной службы по надзору в сфере защиты прав потребителей и благополучия человека. Начальная цена контракта: 5 млн. руб. Срок: не более 10 дней.
Казалось бы, 5 миллионов по сравнению с миллиардами — тьфу. Однако мне, как человеку, работающему в данной области последние 7 лет, очевидны несколько моментов, которые могут не заметить обычные люди.

Момент 1. Нереальные сроки.
Создание сайта для государственной структуры — это всегда большой проект. Большой по количеству требований, по вопросам согласования, по договорам, актам, счетам. В такие контракты обычно входит написание руководств и обучение. Разумеется, особое внимание уделяется тестированию, в том числе и нагрузочному. Даже с учётом того, что сайт органа — простой, минимально возможный срок — 30-50 дней. А с учётом российской бюрократии — и все 60-100. За 10 дней сделать проект такого уровня нереально. Также не стоит забывать про контент, который явно должны делать профессиональные копирайтеры. И потом согласовывать с заказчиком.