PHP Интервью
41 subscribers
17 photos
1 video
8 files
34 links
Помогаем PHP-Джуниорам пройти собеседование и устроиться на работу.
Делимся о чем спрашивают на собеседованиях
Предварительное собеседование с автором канала
Советы как правильно составить резюме
Авторские статьи и видео-обзоры

Автор @fxdev
Download Telegram
В этой группе я буду делиться различным материалом, который раскрывает все вышеописанные темы и направления.

Что будет еще:
Мы будем изучать вопросы, которые часто задают на собеседованиях;
Учиться правильно составлять резюме;
Я буду публиковать тестовые задачи для закрепления материала;
Книги на тему программирования;
Авторские статьи и видео-обзоры
Хакатоны и конкурсы для участников канала;
Менторство на время испытательного срока;
Немного программерского юмора;

И многое другое!
🔔 Однажды мы с коллегой поспорили, кто из нас круче, как программист! Конечно, это выглядело как ребячество, но тогда мы в серьёз задумались, как же это выяснить. И кое-что придумали.

Мы нашли в интернете несколько интересных задач, с которыми ни одни из нас еще не сталкивался и начали их решать одновременно.

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

Он тогда не знал, что я ночами на пролёт прокачивал свой навык решения задач, находя их в интернете, а через какое-то время появилось это:

👉 https://app.justcoding.ru/

Великолепный сервис с большим набором задач и автоматической проверкой решения. Решайте по 5-7 задач в неделю или больше. Так вы прокачаете не только навык решения задач но и ближе познакомитесь со стандартными функциями PHP.
📗 Веб-программирование начинается с интернета, а интернет начинается с протоколов TCP/IP.

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

Книга "TCP/IP — Сетевое администрирование" как раз об этом! Не обязательно читать её до конца, достаточно внимательно прочитать первые главы, в которых описывается основные принципы работы и взаимодействия компьютеров внутри сети.

Так же будет очень полезно почитать о таком понятии как RFC (Request for Comments).

👉 https://ru.wikipedia.org/wiki/RFC
🤔Как ни крути, но получить хороший опыт можно лишь с реального проекта. Вариантов тут не много, либо начать что-то делать для себя, либо найти проект на фрилансе и выполнить его бесплатно, либо устроиться на работу по вакансии PHP-Джуниор.

1⃣Вариант начать что-то делать для себя выглядит, как самый перспективный, но на деле самый сложный. Очень сложно, каждый день, заставлять себя делать работу, которая в итоге не будет вознаграждена, даже осознавая, что вознаграждение есть полученный опыт.

2⃣ Взять проект на фрилансе, тоже вариант, но есть риск испортить себе репутацию в самом начале карьеры, потому что задача может оказаться не по зубам.

3⃣ Остается последний, на мой взгляд достаточно надежный вариант, найти вакансию PHP-Джуниора. Весь фокус в том, что компания, которая берет к себе на работу Джуниора — прекрасно понимает все риски и готова инвестировать в вас, хоть иногда и требуя взамен некую расписку, что вы не убежите, как только чему-то научитесь. Дополнительным бонус будет наличие наставника, который поможет ознакомиться с текущим проектом и будет помогать с будущими задачами.

Но как попасть в такую компанию и успешно пройти интервью с местным Тимлидом?
📖 Начните читать!

Перед тем, как начать предлагать себя IT компаниям, стоит хорошенько подучить теорию! Очень часто начинающие (и не только) программисты уделяют очень много времени практике, при этом совершенно упуская из виду теорию.

Огромное количество кандидатов не могут ответить даже на самые базовые теоретические вопросы. Диапазон их знаний жестко ограничен их практикой.

Как часто вы пользуетесь фразами: «Не знаю, что это, я с этим еще не работал» или «На практике я с таким не сталкивался, но что-то слышал об этом на Хабре». Вы Джуниор и нет ничего страшного в том, что вы не сталкивались на практике с какими-то технологиями, но вы как минимум могли изучить теорию.

Изучив теорию, вы бы отвечали: «Я не сталкивался с этим на практике, но отлично знаю, как это работает в теории и буду рад применить свои знания в вашем проекте» или «Да, я прекрасно понимаю, как это работает, хоть и не сталкивался с этим в работе». Звучит совершенно иначе, правда?

Практика безусловно необходима начинающему программисту, однако теория не менее важна и в идеале довести соотношение к 60/40 (практика и теория соответственно).
Начните читать уже сегодня
📖 Читать техническую литературу довольно сложно.

Вот ошибки, которые следует избегать при чтении технической литературы:
🚫 Нельзя читать вечером или перед сном т.к. в конце дня наш мозг уже истощен и плохо воспринимает информацию.
🚫 Не стоит читать залпом несколько глав подряд.
🚫 Нельзя продолжать читать, если вы упустили нить понимания того, что читаете.
🚫 Зазубривание информации.

Рекомендации для чтения технических книг:
Читать лучше маленькими порциями — абзацами.
Если в книге встречаются незнакомые термины, то лучше уточнить их значения и только потом продолжить чтение.
Необходимо учиться находить в прочитанном важные моменты и выписывать их в заметки, повторное изучение материала можно провести на основе ваших заметок.
Техническую информацию важно понять, а не просто запомнить. Что бы улучшить понимание информации можно мысленно представлять её применение.
Читайте часто, но понемногу, в течении всего дня. Для этого загрузите книгу к себе на телефон или используйте электронную читалку.
👉 https://app.justcoding.ru/

Великолепный сервис с большим набором задач и автоматической проверкой решения. Решайте по 5-7 задач в неделю или больше. Так вы прокачаете не только навык решения задач но и ближе познакомитесь со стандартными функциями PHP.
Всем доброго дня!

🤝 Меня зовут Андрей мне 34 года
Я живу в городе Сочи.

Программирую я с 14 лет. За это время я успел написать программы на разных языках от Pascal для DOS, Delphi для Windows и теперь PHP для Web! В данный момент занимаю позицию Тимлида в одной крупной Московской IT компании.

Мне очень часто приходиться проводить интервью с программистами разного уровня и порой на это уходит до 30% моего времени. Я постоянно замечаю одни и те же ошибки у кандидатов. Всегда советую, как им лучше подготовиться в следующий раз. Рассказываю какие книги они могли бы прочитать, перед тем как приходить на интервью.

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

Если вы начинающий программист, который изучал PHP самостоятельно или вы закончили онлайн курсы, но пока не решаетесь или не получается пройти интервью и устроиться в хорошую IT компанию — этот канал вам обязательно поможет!

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

Термин YAGNI значит You Ain’t Gonna Need It – вам это не понадобится! Его суть в том, чтобы реализовать только поставленные задачи и отказаться от избыточного функционала.

KISS – Keep It Simple, Stupid – не усложняй! Смысл этого принципа программирования заключается в том, что стоит делать максимально простую и понятную архитектуру, применять шаблоны проектирования и не изобретать велосипед.

DRY – расшифровывается как Don’t Repeat Youself – не повторяйся, также известен как DIE – Duplication Is Evil – дублирование это зло. Этот принцип заключается в том, что нужно избегать повторений одного и того же кода. Лучше использовать универсальные свойства и функции.
​​🦖 В вакансиях на разработчика часто используют термины backend, frontend или fullstack. Давайте разберемся, что это значит и как понять подходит ли это нам.

Прежде чем вникать в суть этих терминов, я бы хотел рассказать о таком понятие, как stack разработки. В разговоре двух программистов можно часто услышать фразу типа «А какой стэк ты используешь для этого проекта?». Под стэком подразумевают набор программ и библиотек, которые программист используют в конкретном проекте.

Например, сегодня самый популярный backend стэк для создания веб-сайтов это веб сервер nginx, язык программирования php, база данных mysql и какой-либо фреймворк или CMS на выбор. Если коротко, то nginx, php, mysql, yii2/bitrix/wordpress.

Стэк для backend разработчика и frontend разработчика сильно отличается и это важно понимать. А теперь давайте перейдем к терминам backend и frontend.

Фронтенд — все, что браузер может читать, выводить на экран и / или запускать. То есть это HTML, CSS, JavaScript и сопутствующий набор библиотек. Стэк для frontend это обычно nodejs, javascript, react/vuejs/angular, html, npm и т.д.

Бэкенд — все, что работает на сервере, то есть «не в браузере» или «на компьютере, подсоединенном к интернету, который отвечает на сообщения от других компьютеров». Стэк backend это обычно php/python/ruby, nginx/apache, composer, mysql/postgesql, yii2/ symfony/laravel, bitrix/wordpress/drupal, redis/memcache, sphinx/elastic и другие.

Думаю, теперь станет понятно, что означает fullstack разработчик. По сути это 2 в 1. Человек, который владеет стэками backend и frontend разработчика. Еще его называют «Человек-оркестр».

А каким стэком пользуешься ты ?
​​📨 Если вы собираетесь искать работу и готовите резюме, то обязательно обратите внимание на свой email. Вероятно, вы его регистрировали очень давно, когда еще не думали о своей карьере в IT.

Встречают всегда по одёжке, а первое, что может предоставить программист перед интервью — это резюме и свой личный email. И так уж повелось, что у каждого почтового хостинга имеется репутация. Я всегда советую почтовый хостинг gmail.com и не советую mail.ru. А еще можно зарегистрировать свой домен и на его базе создать почтовый ящик.

Email должен быть строгий и серьезный. Он должен подчеркивать ваши намерения. Отличный вариант имя и фамилия объеденные точкой или нижним подчеркиванием. Если вы стесняетесь своей фамилии, то можно использовать имя и отчество. Бывает так, что ваше имя и фамилия уже заняты, в этом случаи вы можете просто попробовать использовать другой почтовый сервис.

Например:
ivanov.ivan@gmail.com
Ivanov_ivan@mail.ru
Ivan.ivanovich@rambler.ru
🐧 В каждой IT компании существуют определённые правила для разработчиков и порой они диктуют программисту в какой операционной системе необходимо вести разработку.

Вы скорее всего уже привыкли к Windows и вероятно даже не слышали о других операционных системах. Но на самом деле Windows далеко не самая приспособленная ОС для WEB-программирования.

Какие есть варианты ?

Отличной альтернативой может стать ОС Ubuntu. Это Linux система, которая была в значительной степени переработана в угоду повседневным бытовым задачам. Она не сильно отличается от Windows визуально, но при этом имеет огромный потенциал, доставшийся от семейства Linux.

Преимущества Ubuntu
— Высокий уровень безопасности;
— Отсутствие вирусов для данной ОС;
— Абсолютно полный набор программ необходимых для web-разработки;
— Удобный менеджер пакетов для установки программ;
— Полноценная командная строка;
— ОС Ubuntu бесплатная;
— Производительность;

Если раньше вы никогда не слышали про Ubuntu или слышали, но не пробовали её установить, вот вам знак, время пришло!

👉 https://ubuntu.com/download/desktop
Операционные системы. Продолжение.

Продолжая тему операционных систем, я не могу не рассказать о продукте компании Apple — Mac OS X (macOS). На мой взгляд, это лучшая операционная система для программирования! Она так же берет корни от семейства операционных систем Linux, но её главным отличием от всех других ОС является специальное железо!

Полноценно использовать macOS без специализированных компьютеров нельзя. А компьютеры Apple достаточно дорогие и этот факт ограничивает распространение macOS в массы. Тем не менее этой ОС пользуются многие разработчики и я бы хотел рассказать о преимуществах macOS.

Но говорить о преимуществах macOS и не упомянуть о ноутбуках компании Apple было бы не верно, поэтому я буду описывать преимущества и macOS и Macbook.

macOS
— Безопасность и отсутствие вирусов;
— Полноценная командная строка;
— Огромный перечень программ для разработки, созданный именно для macOS (включая PhpStorm, Word, Photoshop и т.д.);
— Высокий уровень производительности (ничего не виснет);
— Удобный интерфейс рабочего стола;
— Большой набор удобных стандартных программ;
— Полная синхронизация с iPhone и iPad (общий буфер обмена, общие заметки, календарь, контакты и т.д.);

Macbook
— Металлический корпус;
— Качественная клавиатура;
— Подсветка клавиатуры;
— Многофункциональный тачпад;
— Высокое качество матрицы, особенно для ретина;
— Мощное железо;


В завершении темы операционных систем я предлагаю посмотреть кинофильм “Revolution OS” с переводом на русский язык.

👉 https://www.youtube.com/watch?v=n1F_MfLRlX0
Наши приоритеты.

Утром вы просыпаетесь позже, чем необходимо. На спех одеваетесь и бегом на работу. Расположившись за рабочим местом, вы начинаете судорожно выполнять свои прямые обязанности. За обедом вы продолжаете думать о работе.

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

В таком ритме я прожил бóльшую часть своей сознательной жизни. Часто я винил в этом свою работу и рабочий график, в котором рабочий день начинался в 8 часов утра. Видимо это и были «крысиные бега 🐁» по версии Кийосаки.

Когда накопилась критическая масса моих негодований я отправился на поиски решения проблемы хронического недосыпа.

💡Решение было найдено!