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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

    И так далее.

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

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

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

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

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

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

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

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

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

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

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

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

    Share post

    Similar posts

    Comments 37

      +2
      … если Вы сможете _верно_ проанализировать причину неудачи, но то получите опыт

      Прочитал, принял к сведенью…

      Пожалуй насчёт операционной системы — не совсем точно, я бы выразил это более общим понятием платформы. Ибо не обязательно писать что-то под конкретную операционную систему. Если писать на яве, то платформой будет ява-машина, если заниматься флэшем — платформой будет AVM, она же флэш-плеер, если заниматься вёрсткой — платформой будут браузеры, и все эти вещи являются надстройками над операционной системой и не требуют знаний о ней. А вот если писать на чём-то, что зависит от операционки, то тогда — да, платформой будет операционная система.

      Сам пока застрял на той стадии, когда требуется хороший опыт работы в команде :)
        +3
        Видно, что у автора тема наболела :)
        Согласен с «полетом» для нормального программиста, но среднестатистический стартап гораздо менее наукоемок и сложен тех больших проектов, в которых вам приходилось участвовать за свою карьеру.
        И, соответственно, является отличным способом что-то попробовать и получить ценный опыт. За плохие стартапы ведь на кол не сажают. Не нравятся — просто не обращай на них внимания, интернет большой и они не мешаются.
        Люди учатся, и это здорово!
          0
          Глубокая вода — тоже опыт. Хотя это, соглашусь скорее исключение чем правило, слишком многое зависит от характеристик индивидуума :) В остальном соглашусь, хотя я 80% описанных этапов уже прошел а прошло, хмм 3 года и останавливаться не собираюсь.
            0
            Да, все верно!
            Моё мнение — для любого специалиста важнее всего чтобы не наступил тот день, когда ты думаешь, что все уже знаешь. Потому что если это происходит, то либо ты вообще ничего не знаешь, либо ты — дурак. Ибо дальше — регрессия. Такое нередко бывает у программистов. Важно эту фазу быстро проскочить, пока прогресс не отбросил тебя сильно назад.
              +1
              >Существует весьма вероятный сценарий событий, а именно: участие в провальном стартапе без получения _полезного_ опыта.

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

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

              Редко, но бывают ситуации, когда возможность спокойно работать может возникнуть только после участия (или создания) успешного стартапа
                +3
                Абсолютно с вами не согласен.
                Есть те области — где опыта надо набираться не на ,, принеси подай,, а уже так сказать ,, прямо в деле,,
                И все Абсолютно ВСЕ зависит от самого человека.
                  0
                  Это очень распространенное мнение, среди программистов особенно. Опять же мое мнение выскажу.

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

                  От нас зависит наш профессиональный рост, наше настроение, наше упорство, наше трудолюбие, управление нашим временем.

                  Но результат от нас — НЕ ЗАВИСИТ. Напрямую. Только косвенно. Результат — всегда — это игра удачи. Удача, разумеется, предпочитает подготовленный ум, но все равно, результат — это случайность. Всегда.

                  Результат — это СЛУЧАЙНОСТЬ. Так устроен мир.

                  Когда Вы упорно стремитесь к определеной цели Вы эту случайность уменьшаете, но никогда, НИКОГДА Вы ее полностью не исключите.

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

                  Если Ваш непосредственный руководитель — … удак, скорее всего прогресса в этом проекте не будет.

                  И так далее. Это не означает, что нужно сидеть сложа руки или долго выискивать идеальное местечко.

                  Вовсе нет! Всего лишь правильно оценивать _обстоятельства_, окружение.

                  Сформулируйте свою миссию по-другому. Не «все зависит от меня», а, например:

                  «я всегда стараюсь проявить максимум возможностей в текущих обстоятельствах»

                  или

                  «мое отношения к работе никогда не станет ограничением моего роста»

                  или

                  «я приложу максимум усилий для достижения результата».

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

                  Извините, если я все поучаю, я не ставлю себя выше и так далее. Мы все равны и достойны наград. :)
                    +1
                    Ну… вы не совсем правильно меня поняли…
                    Я имел в виду что: наш рост, профессиональный в частности, зависит только от наших стараний.и ничего более.опытные соседи — могут его ускорить… а могут и замедлить…
                      +4
                      Изобретаете велосипед. Если учились в университете или просто открывали книжку по теории вероятности, то должны были уловить: «в жизни случайно всё». Разница в коэффициенте.

                      Всё, что мы делаем приводит к результату с определённой вероятностью. Такова жизнь, а не стартапы или что-то там ещё.

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

                      Поэтому считаю глупостью не пытаться сделать, бояться не получить результата. Результат будет в голове.
                        0
                        >Мысль, что ВСЕ зависит от меня — неправильная, это мысль потенциального неудачника.
                        и
                        >Не берите на себя ответственность за окружающий мир. Это тупик.

                        А вот мне почему-то кажется наоборот, нужно всегда понимать что только ты и никто другой отвечаешь за все, что с тобой происходит… А любую случайность я стараюсь рассматривать, как результат цепочки причин и следствий. Но ваша точка зрения тоже очень интересна.
                      0
                      Интересная статья, я в общем, согласен с автором. Сам я программист (ну и It-менеджер, но в меньшей степени) с опытом уже без малого 10 лет.

                      Когда у меня был опыт 2-3 года я считал что дальше как программист развиваться не куда, что лучшие программисты — молодые с опытом до 5 лет, а те кто старше работают менее продуктивно и опыт ничего не значит.
                      Но сейчас я понял что это не так и что тогда у меня опыта еще было очень мало и обычно серьозные и хорошие проекты делаются очень опытными людьми (по крайней мере, в команде они должны быть).

                      Хотя это не всегда так, во Гугл Сергей и Ларри начали делать еще учась в Стенфорде, то есть опыт еще нужно было набирать и набирать.

                      Всем стартаперам, как опытным, так и не очень удачи.

                        –5
                        Можно где-нибудь на хабре в персональных настройках прописать регэксп вида:

                        if (/стартап/i) {
                        $show_current_topic = 0;
                        }

                        ?
                          +5
                          а ведь вы могли под кат не лезть — в заголовке топика «стартап» таки есть…
                          0
                          Ох уж это модное слово «стартап»… Честно говоря, большая часть утверждений в статье применима не только к стартапам, но и к обычной наемной работе (а вопросы, которые вы предлагаете себе задать, очень популярны на собеседованиях :)).
                          Еще мне кажется, что люди психологически очень сильно отличаются именно тем, в какой обстановке им комфортнее развиваться: кому-то обязательно нужен Учитель (т.е. грамотный руководитель и опытные коллеги в команде), а кто-то предпочитает все осваивать самостоятельно (стотыщ книжек и опыт, сын ошибок трудных). Так что план «нормального полета» для разных психотипов может оказаться разным. :)
                            +1
                            Согласен частично. Объясню на примере: увлекаюсь парашютными прыжками. Для того, чтобы стать «спортсменом» и начать самостоятельно прыгать на нормальных безопасных современных комфортных парашютах (крыло), необходимо обучиться, иначе с вероятностью 99% умрешь на первом же прыжке. Раньше, чтобы быть допущенным к таким прыжкам, нужно было пройти специальную программу обучения: изучить историю, теорию, физику процесса, строение кучи разных парашютов, потом долго и упорно тренироваться на пардон дерьме (около 80 прыжков) и только потом тебе дадут правильный парашют и ты скорее всего «полетишь». Сейчас же есть более современная программа AFF — если ты достаточно обучаем и адекватен, самостоятельно без инструктора ты начинаешь прыгать после 5-6 часов теории и десятка прыжков с инструктором. Знаю много людей, проходивших и первый, и второй путь — каждый считает, что именно его путь наиболее верный.
                            Я за AFF, меня там научили самому необходимому — тому, чему я не могу научиться самостоятельно, тому, что необходимо для решения моей задачи — не покалечиться самому и не навредить никому.

                            К чему я это? К тому, что пока мы «профессионалы с десятками лет опыта» думаем, что кратчайший путь к профессионализму — это именно та прямая, по которой шли мы и наши знакомые, в мире появляются технологии обучения, позволяющие проще достигать поставленных целей и являться профессиональным работником. И наверняка такая же штука может быть и в нашей области.
                              +1
                              Вы упускаете из виду один очень важный факт. Фундаментальные знания — это то, что даёт вам возможность принимать решения в совершенно непредсказуемых ситуациях основываясь не на том, что вас научили «вот тут так держать и вот тут так дернуть вовремя», а на том что «дерганье в этом месте в этот момент времени при вот таких вот условиях с такой то вероятностью приведёт к таким то последствиям», а опыт работы даёт вам возможность принимать решения основываясь на чутье, которое формируется с опытом.

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

                              Но.

                              Очень часто видеть истину мешает _всё то_, во что вы верите — будь то фундаментальные знания или поверхностные.
                                0
                                Bobos, прыгать с парашютом и быть профессионалом в парашютном спорте — это две большие разницы, нет?
                                  0
                                  Профессиональный спорт — штука вообще очень неоднозначная — это работа, подразумевающая физический талант.
                                0
                                стартап это что то вроде нанотехнологий :)
                                Все правильно, но причем тут стартап. Программист занимается не только стартап-ами.
                                  +1
                                  Можно вопрос? А вот Вам, лично, не кажется, что Вы себя переоцениваете?
                                    0
                                    Я к себе очень трезво отношусь, не волнуйтесь ;)

                                    +2
                                    Мне кажется существует 2 вида программистов
                                    -Когда-нибудь сделаю что-то суперкрутое, заработаю кучу денег и ну нахрен это программирование.
                                    -Когда-нибудь постигну что-то крутое Java(Python\.NET\Oracle\....) буду получать кучу денег и заживу счастливо.
                                      +2
                                      «Существует расхожее мнение, будто «неудачный опыт — тоже опыт». Это полуправда. Правда в том, что если Вы сможете _верно_ проанализировать причину неудачи, то получите опыт. Не сможете — не получите.»

                                      Я как-то иначе, кроме как все и вся анализировать, опыт и не рассматриваю. Как вы считаете — а в успешном проекте — если вы не поняли причины победы, то это опыт? Я думаю, что так же точно нет. Так что весь опыт это «полуправда». А вот опытом как таковым является и положительное и отрицательное (второе часто даже важнее, хотя бы тем, что избавляет от иллюзий).
                                        0
                                        В успешном проекте человек видит примеры работающих решений. И потом может их попробовать воспроизвести.
                                          0
                                          Видит пример работающего решения любой, кто этот проект увидит или будет использовать.

                                          Я, к примеру, вижу пример работающей ОС — Windows. Но это вовсе не означает, что я смогу сделать и вывести на рынок такую же (да, к слову, я рассматриваю не только технические, но и «внешние» аспекты, ибо часто именно они бывают решающими).

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

                                          Знание того, как не надо делать, ничуть не менее важно, как знание того, как надо делать.
                                        +6
                                        Единственный способ набрать нужный опыт для работы в стартапе — это работа в стартапе.
                                        Так что лучше нырять сразу, любыми подручными средствами, теми силами которые есть, теми инструментами, которыми владеешь.
                                        При наличии мозга и упрямства что-нибудь обязательно получится.
                                        • UFO just landed and posted this here
                                        • UFO just landed and posted this here
                                            +2
                                            Все же это узкий взгляд на вещи, и упор в тексте сделан на то, как программист зарабатывает (довольно красноречивы «вопросы на ответы»).
                                            А у того, что у нас называется стартапом, если большая творческая составляющая: экспериментаторство, преобразование действительности, воплощение мечты (ну, в крайнем случае, желания).
                                            Так зачем столько пессимизма? Вы думаете Ваша статья поможет кому-то из программистов совершить прорыв, раскрыть свой истинный потенциал? Про то, что можно каждый день ходить на работу, мы все знаем. Если как следует стараться, то из условного «продавца на кассе» сделают «менеджером» и признают работником месяца :-)
                                              0
                                              По поводу разработки «БД с поддержкой SQL, браузера с примитивным рендерингом HTML, вирусов, нескольких игр и много чего другого» — если это не на работе, то есть не коммерческая разработка, а для обучения допустим дома вечерами клепать, то это даже полезно, чтобы понять как это работает и как до этого люди дошли. Говорю как человек пытавшийся (лет эдак в 13-14) написать свою ОС, Антивирус и Фотошоп :)
                                                0
                                                ура, ура все меряются письками.

                                                Применительно к программированию(паять люблю):
                                                -Изучал основы ОС, забросил, стало ясно, что это сложно
                                                -писал программу-каталогизатор cd, попользовался и бросил. Понял как делать классы и ООП в целом. Изучил Дельфи.
                                                -писал прогу под winmobile с фотоконтактами(их тогда еще не было), быстро бросил.
                                                -пытался написать системный смс-фильтр для winmobile. C++ не понравился, все сложно.
                                                -миллиард каких-то сайтов, облегчающих жизнь и рассказывающих о чем-либо, все заброшено.
                                                -CMS, писал долго, потом понял, что это бесполезняк, так как сложно
                                                -кучу какойто мелочи еще.
                                                это все еще в школе, 1-2 курс инста.

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

                                                Мы все что-то пищем и делаем важно то, что это нам дает опыт, а результат часто не доводятся до конца.
                                                  0
                                                  да поможет мне спелл-чекер
                                                  +1
                                                  >На днях написал на питоне обертку для торрент-клиента с конвертацией в ipod-формат видео.
                                                  Неплохая статья в блог по Питону получилась бы))) Может выложите?
                                                    0
                                                    допишу выложу бесплатно. там простой принцип — есть скрипт получения торрент-файлов, есть демон скачки по ним данных, есть демон конвертации. протокол и клиент управления не доделаны
                                                    0
                                                    Если не секрет, сколько вы проработали программистом, прежде чем ушли в свободное плавание?
                                                      0
                                                      14 лет
                                                      0
                                                      А еще важно иметь цель, потому что можно остановится на одном из описанных автором этапов, просто не захотев идти дальше
                                                      </imho [не могу похвастаться опытом]>

                                                      Only users with full accounts can post comments. Log in, please.