• Как из Team Lead вырасти до CTO?

    voidnugget
    @voidnugget
    Программист-прагматик
    Нужно
    1. Хорошо понимать как масштабировать приложения, как вертикально так и горизонтально. Как на запись так и на чтение. Внедрять различные наукоемкие вещи по потребности.
    2. Понимать недостатки всех существующих решений и как их можно разрешить. Как правило 80% всего-всего - банальный CRUD, и в большинстве случаев это тонны копи-постного кода аля "одна табличка - один контроллер" без 3-4 нормальной формы модели БД. Со стороны браузеров тоже очень много нюансов. Нужно понимать все эти проблемы, некоторые из них пытаться решить - привлекать людей и создавать новые проекты и сообщества.
    3. Поддерживать реюзабельность, относительно простую поддержку и внедрение всех компонентов системы, внедрять SOA с хорошим покрытием тестами, не пренебрегая профилированием, фаззингом и нагрузочными тестами. Профилировать всё и вся нужно уже с самого начала работ.
    4. Правильно расставлять приоритеты и производить детальную выработку всех требований. Очень много времени в пустую тратится из-за неправильно сформулированных требований и плохо подобранные инструменты.
    5. Понимать как мотивировать существующий персонал, пытаться понять что побуждает людей к работе и какие у них внутренние цели, как правило деньги людей не мотивируют. Относится ко всем как к "ослам и морковке" очень глупо.
    6. Понимать возможные когнитивные искажения и психологические компенсаторные процессы у существующего руководства и коллектива, быть ключевым звеном на пути к их разрешению.
    7. Правильно делегировать свои собственные полномочия - иногда на всё это вас не хватит, нужно давать возможность другим решать все вышеописанные вопросы и проявлять инициативу.
    8. Нанимать и работать с людьми которые заинтересованы в развитии и перспективах вашего продукта, а не просто "делать что скажут за деньги" - так вы не сможете построить действительно конкурентоспособный продукт.
    9. Вдохновение не вечно - люди не смогут постоянно делать одно и тоже, нужно понимать что программисту лучше чувствовать себя художником нежели мясником в цеху рыбообработки.
    10. Понимать что названия должности не должны решать как будет работать коллектив - люди должны быть взаимозаменяемы, и они должны уметь анализировать и предлагать варианты решения задач для других. Чем больше мнений - тем точнее сформулированы требования и подобраны инструменты. Зацикливаясь на специализации и должностях - ваш BusFactor всегда будет 1-2, и в сложную минуту это сыграет злую шутку с вами и вашим коллективом.

    Если у вас будет подобный опыт организации - для вас не важно будет название вашей должности, вы просто создадите контору в которой всем будет приятно работать. И если вам не отдадут CTO, или около того, я уж и не знаю что там за тараканы в головах CEO и стейкхолдеров.

    А вообще дело обстоит так что 80% проектов работают без вменяемого руководства и индивидуального подхода, не имеют жизнеспособной бизнес-модели и MVP, часто продают вакуум, плодят "грибных менеджеров" и "менеджеров-чаек".

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

    p.s. мне предлагали CTO, но на практике все обстоит так что организовывать всё-всё приходится с нуля без каких либо гарантий нормального сотрудничества.
    Ответ написан
    3 комментария
  • Какой монитор выбрать для мака.(для работы с изображением)?

    lamer350
    @lamer350
    กำลังสูงสุด
    Чисто по цветам и качеству картинки хорош LG 27UL650, но придется масштабировать интерфейс мак ос до 2560x1440, думаю для работы с фото не сильно имеет значения, с текстом сложно - так как будет мыльновата картинка (как и на любом 27" 4к мониторе). Зато у монитора практически нет глоу и практически идеально равномерная подсветка, чуток не дотягивает до макбука...
    Ответ написан
    4 комментария
  • Паттерн Фабрика или Фасад?

    Zifix
    @Zifix
    Barbatum
    В данном случае, вы запутались в паттернах, потому что на самом деле они вам и не нужны. Просто сделайте, как считаете нужным, без переусложнения. Если окажется, что работать с получившейся обвязкой неудобно — отрефакторите.

    Как два программиста хлеб пекли +

    Вот тут в комментах товарищ отлично излагает:

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

    Паттерны это сборник примеров того, как можно сделать. Не образец для подражания, не набор готовых блоков.

    Если обратиться к реальной архитектуре, в смысле домов, то мы увидим что из готовых блоков можно построить хрущевку, в 3 этажа или в 5, в 5 подъездов или в 10. Но ничего кроме хрущевки нельзя. Ни мост, ни любое другое нормальное здание. Только тупую панельку.

    Вот тоже и с паттернами. Паттерны не подменяют и не заменяют умение проектировать. Да, они задумывались для этого, но эта попытка провалилась. Даже если ты из лего замок строишь, нужно понимать что ты делаешь, а не бездумно блоки совать.
    Ответ написан
    2 комментария
  • Какой ноутбук выбрать для backend разработки в 2020 году?

    y0u
    @y0u
    dev
    Много знакомых бекенд девелоперов работает на прошках 15го года и всё ок.
    У меня прошка 16, все работает отлично (я фронтенд разработчик), но полагаю, раз на прошке 15го работают, то новая прошка точно подойдет.
    Ответ написан
    2 комментария
  • Используют ли профи верстальщики Bootstrap?

    @xenonhammer
    Интересно, откуда появляется такие мнения? Нет, профессиональные верстальщики не пользуются ни сетками, ни вообще фреймворками, потому что ТРУверстальщики обязаны сами себе писать фреймворки и библиотеки, иначе засмеют и уволят)))))

    Иногда дизайн макета изначально сделан дизайнером под бутстрап (и не только сетка, а вообще дизайн), в этом случае никто в своем уме не будет гарадить гриды и флексы. Ты же когда хлеб хочешь покушать, не печешь его, а идешь в магазин. Фреймворки нужны чтобы жизнь стала проще. Иногда, никто не будет подключать бутстрап из-за того что контролируют производительность, но это уже команды и среде-крупные проекты, а такие вещи узкоспециализированы и функционалы бутстрапа им просто не нужны, и они экономя каждый килобайт пилят свой идеальный продукт.
    Ответ написан
    3 комментария
  • Какую использовать среду разработки C под Windows?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Ответ написан
    Комментировать
  • Как мне выйти из биоса?

    SagePtr
    @SagePtr
    Еда - это святое
    Жёсткий диск накрылся, судя по симптомам и его отсутствию в списке приоритета загрузки.
    Ответ написан
    6 комментариев
  • Как в связке nginx+php71-fpm+yii настроить очередь запросов?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    и отдает он очередью именно этому клиенту, если параллельно буду заходить на сайт с другого окна из режима инкогнито у него своя очередь и страницы будут открываться

    Похоже на то, что к файлу сессии параллельно не может доступ получить другой процесс. Обычно для решения похожих проблем сессии выносят в тот же Redis.
    Но и тут могут быть проблемы: https://habr.com/ru/post/318836/
    Ответ написан
    1 комментарий
  • Как предоставить права доступа в линукс к множеству файлов?

    @pfemidi
    Тут могло бы быть краткое описание меня
    man chmod

    chmod всё это позволяет сделать. Например

    chmod -R gu+w,o-w,a-x+rX *

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

    Ну или уже сказал DevMan:

    find /home/test -type f -exec chmod ТУТ_ТРЕБУЕМЫЕ_ПРАВА {} \;
    Ответ написан
    Комментировать
  • Как массово править куски кода?

    sim3x
    @sim3x
    Сделать рефакторинг
    Исправить в одном файле
    Ответ написан
    4 комментария
  • Как ко мне могут удаленно подключится с помощью ssh ключа, linux?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    Да. Только они белый адрес будут прописывать. Поэтому пробрось 22 порт наружу.
    Ответ написан
    3 комментария
  • Как сделать в PHP уникальное имя файла при загрузке исходя из его содержимого MD5?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    А зачем md5 всего содержимого? Если файл большой очень? По моему достаточно md5 от текущего времени + md5 названия файла.
    $new_name = md5(strtotime('now')).'_'.md5($_FILES['file']['tmp_name']);
    Ответ написан
    6 комментариев
  • Протокол WPA/WPA2-PSK и его взлом?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Читайте книжку Kali Linux Wireless Penetration Testing - там написано и как это работает, и какие есть популярные виды атак, и, разумеется, примеры с подробными разъяснениями.
    Ответ написан
    4 комментария
  • Разобраться со сборкой игрового ПК?

    @nfire
    Выкиньте i7 и поставьте 5. Освободившиеся деньги на память, блок питания и винты.
    Ответ написан
    Комментировать
  • Зачем нужны миграции?

    @pudovMaxim
    web-developer
    Нужно разделять БД на части: структура, служебные данные и рабочие данные. Структура мигрирует - в нее входят схема, таблицы, ключи и все такое. Служебные данные - например данные таблицы со статусами какими-то, может мигрировать, но тут нужно быть аккуратным(эти данные в нормальном режиме статические и необходимы для работы кода). А остальные данные - то есть пользователи там, посты, товары - это все не мегрируется. Их целостность лежит на других механизмах - например бекапы.
    Ответ написан
    4 комментария
  • С чего начать изучение Linux (в целях освоения Kali Linux)?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Понять, с какой сборки стоит начать

    Сходите на distrowatch.com - там есть рейтинг популярных дистрибутивов (и не бойтесь брать ubuntu - ей не только домохозяйки пользуются).

    Научиться взаимодействовать с консолью (основные команды и пр.)

    • Скотт Граннеман - Необходимый код и команды
    • Алексей Береснев - Администрирование GNU/Linux с нуля

    Тут главное практика, не стоит пытаться запомнить сразу все - со временем все, что нужно, само запомнится.

    Получить понимание основ (что из себя представляет файловая система и пр.)

    Гуглите книги для системных администраторов - на тостере уже не раз спрашивали. Все они более-менее про одно и то же, так что берите какая больше понравится. В процессе чтения будет очень не лишним попробовать понастраивать разное серверное по и посмотреть что оно из себя представляет - есть документация для ubuntu server на русском.

    с английским не дружу, но никогда не поздно начать

    Самое время начать, поскольку к моменту, когда вы поймете основы и захотите чего-то большего, окажется, что очень многие интересные книжки по теме тестирования на проникновение (в частности от packt publishing) будут только на английском.
    Ответ написан
    1 комментарий
  • Как настроить SSH в VirtualBox?

    borisdenis
    @borisdenis
    Ленив и вреден...
    При установке убунты Вы создавали пользователя и указывали ему пароль, поэтому в user name указываете этого пользователя либо root, а в пароле - пароль данного пользователя, который вводили при установке убунты
    Ответ написан
    1 комментарий
  • Как настроить SSH в VirtualBox?

    GavriKos
    @GavriKos
    Юзернейм - тот, от имени какого пользователя вы хотите стартовать сессию SSH. Естественно пользователь ОС-и на виртуалке.
    Ответ написан
    Комментировать
  • PHP: $a%$b vs bcmod($a, $b)?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Проблема данной функции в том, что она наотрез отказывается работать с числами типа float, исключительно работает с int

    Могу посоветовать этот пакет: https://bitbucket.org/zdenekdrahos/bn-php
    Работать с ним как-то так в вашем случае:
    $eval = new \BN\Expression\ExpressionEvaluator();
    $operators = new \BN\Expression\OperatorsFactory();
    $eval->setOperators($operators->getOperators(array('%')));
    echo $eval->evaluate('10 % 2.1'); // 1.6
    Ответ написан
    Комментировать
  • Почему говорят, что ООП это зло?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Парадигма программирования навязывает (в нейтральном смысле слова) определенный образ мышления при анализе и декомпозиции задачи. Говорить что ооп это зло все равно что говорить что вегетарианство это зло. Другая перспектива она не лучше и не хуже - она другая. Domain Driven Design это подход к декомпозиции задачи для впихивания ее в объектно-ориентированную модель так чтобы обьекты/классы соотносились с обьектами реального мира из области применения. Логично. Просто когда это все объекто ориентированное добро начиналось люди писали классы просто чтобы впихнуть туда свои функции, и класс был просто контейнером функций и не был вроде как по сути объектно-ориентированным. Оно и до сих пор часто так. Эти всякие ConnectionManager, CoreUtilInitializer и прочее, попытка разделить классы по задаче в алгоритмической иерархии а не в соответствии с реальными действиями пользователя. Ну вот оттуда эта вся дискуссия на тему и произрастает. Художники гиперреалисты говорят мол нужно больше деталей, а абстракционисты говорят -меньше. И те и те художники. Так что переживать не о чем, правда у каждого своя :)
    Ответ написан
    1 комментарий