Краткое содержание книги Грэма «Хакеры и художники»

Нравственные нормы и мода недолговечны, и «ботаники» не считаются с ними

Что объединяет моду и нравственные нормы? На первый взгляд, ничего. Но на самом деле оба явления ограничены временем и местоположением.

Пример. Посмотрите фотографии 1990-х годов — насколько изменилась мода! Или, поехав в Японию, вы можете удивиться тому, как одевается современная молодежь.

Нравственная мода, то есть поведенческие нормы, также зависят от времени и места.

Пример. Разница в нравственных ориентирах немцев времен Второй мировой войны и

граждан современной Германии.

Мода на одежду и мораль постоянно меняется. Но «ботаники» — люди, не развитые социально, они не пытаются быть как все. «Ботаники» тратят свое время и энергию на получение знаний, не утруждая себя следованием модным тенденциям.

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

«Ботаники» непопулярны, особенно в школе. Чтобы стать королем или королевой бала на выпускном, обычно нужно следовать тенденциям моды и морали. Но после школы, в реальном мире (где не так важно быть модным), «ботаникам» везет больше, чем остальным.

Компьютерные

хакеры похожи на художников

Услышав слово «хакер», большинство представляют себе холодного, расчетливого человека, который незаконно вторгается в чужие компьютеры и занимается скучной, аналитической работой. А теперь подумайте о художнике. Представляется образ вдохновленного гения, изливающего душу на холсте.

Такое восприятие ошибочно. В компьютерном мире термин «хакер» относится к выдающимся программистам, которые могут сделать почти все, и не обязательно преступное. Более того, компьютерные атаки требуют скорее творческого ума, чем математического.

Хакеры и художники похожи: они решают проблемы с помощью созидания.

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

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

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

Талантливые хакеры — прирожденные бунтари

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

Если вы хотите по-настоящему разобраться в теме, придется нарушать законы: работа, интересующая вас, может быть защищена правами на интеллектуальную собственность.

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

Когда взлом компьютера впервые был классифицирован как преступление, Федеральному бюро расследований (ФБР) было сложно раскрывать такие дела, поскольку мотивом была простая любознательность.

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

Ведь это единственный способ выработать инновационные решения для хорошего программирования.

Большинство хакеров — «ботаники», которых не заботят социальные нормы, поэтому они оспаривают и совершенствуют все возможное.

Запуск стартапа — быстрый способ разбогатеть

Многие мечтают открыть компанию на основе собственной великой идеи. И если вы хороший программист, незамедлительно сделайте это.

Запуск стартапа — один из способов быстро разбогатеть. Ваша зарплата сотрудника крупной корпорации существенно не увеличится — неважно, насколько усердно вы трудитесь. Основав же стартап, вам придется тяжело работать, но каждый час работы будет приближать компанию к успеху.

Пример. Автор книги с двумя друзьями много работал над созданием приложения онлайн-шопинга Viaweb и в итоге продал его за миллионы долларов.

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

Богатство может быть создано кем угодно, без ущерба для других.

Пример. Если у вас есть ретро-автомобиль и вы полируете его в свободное время, то вы создаете новое богатство, не лишая его другого человека. Богатство не ограничено, поэтому богатые не могут «прибрать его к рукам».

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

Пример. Если, открывая стартап, вам приходится работать в десять раз больше, чем офисному работнику, разве не справедливо, что вы заработаете в десять раз больше? Особенно, если создадите продукт, который пригодится каждому.

Мнение конечного пользователя — решающее для успешности продукта и компании

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

Как можно скорее создайте и выпустите прототип продукта, чтобы собрать отзывы от реальных потребителей. Такая стратегия называется «Чем хуже, тем лучше». Выпуск даже урезанного варианта дает ценную обратную связь, которая позволяет исправить ошибки и усовершенствовать продукт. Этот подход успешно использовала писательница Джейн Остин: прежде, чем закончить книгу, она читала ее вслух своей семье, члены которой предлагали свои варианты концовки.

Они были первыми пользователями ее «прототипа».

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

Пример. Купит ли кто-то вашу мебель, если она будет красивой, но чудовищно некомфортной? Вряд ли.

Чтобы привлечь потребителей, удовлетворяйте их потребности. Это замкнутый круг: покупатели приносят вам доход, который нужно вкладывать в совершенствование продукта и маркетинг.

Если же вы захотите продать компанию, она будет оцениваться по количеству потребителей. Приложение, которое приобрели 100 000 пользователей, заинтересует потенциальных покупателей больше, чем приложение с 300 поклонниками.

Языки программирования различаются по своей цели, и постоянно совершенствуются

C++, Python, Java… Вы, наверное, слышали, как программисты перечисляют языки программирования, с помощью которых дают компьютерам команды. Но компьютеры понимают только машинный язык, то есть комбинацию нулей и единиц, сообщающую, какие действия необходимо выполнять.

Поэтому программистам нужен компилятор для перевода языка программирования на машинный.

Зачем же столько языков программирования? Разные языки программирования подходят для различных задач. Даже людям иногда проще выразить определенные вещи на одном языке, чем на другом.

Пример. Чтобы попросить компьютер добавить переменную Y к X, нужно создать код в две строки на языке Lisp, в то время как на языке Perl понадобится четыре строки.

Иногда в выбранном языке нет необходимых понятий для программы, и приходится либо менять его, либо решать проблему на текущем языке.

Пример. Язык Python не признает полностью переменные X и Y. Если вы хотите добавить Y к X, то придется найти обходной путь, создав аж шесть строк кода.

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

Но теперь каждому доступны технологии для адаптации существующих языков или создания новых.

Хороший язык программирования разработан со вкусом и отвечает потребностями хакера

Если бы вы оценивали 1000 картин, то ваше суждение основывалось бы на вашем вкусе. То же верно и для хакеров, выбирающих между хорошим и плохим языком программирования. Они ценят хороший вкус в языках.

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

Хороший язык программирования отвечает потребностям хакера. Если язык слишком сложен или ограничен, программисты будут выбирать другой. Но если он удовлетворяет их потребностям, язык станет популярным и будет совершенствоваться.

Хорошие языки становятся все лучше, так как хакеры постоянно исправляют в них ошибки.

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

Малоизвестные языки иногда могут иметь свои преимущества

Открывая бизнес на основе программирования, вы, не являясь программистом, вероятно, понятия не имеете, какой язык должна использовать компания.

Компании предпочитают популярные языки по следующим причинам:

Программа будет совместима со многими другими, написанными на том же языке. Проще найти программистов, работающих с популярными языками. Сотрудник, пишущий программы на редком языке (например, Lisp), может уйти, и тогда возникнут проблемы.

Если вы не найдете замену, придется отказаться от проекта.

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

У популярных языков программирования существуют и недостатки:

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

Конкуренты не смогут анализировать вашу деятельность, если ваша продукция основана на другой технической платформе.

Пример. Это и сделал автор, создав Viaweb на малоизвестном языке Lisp, получив техническое преимущество и оставив своих конкурентов в недоумении.

Вы можете избавиться от спама

Хорошему хакеру подвластно буквально все, даже проблема, с которой мы хорошо знакомы: спам — нескончаемый поток рекламных объявлений, захламляющий наш почтовый ящик. Существует несколько методов борьбы со спамом:

1. Можно определить индивидуальные свойства спам-писем.

Пример. Многие спам-сообщения начинаются с чего-то вроде «Дорогой друг!». Можно написать код, который автоматически будет помещать все сообщения с этой фразой в папку «спам».

2. Можно использовать статистическую фильтрацию: каждое слово в сообщении будет анализироваться, и компьютер вычислит вероятность того, является ли сообщение спамом. Возможные нарушители будут отправляться в папку «спам».

3. Лучший вариант — персонализировать статистический подход, сохраняя некоторые сообщения, даже если статистика показывает, что это спам.

Пример. Автор указал, что сообщения со словом «Lisp», должны помечаться как «не-спам». Он также установил, что сообщения адрестов, с которыми он вел переписку, считаются безопасными.

Хакер также должен учитывать последствия своих действий. В данном случае, вы рискуете пропустить важные письма, ведь спам-фильтры не обладают 100 % точностью. Периодически придется проверять папку «спам».

Но впоследствии вы сможете улучшить спам-фильтр, чтобы он больше не совершал подобных ошибок.

Спам сильно раздражает, но попытка отфильтровать его может вызвать определенные проблемы.

Самое главное

Компьютерное программирование — это творческий процесс, а бунтарский дух программистов-«ботаников» позволяет им создавать вдохновляющие, инновационные решения. Основывая стартап на выдающейся идее, программист может разбогатеть.

Если вы программист и у вас родилась идея для бизнеса — не упускайте шанс. Тяжело разбогатеть, будучи штатным программистом в крупной корпорации, поскольку успех компании слабо влияет на зарплату сотрудников. Если у вас есть бизнес-идея, реализуйте ее.

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


Краткое содержание книги Грэма «Хакеры и художники»