Junior Web Developer или что нужно знать для устройства на работу.
Все чаше замечаю в интернете наплыв юных дарований которые желают стать программистами. Большинству из них советуют Web разработку как способ быстрого зарабатывания денег. Ну а там соответственно по большей части идет многими не любимый PHP.
С чего же начать человеку который решил стать на путь PHP?
Ну сперва нужно четко для себя уяснить что "чистый" PHP никому нафиг не нужен. Сайт на php состоит в связке с БД MySQL(чаше всего, но могут быть и другие), JS(в основном jQuery) HTML CSS. По этому пройдемся по порядку.
PHP - основы.
1)Работа со строками. Знать хотя бы три функции и что они делают. Например чаше всего используют str_replace(), strpos(), strlen().
2)Массивы. Почти все время придется работать с ними. например Zend2 в конфигурационных файлах использует многомерные массивы. По этому, уметь "раскрутить" многомерный массив. Знать несколько функций для работы с массивами , например array_search(), array_key_exists, in_array().
3)Циклы. Понимать в чем разница между for, foreach, while. Знать какой из них для чего лучше применять. знание какой из данных циклов работает быстрее. Так же условия. Четкое понимание разницы между if-else, switch-case
4)Функции. Хоть почти все проекты на php обычно объектно ориентированны, бывают случаи когда проще и быстрее написать свою ф-ю для обработки данных. Обязательное понимание возвращаемых значений, обязательные и необязательные параметры, область видимости переменных внутри ф-и и вне.
5)Сессии и куки. Обязательно знание где применяются и записываются сессии, где хранятся куки. Запись и чтение из сессии и куки. Излюбленный вопрос работодателя "Если у клиента отключены куки, то поднимется ли сессия?"
6)Работа с Базой Данных. Сразу скажу что mysql_connect() и любая другая ф-я с префиксом mysql_ уже deprecated. По этому пользуются ее аналогом mysqli_ или PDO. Нужно умение создать подключение к бд, выполнить запрос, вернуть данные.
7)Типы данных в php. Знать обязательно.
8)POST, GET. Отличия между ними, где,какой и для чего применяется.
9)Работа с файлами и папками. Там же будет пример рекурсии для обхода папок.
10)Регулярки RegExp. ф-и для работы с регулярками preg_match(), preg_match_all(), preg_replace(). Модификаторыб квантификаторы, якоря и т.д. Излюбленная задача на собеседованиях - написать регулярку для выдирания всех ссылок со страницы.
11)Обращения с датой и временем.
12)Защита от XSS, javascript и sql иньекций. В общем безопасность php приложений.
Это самые основы которые должен знать любой php разработчик. К сожалению по данным пунктам я не могу посоветовать хорошую книгу, потому как когдя я все это изучал, на дворе был 2006 год, а за это время в php уже многое поменялось. Единственное что я вам могу посоветовать это офф сайт http://www.php.net . При прочтении учебника и натыкания на функции, проверяйте их на данном сайте и смотрите что бы они не были в статусе deprecated, а если они в данном статусе, то смотрите их аналоги.
Во второй части я расскажу, что обязательно нужно знать про объектно ориентированное программирование в PHP. В третьей коснусь HTML, CSS, Javascript. В четвертой расскажу немного про само устройство на работу и выбор компаний. А так же затрону тему framework'ов и профессионального роста.
С чего же начать человеку который решил стать на путь PHP?
Ну сперва нужно четко для себя уяснить что "чистый" PHP никому нафиг не нужен. Сайт на php состоит в связке с БД MySQL(чаше всего, но могут быть и другие), JS(в основном jQuery) HTML CSS. По этому пройдемся по порядку.
PHP - основы.
1)Работа со строками. Знать хотя бы три функции и что они делают. Например чаше всего используют str_replace(), strpos(), strlen().
2)Массивы. Почти все время придется работать с ними. например Zend2 в конфигурационных файлах использует многомерные массивы. По этому, уметь "раскрутить" многомерный массив. Знать несколько функций для работы с массивами , например array_search(), array_key_exists, in_array().
3)Циклы. Понимать в чем разница между for, foreach, while. Знать какой из них для чего лучше применять. знание какой из данных циклов работает быстрее. Так же условия. Четкое понимание разницы между if-else, switch-case
4)Функции. Хоть почти все проекты на php обычно объектно ориентированны, бывают случаи когда проще и быстрее написать свою ф-ю для обработки данных. Обязательное понимание возвращаемых значений, обязательные и необязательные параметры, область видимости переменных внутри ф-и и вне.
5)Сессии и куки. Обязательно знание где применяются и записываются сессии, где хранятся куки. Запись и чтение из сессии и куки. Излюбленный вопрос работодателя "Если у клиента отключены куки, то поднимется ли сессия?"
6)Работа с Базой Данных. Сразу скажу что mysql_connect() и любая другая ф-я с префиксом mysql_ уже deprecated. По этому пользуются ее аналогом mysqli_ или PDO. Нужно умение создать подключение к бд, выполнить запрос, вернуть данные.
7)Типы данных в php. Знать обязательно.
8)POST, GET. Отличия между ними, где,какой и для чего применяется.
9)Работа с файлами и папками. Там же будет пример рекурсии для обхода папок.
10)Регулярки RegExp. ф-и для работы с регулярками preg_match(), preg_match_all(), preg_replace(). Модификаторыб квантификаторы, якоря и т.д. Излюбленная задача на собеседованиях - написать регулярку для выдирания всех ссылок со страницы.
11)Обращения с датой и временем.
12)Защита от XSS, javascript и sql иньекций. В общем безопасность php приложений.
Это самые основы которые должен знать любой php разработчик. К сожалению по данным пунктам я не могу посоветовать хорошую книгу, потому как когдя я все это изучал, на дворе был 2006 год, а за это время в php уже многое поменялось. Единственное что я вам могу посоветовать это офф сайт http://www.php.net . При прочтении учебника и натыкания на функции, проверяйте их на данном сайте и смотрите что бы они не были в статусе deprecated, а если они в данном статусе, то смотрите их аналоги.
Во второй части я расскажу, что обязательно нужно знать про объектно ориентированное программирование в PHP. В третьей коснусь HTML, CSS, Javascript. В четвертой расскажу немного про само устройство на работу и выбор компаний. А так же затрону тему framework'ов и профессионального роста.
любой человек, который назвает себя программистом, должен почти все это знать по умолчанию. если он не знает, что такое циклы, то о какой работе вообще может идти речь.
программирование - это не набор тем, которые ты "знаешь", это наука, в конце концов.
вообще при приеме на работу, основная характеристика джуниор-программиста - не то что ты знаешь, а то насколько быстро ты можешь научиться новому.
когда я на работу устраивался, меня спросили:
- Под iOS когда-нибудь писал?
- Нет.
- Отлично, вот тебе задание. 2 недели на изучения iOS SDK и objective C и 2 недели на задание.
что толку от PHP -шного лапшекода ...