Нужен совет по поиску работы

Alex7965

Новичок
Наверное эта тема уже обсуждалась не раз, но все-таки.... У меня следующая загвоздка, стажа нет, но есть средний уровень знаний веб-разработки. Что я подразумеваю под средним... На текущий момент Yii, bootstrap, jquery(ajax), в принципе могу и на чистом js, html, css, php, если надо будет. бд mysql (предпочитаю воркбенч). С ооп в рамках фреймворка (короче в дебри, типа рефлексии я не лезу. т.к. свой фреймворк не пишу, но базовые знания неплохие). Темами вроде REST, SOAP интересовался, слушал курсы, но сам пока не писал. SPA тоже рассматривал, но опять таки ничего не писал, да и концептуально spa особняком стоит, пока в это дело лезть не хочется. Я почему эти техн. указываю, потому что постоянно мелькают в вакансиях. Меня приглашают на собеседовании, а в вакансиях yii, angular, react, soap, rest и еще куча всего, я и не еду, не мой уровень. Да и на собеседование часто приглашают неадекватно, у меня в резюме одно, а мне предлагают пройти собеседование на другое.

Есть несколько вариантов, 1) таки ездить на собеседования, может и возьмут. Минус - особо не разъездишься, от нас областные города наход. равноудаленно за 200 км. А в региоальных работу не найдешь. Приглашают на собесед . я так понял скорее всего посредники 2) фриланс биржы - думаю дохлый вариант. 3) Скомпоноваться с кем-то и искать заказы удаленно самим, можно и площадку под это замутить. 4) Битрикс )) Работы много, даже видел вакансию в соседнем относительно небольшом городке, но не хотелось бы.
Какие варианты самые реальные? Может кто поделиться реальным опытом или какими-то идеями. Еще вопрос, у меня свой проект через пару недель будет готов (я вкратце далее напишу). Как думаете мне это сильно зачтется на собеседовании? Стоит его сначала закончить?

Я самоучка, лет 7-8 назад увлекся программированием, много чего перепробовал, но это к теме не относится, поэтому утомлять долгими рассказами не буду. Я пишу свой проект. О сложности судить не могу, т.к. опыта коммерческой разработки у меня нет, но если вкратце, это тематическая площадка, каждый желающий может открыть свой магазин, выложить товары, имеется система обмена сообщениями, система поиска с фильтрацией по категориям, управлением заказами, рейтинги и отзывы, закладки. прочие настройки, ну естественно регистрация, авторизация и т.д. все это в рамках тематики. Писать начинал на CodeIgniter и чистом js. Практически все переписывалось по несколько раз, по мере наработок. Где-то к Новому году я его практически закончил (осталась мелочевка). Но решил все это дело переписать на Yii + jquery, bootstrap, несколько библиотек. Скоро заканчиваю.
 

fixxxer

К.О.
Партнер клуба
Что я подразумеваю под средним...
Судя по твоему описанию, под средним ты подразумеваешь джуниора с некоторыми претензиями на миддла.

С ооп в рамках фреймворка
Использовать готовые классы легко. Самому спроектировать - намного сложнее. Полагаю, что ты этого не умеешь, и пишешь на yii по примерам из документациями, с простынями кода в экшенах контроллера и так далее.

Но решил все это дело переписать на Yii + jquery
Забудь про jquery, в 2018 году он нафиг не нужен.
Yii тоже мало подходит для самообучения, на его примере никогда не поймешь ООП, он умышленно кривой и "срезает углы", это для ряда задач удобно, но для самообучения вредно, поскольку учит плохому.
Как думаете мне это сильно зачтется на собеседовании?
Просто выложи исходники на гитхаб и давай ссылку. Сразу будет понятен твой уровень безо всяких собеседований. (Если ты вдруг думаешь, что эти исходники для кого-то представляют какую-то ценность и тебе в паблик выкладывать жалко, то ты глубоко заблуждаешься, никому оно нафиг не надо). Выложен он в продакшен или нет - это как раз пофигу, на работающий проект никто смотреть не будет даже - если ты, конечно, хочешь устроиться в нормальную команду, а не на галеру клепать говносайты от забора до обеда.
О сложности судить не могу, т.к. опыта коммерческой разработки у меня нет
Тут скорее важнее, что нет опыта командной разработки. Когда нет опытного человека, который на code review покажет тебе все твои косяки, можно надолго застрять на одном и том же уровне: вроде что-то делаешь и оно даже работает, но как понадобится что-то доработать - получается:

все переписывалось по несколько раз
фриланс биржы - думаю дохлый вариант
Российские - да. С английским у тебя как?

Какие варианты самые реальные?
Найти того, кто возьмет джуном на удаленке в хорошую команду, это сложно, но реально (если совсем на удаленке не катит, договорись, скажем, на 3 месяца испытательного срока с последующим переездом, если все ок). Смотреть не на то, сколько платят, а на то, чему ты там можешь научиться. Сразу спрашивай, как устроен workflow, и смотри, что скажут - используют ли issue tracker, используют ли ветки в git, пишут ли тесты, есть ли continuos integration, практикуют ли code review, есть ли требования по стилю кода. Если все это есть (и не на словах, а на деле), устраивайся хоть за еду и учись.
 
Последнее редактирование:

Alex7965

Новичок
Зря полагаете, контроллеры тонкие, все это пройдено про проектирование вообще, шаблоны проектирования в частности, трейты, хренейты и пр. и свои велосипе ды писаны-переписаны. Мне утомительно все это описывать, да и вам не нужно. jquery нормальная библиотека, не вижу смысла ее "забывать", когда знаешь, yii хороший фреймворк, да, достаточно сильно связанный, да и хрен с ним, в этом есть минусы, но и куча плюсов. Фреймворк вообще не проблема, есть документация. есть апи, какие проблемы? Бери какой удобнее.
Насчет командной разработки согласен, юнит и повед. тестирование не все это используют, да и вообще разработку через тестирование не все принимают ка ед.верный путь, но это сейчас модно, согласен. Я чужой код частенько смотрю, в том числе и "студийный", да и чего греха таить, бывает и заимствую, в основном логику конечно. Так вот, 'студийный' не всегда хороший, и неважно что его вероятно тестами покрывали, он от этого лучше не становится. С английским средне, документацию читаю, с разговорным неважно. джуном на удаленку не возьмут стопудово, это мертвый вариант. Спасибо за ответ. Будем думать дальше. )
 

fixxxer

К.О.
Партнер клуба
Это хорошо. Вот была бы ссылка на github, не пришлось бы полагать ;)

Фреймворк вообще не проблема
Это верно. Проблема всегда в архитектуре, фреймворк может разве что мешать чуть больше или чуть меньше.

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

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

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

С английским средне, документацию читаю, с разговорным неважно
Жаль, а то я хотел upwork предложить. Настоятельно рекомендую подтянуть хотя бы до уверенного intermediate, это открывает массу возможностей.

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

ivanov77

Новичок
Зря полагаете, контроллеры тонкие,
А что толстое? AR модель?

Жаль, а то я хотел upwork предложить. это открывает массу возможностей.
Там чисто программирование тоже востребовано?(в отличие от вордпресов и проектов под ключ) Но думаю явно не на yii2 ?
 

fixxxer

К.О.
Партнер клуба

Alex7965

Новичок
Вот я так и подумал, когда услышал что йг это г. , сейчас чел начнет агитировать за ларавел или симфони. )) Английский подтяну. только с проектом закончу и возьмусь основательно. С тестированием сейчас тяжко будет, я и так и швец и жнец и на дуде игрец. )) Если еще и тесты писать буду то еще на полгода затянется. Вообще тестирование (имхо) наверное хорошая штука для командной разработки, этакая дополнительная защита от "дурака", если хотите промышленный стандарт. А для одиночки или маленькой команды может стать непосильной ношей. У нас сейчас часто бывает, берут за основу какую-то методологию разработки и начинают под нее всех грести, и больших и маленьких. А то что эта методология разрабатывалась скорее всего для компаний и корпораций никто в упор не видит. Насчет поведенческого тестирования еще можно подумать, а вот юнит тестирование мне кажется довольно надуманная штука. Хотя как джуниор могу и ошибаться. )
 

Alex7965

Новичок
В АР модели вполне можно писать логику работы с бд. Хотя некоторые прямо из контроллеров пишут, но для меня предпочтительнее первое. Логика связанная с формами пишется в обычных моделях. Да Вы собственно и сами все это сами знаете, если на йи пишите, чего тут дурака валять-то.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
1. на удаленку работу джуниором найти можно вполне, я сам периодически нанимаю, особенно если соглашаться на пару месяцев
2. собеседования приходится терпеть, и надо пройти их хотя бы несколько десятков, чтобы научиться это делать, и чтобы отличать хорошее от плохого,
но физически на них ходить необязательно - мне всегда звонят по скайпу
3. свой проект - это отлично, показывать его очень полезно, и в работе и в исходниках
4. еще отлично можно зайти в open source - сразу будут бить по рукам и показывать на ошибки, тут и для резюме отличная запись, и опыт командной разработки, и фан

я лично учился сам - хороших команд очень мало, но можно делать проекты хорошо, как инвестиции в будущее
 

fixxxer

К.О.
Партнер клуба
Вот я так и подумал, когда услышал что йг это г. , сейчас чел начнет агитировать за ларавел или симфони. ))
Вот эта фраза выдает в тебе немного фанатизма. Если ты внимательно прочитаешь переписку, речь идет о том, что Laravel значительно более востребован на Upwork-е, чем Yii.

В аритектурном же смысле Laravel не менее крив, чем Yii. Он только на первый взгляд снаружи выглядит неплохо, но в деталях и во внутренней реализации там местами тот еще адок.

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

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

В АР модели вполне можно писать логику работы с бд. Хотя некоторые прямо из контроллеров пишут
В контроллерах - это вообще что-то за гранью. Насчет ActiveRecord все верно, в AR по определению смешивается модель и работа с базой, для проектов, где нет сложной бизнес-логики, такой подход нормален. При сложной же бизнес-логике такое объединение скорее мешает, чем помогает, хотя тут проблема не столько в AR, сколько в навязываемом им дизайне "от структуры базы данных".
 

A1x

Новичок
С тестированием сейчас тяжко будет, я и так и швец и жнец и на дуде игрец. )) Если еще и тесты писать буду то еще на полгода затянется. Вообще тестирование (имхо) наверное хорошая штука для командной разработки, этакая дополнительная защита от "дурака", если хотите промышленный стандарт. А для одиночки или маленькой команды может стать непосильной ношей.
тоже так думал когда писал на Yii, потом перешел на Симфони, там PHPUnit интегрирован "искаропки", я не заметил как втянулся, по сути я отлаживаю код через тесты, ты же в любом случае как-то проверяешь работает ли твой код, так почему не делать это в пхпЮните. После начальной настройки фикстур тесты пишутся очень быстро, и некоторые доп. затраты времени окупаются тем что разработка превращается в какой-то предсказуемый процесс вместо танцев с бубном и эти затраты тебе вернутся не раз.

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

fixxxer

К.О.
Партнер клуба
Было бы познавательно взглянуть на такой класс, если есть возможность, покажите пожалуйста.
Модели с бизнес-логикой показать не могу - это собственность заказчиков. Глянь, допустим, domain layer в классическом примере DDD-приложения на PHP и прояви фантазию, мысленно усложни.

Опенсорсить, сам понимаешь, я могу только всякие инфраструктурные штуки. Вот, например, мой JsonRpc-сервер с тестами. Он как бы для laravel, но сделать его framework agnostic несложно, изменений потребуется минимум (вынести laravel-специфику в отдельный адаптер). Имея достаточно полное покрытие тестами, мне даже ни разу не потребовалось его тестировать с реальным приложением - сразу все работало, и добавлял в него фичи совершенно не боясь что-нибудь сломать: когда ломал, сразу тесты валились. Не то, чтобы это показательный прямо пример, но что уж есть.
 

Alex7965

Новичок
Да по поводу большой востребованности ларавеля за бугром я слышал, но этот проект уже естественно буду добивать на йи, дальше видно будет. В принципе я как закончу. кину ссылку, "поругаете" меня, если будет время и желание. ) В принципе можно и какие-нибудь исходники скинуть.

Насчет критики товарища, что 7 лет на одном фреймворке сидел )). Нет, не было такого. Я на СI где-то окло полугода писал, хотя конечно может это и дофига для него. Кстати, ничуть не жалею, для начала он отлично подходит. Много чего я на нем "наизобретал" ). К примеру, что-то вроде фильтра ий или посредника ларавель для авторизации в разделах. полность регистрацию и аутентификацию и пр. С чистого php прыгать в проф. фреймворк не лучшая идея, очень многое кажется магией. Как промежуточная ступень, CI здорово помогает. Короче, шишки набивать надо, без этого никуда.
По поводу хренового кода, ну наверное не без этого ). В принципе, если говорить о "простынях" )), то я задачи декомпозирую. Проблемы могут быть с построением архитектуры приложения в целом. Но опять-таки приложение функционально не настолько сложное, та что и это вряд-ли. Вообще заметил многие любят говорить о правильной архитектуре и шаблонах проектирования, при этом сами явно плавают в теме. Например, стоит ли городить абстракции при написании небольшого конечного модуля во фреймворке. Я понимаю, когда пишется ядро фреймворка, там сплошные абстрактные конструкции по понятным причинам. Еще момент, всякие там курсы, семинары и пр. Про базовые штуки говорят охотно, а свои архитектурные решения или даже просто пример небольшого модуля, хренушки и дело даже не в интел.собствености, просто боятся лажануться. Мне вспоминается книга Симдянова и Кузн., авторов многочисл книг по php и мysql, где они свой студийный фреймворк описали, книга 2008 года, но даже по тем временам он не очень. Многие решения, мягко говоря, так себе. Тем не менее им большой респект. А так смотришь очередной семинар на ютубе от какой-то студии или вуза, чувак рассказывает о шаблонах в общем и ДИ в частности, но видно блин невооруж. взглядом что выучено по бумажке и явно канва слизана у Зандстры, ну спрашивается. нахрен мне тебя слушать, когды ты сам этим явно не пользуешься. С теми же тестами, не встречал материала где у докладчика глаз бы горел и примеры не из серии 2+2. Мне забавно было смотреть в очень известном курсе от специалист Игоря Борисова (при моем безграничном уважении к нему как преподавателю), как он сначала предварив словами ...а теперь погорим о вещах, о котрых ползно знать, но которые вы вряд ли когда-то будете использовать, пофигачил про юнит-тестирование по примерам из офиц. доков. Осваивать практически конечно все равно придется, т.к. постоянно в вакансиях мелькает.
 

Alex7965

Новичок
тоже так думал когда писал на Yii, потом перешел на Симфони, там PHPUnit интегрирован "искаропки".
В ларавеле тоже вроде как-то более естественно это дело работает, как минимум по документации )). Правда я очень бегло с ним ознакомился. А симфони (не знаю. может скажу глупость) по-моему больше подходит для больших команд. Целесообразен ли он для одиночек, малых команд, небольших проектов.
 

Alex7965

Новичок
1. на удаленку работу джуниором найти можно вполне, я сам периодически нанимаю, особенно если соглашаться на пару месяцев
2. собеседования приходится терпеть, и надо пройти их хотя бы несколько десятков, чтобы научиться это делать, и чтобы отличать хорошее от плохого,
но физически на них ходить необязательно - мне всегда звонят по скайпу
3. свой проект - это отлично, показывать его очень полезно, и в работе и в исходниках
4. еще отлично можно зайти в open source - сразу будут бить по рукам и показывать на ошибки, тут и для резюме отличная запись, и опыт командной разработки, и фан

я лично учился сам - хороших команд очень мало, но можно делать проекты хорошо, как инвестиции в будущее
Опенсорс это хорошо, еще если бы взяли.... По поводу собеседования, скайп это отлично, но многие именно настаивают на личной встрече. И то что я за 200 км. только мои проблемы. Кстати, поездки тоже полезны бывают. Хотя бы просто посмотреть как устроена контора. Я года два назад, в пару контор съездил и после сменил, так сказать, свой профессиональный вектор ))) Спасибо за дельные советы. я как закончу свой проект, обязательно воспользуюсь вашими рекомендациями.
 

ivanov77

Новичок
Опенсорс это хорошо, еще если бы взяли.... .
У yii очень много issues и нехватка рук, которые на уровне знания ядра фрейма могли бы им помочь. А еще и версия 2.1. намечается.
Вообще заметил многие любят говорить о правильной архитектуре и шаблонах проектирования, при этом сами явно плавают в теме.
Многих программистов yii2 тролят за то что они, следую документации фреймворка, и той MVC которую они из этих объяснений для себя в голове нарисовали, нихрена не понимают о "правильной" архитектуре, коей в понимании оказывается иcпользование чистых POJO объектов и мапинг их doctrine-ой в бд. Если вы знаете про эту ситуацию, то и хорошо, но многие пока не знают.
 

fixxxer

К.О.
Партнер клуба
коей в понимании оказывается иcпользование чистых POJO объектов и мапинг их doctrine-ой в бд
Бгг, нет. В примерах из документации Симфони и Доктрины POJO и маппинг, однако толку там от этого разделения ровно ноль.

А аббревиатура MVC ничего не значит и только скорее вводит в заблуждение. Тем более, что большинство считают, что Model - это что-то там про базу данных ;)
 

Adelf

Administrator
Команда форума
Я конечно понимаю, что это не звучит, но правильнее POPO :)

Бгг, нет. В примерах из документации Симфони и Доктрины POJO и маппинг, однако толку там от этого разделения ровно ноль.
В смысле?

А аббревиатура MVC ничего не значит и только скорее вводит в заблуждение. Тем более, что большинство считают, что Model - это что-то там про базу данных ;)
Более того, почти каждый уверен, что Model - это активрекорд класс и ничего более.
 
Сверху