Пет-проект — лучшее, что можно сделать для карьеры. Часть 1
Я начал делать свой пет-проект 3 года назад. Я до сих пор его не закончил и продолжу делать его дальше. Одно я могу сказать с уверенностью — ничто не позволяет мне развиваться как разработчику лучше, чем мой пет-проект.
Что я пилю
Я делаю онлайн-игру в Дурака. Идея пришла мне ещё в те времена, когда я работал главредом, и мой руководитель придумала формат для неформального общения на встречах. В конце каждой встречи, когда все вопросики провентилировали, мы выделяли 5–10 минут на какую-то неформальную активность. При этом роль того, кто организует эту активность переходила от одного сотрудника к другому от встречи к встрече.
Я тогда уже был на пороге того, чтобы перейти в разработку, и ходил к ментору (Толик, если ты прочтёшь этот текст, храни тебя господь — ты замечательный ментор и человек). Как раз ментор посоветовал мне придумать пет-проект, чтобы оттачивать скиллы. Так и родилась идея сделать игру в «Дурака». Тогда задача казалась мне несложной, и я взялся за дело.
Первая итерация
Сложности начались с самого начала. Оказалось, что интуитивно понятные всем правила игры весьма непросто описать на языке машины. У игры много состояний, особенно если игроков несколько.
Не буду вдаваться в подробности, приведу пример: игра заканчивается тогда, когда все игроки, кроме одного, остались без карт. Правило вроде бы простое, но оно может наступить после подкидывания карты, после выкладывания первой карты, после того как игрок бьёт (в этом случае ещё возможна ничья).
Это была первая итерация продукта, и она многому научила меня:
1. Я понял, что программирование начинается не с написания кода, а с проектирования, то есть с описания всех компонентов системы и её состояний.
2. Написал свой первый бэкенд на вебсокетах — до этого я работал в учебных проектах только с фронтендом.
3. Подключил базу данных и сделал храенение состояния игры персистентным. До этого базы данных были для меня чем-то непонятным, сложным и магическим.
4. Задеплоил приложение и сделал его доступным публично.
Так или иначе, часы упорного труда, и продукт заработал. Мы даже сыграли разок с моим ментором Толиком. Не знаю, кто победил в той партии, но рабочий продукт ощущался как наша общая победа.
Что мне дал пет-проект
Тут я могу отметить две вещи. Первая весьма практическая. Работая над проектом, я разобрался с фреймворком Next.js, и в итоге получил работу в компании, где как раз использовался этот движок.
Но что ещё важнее, работа над пет-проектом дала мне ясность в том, как развиваться в профессии. Разработка очень обширная тема, в ней нужно очень много знать, и сложно выбрать, за что хвататься. Но когда у тебя есть понятная задача, то из всего этого океана технологий ты можешь выбрать, какие изучать прямо сейчас.
Тем не менее, первая итерация проекта не была лишена проблем и недостатков. В то время я уже получил свою первую работу программистом, и на пет-проект времени стало не хватать. Кроме того, я просто не знал, как решать сложившиеся проблемы, а встречи с ментором пришлось закончить из-за внешних обстоятельств.
Поэтому пет-проект лёг в стол и стал ждать своего времени — ждать, пока я вырасту достаточно, чтобы к нему вернуться. Это и произошло, но расскажу об этом в следующий раз.
Не забывайте ставить лайки и писать комментарии — это помогает мне развивать мой канал. Спасибо!
Я начал делать свой пет-проект 3 года назад. Я до сих пор его не закончил и продолжу делать его дальше. Одно я могу сказать с уверенностью — ничто не позволяет мне развиваться как разработчику лучше, чем мой пет-проект.
Я хотел написать один пост и рассказать всё в нём, но пост так раздуло, что пришлось разделить его на несколько частей. Так что у этого поста будет продолжение.
Что я пилю
Я делаю онлайн-игру в Дурака. Идея пришла мне ещё в те времена, когда я работал главредом, и мой руководитель придумала формат для неформального общения на встречах. В конце каждой встречи, когда все вопросики провентилировали, мы выделяли 5–10 минут на какую-то неформальную активность. При этом роль того, кто организует эту активность переходила от одного сотрудника к другому от встречи к встрече.
Я тогда уже был на пороге того, чтобы перейти в разработку, и ходил к ментору (Толик, если ты прочтёшь этот текст, храни тебя господь — ты замечательный ментор и человек). Как раз ментор посоветовал мне придумать пет-проект, чтобы оттачивать скиллы. Так и родилась идея сделать игру в «Дурака». Тогда задача казалась мне несложной, и я взялся за дело.
Первая итерация
Сложности начались с самого начала. Оказалось, что интуитивно понятные всем правила игры весьма непросто описать на языке машины. У игры много состояний, особенно если игроков несколько.
Не буду вдаваться в подробности, приведу пример: игра заканчивается тогда, когда все игроки, кроме одного, остались без карт. Правило вроде бы простое, но оно может наступить после подкидывания карты, после выкладывания первой карты, после того как игрок бьёт (в этом случае ещё возможна ничья).
Это была первая итерация продукта, и она многому научила меня:
1. Я понял, что программирование начинается не с написания кода, а с проектирования, то есть с описания всех компонентов системы и её состояний.
2. Написал свой первый бэкенд на вебсокетах — до этого я работал в учебных проектах только с фронтендом.
3. Подключил базу данных и сделал храенение состояния игры персистентным. До этого базы данных были для меня чем-то непонятным, сложным и магическим.
4. Задеплоил приложение и сделал его доступным публично.
Так или иначе, часы упорного труда, и продукт заработал. Мы даже сыграли разок с моим ментором Толиком. Не знаю, кто победил в той партии, но рабочий продукт ощущался как наша общая победа.
Что мне дал пет-проект
Тут я могу отметить две вещи. Первая весьма практическая. Работая над проектом, я разобрался с фреймворком Next.js, и в итоге получил работу в компании, где как раз использовался этот движок.
Но что ещё важнее, работа над пет-проектом дала мне ясность в том, как развиваться в профессии. Разработка очень обширная тема, в ней нужно очень много знать, и сложно выбрать, за что хвататься. Но когда у тебя есть понятная задача, то из всего этого океана технологий ты можешь выбрать, какие изучать прямо сейчас.
Тем не менее, первая итерация проекта не была лишена проблем и недостатков. В то время я уже получил свою первую работу программистом, и на пет-проект времени стало не хватать. Кроме того, я просто не знал, как решать сложившиеся проблемы, а встречи с ментором пришлось закончить из-за внешних обстоятельств.
Поэтому пет-проект лёг в стол и стал ждать своего времени — ждать, пока я вырасту достаточно, чтобы к нему вернуться. Это и произошло, но расскажу об этом в следующий раз.
Не забывайте ставить лайки и писать комментарии — это помогает мне развивать мой канал. Спасибо!