Требования к программистам

algo

To the stars!
Требования к программистам

Всем привет.

Мы проектируем курс обучения HTML/CSS/JS, PHP+zend framework, SQL.
Это будет уникальный курс во многих отношениях.
В частности, планируемый результат - подготовка человека (при наличии извилин и желания ими работать)
с нуля до уровня, достаточного для приема в приличную организацию.

Для этого необходимо составить список требований.

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

а) ваши материалы НЕ БУДУТ использованы, они послужат ТОЛЬКО для сбора требований при подготовке курса.
б) ваши материалы ОСТАНУТСЯ В ТАЙНЕ. Я готов их даже стереть из своего почтового ящика и записать на флешку TrueCrypt.
Разумеется, имя приславшего и организация мне также не нужны.

Сбор материалов имеет статистическую цель - понять: что и в каком объеме требуется от разработчиков.

Не жлобитесь - поделитесь!

Мой почтовый ящик [email protected]. Спасибо!
 

Sherman

Mephi
А смысл?

Бывают программисты и нет. Все остальное - глупости. Как минимум, программист должен знать структуры данных и алгоритмы, в случае web(основые протоколы http/cgi/fast-cgi/tcp, что такое web server, что происходит от момента запроса клиента и до появления html), и уметь думать(искать решение задач). Все остальные buzz words вторичны и имеют отношение только к конкретному месту работы и опыту.

То есть собеседование в приличной компании делится на две части.

1. Выяснение того, что кандидат - программист.
2. Вопросы по конкретным технологиям(языки, субд, xml что угодно) и какой опыт имеется.

Php-программистов "не любят" в основном потому, что они не проходят первую часть и считают ее не обязательной.
 

zerkms

TDD infected
Команда форума
В частности, планируемый результат - подготовка человека (при наличии извилин и желания ими работать)
с нуля до уровня, достаточного для приема в приличную организацию.
ой-ой
 

Alexandre

PHPПенсионер
на что смотрю я при приеме на работу:
1) Unix Fundamentals (осн понятия, осн команды, работа с шелл, крон и пр.)
2) SQL Fundamentals + MySQL Admin (основы) + тюнигн запросов
3) теория программирования, отложенные вычисления, понятие об алгоритмах, сложности - кратко.
4) теория OOP + наиболее распространенные паттерны проектирования
к теории обязательно понятие MVC, шаблонизации (банальный классический смарти или им подобный )

5) PHP + JS (AJAX) сами знаете требования лучше меня.
регэкспы - обязательно курс минимум часов 5
строковые функции, массивы, функции дата-тайм...классы и пр..

6) научить prototype или JQuery на выбор, понятие о замыканиях обязательно.

7) HTML & CSS (здесь я признаюсь - троечник требования знаете лучше меня)
но минимум он должен суметь сделать выпадающую менюшку на цсс.

8) WEB сервера Апач, энджиникс
8) на закуску - современные технологии: search-engine (sphinx, lucene), php-fpm, memcached
обзор по Object-DB, key-value DB 1-2 часа вполне достаточно. На собеседовании часто задают вопрос по этим темам, узнать на сколько развит кандидат.
 

algo

To the stars!
Alexandre
Спасибо.

Sherman
Спасибо, что обратили внимание на пункт 1, он действительно важен.
Не могли бы раскрыть пункт 2? Конкретные вопросы, требования.
 

Sherman

Mephi
Ну конкретно в нашей компании спрашивают про ООП(основы), потому что у нас это самая распрастраненная парадигма(ответы на все вопросы можно найти в википедии).

Про sql.

Напиши join, что-нибудь с агрегатом, что-нибудь с подзапросом. Можно спросить про индексы и попросить прооптимизировать конкретный запрос на конкретном случае(кол-во данныъ и структура таблицы).
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
1) задачи на логику и общее развитие (к примеру, на одном собеседовании меня просили перевести число в двоичную систему счисления).

2) наличие опыта в php, mysql, css, javascript
Как минимум, проверить знание самых распространенных функций php, которые не может не знать наизусть, типа preg_match, fopen, mysql_query etc. Так же проверяются простейшие знания html и css. Если это прошло, то парадигмы ООП и т.п. Набросать структуру mysql таблиц для такой-то задачи.

3) Наличие опыта в конкретной области, нужной конкретной фирме. Здесь опять же надо спросить только самое основное и распространенное, что и без мануала должен знать.
Zend Framework, jQuery etc

4) какие реальные проекты делал до этого, что в них было самое сложное.

самый распространенный пункт - 4, потом 2, 3, 1
 

Макс

Старожил PHPClub
я бы к вопросам Alexandre добавил бы еще вопросы по безопасности и вопросы по сетевым протоколам.
 

Adelf

Administrator
Команда форума
я бы к вопросам Alexandre добавил бы еще вопросы по безопасности и вопросы по сетевым протоколам
Да вы что? А не слишком ли перегруженного знаниями человека вы хотите принимать на работу?
Если я правильно понял, то цель сделать с нуля ну хотя бы Джуниор девелопера(Senior без практики настоящей - ну никак). если так, то даже список Alexandre слишком широк. Я например сколько вебом не занимался, но на CSS не могу менюшку сделать. Только на Js.
По CSS мне вполне достаточно знать о селекторах(ну они и в jQuery нужны) и более-менее известных стилевых атрибутах, чтобы вполне понимать верстальщиков.
По сетевым протоколам я знаю вообще минимум(на уровне заголовков TCP) и никогда еще не мешало мне это незнание.
Про отложенные вычисления(точнее именно данный термин) я вообще где-то неделю назад только прочел :)
Ну а nginx, php-fpm - тут уж вообще...

Подытожу: данные списки вопросов считаю слишком расширенными для тех, кто собирается изучить тему с нуля, почти без практики. Ну либо это будет мегаэлитная школа выпускающая спецов сразу System Architect уровня(что уже смешно).

P.S. И никто не сказал про командную работу - работу с исходниками - svn(git и т.д.); варианты документирования кода; знакомство с багтрекерами - все это разумеется только поверхностное, на уровне "имею понятие".
 

zerkms

TDD infected
Команда форума
Adelf
клёвое замечание. сами же смеётесь над вакансиями, где требуются люди, которые знают всё. а потом оказывается - что и сами грешите поиском таковых людей.

к вопросам о свн, командной работе и прочему из ps +1
 

Alexandre

PHPПенсионер
Мы проектируем курс обучения HTML/CSS/JS, PHP+zend framework, SQL.
Это будет уникальный курс во многих отношениях.
В частности, планируемый результат - подготовка человека (при наличии извилин и желания ими работать)
с нуля до уровня, достаточного для приема в приличную организацию.
без указанный мною знаний в приличную организацию не возьмут (без блата). я так понял - курсы как раз от Junior-> Proff

-~{}~ 15.10.09 16:30:

Да вы что? А не слишком ли перегруженного знаниями человека вы хотите принимать на работу?
Если я правильно понял, то цель сделать с нуля ну хотя бы Джуниор девелопера(Senior без практики настоящей - ну никак). если так, то даже список Alexandre слишком широк. Я например сколько вебом не занимался, но на CSS не могу менюшку сделать. Только на Js.
я тоже менюшку сделать не могу...но у меня есть др сильные стороны ;)
но в приличных компаниях спрашивают и про CSS
 

zerkms

TDD infected
Команда форума
я тоже менюшку сделать не могу...но у меня есть др сильные стороны ;)
но в приличных компаниях спрашивают и про CSS
значит в приличную компанию тебя не возьмут :)
 

MiksIr

miksir@home:~$
Так кого готовить собираются, я не понял? Хороших программистов или способных пройти собеседование программистов (типа как подготовка к экзаменам). Если второе - то подобные перечни актуальны, если первое... я хз как людей научить думать. Как минимум - отключить им доступы на всякие профильные форумы =)

-~{}~ 15.10.09 17:46:

Alexandre - веб технолог должен знать css, если я правильно понимаю ;) Это такой... универсал.. в общем что-то типа технического директора, тока без ответственности =)
 

Макс

Старожил PHPClub
Adelf
Да вы что? А не слишком ли перегруженного знаниями человека вы хотите принимать на работу?
В реальности я против того чтобы ПХП-шник еще и clientside
работу делал. Но чтобы избежать флейма, я умолчал об этом :)
 

algo

To the stars!
Речь идет именно о подготовке специалиста в области web-разработки на php.

У всех разное мнение, что это за зверь и что ему надо знать/уметь.
И каждый имеет право.

Меня очень интересуют ваши мнения, особенно с конкретными задачами для разработчиков.
Задача хороша тем, что конкретна.
Не абстрактно "знает MySQL", а "может делать такие-то запросы, оптимизировать то то и это".
 

Adelf

Administrator
Команда форума
algo
Нужно знать уровень специалиста.
Хотите выпускать крутых проггеров на все гораздых - вопросы одни.
Адекватных джуниоров(такая цель реальнее раз в 10) - другие.

Для первого варианта тут уже довольно широкий список есть выше. По второму, если надо я попробую описать.. завтра.
 

Alexandre

PHPПенсионер
Alexandre - веб технолог должен знать css, если я правильно понимаю ;) Это такой... универсал.. в общем что-то типа технического директора, тока без ответственности =)
ну, я типо того и есть, разрабатываю технологии, инструменты для их реализации. только я не универсал (не знаю JS+HTML+CSS)... и не техдиректор без ответственности... и не архитектор.... А сайты (пишут фронты) - делают др люди.

-~{}~ 16.10.09 11:22:

Не абстрактно "знает MySQL", а "может делать такие-то запросы, оптимизировать то то и это".
- умение работать в консоли mysql
- знание администрирования, backup
- теория: нормализация БД, групповые и просты запросы.
- индексы, типы, какие где лучше использовать.
- практика: explain, benchmark
- особенности MySQL: типы таблиц, ключи,
- кодировки, функции дата,str, inet
- mysql.ini
- процедуры, курсоры (1-2 часа не заморачиваться на этом, но знать возможности должен)
а далее на собеседовании уже в непринужденной форме узнаю про круг зрения кандидата.
если нужно, то уточняю...

-~{}~ 16.10.09 11:23:

4) какие реальные проекты делал до этого, что в них было самое сложное.
это мой самый любимый вопрос, только я его задаю самым первым:
в каких интересных проектах Вы участвовали и расскажите какие там использовались технологии.

у человека, который работал в Рамблере или Маамбе смешно спрашивать про то, как работает mysql_query() или preg_match()

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

AmdY

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