Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование с нуля - это совсем просто! Мифы - окончание


Информационный Канал Subscribe.Ru

 
Школа программирования

Программирование с нуля - это совсем просто!

Мифы на тему "Я не смогу стать программистом"

окончание

Миф 4.
"Чтобы создавать программы надо много времени"

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

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

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

Кроме того, эти оценки важны, когда программирование превращается в бизнес. А в условиях работы по найму руководители отделов информационных технологий обычно хорошо оценивают реальные способности программистов и не требуют от них невозможного. Рутины вот требуют и отсутствия инициативы, это да :)

Миф 5.
"Чтобы распространять программы нужен выход в интернет"

- Только настоящий хакер сможет взломать банкомат!
- Как?!
- Берешь ноутбук, кувалду, идешь к банкомату, лупишь по нему кувалдой, а дальше - по обстоятельствам.
- А нафига ноутбук?!
- Ну какой же ты хакер без компьютера!

Этот миф близок к реальности, однако его истинный смысл можно представить так: "чтобы эффективно распространять программы, нужен выход в интернет". Если созданная программа хороша и интересна, рано или поздно она обязательно найдет своих пользователей. Распространять ее можно например через друзей - этот способ десятки лет оправдывал свою эффективность в доинтернетовскую эпоху. Будучи запущенной в круг нескольких пользователей, заинтересованных в некотором продукте, нужная программа обычно быстро завоевывает авторитет и далее очень быстро расходится между другими людьми - просто переписыванием дискет или CD-дисков. Друзья и знакомые - это отдельный, один из наиболее эффективных каналов распространения. Не надо замыкаться на интернете!

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

Можно заглянуть и в местные представительства известных компьютерных фирм. Только обращаться надо не к рядовым менеджерам, которые часто не заинтересованы в дополнительных нагрузках (наемных менеджеров можно по наличию галстуков отличить :), а к собственникам или верховному главе :)

Если же у вас есть модем, но выйти в интернет на продолжительное время по каким-то причинам нет никаких возможностей, то в этом тоже нет ничего страшного. Когда Сеть еще не стала всемирной, существовала сеть под названием ФИДО (она функционирует и сегодня, но уже по-моему не так активно, как раньше). Она объединяет огромное число пользователей ПК и представляет собой набор тематических конференций на все случаи жизни. Подключение к ФИДО бесплатно, и в ней царит хоть и специфическая, но достаточно дружелюбная атмосфера (не знаю правда, как сейчас). Просьбы о распространении хорошей программы в ней никогда не остаются без внимания. Добрые люди подскажут, как лучше распространить программу, дадут комментарии, посоветуют, что в ней можно улучшить, помогут с размещением в Интернете. А для участия в ФИДО достаточно подключенного к телефону модема на 2400 бит/с.

Кстати, совсем недавно, в августе, прочитал историю про нашего программиста из глубинки, разработчика своих игр, который продает их на Западе через интернет, хотя доступа к интернету у него нет :) Раз в неделю по выходным он ездит в райцентр, в местное интернет-кафе, в котором читает почту, обрабатывает заказы :) обновляет версии - все как положено! А программу совершенствует дома автономно.

Миф 6. "Чтобы программировать, надо знать английский"

Встречаются два программиста:
- Я к своей жинке вчера ночью подкатываю, а она мне: "Access Denied".
- Это еще ничего... а моя: "Sharing violation".

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

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

Хотя, повторюсь, знание английского (как минимум чтение со словарем) желательно.

Миф 7. "У меня нет хорошего компьютера"

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

А что такое хороший компьютер? Великолепные программы в конце 80-х годов создавались для так называемых IBM PC AT с процессором Intel 286. Я уже упоминал про завоевавшую мировую популярность систему Linux, которая была написана, по-моему, на компьютере с 386-м процессором. Для сравнения - этот текст я набираю на дешевом подержанном ноутбуке, купленном за сто долларов. На нем прекрасно (если это слово вообще применимо к Windows 9x) работает Windows 98. Объем его оперативной памяти составляет 24 Мб, объем жесткого диска - 1.2 гигабайта, есть встроенный факс-модем на 14400 бит/с (модемом с такой же скоростью я с успехом пользовался с 1993 по 2002 год), а его процессор Pentium / 90 мегагерц превосходит по производительности процессор, на котором создавался Linux, в десятки раз. В начале 90-х годов компьютеры с производительностью моего ноутбука были запрещены США к ввозу в Россию :) , так как потенциально могут использоваться для математических расчетов и проектирования современных видов оружия. Почему же тогда, можно спросить, сегодняшние версии настольной Windows так тормозят на процессорах, в тридцать раз производительнее моего ноутбука, способного моделировать ядерные бомбы? А это так она устроена внутри :) Взаимовыгодному сотрудничеству какой софтверной и процессорной компаний это выгодно? :)

Поэтому для изучения приемов программирования подойдет на самом деле любой ПК (хотя в базовом курсе мы все же ориентируемся на современные модели). Разработка коммерческих продуктов конечно требует больших ресурсов, но и тут можно легко обойтись суммой в триста долларов за системный блок. Хотя на самом деле и для профессиональной разработки тоже подойдет любой компьютер - просто при этом правильнее ориентироваться не на требовательную к ресурсам Windows, а на Linux, дистрибутивы которой помещаются на одном загружаемом CD-диске. Спрос на Linux-программы растет достаточно быстро, а предложение пока значительно отстает от спроса, потому что мировые производители много лет ориентировались на Windows. Но немаловажно, что программа, созданная для Linux, без проблем может быть перенесена на большинство версий Unix - старой и популярной операционной системы (Linux фактически представляет собой версию Unix), применяемой для поддержки крупных программных систем и высокопроизводительных аппаратных платформ.

Но мы изучать будем Windows :) Потому что и местные работодатели, и массовые покупатели ориентируются прежде всего на нее.

Миф 8.
"Чтобы создавать программы, надо иметь другие программы - средства разработки, которые сложно достать или которые дорого стоят"

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

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

Кстати, общеизвестный редактор Microsoft Word или электронная таблица Microsoft Excel на самом деле уже являются средствами программирования! Вы наверняка имеете более-менее богатый опыт работы с ними. Просто в реальной работе обычно используется лишь крайне малое и ограниченное число из огромного перечня функциональных возможностей этих программ. И в Word, и в Excel имеются готовые встроенные средства программирования, просто мы на них обычно не обращаем внимания и не пользуемся.

Так, Excel часто и с успехом применяется для создания систем автоматизации работы бухгалтерий. Собственно, возможно и с помощью средств программирования редактора Word написать достаточно сложную систему автоматизации или например программу по игре в шашки :) Только работать они будут неэффективно, медленно и ненадежно. А вот составить, например, программу перевода текста, случайно набранного не в том регистре (русского на английском, например) можно очень хорошо.

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

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

Во-вторых, по этим же причинам эффективность (быстродействие) программ, созданных с помощью Word, будет в тысячи раз хуже, нежели при использовании специализированных средств разработки. Каждая программная система предназначена для определенной сферы деятельности. Неразумно участвовать в международных автомобильных гонках на "Жигулях", или для редких поездок на дачу по проселочным дорогам копить деньги на "Мерседес".

Да, действительно, коммерческие средства разработки - точнее, их современные версии, стоят дорого - от нескольких сотен до десятков тысяч долларов. Но существует немало дешевых или бесплатных альтернатив. В дальнейшем я буду упоминать соответствующие продукты, распространяющиеся сегодня бесплатно и позволяющие создавать на самых слабых компьютерах свои собственные законченные DOS- и Windows- программы для продажи или свободного распространения. Такие продукты, кстати, входят во множестве практически во все дистрибутивы Linux, полный комплект Knoppix с такими продуктами стоит, например, 100 рублей.

Хотя ориентироваться конечно лучше на комфортную работу и хороший компьютер.


Из писем.

Пдскажите, пожалуйста, как продавать программу в Интернете. Спасибо.
Макс

Ответов на этот вопрос я знаю как минимум два.

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

2) Подписаться на мой курс "Как зарабатывать программированием". Там многие вещи достаточно хорошо систематизированы. В него я включил то, что либо проверил сам, на своем опыте (и убедился, что работает :), либо узнал от проверенных и надежных людей, заслуживающих доверия в этом деле.

Позвольте поспорить! Технологичность разработки программ крайне полезна в группах, делающих на заказ внушительные проекты...
Людмила Анатольевна

А кто с этим спорит? :) Я не говорил, что не полезно, я говорил, что скучно! Поэтому выгодна технологичность не программисту, а собственнику, который просто на такой рутинизации и механизации программирования заработает дополнительную прибыль. Это и не плохо, и не хорошо. Это нормально. Просто лучше иметь в виду, что есть и другой путь :)

Сенсация!

Открыта бесплатная подписка на все без исключения дополнительные курсы программирования (Программирование игр; Программирование и базы данных; Программирование для интернета; Как создавать на старых компьютерах (386/486, первых пентиумах) хорошие программы, которые можно быстро перенести в Windows; Создаем мультиплатформную ролевую игру для MS DOS, Windows и Linux; и даже "Как заработать программированием"!). Условия бесплатной подписки можно посмотреть здесь:

http://russianenterprisesolutions.com/sbo/free.html


(c) Сергей Бобровский bobrovsky@russianenterprisesolutions.com

Школа программирования с нуля http://russianenterprisesolutions.com/sbo/

 

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.prognull
Отписаться

В избранное