Website development
January 2009 21

Начинающему программисту про стартапы и не только…

Сразу оговорюсь, это все мое личное мнение. Не навязываю, просто высказываю.



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

«Иди вперед до самого горизонта. Дойдешь — откроется новый» Дж. П. Морган

Собственно, в этой цитате ответ на вопрос — как быть? Ваши способности всегда будут ограничены Вашим кругозором. Основная задача для программиста всегда — это набор опыта.

Как может выглядеть примерная траектория программиста?

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

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

Следующий шаг, как правило, связан с огромным миром существующих прикладных и системных технологий. SQL, TCP, HTTP, XML и пр. и пр. Программист изучает готовые решения. Очень важно понимать отчего это появилась такая технология, какие задачи она решает, зачем это вдруг люди ее придумали и т.п.

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

Ну вот сколько времени уже прошло? Хорошо, пусть не 10, но минимум пять лет ведь пройдет! Получается, что программист должен обладать минимальным опытом в самых разных сферах, что выдать _приличное_ решение:

— язык программирования;
— операционная система;
— существующие технологии: сети, базы данных, языки представления данных и пр.;
— пользовательский интерфейс;
— работа в команде;
— тестирование и отладка;

Этот список не полный, но пока оставим так.

Если мы хотя бы один из этих пунктов опустим — «ракета до марса не долетит».

Например, все супер, но работа в команде хромает. Человек не сможет эффективно взаимодействовать с коллегами, непонимание, недоверие, отставание, провал.

Или, незнание технологий. Вроде все идеально, человек — энтузиаст. Сам все склепает за три дня. Увы, это тупик, хотя и более долгий и мучительный. Силы будут тратится не на разработку решения, а на создание сопутствующих технологий. Говорю это на собственном опыте как автор БД с поддержкой SQL, браузера с примитивным рендерингом HTML, вирусов, нескольких игр и много чего другого. ;-)

И так далее.

Если человек все-таки добрался досюда, то у него обычно возникает уже некоторое понимание. И прежде всего понимание _своей_ задачи, _своей_ миссии. Мир технологий большой и интересный, но объять его невозможно. Неплохо было бы уже к этому моменту найти вопросы на ответы:
сколько я хочу минимально зарабатывать в месяц в этом году?
сколько я хочу зарабатывать через 2-3 года?
что я могу делать хорошо и быстро?
что я могу делать не очень хорошо и не очень быстро?
какие у меня слабые и сильные стороны?
какие технологии мне нравятся, какие — нет?
есть ли у меня способности руководить людьми?

И так далее. Вот как может человек, не ответив на подобные вопросы, идти на форум и спрашивать — «мне создавать стартап»?

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

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

1. обучение;
2. работа в серьезном проекте на мелких ролях, набор опыта;
3. работа в серьезном проекте на серьезной роли;
4. свободное плавание.

Стартап для студента предполагает, что можно исключить пункты 2. и 3. и сразу перейти к 4. Если Вы так поступаете, значит Вы — меньшинство! Вы необычайно способны и трудолюбивы, вы входите в 5% лучших. Это действительно так? Вы уже проявили себя в чем-то и точно уверены, что _можете_?

Существует весьма вероятный сценарий событий, а именно: участие в провальном стартапе без получения _полезного_ опыта. Потрачено время, энергия, но опыта — не прибавилось. Как участник/руководитель изрядного числа проектов уверяю вас: если Вы полагаете, что понимаете причину неудачи провала — вы скорее всего ошибаетесь.

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

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

Существует расхожее мнение, будто «неудачный опыт — тоже опыт». Это полуправда. Правда в том, что если Вы сможете _верно_ проанализировать причину неудачи, то получите опыт. Не сможете — не получите.

Убейте надежду, исключите возможность регресса и спокойно работайте.

И все будет хорошо :)

+36
26.8k 72
Comments 37