Я не учился в институте на программиста и не проходил платные курсы с сертификатом на стену. Мне было двадцать с лишним, работа — что попало, а вечером я сидел за старым ноутбуком и пытался понять, почему скрипт падает на пятой строке. Сейчас я зарабатываю автоматизацией для маленьких компаний, но путь был не «с нуля до героя за полгода», а длинная полоса с сомнениями, стыдом и редкими победами.
Первым делом я открыл бесплатные уроки по языку, который тогда казался «для серьёзных». Через неделю бросил: слишком много теории, мало ощущения, что я что-то сделал руками. Переключился на другой язык — тот, что чаще мелькал в вакансиях для веба. Снова застрял на циклах и массивах. Потом понял простую вещь: мне нужна не академическая полнота, а одна рабочая задача. Я взял свою же жизнь — таблицу расходов в электронной таблице — и решил, что программа сама посчитает итог по категориям. Получилось криво, с копипастой из форума, но файл запустился. В тот вечер я впервые почувствовал, что программирование — не магия, а последовательность шагов, где можно ошибиться и исправить.
Дальше я месяцами делал только «мелочь для себя»: напоминание о днях рождения родственников, сортировка списка дел, простая страница с формой. Никто не платил. Зато я привык читать сообщения об ошибках, а не закрывать окно. Учился искать формулировку проблемы в поиске не «как сделать CRM», а «как прочитать файл построчно на моём языке». Чужие ответы на форумах я переписывал вручную, не копировал слепо — иначе не понимал, что сломается завтра.
Родители спрашивали, когда я устроюсь «нормально». Друзья из офиса не понимали, зачем сидеть ночами. Я сам не понимал, есть ли у этого потолок. Стыдно было признаться, что третий месяц подряд я не могу дописать «простой» каталог товаров — то база данных не подключалась, то верстка разъезжалась. Сейчас я вижу: я гнался за размером проекта, а не за глубиной одного навыка. Когда ограничился задачей «принять форму и сохранить в файл», стало легче дышать.
Первые деньги и первый страх
Платным всё стало случайно. Знакомый попросил «чтобы заявки с сайта падали в таблицу, а не в почту». Я согласился за смешные деньги, потому что боялся отказать и потерять шанс. Сделал за выходные, накосячил с кодировкой кириллицы, потом неделю бесплатно правил. Клиент остался доволен — не потому что идеально, а потому что я не пропадал и объяснял по-человечески. После этого ко мне потянулись «ещё чуть-чуть автоматизировать». Я понял: для малого бизнеса важнее надёжность и доступность, чем красивая связка программ.
Без курсов у меня не было наставника, который скажет «сначала алгоритмы». Зато появилась привычка фиксировать, что я сегодня узнал, одной фразой в заметках. «Как открыть файл на чтение». «Как отправить письмо из скрипта». «Почему нельзя хранить пароль в коде». Через год таких заметок набрался свой учебник — корявый, но мой. Я до сих пор не зубрю все структуры данных, зато умею гуглить и проверять на маленьком примере, прежде чем лезть в чужой проект.
Ещё один урок — не сравнивать себя с теми, кто выкладывает «пет-проекты» в сеть. У меня долго не было ничего для портфолио, кроме скучных внутренних скриптов под NDA. Я собрал описания задач без имён клиентов: «связал склад с сайтом», «сделал выгрузку отчёта по расписанию». На собеседованиях это не звучало эффектно, зато на переговорах с директором ларька — заходило.
Сейчас, когда меня спрашивают «с чего начать», я не советую покупать дорогой курс. Я советую взять одну реальную рутину — свою или знакомого предпринимателя — и убрать из неё один ручной шаг. Потом второй. Учиться на том, что уже болит. Диплом и сертификат могут помочь в корпорации; в моей нише чаще решают слово, срок и то, останетесь ли вы на связи, когда что-то пойдёт не так. Я учился без курсов не из принципа — просто не было денег и времени. Но если бы начинал снова, я бы всё равно ставил задачу выше учебника. Программирование для меня оказалось не профессией «про язык», а профессией «про чужую рутину, которую можно описать шагами». И чем раньше вы найдёте свою рутину, тем меньше будет соблазна бросить на третьей главе учебника.
Иногда мне пишут: «Мне уже тридцать, поздно?» Я отвечаю честно: поздно, если ждать, что завтра вас возьмут в крупную компанию без опыта. Не поздно, если готовы год делать небольшие полезные вещи и копить репутацию в узком круге. Я начинал позже многих однокурсников из интернета — и обогнал их не талантом, а тем, что не бросал после первой ошибки на рабочем сайте клиента. Учиться без курсов можно. Труднее — учиться без задачи. Найдите задачу — и любой учебник станет приложением, а не заменой жизни.
Ещё я научился просить помощь без стыда. Когда застревал, писал вопрос на форуме с минимальным примером — десять строк, а не весь проект. Отвечали не всегда, но один раз объяснение чужого человека экономило мне три дня. Позже я сам отвечаю новичкам — не из великодушия, а потому что помню, как это было одиноко. Без курсов вы остаётесь без «куратора», зато учитесь формулировать вопрос — навык, который в работе с заказчиком дороже сертификата.