Зачем и как стартапер должен научиться программированию

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




Давным-давно, в 2006 году, я сбежал со своей финансовой работы и стоял в книжном магазине, уставившись непонимающим взглядом на полку с компьютерной литературой. Просматривая раздел, я нашёл «Учим HTML», «Java за 24 часа», «Javascript для чайников» и другие книги вида «безумная аббревиатура, о которой вы никогда не слышали» + «обещание золотых гор в сжатые сроки». После бездумного путешествия в секцию компьютерной литературы, я провёл небольшое исследование и понял, что мне нужна книга о «LAMP». Я взял ближайшую ко мне «Apache+MySQL+PHP» (то, что относится к «AMP») и пролистал первые страницы.  После чего с рвением вернулся к своей работе. Я собирался бросить работу через год, чтобы основать технологическую компанию. Так что мне нужно было научиться программировать.

Я не научился. Я проводил ночи и выходные, пытаясь обучиться. Я брал книги по кодингу с собой в отпуск. Но несмотря на то, что я выполнил все упражнения и написал приложение-туду-лист и блог-платформу, я тогда по-настоящему не научился программировать. Через полтора года (летом 2007) я и вправду уволился с работы, чтобы начать делать стартап. Но вместо того, чтобы писать всё самим, мы наняли человека, который сделал прототип. Мы могли сконцентрироваться на привлечении пользователей и развитии бизнеса, а этот фрилансер позаботился бы о коде до тех пор, пока мы не нашли бы технического директора. 9 месяцев спустя всё пошло наперекосяк. Стало ясно, что фрилансер не справляется, и мы не могли никого привлечь в качестве CTO, как бы не пытались. Нашему стартапу было суждено провалиться, если я бы я не научился программировать.

Так что в начале 2008 я вновь пришёл в компьютерную секцию того же книжного магазина. Я взял книгу «Учим Python» и пошёл домой. Я уже не был взволнован, я был напуган. Если бы я не научился, мы бы пропали. Мне пришлось бы ползти обратно в мир финансов. Мне пришлось бы сказать семье и друзьям, что я сдался, конкретно облажался. Три месяца спустя я не только закончил эту книгу, я переписал тот прототип, на который фрилансер потратил полгода. Я захостил его на сервере, который сам настроил, и мы выводили новые функции в течение часов, а не недель. Я научился кодить.

Я не был готов к работе в Google, но зато мог сделать любой прототип, который бы нам потребовался. Несколько лет спустя мы запустили Yipit, и теперь у нас в штате 25 человек, есть инвестиции и вот-вот пойдёт доход. Это изменило мою жизнь. Чем эта попытка обучиться программированию отличалась от всех прочих?


Почему мне пришлось это сделать? Всё просто, у меня не было выбора. Учиться на своих проектах крайне сложно. Мне приходилось бесконечно учить HTML/CSS, MySQL, Python/Django, Javascript, AJAX, nginx и проч. Я проводил часы в гуглении сообщений об ошибках, молясь, чтоб кто-то на StackOverflow уже задавался таким вопросом (и чтобы я смог понять ответ). Я выяснил, что есть два типа людей, которые могут преодолеть это:

  1. Те, кто на самом деле интеллектуально заинтересованы в изучении программирования. Если вы до этого не учили кодинг, то вряд ли вы один из них.

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


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

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

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