В «сети» можно встретить мнение программистов, которые говорят, что защищать программу от незаконного распространения до момента ее популярности глупо (намекая, что автор несколько высокомерен и переоценивает свои таланты), мол, сначала сделайте такую программу, которую захочет использовать большое число пользователей. Я же с этим мнением категорически не согласен. Дело в том, что когда программа станет популярной, защищать права на нее таким образом будет уже несколько сложнее. Ведь ее написание может требовать гигантских усилий: много месяцев или даже лет, а также финансовых вложений.
Для того, чтобы пользователи могли работать с вашей программой, нужно им предоставить данное право. Да, конечно, можно просто предоставить копию самой программы, не снабдив ее информацией, какой перечень прав и действий доступен. Однако это может привести к неприятным последствиям. Поэтому каждая копия программы, передаваемая в рамках неисключительных прав, должна содержать данную информацию. Это называется «лицензия».
Ее текст можно составить самостоятельно. Он может содержать перечень, что пользователю разрешается делать с программой. А можно воспользоваться уже готовым текстом. Существует множество готовых лицензий (GNU General Public License, MIT, AGPL и т. д.), разработанных профессиональными юристами в области международного права. Их текст, как правило, написан на английском языке. И тем не менее он имеет силу в большинстве стран мира. В некоторых случаях, подобные (готовые) лицензии, могут вступать в конфликт с законодательством тех стран, где используется ваша программа, поэтому, если разрабатываете «продукт» для рынка, какой-то определенной страны, заблаговременно проконсультируйтесь с компетентным юристом (разумеется, это актуально только если ваш продукт уже имеет большой пользовательский охват и «бюджеты»). Для более удобной работы с готовыми лицензиями я подготовил для вас «генератор лицензий», доступный в моем блоге по ссылкеПользуйтесь на здоровье.
Снабдить программу текстом лицензии можно по-разному, например, добавить в архив с программой текстовый файл, содержащий необходимую информацию, или разместить текст лицензии на сайте автора в том разделе, где предоставляется возможность ее скачать.
Также при разработке программного обеспечения не исключено, что вы будете использовать сторонние готовые модули и библиотеки, написанные ранее другими авторами, поэтому тщательно изучайте условия их использования. Может получиться так, что их авторы (правообладатели) не разрешают, например использование в коммерческих проектах или требуют соблюдение каких-то иных, порой специфических, условий. Возможно, для разработки вашей программы лучше посмотреть сторонние библиотеки, которые не имеют подобных ограничений, например, распространяемых по лицензии MIT (The MIT License).
9. Чистый разум
Марк Аврелий
Как я ранее говорил, программисту важно иметь хорошо «прокаченные» навыки концентрации, фокусировки внимания, терпения и усидчивости. Все они напрямую зависят от вашего ментального, физического и психологического состояния, иными словами, от вашего здоровья в целом. Именно это позволяет достигать желаемых результатов как в обучении, так и по части работы в сфере высоких технологий. Ваш основной рабочий инструмент – не язык программирования, не компьютер и даже не ваши пальцы, которыми вы со скоростью сапсана (который славиться своей скоростью в спринтах) набиваете код на клавиатуре, а ваш чистый разум. Именно от работы мозга и вашего разума зависит ваш успех во всех жизненных сферах (это просто факт, друзья).
Я не хочу показаться «ханжой» и занудой, также умышленно не буду оперировать какой-нибудь статистикой, ссылаться на исследования и каких-то ученых, а просто поделюсь опытом в контексте своей профессиональной деятельности в роли программиста.
Еще в начале «карьеры» веб-разработчика, после окончания института, я заметил за собой такую особенность: если выпиваю умеренную дозу алкоголя, например в пятницу вечером, затем на протяжении недели я не могу сконцентрироваться на проекте и коде, как это было ранее. То есть, не могу войти в состояние «потока», когда мысли на ходу формируются в завершенные идеи, и все это моментально перетекает в код (строки, функции, классы, модули). Это состояние, когда кажется, будто кисти рук напрямую соединены с сознанием, перенося сотни строк кода в IDE (интерактивную среду разработки) на компьютере.