• Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Что обязан знать системный/веб-программист?

    @Mintormo
    Системщику однозначно надо знать C, C++ и ассемблер. Веб-программисту... Есть два основных направления в веб-разработке: фронтенд (создание всего того что видит конечный пользователь) и бэкенд (создание серверной части которая выполняет основную работу). Как уже было упомянуто выше, пробуйте все до чего руки дотянутся. Иного способа найти себя нет. Что касается английского, советую как можно больше читать на нем. Школьный уровень это ни о чем.
    Ответ написан
    Комментировать
  • Что должен знать разработчик ПО?

    hahenty
    @hahenty
    ('•')
    ГОСТы на программные средства и робототехнику. Так как серЪёзную разработку заказывают большие фирмы, их продукция должна быть поддерживаема и сопровождаема на таком уровне, чтобы чиновник посмотрел на штампы и отстал.
    Ответ написан
    Комментировать
  • Что должен знать разработчик ПО?

    С (не С++, классы тяжеловаты для микроконтроллеров и по объему кода, и по быстродействию), схемотехника
    Знание ассемблера пригодится
    Ответ написан
    Комментировать
  • Что должен знать разработчик ПО?

    whiteworking
    @whiteworking
    ¯\_(ツ)_/¯
    C++(или assembler)
    Ответ написан
    Комментировать
  • Что должен знать разработчик ПО?

    myjcom
    @myjcom
    Знание цифровой и аналоговой схемотехники
    Знание архитектуры микроконтроллеров
    Знание методов разработки/отладки/тестирования, проектирования программного обеспечения
    Знание C. Владение IDE (Atmel Studio, IAR, Keil, Eclipse и т.п.).
    Умение работать с системами контроля версий.
    Умение читать принципиальные электрические схемы.
    Опыт работы с микроконтроллерами ARM, AVR, STMxx, PIC
    Уверенное владение основами работы в Linux/Windows.
    Программирование на любом языке для написания вспомогательного ПО
    Начальные знания ТАУ‚ САУ
    ГОСТ и МЭК.

    + всякие протоколы.
    и на крупных предприятиях высшее техническое образование.
    Ответ написан
    Комментировать