Я внештатный программист. Программирование было моим основным доходом с тех пор, как я окончила среднюю школу 9 лет назад. Я все еще собираюсь получить свою степень, но на данный момент время все еще не подходит для меня.
Мой путь к самопознанию был следующим. Я не говорю, что эти шаги сделают вас признанными сообществом программистов, но они помогут повысить ваш авторитет, когда придет время брать интервью.
Даже после того, как я в то время был достаточно сведущим в программировании IMO, я вернулся к основам, просмотрел учебные пособия и создал себе портфолио, основанное на вдохновляющих работах из них. Я также начал заставлять себя комментировать свой код в стиле JavaDoc. Портфель может быть не наполнен блеском и гламуром прямо сейчас, но он дает вам базовую линию, из которой вы можете построить и в конечном итоге заменить то, что у вас есть. Затем у меня был набор демонстраций и примеров кода для демонстрации потенциальным клиентам. Это важно для получения вашей первой работы. Никто не хочет нанимать кого-то, у кого нет опыта, однако, есть ряд людей, которые дадут шанс многообещающему программисту, не имеющему профессионального опыта.
Позже я проанализировал эти программы и начал писать библиотеки на основе моих обычно используемых задач. Со своими новыми библиотеками я начал смотреть на проблемы CompSci в Интернете и начал сам определять, сколько времени мне понадобится, чтобы найти решение с помощью моих библиотек. Это дало бы мне основу в будущем относительно того, что я должен брать за определенную задачу.
Только тогда я открыл для себя открытый исходный код. Я просмотрел проекты на sourceforge на интересующем меня языке и нашел приложения, которые мог бы использовать. Я установил эти приложения и начал использовать их как часть моего повседневного опыта работы на компьютере. Я смог увидеть сильные и слабые стороны этих приложений в том, что касается моего повседневного взаимодействия, и я начал расширять их в соответствии со своими потребностями. Я отправляю свои патчи сообществу, которое разрабатывается для проверки, а через несколько я подаю заявку на участие в проекте. Именно здесь я научился использовать различные инструменты, используемые при работе в команде, которая взяла мой «огромный опыт», как я его считал в то время, и подняла его на следующий уровень.
Я адаптировал все свои практики, которые я приобрел, работая над проектами с открытым исходным кодом, и реализовывал совместимые решения, когда работал индивидуально. Я начал серьезно заниматься карьерой в качестве внештатного разработчика и присоединился к ряду сайтов внештатного найма. Я посмотрел на популярные рабочие места и начал применять. На каждую работу, за которую мне отказывали, я все равно выполнял ее для себя, как будто получил работу, чтобы расширить свои знания. Это поможет построить мое портфолио и познакомит меня с некоторыми реальными проблемами. Когда я наконец получил это первое интервью, я был откровенен и сказал им, что у меня нет профессионального опыта. Затем я начал рассказывать им о проектах с открытым исходным кодом, над которыми я работал, и о том, чего я там достиг. Некоторые серьезные препятствия, с которыми я столкнулся, и как я их преодолел.