Где можно почитать теорию по cерверной разработке для «чайников»?
Ребята, привет! К нам в студию переодически приходят стажеры после ВУЗов на позиции backend(node/php/ruby), которые ну абсолютно не понимают принципов взаимодействия сети, фронт-энда и бэк-энда, даже не понимают того, как работает сокет/http запрос, не говоря уже иногда о простом, что при выдаче файла с сервера нужно указывать mime-тип выданного файла. Пытался объяснить стажеру на пальцах, используя простой сервер на node, что такое RESTful API, показывая на примеры выдачу json с диска, разбирая его на сервере и выдавая его по http, используя простые заголовки. Вроде 5 лет просидели в универе, а ничего не знают. Есть ли какой ресурс, который можно читать на досуге, где описаны принципы работы http, tcp, socket, взаимодействие прокси-сервера(веб-сервера) с логикой приложения и его базой(мы используем nosql). Также, чтобы затрагивались хотя бы такие темы, как кодировка, потоки информации, real-time, но это не обязательно. Конечно, можно было бы вручить книжку Таненбаума и смотреть, как уходит время вслепею, потому что хотелось бы, чтобы ребята уже начали писать. Спасибо.
Надо понимать, что в университетах не учат тому, что актуально в 2016-м году (даже на факультетах, которые узко специализируются на веб-разработке).
В большинстве случаев все, что можно ожидать от выпускника - это минимальные знания HTML/CSS, и "прошаренное" знание никому не нужного консольного C++.
Конкретно про ваших стажеров могу сказать одно. Они даже не пытались стать бэкэнд-девелоперами. Лучше спросите, кем они действительно хотят быть, вдруг у них в душе моляр, плотник, или капитан дальнего плавания?
Я веду к тому, что если человек пришел к вам - значит, чисто теоретически, его тянуло к этой профессии. А если бы так и было - за 4-6 лет обучения в Университете можно вполне собственными усилиями подняться до уровня миддл-девелопера.
Мы видим обратное - они не дотягивают даже до джунов (джуниоры хотя-бы чисто теоретически понимают, как работает http и что такое заголовки).
Выход один - вбить им в голову пристрастие к данной профессии, чтобы они сами гуглили и вникали даже в столь очевидные вещи. Обещать гору денег и хорошую жизнь не надо, по собственному опыту знаю - подобный энтузиазм к обучению действует максимум год. Потом они обычно спиваются, или забивают на веб.
sim3x: Я про трейни не говорил. Я говорил, что выпускники редко бывает middle, потому что они редко умеют выбирать и обосновывать решения. По личной практике, конечно.
Всё сказанное ниже является личным мнением. Все глаголы в повелительном наклонении ("дайте, объясните") предлагаю считать сослагательным наклонением ("возможно, было бы правильным дать, объяснить").
Они к вам приходят именно для того чтобы узнать и попробовать. Дайте им возможность поработать с реальными задачами, объясните каждому его проблему на его конкретном примере. Не прикрывайтесь курсами, книгами и статьями - работайте с сырым материалом, как гончар с глиной.
Критериями для приёмки на стажировку должны быть знание синтаксиса и семантики языка, стыка технологий (PHP + JS например), эрудиция, способность понять задание, обосновать решение, сформулировать какую-то личную неразрешимую проблему для поиска помощи, попытаться самостоятельно найти, понять и применить чужое решение. Ещё один фактор для оценки - знания в предметной области, то есть в той области деятельности человека, которая, в контексте информационных технологий, подлежит автоматизации. Бывает человек лучше "въезжает" в предметную область, чем в язык. Что тоже неплохо.
Если у кандидатов значительный пробел в знаниях - откажите в стажировке с указанием причины. Может быть, он подучит и придёт ещё раз. Если пробелы незначительные - зафиксируйте их.
Через некоторое время зафиксируйте динамику - насколько хорошо каждый из них закрыл свои пробелы в знаниях, чему научился. Если динамика недостаточная - примите решение о прекращении стажировки или работы.
Отсеивайте тех, кто не хочет знать, а не тех, кто не смог. Те, кто хотят - узнают не завтра, так через неделю.
+++, вообще немного позорно помойму этого всего не знать, это же по сути основы всего в IT
Я данный раздел смог освоить абсолютно не прибегая ни к гуглу, ни к википедии.. Там же все элементарно на столько, что по сути в каждом заголовке, первойже строчкой прописываеться, дада, имеенно расписано, что же оно значит.. не просто 200,301,302 коды ответов..
Ну а дальше уже в легкую осваиваются остальные параметры и тд.
И на это ушло, дай бог 2-3 дня. Конечно специфику познать получиться только при реальных задачах, но это должно быть даже интересно, если изначально заложить четкую "базу" и понимание принципа всего так скажем, грубовато - всего WWW.
Согласен полностью насчет курсов и тд, мое мнение личное, что даже статью в вики не желательно читать, ибо кроме как каши в голове, мало что останеться, только запутает новичка.
Ну это все что касаеться элементарных вещей. Заходя дальше, всеже, лучше придерживаться, снова не статьями и курсами, а офф. тех. документацией. В этом даже есть небольшой психологический плюс для познающего, при условии что его это вообще интересует, а не фиолетово.