>senior не-фронт-ендщик обязан знать базовые и расширенные возможности SQL
Теперь вроде и фронтендщикам надо это знать — базы делают прямо в браузерах
Если у вас есть какие-то отчёты в приложении, будь то отчёт по кассе или статистика убитых мобов, то в 95% случаев правильно будет использовать группировку на уровне СУБД (писать ручками запрос или использовать какой-то билдер — это на вкус, но без понимания что происходит на уровне базы вряд ли что получится хорошее — на днях вот оптимизировал отчёт, вешавший базу на два порядка? просто перечислив поля, которые реально нужны и добавив в группировки ORDER BY NULL). А ещё в 4% — сделать денормализацию и агрегировать триггерами.
Если человек не может внятно ответить по having и group by, то SQL он явно не знает.
Быстро нагуглить мало, нужно органично интегрировать в проект. Как минимум поставить обработку ошибок и крайних случаев (в примерах часто этого не приводится) и сделать именование нормальное.
Нормальная поддержка Юникода и параметрический полиморфизм навскидку.
Это есть в PHP :)
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; $container = new ContainerBuilder(); $loader = new PhpFileLoader($container, new FileLocator(__DIR__)); $loader->load('services.php');И конфиг
<parameters> <!-- ... --> <parameter key="mailer.transport">sendmail</parameter> </parameters> <services> <service id="mailer" class="Mailer"> <argument>%mailer.transport%</argument> </service> <service id="newsletter_manager" class="NewsletterManager"> <call method="setMailer"> <argument type="service" id="mailer" /> </call> </service> </services>
> работаю с тем, что дают.
От этого не уйдёшь сменой стэка.
Есть нюанс: знать на одинаковом уровне два языка, вернее две экосистемы автоматически означает большую квалификацию.
Разница есть, если предыдущий разработчик всё это использовал, а если нет... А так и в пхп есть PSR, есть composer (да и PEAR ещё используется).
Вероятность значительного уменьшения дохода — риск финансовый, вероятность что проект, в который вложил все силы и душу, закроется — риск личный. Вероятность что придётся учиться жить более скромно (а то и бегать от кредиторов :) - выход из финансовой зоны комфорта, вероятность, что придётся пахать по 16 часов в сутки без выходных без профита, — риск личный.
Многие согласны на личные риски (то есть пахать как негры, вкладывая душу, без гарантий что проект взлетит), но не согласны на финансовые (уменьшение доходов), в расчёте, что если взлетит, то овертайм и душа будут вознаграждены долей в прибылях. Интересно как к таким относятся потенциальные инвесторы?
Самое популярное обычно — поиск партнёра, который профинансирует дальнейшее развитие продукта, организует монетизацию и т. п. Грубо говоря, продажа доли. То есть оцениваем по первому пункту и получаем N% от этой оценки, а дальше трудо- и финансовые затраты согласно долям.
Три пути:
1. Нарабатывать опыт/портфолио любой ценой (мелкий фриланс, опенсорс, свои проекты, пускай никому включая самого себя ненужные) в свободное от основной работы время
2. Активно искать вакансии, где нужно и то, и то (вот буквально на днях приглашали — нужен пехепешник, но хотя бы начальные знания питона будет большим плюсом).
3. Активно искать вакансии, где главное потенциал и общий бэкграунд, а не конкретные знания. Единственное приготовьтесь, что будут проверять очень жестко те знания, которые заявляете: скажем, если говорите что знаете http, а основной язык долгое время был php, то будьте готовы за час написать простейший веб-сервер на php. Именно сервер, который висит демоном, слушает
Советую подписаться на тематические гугл-группы, посещать форумы и т. п. и проявлять там активность, время от времени добавляя что вообще-то вы пэхепешник, но в * влюблены и ищите возможность «сбежать» — могут быть личные предложения.
Типа смарти в питоне джинджа, а типа джанги первый зенд или кодеигнитер, если вы понимаете о чём я :)
Попадётся вам проект, который я на питоне писал и питон перестанет нравиться.
А вот реально зачем вы пишите джависту про вакансию, где питон в требованиях? Не в обязанностях.
Именно квартиру меньше чем за 500 баксов в 20 минутах на общественном транспорте мне и предоставили чтобы я переехал в Киев из Питера. Параллельные предложения из Москвы такого не обеспечивали.
Наверное, следует различать финансовые риски и комфорт и личные.
Думаю за указывали в тех долларах, что можно купить в обменниках. Ну или продать :)
Думаю, многие выбирают, поведение извне выглядящее как ПА, лишь потому что не считают свои интересы задетыми. Работу работают, деньги получают — интересы не задеты. А что кто-то там дёргает или не прислушивается к мнению — корпоративная культура, принимаемая как данность. Высказывать своё мнение, когда его не спрашивают, идти на обострение конфликта (если считать наличие отличного мнения конфликтом) и т. п., когда твои интересы не затронуты... Зачем? Менеджмент не смог «заставить» воспринимать интересы фирмы/проекта как свои собственные и если даже видишь что-то что им может навредить, то не имеешь интереса об этом сообщать и, тем более, идти из-за этого на конфликт.
Скажем, про те же комментарии. Тимлид их не пишет, один раз сказал ему, что их наличие помогло бы быстрее разбираться с его кодом, но понимания не получил: «жираф большой — ему видней». Видимо его вполне устраивает текущая скорость. Доказывать что-то, искать поддержку у авторитетов, считать метрики и т. д. — зачем?
Вообще говоря правильно пугают. Ведь сейчас задачи стоят такие, что мало чтобы программа работала, нужно чтобы она работала заметно лучше чем аналогичная программа хотя бы на Си с использованием всех оптимизаций современного компилятора. То есть железо нужно знать лучше чем разработчики компилятора — явно не для новичков. Вообще субъективно 90% решаемых сейчас на ассемблере задач (я про PC-платформу если что) — это включение в Си-библиотеки использования различных фич новых процессоров типа хардварного шифрования в случае если процессор их поддерживает, а компилятор не додумался.