Разработка Pet-Project для улучшения навыков

Добрый вечер, уважаемые форумчане.

Хочу своими силами написать pet-project для отработки навыков/технологий, которые так или иначе не используются на боевых проектах. Ну и также, в будущем этот проект хочется показать в резюме.

В связи с этим, прошу у вас совета по поводу выбора предметной области.
Некоторые prerequisites:
Предпочитаемые технологии: Java(7,8); Hibernate; Spring; MongoDB(NoSQL), Postgres, Angular2(4)
Финансовые трудозатраты:готов инвестировать некоторую сумму для аренды серваков
Часовые трудозатраты:500+ часов Junior Java Developer(1+ год опыта работы)

К сожалению, текущая работа не позволяет использовать предпочитаемые технологии, а опыта в них набираться надо.

Буду рад любым вашим идеям и предложениям. Заранее спасибо.

P.S.(1) Я могу ошибаться, но мне кажется, что Java в текущем своем виде предполагает еще наличие и минимального фронтенда (если это не приложение, связанное с машинным обучением). К сожалению, я во фронтенде не силен, если у кого-то будет желание присоединиться — welcome.

P.S.(2) Сайты-визитки мне не особо интересны. Рассматривал варианты неких онлайн-площадок для торговли/фриланса, но они мне кажутся слишком большими для поднятия в одиночку. Следовательно, возвращаемся к предыдущему пункту.

P.S.(3) Open-Source проект — вариант. Но в том опенсорсе, где я нахожусь, главная тема — багфиксинг. Поднадоело. Не дает целостной картины и понимания о том, как должно строиться приложения с нуля

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Я могу ошибаться, но мне кажется, что Java в текущем своем виде предполагает еще наличие и минимального фронтенда (если это не приложение, связанное с машинным обучением). К сожалению, я во фронтенде не силен, если у кого-то будет желание присоединиться — welcome

можно попробовать написать компилятор для js/css/html на джаве (ну по подобию какого-нибудь scala.js например) для прокачки скилов думаю вполне ннорм идея (и вроде я уже как-то кому-то что-то подобное советовал :) )

Если нужна будет помощью с фронтом (Angular 2/4), тогда обращайся.

угу. Ничего не умею только собираюсь отрабатывать навыки и строить приложение с нуля (и задаю глупые вопросы само собой ) но уже нужны сервакИ. А может сразу уже целый дата центр?

Ну может человек себе позволить, что плохого-то?

Напиши генератор идей для Pet-проектов (аггрегатор идей с кучи похожих сервисов, возможно пропущенных через гугл-транслейт).

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

У меня с другом в разработке есть пет -проект — платформа для камеры (хотя саму идею можно изменить разумных пределах).
Я бы хотел к нему при крутить IOT, я сам делаю часть по железу (МК, датчики, приводы), друг делает механику. Если интересно можем обсудить в переписке или скайп.
Для тебя могу гарантировать полную свободу действий.

Собак (кошек, хомяков) тоже заводите для отработки навыков? Учебный проект это называется.

Не пойму, у вас претензия к термину pet-project? Это вроде как общепринятый термин.

Привет. тоже ищу интересный проект для участия в качестве java разработчика. Если идея интересная, я бы присоединился..если вы конечно не против. skype: kunaksergey

В сервак инвестировать необязательно. Можешь развернуть сервак (скажем, линукс или бсд) дома (на виртуальной машине). Можешь баловаться с ним из клиента с другой виртуальной машины/хоста. Можешь, в принципе, даже хостить интернет-сервак из дому.

окей, а сама идея для pet-project?))

Кстати, если не ошибаюсь, то амазон предлагает год бесплатного использования их ресурсов, так что с серваками проблем быть не должно

Там минимальная виртуалка только.. И ограничен трафик.. Но для пэт проекта хватит наверное..

Кoгда имеешь дело с «бесплатным» корпоративным — настоятельно рекомендуется читать любые тексты «маленькими буквами». Т.е. соглашения по пользованию, итп многостраничные документы, часто без рашкоперевода.
А иначе, можно хорошо попасть на баблос.

Причём, вроде, для пользования «бесплатными» сервисами (как у Амазон, так и у Майкрософта) — нужно регистрировать эккаунт сразу с кредиткой.

Эвона как. Спасибо, буду знать.

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

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

Там много странностей. Амазон у меня снимал деньги за RDS при полностью очищенном аккаунте. А в Azure со старта включается распределитель нагрузки за 200$

А есть решение в лоб. Идёшь на ГитХаб и берёшь готовый проект. Любая прокачка компонента решается ощутимо быстрее, когда ОСТАЛЬНЫЕ компоненты уже собраны и работают.

с одной стороны да, с другой стороны написание проекта с нуля дает неплохую общую картину про то, какой должна быть архитектура приложения. Считаю, что таким образом научишься писать красивый и понятный код. Иначе сам запутаешься)

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

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

минимальная часть учится между делом без проблем

Минимальную часть я знаю, просто мне такое показывать стыдно в резюме) Как ни крути, но внешний вид имеет представление(говорю как человек, который работает в демо-отделе компании). На бэкенд многим заказчикам начхать, лишь бы оно не лагало и не выбивало NPE со стектрейсом на фронт.

Из плюсов — вы работаете бесплатно

Скорее минус, потому что если нет финансовой мотивации, то разработчикам пофиг и на качество продукта. Поэтому и хочу, чтобы заказчиком продукта выступал я сам.

Мб я зажрался слегка)

Жизнь короткая. Засношаешься с нуля велосипеды писать, тем более всё равно НЕ с нуля, но просто собирая по кусочкам и обрывкам всё равно чужой код.

Так не лучше ли взять СОБРАННЫЙ пазл, будучи уверенным что все элементы есть в комплекте — и уже тогда менять то, что готов прямо сейчас изучать.

Я больше скажу, это задача тоже не из простых. Сборка пазла, даже готовыми скриптами, может в раз убить тебе неделю времени, и ещё неделю на понимание несовершенства мира, и ОГРОМНОГО КОЛИЧЕСТВА БАГОВ которые работодатель именует «умение читать чужой код». Вот точно говорю, так чтобы скомпилить проект и всё заработало как часики — у тебя больше шансов в рулетку выиграть трижды подряд.

Угадай с одного раза, есть ли там сообщения об ошибках. Если есть — информативны ли они, или классика майкрософта: «не удалось » + исходная задача. А если информативны — соответствуют ли они тому, что на самом деле. И вот когда перерыв с десяток комьюнити ты найдёшь ответ САМОГО РАЗРАБА, что оказывается с версией 0.98.7 работать не будет (хотя он сам, самка собаки, это обещал для этой версии в оффициальном комьюнити), а нужна версия 0.96.1b, притом СИСТЕМНОЙ библиотеки — уверяю, иммунитет против индусо-кодинга проявится сразу, и возможно твоей первой же правкой будет рефактор версии так чтобы работала — вероятнее всего удачно, тем более что там всего 2 строчки кода было поправить.

Если же сам будешь писать с нуля — окажешься в ситуации этого самого разраба, которому «некогда», который ненавидит юзеров за то что у них руки не из того места (видите ли не могут за разраба дописать его код). А всё потому, что по глупости выбрал неправильный путь: изобретать свой велосипед.

Я намекну: в этом мире изобрёл вилосипед никто. В нём десятки тысяч мелких разработок и доработок. И смирись, что с нуля ты ничего никогда не напишешь. Вообще ничего. Что бы ты не взял в руки, даже «бесплатное», в нём уже чужого труда на сотни тысяч баксов минимум, а чаще на миллионы. Бесплатна — лишь КОПИЯ. Вот потому хочешь учиться — учись копипастить. Мы все это делаем, по крайней мере все у кого есть дедлайн.

Говорят, Бог создал мир за 6 дней. Но только написание документации заняло пару тысяч лет. Даже руководства пользователя нет по сей день. Да что там говорить, даже сказку про это всё ещё переписывают.

Отличный ответ.

Попробую оппонировать. С высоты моего невысокого джуниорского опыта, в мире программирования я заметил две вещи. Идеи и инструменты. Инструменты (aka велосипеды) и вправду далеко не совершенны. Нужно будет покопаться в документации, чтобы человеку без опыта склеить воедино парочку фреймворков да залить это все на томкат(для начала). И это, если еще есть документация. И это просто чтобы вывелось на экран ’Hello, (username)’. (Ах, мир enterprise жесток и беспощаден).

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

Другое дело, идеи. Они фундаментальны и неподвижны, как дедушка Ленин в мавзолее. И более того, мне кажется, хоть я и не могу утверждать однозначно, но некоторые концепции(к примеру, паттерны программирования) появились уже после того, как разработчики написали свои первые велосипеды и они поняли, в какую задницу может пойти дело, если не дай бог, надо будет внести какое-то изменение в системе. Я не спорю, что некоторые идеи заменяются новыми, все развивается и модернизируется... Но за счет чего оно развивается и движется? Мое мнение — из-за того, что мир несовершенен и есть люди, которые хотят облегчить разработчикам жизнь, внедряя новые концепции и тем самым порождая новые баги.

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

Ты не представляешь, насколько глубока бывает человеческая тупость. И насколько её много в плане интеграции софта в единый проект или другие проекты. А времени она тратит бесконечное число.

ЕСЛИ ты с ней столкнёшься (а ты столкнёшься) — это не значит что ты чему-то научишься. Потому что все нестыковки — индивидуальны. А поиск крупицы истины в мегатоннах дерьма скорее вынесет тебе мозг, чем чему-то научит.

Невозможно мозгом понять где и что имел автор каждого конкретного куска кода. И начинать собрать пазлы нужно с БОЛЬШИХ кусочков, где надо несколько компонентов составить — и готово. А уже потом переходить к мелким. По-другому никогда не получится. Ну не сможешь ты решить уравнение с 20-ю неизвестными, не видя самого уравнения и не зная где искать его части.

Программирование — гуманитарная наука. На 100%. Всё точное за тебя выполнит компьютер.

Есть идея, где я буду делать фронт енд, а ты бекенд на джаве.
Напиши в скайп — madmazelkin
Расскажу поподробнее.

Підписатись на коментарі