Comments 160
С ВУЗами и Университетами есть большая проблема. Иногда преподносят материал таким образом, что ты просто не в состоянии что-то понять. А чистый матан без привязки к задачам, так вообще не рассматриваешь как что-то дельное.
Понимание о том что это тебе нужно приходит ГОРА-АЗДО позже. Например, курс матриц я освоил полностью за 1 день по курсам intuit когда мне нужно было начать обрабатывать тени объектов (вот только тут ты понимаешь зачем это надо и в чём их достоинство)
Но то что давали в Универе по большей части потеря времени.
Там был лишь 1 преподаватель которого я ценю и он действительно давал знания так, что их хотелось получать. Некоторые другие направления у меня из памяти совсем выветрились со времен института.
Надо концентрироваться на поиске решений проблем, а не на самих проблемах.
Если не устраивает преподаватель, материал или его изложение, то это не означает, что ситуация безвыходная. Сейчас достаточно источников информации (уроки, примеры, вебинары, etc) для обучения. Нужна мотивация и усилия.

При поступлении в университет никто ведь не обещает, что Вы получите актуальные знания и практические навыки, которых будет достаточно, чтобы сразу идти на высокооплачиваемую работу?
При поступлении в университет никто ведь не обещает, что Вы получите актуальные знания и практические навыки, которых будет достаточно, чтобы сразу идти на высокооплачиваемую работу?

Агитация вида «наши выпускники за год-полтора отбивают пятилетнюю цену обучения» считаются? :-)
И-и? Я же и говорю, что мнение «Как меня за#бал университет, сплошная трата времени» не лишено смысла. Такое действительно есть в наших реалиях.
Про возможность получение самих знаний я ничего не говорю — я как раз и привел пример мотивациионного изучения.
У меня с этой фразой кстати другая ассоциация. Если человек на пустом месте переходит на мат, без веских на то причин — тоже знак… и не только для джуниора. :)
Понимание о том что это тебе нужно приходит ГОРА-АЗДО позже.

Полностью согласен. Только углубившись в геймдев, я понял, что мне действительно надо знать векторы и кватернионы. Сейчас частично дружу с ними, но очень хочу понимать их лучше.
Простите, но я честно думаю, что университет дал вам то, что и должен был дать — не уменее обрабатывать матрицы, а умение освоить курс самостоятельно за 1 день по методичке. :)
Ради этого навыка стоит потратить 5 лет молодости? По мне так при должной мотивации вы за 5 лет миллион раз освоите все возможные способы работы с «методичками».
Не буду спорить. Хотя практика показывает, что навык этот практически отсутствует у людей без ВО. Им требуется наставник для освоения любого нового знания.
Хотя практика показывает, что навык этот практически отсутствует у людей без ВО.

Как закончивший 9 классов и drop-out из универа, осваивавший всё с 10 лет сам и работав/ющий на самых разных позициях от низа до верха позволю себе не согласиться. Возможно, меня можно отнести к «исключениям из правил», о которых писал автор, но на мой взгляд такие «исключения» создаются искусственно нынешней образовательной системой и нормально воспринимающих знания людей могло бы быть на порядок больше, стоит только изменить систему оболванивания. В конце концов это (восприятие знаний, а не оболванивание) — нормальная черта humo sapiens.

Впрочем ладно, это уже перерастает в политдискуссию. Чего доброго ещё забанят.
Это тоже ценно, но наверное правильно работающие мозги ценнее друзей и связей, особенно в нашей области.
В нашей области мозги более ценны по сравнению с другими областями, факт. Но чем дольше живу, тем больше убеждаюсь, что связи в любой области важны, а друзья так и безотносительно областей :)
Когда я поступил в ВУЗ, мне отец сказал:" Запомни, сынок, главная твоя задача — научиться учиться, а реально необходимые знания то получишь во время работы".

И вот, закончив ВУЗ, и получив способность учиться, я не прекращаю обретать новые знания и дополнительно обучаться уже более десяти лет…
Да больше, вуз часто дает то, что в реальной жизни будет крайне полезно иметь и уметь, как то:
* умение находить решение самых разнообразных задач (от поиска методички до поиска человека, кто может «порешать»)
* умение кооперироваться в команду для решения задач (написание бомб\шпор группой, просто коллективное решение сложных задач)
* организация личного времени и выделение важных задач (мой знакомый всегда ходил на первые пары — узнавал условия для получения автоматов, исходя из условий — распределял время посещения пар + время для работы)

И т.д. и т.п.
Этому всему можно научиться гораздо быстрее, чем за 5 лет.
Это конечно да. Однако я, будучи школьником, не знал ни методик, ни направлений… ничего.
Для меня вуз как раз и предоставил все это (причем бесплатно) и в достаточном объеме.

Я хочу сказать, что вы правы, этому всему в реальной жизни тоже можно научиться и быстрее. Однако это далеко не каждому под силу.
Я сравнивал людей с высшим образованием (очным) и людей, которые такового не имели — даже самые двоечники из сильного университета стояли много выше их коллег…

Ну и тут, конечно, надо понимать, что вуз вузу рознь. В моей стране полно коммерческих вузов, где основная цель — выкачивание денег из студентов…
Я хочу сказать, что вы правы, этому всему в реальной жизни тоже можно научиться и быстрее. Однако это далеко не каждому под силу.

Те, кому это не под силу, скорее всего не научатся этому и в ВУЗе.

Лично мне ВУЗ дал кучу навыков как беспалевно ничего не делать, спрыгивать с задач и ответственности, а потом тяп-ляп и готово. И после этого у меня ушло очень много времени на искоренение последствий, с некоторыми я борюсь до сих пор. И это все очень мешает заниматься реальным делом.

Простой пример: приходит ПМ и говорит нужно сделать нечто сложное и крайне скучное, у меня автоматически срабатывал рефлекс «спрыгнуть с задачи», хотя я знал, что без особых усилий могу ее выполнить. Или сугубо универовская привычка растягивать скучные дела на максимальное время, например пофиксить крайне унылый, но долгий баг. Я мог весь рабочий день смотреть ютюб, хотя работы там на 3 часа, а потом доделывать это дома (ибо сроки). Это я до сих пор не поборол окончательно, хотя очень стараюсь. Вот и вся прелесть универа. А научиться решать проблемы и кооперироваться в команду можно во времена джуниорства.
Хорошо, тогда другой пример.
В универе, будучи студентом прикладной математики, мы проходили множество курсов, начиная от асемблера, фортрана, С++, Java… и заканчивая дифурами, матаном, мат-физикой или психологией с философией. И все это — так же огромный плюс университета — обзор технологий (пусть иногда и старых) и направлений. Многие мои одногрупники пошли по пути непосредственной прикладной математики ( в разные отрасли), другие — в программирование, третьи поняли, что это не их и пошли в клубный бизнес…

Как, будучи джуниором на определенной должности, вы охватите все эти вещи?
Вашему работодателю (в 90% случаев) будет важно лишь выполнение задачи и прибыль с нее…

Минусы, которые вы описали, имеют место ( и в моем случае), однако плюсов много больше…
Тут вы правы, но есть одно но — таких университетов раз, два и обчелся. Лично в моем универе преподавали синтаксис языка С, который я знал задолго до ВУЗа, целых _два_года_. Это, извините, полный финиш. Поэтому, если мы говорим о высшем образовании в целом, то тут все печально, если про какой-то конкретный ВУЗ, то тут уже все зависит от ВУЗа.
Кхм… А принимать лабораторные (предмет — что-то про алгоритмы) с первого месяца обучения вуза в обязательном порядке на pascal + c (да, на двух языках) при фактическом отсутствии предмета, на котором эти языки должны преподаваться — сильно лучше?
Кстати, это ещё не самое интересное, самое интересное — во втором семестре (когда эти лабы уже были сданы, ага) появился предмет Программирование на ЯВУ (где, эти самые ЯВУ преподавались на примере C).
Таких маразмов предостаточно.
В моем опыте — сначала дали программирование (причем асм с первой же пары), и только на втором курсе — алгоритмы (не помню точное название предмета). Переписывание Тоненбаума в тетрадку, лекции по паскалю, где препод все 2 часа просто стоял у доски и переписывал с листика програмку на 30 строчек, при этом не мог ответить на вопросы аудитории… Но и это лучше, чем я бы зациклился на одном направлении (пусть даже реально работая в реальном бизнесе)…
Это вам с университетом оооочень сильно повезло. В большинстве вузов все совершенно иначе. В такой бы университет я бы с большой радостью поступил бы в свое время.
Вы закончили университет и потом за 1 день по MOOC-курсу освоили все аспекты работы с матрицами? Или только второе?
Преподы математики часто сами не понимают зачем она практически нужна и не парятся. Теория матриц у нас была кажется на втором курсе, а квантовая механика на третьем. Так год и не было понятно, зачем эта хрень. Когда я рассказал тому препу, что теперь знаю зачем уметь вычислять собственные вектора итд. — он очень порадовался. А может просто тонко троллил :-)
Итого, идеальный джуниор понимает, что поначалу придется потратить огромное количество времени на обучение, умеет совмещать учёбу/работу с обучением/практикой, обладает такими навыками как ответственность, самостоятельность, умение искать необходимую информацию, задавать вопросы, а также является высоко мотивированным и адекватно амбициозным.


Мне вот почему-то сильно кажется, что как только разговор заходит про junior'ов, то сразу появлются какие-то непропорционально завышенные требования. Скажем для тех же middle требования звучат совершенно другие. И, да, здравствуйте минусы.

Вот даже та же способность к самообучению. Это что? Вот, правда, что это такое? Зачем вообще ему Ваша контора если он сам может самообучаться?
Зачем вообще ему Ваша контора если он сам может самообучаться?

Стаж же. Хотя с не совсем понял. В статье говорится про практикантов, которым ничего не платят, но требования как к полноценным работникам =/
На такую работу не нужно идти. Вообще.

Кодинг бесплатно на коммерческую компанию — потеря времени и потакание жадным софтоделам эксплуатировать халявный труд. Нужен опыт забесплатно? Вперед в опенсорц.

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

Так что я нахожу ваше предложение отвратительным. Оно воспитывает в будущем специалисте неправильные посылки и комплекс неполноценности.

Первое чему тут нужно выучиться — прямо и твердо посылать такиз «разводчиков на халяву» в пешее эротическое путешествие.
Плюс за опенсорс: если без обязательств (делаю когда удобно) — бесплатный, если с обязательствами — то за деньги, в компании.

Для адекватной компании «бесплатно» и «половина ставки опытного сотрудника» это вообще эквивалентные цифры.
Если я на консультации по решению задачи трачу больше времени, чем если бы сам ее решил, то какая стоимость этого специалиста и кто кому должен платить? Если человек справляется с задачами самостоятельно, то он уже и не Джуниор и он сам не согласится работать бесплатно.

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

С одной стороны, можно, конечно сказать, что ищется человек, которому потенциально можно недоплачивать и его чуть ли не в грязь втаптывают. Но с другой — в него авансом вкладывается много средств и иначе никак быть не может. Обучения на Open Source, свои проекты никогда не дадут такого старта. Такой человек уже будет нормальным специалистом и даже в конторе, которая вложила в него изначально, будет получать уже приличные деньги, а гордый самоучка еще будет свою CMS без ООП пилить (без ООП конечно же потому что так быстрее работает :) ).

Отдельная тема студии, где нужны специалисты очень низкого уровня и другие им просто не нужны, потому что соответствующую ЗП платить не готовы. Там платят почти сразу, но как правило намеренно затрудняют рост специалиста. Так можно наказать жадные софтверные конторы и 10 лет просидеть с одним уровнем и одной ЗП,
Когда человек учится — он работает не меньше того, кто «уже всё знает».
С другой стороны, гуру может работать год, но потом окажется что из-за какого-то просчета его работа не нужна и стоит 0.
Если деньги платятся за работу, а не за результат — то получается, обучающийся человек должен получать не меньше, чем обычный рабочий.
Естественно только за работу не платят — платят за сочетание работы и результата, разумный компромисс.

Но этот компромисс никак не может быть на уровне нуля.
Хотя бы элементарно потому, что человеку нужно снимать квартиру, есть и ездить на работу — вот эта сумма и есть минимальная зараплата джуниора.
Например, у нас квартиру можно снять за 12, жизнедеятельность на 8, проезд 3, т.е. 23 тысячи — минимальная зарплата джуниора в Новосибирске.

Дальше, любой джуниор (если он не совсем дурак) может сразу же выполнять полезную работу.
Например, если команда пилит на серверной Java, то такой человек может писать автоматические тесты, писать/проверять спецификации по результатам отзывов пользователей, помогать с веб-интерфейсом, фиксить баги, итп.

Если команда не может найти джуниору полезное применение — это либо какой-то хардкор без шанса на ошибку (медецина, космонавтика)… либо у команды просто отвратительные менеджеры и лиды, не умеющие декомпозицию. Либо они просто нищеброды (особый вариант: нищеброды+аутсорсники). Из этого места нужно валить сразу же. Хорошая крыса не будет бежать с тонущего корабля — она на него и не зайдет вообще.
Напомню, мы говорим о студентах 4-5 курсов и об выпускниках, которые не напрягались с практикой на 4-5 курсах. Как правило, приходится в начале проводить тестирование по теории и подбирать материалы для покрытия пробелов, потом уже потихоньку практика. Ну и о тестах речь не идет, это слишком сложно для понимания изначально :). Тем более у нас если тестами какая-то часть системы и покрывается, то по принципу TDD, иначе эффективность этого инструмента падает в разы, но это уже холивар на отдельную тему :)

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

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

Еще минимум месяц на разбор на практике что такое Полиморфизм, Инкапсуляция, Наследование и остальное как правило все знают :). Ну и основные общепринятые паттерны.

Функциональное программирование, тоже минимум месяц.

Основы работы с MySQL, принципы работы ORM, индексы, работа с командной строкой Linux, тоже минимум месяц и то для запросов не сложнее тех, что позволяет ORM. Только объяснение, что бы не было постраничной разбивки, когда выгребаются все записи и только определенные отображаются, запросов в цикле, инъекций и других базовых вещей.

Еще минимум два месяца на разбор современных фрейморков, написание учебных приложений с использование MVC-фреймворков и функционально программирования на примере jQuery, резиновая верстка. Принципы инкапсуляции в верстке.

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

В университете студент тоже работает и квартиру снимает и не только знаниями питается, но даже деньги за это платит. Ну и говорим об нормальном обучении, мне знакомый рассказывал, что его посадили и три месяца он сам выполнял какие-то задачи в блокноте, даже про IDE не рассказали. То тут да, это все-таки уже работа, хоть и бестолковая.

Но если коммерческая компания нормально инвестирует в обучение, то чем она хуже? Тем что собирается отбить инвестиции, получив на выходе специалиста, а не за счет контракта на учебу? Все было бы не так жестко, если бы не дефицит специалистов и сложность защитить свои инвестиции в подготовке специалиста.

Можно, хоть и 30 тыс платить, если знать, что этот специалист точно проработает 10-ть лет. Но ситуация такая, что максимум через год изначально ничего не стоящий специалист, будет шантажировать увольнением и выбивать неадекватные ценники, которые предлагает какая-нибудь компания получившая инвестиции и нуждающаяся в срочном их освоении. Если я буду платить изначально в минус и выбирать людей, которые не ценят вложенные в них инвестиции и будут просить огромную ЗП еще раньше, то мне проще самому переманивать готовых специалистов и проблема отпадет. Вы такой ситуации хотите?

Я лично никому ничего не должен. Я сразу озвучиваю людям, что даже если они будут пахать, то минимум столько то там им придется работать бесплатно, потом еще столько-то за минимальные деньги и к такому-то времени выйдут на конкурентную ЗП. Как правило сроки больше, потому на освоение пробелов в теории, которые выполняются еще до практического обучения, даже «прилежные» работники часто затягивают. И я праве выбирать кого брать на такое обучение с последующим трудоустройства по любым принципам, в том числе и на примере автора.

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

30 тысяч??? Не дороговато ли за раба платите? Максимум двух куриц можно за одного крепостного отдавать, я так считаю!
К чему эти оскорбления? Ведь обвинение в рабовладельчестве — это оскорбление!

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

Во многих сферах уже и что бы бесплатно поработать нужно не то что знания и лояльность продемонстрировать, но еще и желательно, что бы за тебя кто-то словечко замолвил. И на западе так же. Если вы хотите получить профессию, то вам нужен опыт, если ваш ВУЗ об этом не позаботился — это ваша задача, а не проблемы вашего работодателя. Это инвестиции в будущее. Медики за интернатуру больше контракта платят.

Можно листовки раздавать или курьером работать, там будут платить сразу, хотя ЗП так же будет зависеть от опыта работы.

Есть, конечно, и другие варианты: свои проекты, фриланс, Open Source, но давайте смотреть правде в глаза, что из этого сделает человека специалистом, пусть даже начального уровня за пол года или даже год?

Есть еще варианты обвинять работодателей в рабовладельчестве и писать такие комментарии:
«Чтобы устроиться на работу нужен опыт работы, а чтобы иметь опыт работы — устроиться на работу и поработать.»

Или:
«Почем я не могу найти работу Джуниором?»

Джуниоров действительно почти перестали брать на работу даже бесплатно из-за агрессивной политики HR-ов, сейчас нашли способы как зарабатывать на обучении и лед чуть-чуть тронулся, а вы говорите, что это рабовладельчество.
А к чему ваш комментарий — квинтэссенция неуважения? После такого даже просто цензурный ответ не всегда легко найти.

Мало того, что излишне детализировали (повторение одного и того же много раз не сделает это правдой), так ещё и идеи — «джун нам должен»… Да не должен он вам ничего. Не знаете, как извлечь из него прибыль — не нанимайте.

Вот из-за таких «умников» народ из регионов валит в СПб, Москву, на крайний случае Екб и прочие. Потому что там рынок заставляет работодателей думать головой. И там нет никаких полгода обучения джунов. Месяц, максимум два — дальше уже прибыль. Или увольнение.

И вот честно — если бы не это ужасное состояние-отношение в интернатуре — у нас было бы куда лучше с медициной.
А к чему ваш комментарий — квинтэссенция неуважения? После такого даже просто цензурный ответ не всегда легко найти.

Почему описание ситуации со стороны работодателя воспринимается так? В чем именно неуважение, может я что-то пропустил, можете указать конкретные факты?

«джун нам должен»

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

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

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

А вы не думали, что это разные Джуниоры? Может быть они работали значительно больше, чем положено по курсу в ВУЗе и входят в категорию «свои проекты/фриланс/OpenSource»? Или уже где-то года два отработали? И потом уже конечно за месяц войдут в курс дел. Но мы говорим о разных специалистах.

Есть даже поговорка: для кого Джуниор, а для кого и Тимлид, я специально уточнил о ком веду речь, думал может меня не так понимают.

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

И вот честно — если бы не это ужасное состояние-отношение в интернатуре — у нас было бы куда лучше с медициной.

Я не понимаю, вы хотите, что бы интернатуру отменили или вас не устраивает ее уровень подготовки? Если второе, то согласен, ВУЗам и больницам все-равно, лишь бы деньги платили. Но это не отменяет необходимости получения практического опыта.
Почему описание ситуации со стороны работодателя воспринимается так? В чем именно неуважение, может я что-то пропустил, можете указать конкретные факты?

Потому что очень напоминает жалобы «они такие сякие! мы их обучаем, а они ещё и денег просят»

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

Простите, а как ещё можно воспринимать текст, в котором вы пытаетесь убедить, что джун чуть ли не платить за «обучение» должен?

А вы не думали, что это разные Джуниоры? Может быть они работали значительно больше, чем положено по курсу в ВУЗе и входят в категорию «свои проекты/фриланс/OpenSource»? Или уже где-то года два отработали? И потом уже конечно за месяц войдут в курс дел. Но мы говорим о разных специалистах.

Нет. Джун == джун, не стажёр. А раз он идёт с целью устраиваться на работу — «Месяц, максимум два — дальше уже прибыль. Или увольнение.» Впрочем специально для вас — зарплату космическую джунам тоже не надо, но она должна быть. Она даже в интернатуре есть.

Я не понимаю, вы хотите, что бы интернатуру отменили или вас не устраивает ее уровень подготовки? Если второе, то согласен, ВУЗам и больницам все-равно, лишь бы деньги платили. Но это не отменяет необходимости получения практического опыта.

Я хочу, чтобы в интернатуре (как и аспирантуре) повысили зарплату/стипендию. Иначе качества не сыщешь. Но и спрашивать можно/нужно будет строже. Но и следить за снижением коррупции в плане получения мест обязательно надо.
Ладно, тогда я о стажерах, хотя я использовал терминология автора статьи, так как он описывал именно студентов без практических навыков, которых он начинает учить не с реальных проектов.

Потому что очень напоминает жалобы «они такие сякие! мы их обучаем, а они ещё и денег просят»

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

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

Ну и как бы наоборот, я отвечал на комментарий о плохих работодателях, которые «такие-сякие» без каких-либо смягчений.

Простите, а как ещё можно воспринимать текст, в котором вы пытаетесь убедить, что джун чуть ли не платить за «обучение» должен?

Это вы так воспринимаете, а я написал, что Стажер получает бесплатно знания, которые компании стоят денег. И если у последней коммерческие цели, то она должна как-то эти деньги отбить. Вы не согласны с этим утверждением?

зарплату космическую джунам тоже не надо, но она должна быть

Какая 100-200 $? Такое я называю небольшим поощрением. Если в обязательном порядке платить 500 $/месяц (не Москва) всем стажерам, тем более что даже не каждый третий «дотягивает» до самоокупаемости, то эта затея уже никогда не отобьется, ну или придется придумывать схему по которой этот один компенсирует все зарплаты, что, наверное, действительно будет несправедливо по отношению к нему.

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

Она даже в интернатуре есть.

Возможно, стипендия у бюджетников? У меня брат платит больше чем контракт за то что может приводить своих пациентов и лечить их на 30-ти летнем оборудовании.

Ну и как бы, я хотел бы что бы хотя бы учили и предоставляли пациентов. Тут уже дело даже не доходит до отсутствия заинтересованности интернов, которую в общем-то глупо мотивировать деньгами. Бюджетников может стимулировать стипендия в том плане, что у них не будет необходимости подрабатывать и они смогут сосредоточиться на учебе. Но это уже нашего обсуждения не касается.
Прикол в том, что мы не медики.
Мы можем выдавать результат, который хуже, чем идеал, и это нормально.
Когда медик ошибается — умирают люди. Когда ошибается программист, происходит ровно ничего, в самом страшном случае — угрызения совести (или взбучка от лида, если у тебя есть лид).
Медики должны работать в больнице — им больше негде. Мы же можем получить базовые навыки на чем угодно.
Медикам живется несладко.
А нам живется сладко.
Такая вот у нас замечательная область деятельности.
Ошибка — это не критично. Ошибаются даже профессионалы и довольно регулярно. Тем более это не зона ответственности программиста, есть QA и специалисты по безопасности, программисту всего-то нужно будет исправить. А если это попало в prodaction, то это не его вина.

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

Ибо «стрелянные воробьи», как показывает практика, весьма мобильны.
Есть еще другая крайность — зеленые джуниоры, поработав в одном месте, может даже и забесплатно, заламывают 120-140 тысяч, и ведь где-то их наверно даже возьмут.
Насчет опенсорца не соглашусь — в большинстве случаев это сведется к написанию патчсетов, которые гуру будут отправлять на доработки (или еще хуже — включать как есть, на удивление наблюдаю такое в некоторых проектах на github). В серьезных проектах от услуг новичков может быть категоричный отказ. Вот и весь процесс.
Я не предлагаю работать забесплатно, но оплата ниже рынка для людей без опыта (как вариант — на испытательный срок) — это нормально. Считайте это цена подобных курсов, только не на абстрактных задачах, а вполне себе бизнес-заказчик. И процесс (как повезет, конечно), и манагер, и сроки, и недовольные клиенты, и факапы, и аналитик, и админы и, конечно, старшие товарищи.
Обучение — инвестиция времени для компании и ее сотрудников и я лично рассматриваю это как благо для новичков, т.к. ни в университетах ни на курсах этому за очень редким исключением не научиться. Нет выхлопа — на очереди следующий. Не вижу смысла тащить людей, которые выбрали эту профессию в основном руководствуясь солидной зарплатной вилкой.
Итого — человек без опыта должен чем-то пожертвовать для начала, чтобы перейти на следующий левел.
А крупные фирмы, которые организуют IT-школы на базе университетов (очень хорошее дело) как наиболее приближенное к реальным процессам, во-первых, делают жесткий отбор, во-вторых, все-таки готовят кадры под себя, хоть и не создают перед слушателями каких-либо обязательств.
> Насчет опенсорца не соглашусь — в большинстве случаев это сведется к написанию патчсетов, которые гуру будут отправлять на доработки

Это интересная тема.
1) Чем это плохо для старта?
2) В коммерческой компании будет как-то по-другому?
Есть большая разница:
1) гуру находит первую (первые две) недоработки в патчсете и отправляет на доработку — участник курит маны/stackoverflow/спрашивает на форуме и т.п. Никакой системы и не ясен регламент выбора задачи для реализации, что важно.
2) организация обучения сотрудника в форме наставничества (что возможно не в любом коллективе) параллельно с выполнением тасков уже для бизнеса.

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

Если Вы так уверены насчет своей точки зрения — может порекомендуете конкретные проекты, где можно нарастить скиллы (на уровне коммерческих организаций)? Ответ «да любой» не подходит. Вы опять же написали — большинство опенсорца делается в рамках коммерческих компаний — неужели считаете, что в таких проектах вообще есть большой резон использовать постороннюю рабочую силу? Кто-то ограничит это заведением тикетов, а исправлять чужие баги — занятие не из приятных.
Полностью согласен по первым пунктам.

По поводу самого первого шага у меня есть проверенный рецепт.

1) Берется сайт с вакансиями (например, hh.ru).

2) Ищется вакансия программиста с хорошей детализацией нужных скиллов.
Часто скиллы выражаются в списке кейвордов (Java, Maven, SQL, Hibernate, Spring...). Желательно такая вакансия, чтобы похожих вакансий было много.

3) Выбираем, что будем делать. Что-нибудь простенькое. Например, для веба — это todo list, для IDE — плагин для какой-нибудь мелкой фигни.

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

5) Если вакансия закрылась (что далеко не факт, если контора крупная) — идем на собеседование в этой конторе. Можно сразу просить и выполнять тестовое задание.

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

7) Мы точно подходим под навыки, которые хочет эйчар, поэтому эйчара проходим вообще без сопротивления. Дальше доказываем техническому специалисту и менеджеру, что мы адекваты. Получаем предложение. Квест завершен.
Чему-то можно и нужно учиться самостоятельно, что-то подскажет наставник и это сильно сократит время обучения. Здесь важно сюблюсти баланс. С одной стороны, не дело использовать наставника вместо гугла, с другой, неправильно заставлять джуниора неделю ходить по граблям и изобретать велосипеды, если после объяснения информация будет усвоена и закреплена за день.

А чему-то можно научиться только работая над рельным проектом. Например, опыт работы в команде ну никак не приобретешь, в этой самой команде не поработав :)
Есть такая прикольная сфера, называется она «Сообщество разработчиков пиратских серверов MMORPG», если изначально в нее попал, то выходишь ты оттуда со всеми вытекающими знаниями разного рода разработки ;)

Я к тому, что если джуниор интересуется клиент-серверной разработкой изначально, то очень круто его направлять в то черное место. Выживет он или умрет — дело за ним.
Мне вот почему-то сильно кажется, что как только разговор заходит про junior'ов, то сразу появлются какие-то непропорционально завышенные требования. Скажем для тех же middle требования звучат совершенно другие. И, да, здравствуйте минусы.

Абсолютно. Реально ответсвенные, самостоятельные, высоко мотивированные и адекватно амбициозные люди вертели все эти Рога и Копыта с бесплатной стажировкой. Он может сам себе провести предпрофессиональную подготовку и после этого пойти, например, рабочей лошадкой (= миддлом) в мелкую конторку с нормальной зарплатой, либо в контору с именем с реальным обучением.

Ну, и соответсвенно обильное излияние подобного «мотивационного» буллшита как в посте с головой выдает в топикстартере работника кадрового агентства, конечно же.)
Везде нужно знать меру, но лично мы предпочитаем фанатиков, нежели специалистов широкой специализации. Проблема с последними довольно проста: они умеют всего понемногу, но не способны использовать все возможности инструментов, которые используют, что приводит к разнообразным велосипедам, которые приходится исправлять «фанатикам».
Я имею ввиду фанатиков, которые используют технологию просто потому что это «круто», «кошерно», «good way», «true» и т.д. И используют ее к месту и не к месту.
А то о чем говорите вы — это именно хорошие узкоспециализированные специалисты, но такие спецы всегда знают что можно ждать от смежных технологий и решений, в отличии от фанатиков.

Как-то так :-)
«Спецы» склонны к усложнениям. В промышленности спец нужен для того чтобы понять как использовать имеющуюся технологию или почему нужно писать свой велосипед. Реализацию специалисту надо доверять только очень аккуратно… Ее потом фиксить этот специалист не будет (надоест, будет новая технология, специалист будет занят другим). И вот вам джуниоры поняв наполовину что хотел сказать специалист этим пассажем вам такого наворотят…
Ага, а потом ты потратишь неделю на функцию перемножения матриц, попытаешься построить треугольник по двум точкам, напишешь поиск с помощью полного перебора и сделаешь квадратные глаза, когда я попрошу в приложении закриптовать пароли с помощью RSA-алгоритма или внедрить цифровую подпись. (Если вы считаете, что это выдуманные примеры, то я вас разочарую).

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

Многие наоборот понимают, что диплом среди всего прочего нужен, что бы пройти первичный фильтр у работодателя (когда при прочих равных сначала позовут пособеседоваться дипломника, а до условного тебя может очередь и не дойти) — ценят своё время.

И да, ценя своё время не забивают голову тем, что гуглится, читается и понимается достаточно быстро. А толковый джуниор ещё и готовую библиотеку быстренько под указанные вами примеры отыщет, вместо того что бы с нуля реализовывать. Почему? Умеет управлять своим временем и не писать велосипеды ради велосипедов! ;)

Если джуниору всё понятно и вопросов у него нет, можно без зазрения совести выгонять его в этот же момент. Ведь у начинающего разработчика вопросы должны появляться каждые десять минут. Часть из них он должен найти на форумах, часть — на StackOverflow, но стабильно раз в день какой-то вопрос должен появиться. Наблюдение работает безотказно: если длительный период нет вопросов, результата можно уже не ждать, а с джуниором прощаться.

Стоп, вы подошли, спросили — а ему всё понятно уже. Потому что он уже нашел ответ на форумах. А вы его выгоните и оставите того, кто не умеет самостоятельно искать информацию. Отличный подход!

Ну и последнее.
сейчас мы его научим, а он уйдет к конкурентам;

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

Не все можно найти на форумах. Я думаю, имелись в виду вопросы, касающиеся сути задания.
Так если само задание джуниуру не совсем понятно, то проблема, быть может, не в нём? )
Даже если джуниору будет выдано офигенно подробное ТЗ, что бывает редко, остается проблема коммуникации 2-х людей. Абсолютное взаимопонимание без уточняющих вопросов, наверное, в принципе невозможно. Элементарно по причине того, что опыт и багаж знаний у всех разный.

Далее, часто задание выдается в том числе с целью того, чтобы исполнитель провел исследование и предложил варианты решения задачи. И если от синьора требуется самостоятельно выбрать вариант, основываясь на своих знаниях и опыте, от джуниора ждут, что он придет проконсультироваться по поводу более подходящего варианта, т.к. у него априори меньше опыта и он часто не видит всей картины целиком.
Тогда зачем автор вообще вспомнил про форумы и т.п.?

Но даже если не возникает вопросов, то
1) не показатель косячности — может задание действительно простое
2) не переспрашивать в случае нечеткости задачи — грех не только джуниуров.

Ну и при любом раскладе, сразу выпинывать не надо, надо смотреть по результатам. Опять же, на то он и джуниор, что бы учить его. Учить не бояться задавать вопросы в том числе. Миф о том, что если много спрашивает сойдёшь за тупого — этот миф, увы, кое где ещё жив.
1) не показатель косячности — может задание действительно простое

Дело не обязательно косячности. Иногда, отсутствие вопросов — признак излишлей самоуверенности. А если эта самоуверенность не подкреплена опытом, что мы имеем в случае с джуниором, проблемы обеспечены. Я обычно в такой ситуации говорю: «если тебе что-то не понятно или понятно не до конца, лучше подойди и спроси», — т.к. вещи очевидные всей остальной команде и, поэтому, незадокументированные, могут быть для джуниора в новинку.

Я еще не видел ни одного джуна, который бы на вопрос: «видишь код, почему эта штука сделана вот так, а не эдак?», — всегда давал бы вменяемый ответ. Соответственно вопрос к джуну, почему он работает с кодом, которого не понимает и не задает по поводу этого кода вопросов.

Ну и при любом раскладе, сразу выпинывать не надо

Я думаю, это был литературный прием такой.

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

Ну с этим как-бы никто вроде и не спорит. Речь о том, что учить — не значит ходить за ним со слюнявчиком.
Ну с этим как-бы никто вроде и не спорит. Речь о том, что учить — не значит ходить за ним со слюнявчиком.

Согласен, дело в балансе, которые должны стараться соблюдать обе стороны. А у меня пассажи вида «делает X — выпнуть, без вариантов» вызывают ассоциации с фразой «работать у нас — большая честь».
Как правило появляются вопросы по задаче. Если нет вопросов — 99% что на неё «положили».
Всё что я встречал в жизни говорит именно об этом. Даже с огромным и шикарным ТЗ появляются вопросы и у матёрых разработчиков.
Как-то много пафоса.

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

Вот и все премудрости. Просто тратите чуть больше времени и получаете чуть больше рисков, но зато это может окупиться тем что ЗП в 90% фирмах не спешат подымать, даже если джуниор уже давно не джуниор.
> Обращайтесь с джуниором ровно как с синьором
А зачем? Нет, правда, зачем? Не вижу в этом плюсов ни с воспитательной, ни с управленческой колокольни.
Синьор — это синьор, джуниор — это джуниор. Первого демотивируете, второго развратите.
Не, знаю кого вы там развращать собрались, но джуниор такой же человек как и синьор, а не умственно отсталый и сюсюкаться с ним толку много не даст. Просто поддерживайте в команде командный дух где все на равных, но каждый отвечает за свою область. Я очень часто себя делегирую в подчинения другим менее опытным коллегам и ничего, корона не падает, просто я понимаю что для проекта так надо. Не знаю как у вас, у меня это дает много плюшек в виде вовлеченности всех участников команды в проект и искренних улыбок на работе. А это стоит многого.

А у Вас мне кажется, хотя возможно я ошибаюсь, какая-то дедовщина выходит. Поверьте, если вы просто поверите в человека это окупается сторицей.
А у вас правило Парета работает? В смысле, сколько из принятых джуниоров дорабатывают до мидла и сколько работают на позиции мидла до ухода/следующей_ступени?
Можно я отвечу? Для нас Парето как раз для «джуниоров» не работает: остаются процентов 80 как минимум на год-два работать у нас, затем уходят в смежные конторы, чаще потому что меняют специфику задач на более интересную.
Хотя тут скорее описан не джуниор, а какой то стажер.

Если разработчику не нужна нянька, он сам умеет управлять временем, то зачем ему вообще контора? Ему дорога в свой стартап или фриланс.
Если разработчику не нужна нянька, он сам умеет управлять временем, то зачем ему вообще контора? Ему дорога в свой стартап или фриланс.


Из личного опыта: «свой бизнес» — это всегда целый набор дополнительных задач, которые не все разработчики хотят (хоть и могли бы) решать. Это бухгалтерия, общение с непосредственными заказчиками или инвесторами и тому подобные административные вещи.

В свое время я активно фрилансил (фриланс таки проще совмещать с универом), но когда появилась возможность перейти на работу в IT-компанию, этот переход был сделан. Правда, к тому времени я уже был не стажер без опыта.
Поддержу Volmontovich ибо фриланс/стартам это в том числе и другие виды деятельности. Которые зачастую требуют достаточно большого вниманию.
Я вот к примеру вел дела с забугорными заказчиками и первое время очень много времени тратил на операции перевода валюты. Валютный контроль этот еще тот квест даже если есть шалонные наработки нужных документов. Ибо очень уж у нас законодательство изменчиво и на отслеживание этих моментов нужно так же тратить время.

"Водитель, помни! Если одной рукой ты ведешь машину, а другой обнимаешь девушку, то оба дела ты выполняешь одинаково плохо." (с)
Alekciy, за свою практику в разных компаниях, из всех джунов что я набрал — мы уволили лишь двоих. Так что скорее работает по принципу 80% взяли\20% уволили. Плюс увольнений по собственному желанию было два. Один когда человек захотел перейти на джаву — а у нас не было проектов на джаву. И когда человека задолбал СТО в одной конторе напрямую, был такой печальный опыт.

Но это все субъективно и не относится к реалиям. Тут уже ближе в сторону рекрутинга и подбора кадров.
Про отсутствие вопросов — просто убило. Т.е. если человек умеет искать информацию по различным истоникам (и успешно искать), то его, по вашей логике, нужно быстро-быстро увольнять.
Если джуниор приходит на существующий проект, то задавать вопросы — его прямая работа. Нельзя нагуглить решения, которые используются внутри команды, нельзя слепо копировать нагугленные решения — потому что у джуниора нет «чутья», которое должно приобретаться с опытом.
Беда в том, что задача почти никогда не ставится исчерпывающе точно. Поэтому, если разработчик не задает уточняющих вопросов, то либо он не понимает чего-то самого главного (и даже не осознает этого), либо действует по шаблону (не задумываясь), либо придумывает какую-то отсебятину (из-за проблем с коммуникацией, скорее всего). Все это мало хорошего говорит в его пользу.
Без обид, но статья большей частью «капитанская». Позвольте дополнить собственным опытом.

1. Деньги. Джуниор не зарабатывает денег для компании, а только тратит. Причем не только свою зарплату но и дорогое время наставников и коллег-консультантов. Поэтому когда берете джуниора вы должны четко представлять как и зачем вы его будете растить и главное, почему он потом решит остаться. Хорошо бы сразу нарисовать перспективу на несколько лет. Это не только финансовый но и психологический вопрос. И не советую пытаться взять джуниора забесплатно. Мотивацию потеряет очень быстро. А компания — зря потратит деньги.

2. Фанатики. У большинства фанатизм проходит в реальной работе через полгода. Когда начинают понимать что объект поклонения не без изъяна и что вон те ребята из соседнего отдела вполне себе прикольные штуки делают на Delphi под Windows. Дайте больше общения джуниору. А так абсолютно с вами согласен. Мне не встречались ценные для дела фанатики, хотя я не исключаю что они существуют.

3. Срок первой задачи. Я обычно тоже не ставил срок а просил джуниора самого назвать. Очень полезный тест на оценку объема работ.

4. Дисциплина. Не только в поведении но и в разработке. Стандарты оформления, документирования, соблюдение регламентов компании и прочее. На этом нужно акцентировать внимание уже при трудоустройстве. Джуниорам кстати проще к этому привыкнуть чем бывалым.

5. Отношение к критике. Если плохо воспринимает, с обидами — лучше сразу распрощаться. По моим наблюдениям эта черта неискоренима. Очень мешает в работе и особенно обучении.

6. Уважение. Не надо относиться к джуниору, как к пацану на побегушках. Иначе он таким и вырастет.

7. И не забывайте регулярно хвалить за успехи. Это ничего не стоит для вас и компании, а эффект хороший.
UFO landed and left these words here
Скажите, Chebanov, а были ли в вашей практике обучения 35ти летние джуниоры? и если да, чем они кончили?
Такого не было, всё таки джуниор это ещё и возрастная характеристика :)
в 35 лет у человека за плечами в любом случае уже довольно много профессионального и жизненного опыта
И тем не менее, даже спустя 10 лет человек может решить изменить направление деятельность строго перпендикулярно. Есть программисты, работавшие до этого врачами, есть дизайнеры, работавшие программистами
Ну вот перед вами один из таких у которого в 35 ничего нет за плечами
>Жизнь показывает, что не имея теоретического и математического бекграунда, можно легко стать успешным кодером, но не специалистом высокого уровня. Исключения из этого правила есть, но на то они и исключения.

В моей 5-ти летней практике коммерческого программирования ни разу знание высшей математики не пригодились, хотя я не считаю себя спецом высокого уровня.
Матан нужен только в физическом моделировании, пожалуй. Ну может еще в высоконагруженных системах, не знаю. А вот дискретная математика, линейная алгебра, теория алгоритмов — must have.
В моем понимании, спец высокого уровня, это прежде всего опыт и ответственность, уменее сделать работу максимально качественно и наиболее оптимальным образом, но никак не формальные признаки вроде умения доказать ту или иную теорему.
Ну конечно вы правы. Речь ведь шла о джуниорах. Бэкграунд нужен им чтобы быстрее стать спецом высокого уровня.
Открываем исходники Symfony2, Zend Framework2 и ищем там практическое применение таким терминам как «дискретная математика, линейная алгебра, теория алгоритмов». Не находим, закрываем и перестаем употреблять категоричные формы.

Всему свое место, не зная кватернионов сложно сделать клиентскую часть игры, но отлично можно писать мап-редьюсы для хадупа не зная даже такого слова.
Дополню мысль: Вот что мне не нравится в теоретиках от программирования так это рассуждения отвлеченные от реальности.
Например: все книги посвященные теории алгоритмов, учат нас что при подсчете сложности алгоритма нужно отбросить все константы, но по отношению к практике это чушь, (хотя конечно в целом n в квадрате хуже просто n). Из моего кейса: замена вызова api метода на обращение напрямую к памяти ускорило работу функции в 10-ть раз, изменив время работы метода с невозможных с 2-х секунд до приемлемых 0,2.
сложности алгоритма нужно отбросить все константы, но по отношению к практике это чушь
Поясните мысль, не совсем понял. Вы именно о сложности говорите или реально затрачиваемом времени?
замена вызова api метода на обращение напрямую к памяти ускорило работу функции в 10-ть раз
А чем это противоречит теории?
Я говорю в первую очередь о реальном мире, в котором два критерия работы метода: результат работы и затраченное время, остальное не имеет значения, если конечно забыть про такие параметры как понятность, сопровождаемость и так далее.
реальном мире, в котором два критерия работы метода: результат работы и затраченное время
Завидую простоте вашего реального мира.
если конечно забыть про такие параметры как понятность, сопровождаемость и так далее
И часто вы в реальной работе об этом забываете?
В реальной работе сложность алгоритма O(1) может оказаться хуже квадратичной.
Поясните, что значит хуже и что вы понимаете под сложностью в таком случае. А то как в анекдоте:
Значение синуса в военное время может достигать четырех и даже пяти!
Да нам собственно препод по ТФКП его и рассказал на первом занятии.
>Завидую простоте вашего реального мира.
А что не так со сложностью моего мира?
В моем мире есть функция. Если она сложно читается, пытаемся ее упростить. Если она неприемлемо долго работает, разбираемся почему именно долго и пытаемся понять как ее ускорить. Если она выдает неправильный результат, исправляем чтобы выдавала правильный. В большинстве своем, для выполнение этих простых шагов не нужно знать 3-х томник Кнуга наизусть.
А расскажите пжл про сложность вашего мира?
>если конечно забыть про такие параметры как понятность, сопровождаемость и так далее
Я все стараюсь делать максимально качественно.
Как минимум, кроме времени и результата есть следующие существенные критерии (в моем мире):
1. Потребляемые системные ресурсы.
2. Воспроизводимость результата для любых наборов данных
3. Воспроизводимость результатов на всех поддерживаемых системных окружениях (железо, ОС, версии библиотек и т.п.)
4. Стоимость и время разработки.
В большинстве своем, для выполнение этих простых шагов не нужно знать 3-х томник Кнуга наизусть.
А если бы вы Кнута почитали, может быть еще лучше соптимизировали, не думали об этом? И зачем сразу наизусть? Кстати книга достаточно читабельная, без тяжелого «матана».
Мы вроде говорили про методы, а не про готовые системы.
Касательно вашего комментария: думаю что разговор не совсем содержательный, поскольку для того чтобы вдаваться в детали, нужно говорить о конкретной системе, так как в бизнес-системах, например банкоматах, все окружение стандартизованно и случайно появится новая библиотека просто не может.

>Кстати книга достаточно читабельная, без тяжелого «матана».
На моей памяти, вы первый кто назвал 3-х томник Кнута «достаточно читабельным».
На моей памяти, вы первый кто назвал 3-х томник Кнута «достаточно читабельным».
Странно. На первом курсе с интересом почитал.
Касательно вашего комментария: думаю что разговор не совсем содержательный, поскольку для того чтобы вдаваться в детали, нужно говорить о конкретной системе, так как в бизнес-системах, например банкоматах, все окружение стандартизованно и случайно появится новая библиотека просто не может.
Значит п.3 вырождется до 1 окружения. Остальные остаются.

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

PS: Вы все-таки подумайте о теоретическом пополнении своего багажа практических знаний. Можете многое переосмыслить.
Я не говорил что я не читаю теоретическую литературу, просто я считаю что теория в отвлечении от практики ничего не значит и сама по себе бессмысленна, а трясти какой-то книгой указывая «путь истинный» даже глупо.
Совершенно верно! Не подумайте что я утверждаю обратное.
Открываем исходники Symfony2, Zend Framework2 и ищем там практическое применение таким терминам как «дискретная математика, линейная алгебра, теория алгоритмов». Не находим, закрываем
Что, ни одного даже захудалого конечного автомата в коде?
Насколько я знаю — нет, но если он там и есть, то без него, эти приложения смогли бы существовать нормально и приносить добро в мир.

И пожалуйста, не надо скатываться в частности, я привел пример лишь для задания направления мысли о том что категоричность тут не уместна, скорее тут надо вместо must have использовать will be a plus
категоричность тут не уместна, скорее тут надо вместо must have использовать will be a plus
Ок, если вас это так задевает :)

К слову я сам начинал прогать лет в 12, ни о каком бэкграунде конечно же речи не шло. Но изучение теории очень сильно помогло в моей дальнейшей работе.
Лет в 5 я уже писал на бейсике первом) Но это не имеет к теме никакого отношения.

Просто, зачастую 5 лет изучения в институте выходят боком. Давайте будем честны — зачастую в институте учат как пить, веселится и что можно ничего не делать пол года, а потом за пару минут извернутся. Так что ин дженерал если я слышку — я ушел с первого курса или забил потому что пошел работать — мне это импонирует.
зачастую в институте учат как пить, веселится и что можно ничего не делать пол года, а потом за пару минут извернутся
Интситут — школа жизни. И этому конечно тоже учит.
Так что ин дженерал если я слышку — я ушел с первого курса или забил потому что пошел работать — мне это импонирует.
А зачем было идти вообще?
Ну ин дженерал:
«Я красный дипомник мехмата. У меня средний бал 4,99. Я хочу ХХХ денег»
и
«Меня с мехмата на 3м курсе выгнали. Потому что скучно было. Вот мои приложения на AppStore раз, два, и три. Я слышал вы клевую софтину пишете, хочу поучаствовать. Денег ХХХ/2»

Если нам код надо писать возьмем второго, если обосновывать математические алгоритмы то первого. От ситуации будет сильно зависит. Как правило вторые нужны всегда, первые только на первое время.
it depends, как обычно. От проекта зависит. Если надо быстро и надежно клепать приложения для аппстора конечно даром не нужен выпускник мехмата без опыта. А вот в финмоделирование или HFT, например, я бы взял с мехмата.
Просто веб — отдельная статья, имеющего мало общего с традиционным пониманием программирования
А что такое традиционное программирование? Всякие бизнес-системы, это традиционное программирование или тоже баловство?
Вы сейчас уподобляетесь нашим «нанотенологам», которые изучают яблоки и теннисные мячи в рамках одной «науки» по той причине, что они одного размера. «Веб» он очень разный.
Их кто-то программировал? Или вы из той секты верующих в то что пхп программисты == говнокодеры?
Почему верующих?

Знаете, когда я слышу про PHP, мне всегда вспоминается момент из I, Robot, где герой Уилла Смита спрашивает у Сонни (робота), может ли он написать симфонию или превратить кусок холста в шедевр. Да, там следует закономерный вопрос «а ты?», но речь не о нем.
Для понимания, что за сцена
image

Так вот, к чему это я. Разве PHP создан для чего-то выдающегося? Вся суть PHP — это Вордпресс и его настройка, собственный фреймворк или CMS, которую пишет начинающий, кхм, разработчик; иногда Джумла; а также в большой степени метод copy&paste — люди находят решение, кое-как вставляют его, работает и ладно.

Для чего еще нужен PHP? Facebook и VK на нем написаны? Ну, разве от хорошей жизни они изобрели HipHop VM и VKKitten, которые компилируют код в C? Потому что PHP такой замечательный, удобный, быстрый, производительный, без пороков? Сомневаюсь.

PHP — это джаваскрипт (скорее, jQuery даже) в мире бэкэнда. Очень низкий порог входа, очень популярный из-за этого языка, всё что нужно — найти готовый код и вставить. И это вы называете программированием? Создание очередной CMS тоже программирование? Не смешите.

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

Писать нужно хотя бы на Scala, ну или Python. Во-первых, огромное количество библиотек и возможностей по сравнению с PHP, а во-вторых, нет холиваров и привязанности, сообщество само изучает множество сторонних языков (R, Go, Haskell и другие), инструментов и делится ими в обсуждениях.

И да, кто я? Я UX дизайнер, изучаю постепенно Scala. С 2006 увлекаюсь программированием, собирал команду до 2011-2012, писали на PHP. Так что это уж точно не из секты верующих.
Вы из секты анти-верующих, даже скорее анти-евангилист.
У вас PHP — это такой гном, который «не поощряет программирование, его изучение». И самое печальное это то, как вы видите людей, которые его используют — «сообщество PHP никогда не даст вам чего-то большего». Хотя строчками выше вы перечисляете достижения комьюнити вокруг языка (ага, HipHop, оно же HHVM, да и php-fpm до кучи...). Даже такие «кальки», как phing и composer скорее добавляют к экосистеме (задачи и проблемы надо решать), чем отнимают.

Я думаю, что правильно понимаю вашу мысль — PHP из тех языков, которые созданы для зарабатывания денег сейчас.
У него низкий порог вхождения, он массовый, он то, что упростило разработку веба до формата книжки для чайника.
Более того, я считаю, что это один из языков сильно толкнувших распространение веба, как явления (ASP хотел кусающуюся лицензию).
Плюс, имхо, PHP одно из бюджетных средств для проверки любой, сколько угодно сумасшедший идеи.
Facebook и Wikipedia выросли на дешевом и «бюджетном» языке, как и различные CMS, CRM и e-commerce.
Сильно сомневаюсь, что для постройки прототипа нужно использовать самый «навороченный» язык, 10500 боевых серверов и тыщу-три спецов. Вон, у Google c Wave не вышло. Это все равно что просить инженеров формулы-1 сделать самокат. Сделать-то сделают, но вряд ли у среднестатистического человека будет дом, машина и яхта, чтобы оплатить счет.

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

Поощрять изучение программирования должен сам программист — это в его компетенции изучать различные парадигмы, пробовать реализации и языки.
Ну, до тех пор, пока в синтаксис языка не станут внедрять рекламу…

Тридцать-сорок лет назад, были другие «массовые языки» (привет, cobol), которые упрощали задачи программиста.
Чтоб у вас поменьше «рвало» знайте — *.php когда-нибудь отправится на свалку, что случилось уже со многими языками.
Впрочем, профессию «программист» ждет та же участь. Нельзя же назвать «программированием» голосовое управление бытовой техникой или машиной?
Хотя строчками выше вы перечисляете достижения комьюнити вокруг языка (ага, HipHop, оно же HHVM, да и php-fpm до кучи...). Даже такие «кальки», как phing и composer скорее добавляют к экосистеме (задачи и проблемы надо решать), чем отнимают.
А ещё?

Плюс, имхо, PHP одно из бюджетных средств для проверки любой, сколько угодно сумасшедший идеи.
Есть множество других нормальных языков, тот же Python, если нравится динамическая императивщина. На худой конец Ruby [on Rails], но это если любите стрелять в ногу.

Сильно сомневаюсь, что для постройки прототипа нужно использовать самый «навороченный» язык, 10500 боевых серверов и тыщу-три спецов. Вон, у Google c Wave не вышло. Это все равно что просить инженеров формулы-1 сделать самокат. Сделать-то сделают, но вряд ли у среднестатистического человека будет дом, машина и яхта, чтобы оплатить счет.
Верно, но что мешает изучить Python/Scala и уже с их помощью создавать прототипы? Во-первых, там есть генераторы, а во-вторых, обычно намного меньше кода и он более reusable, особенно в функциональном программировании.

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

Чтоб у вас поменьше «рвало» знайте — *.php когда-нибудь отправится на свалку, что случилось уже со многими языками.
Впрочем, профессию «программист» ждет та же участь. Нельзя же назвать «программированием» голосовое управление бытовой техникой или машиной?
В каком смысле «рвало»? Или вы считаете, что у меня баттхёрт? От чего или кого?
Насчет программирования согласен, я как раз копаю в сторону автоматизации бизнес-процессов, чтобы в т.ч. и кодеры были устранены как класс. Программисты (квалифицированные) пускай занимаются интересными задачами.
Вам «еще» нужно для спора, а не ликбеза. PHP это большая экосистема, которая приносит фирмочке Zend весьма ощутимый профит. Я не подписывался лично вас переубеждать в обратном или менять ваш взгляд.

Для бизнеса нет понятия «нормальный язык». Ребята, вкладывающие деньги, не мыслят категориями динамичная или строгая типизация или там много синтаксического сахара или тут соль добавили. Есть ресурс, есть задача, нужно решение для получения какого-либо профита. Программистов нанимают для решения задачи. В среднем на зп одного среднего джависта или сишника/шарпера можно нанять полтора-два PHP разработчика. Или разработчика и фронт-енда, что уже маленькая команда из двух разнопрофильных спецов. Это уже реальный шанс сделать что-то, проверить и получить опыт/первый профит.
Я молчу уже о стоимости «расходников», типа хостинга и проч. И да проекты разные (мы только про веб), достаточно купить хостинг и тремя кликами поставить форумы, блоги, магазин, соц. сеть, вики… Сходите сюда веб-хостинги, не поленитесь — тыкните на compare. Там есть категории софта для установки (Instant Blogs,Instant Portals, **) — нажмите (?), появиться окно с конкретикой — что можно поставить. Посчитайте и сравните, что PHP, а что нет.
При цене в 4 бакса в месяц, у вас будет работающий сайт. И о да, вам даже программист не нужен. Если хочется, предлагаю сравнить со стоимостью решения такой же задачи, но с другим языком…

Про сообщество не понял. Чем оно плохо? Какое сообщество вы имеете в виду (ru, en, школьников, ZCE, guru)?

Если судить по эмоциональной наполнению вашего первого комментария, оно у вас очень негативное.
Незнаю, может мне кажется =) Но похапэфобия то ли рвет вас изнутри, то ли отравила до тошноты, то ли зарядила нехилый баттхёрт.
Я не хочу вас лично обидеть, да и вряд ли это возможно в интернете, моя идея такая (про php):
«easy to learn, hard to master»
Автоматизация бизнес-процессов…
Я надеюсь, что наступит тут день, когда вся кухня из SAP-вых решений, хранилищ, BPM и ETL процессов с системами документооборота и интеграции с CRM, ERP, BI и прочий мутью будет будет обходится без участия человека.
Имхо кодировать и костылить в таких «интегрированных» и «автоматизированных» системах нужно на порядок больше.
скучно и серо, с лихвой компенсируется ЗП — как контракт с дьяволом.
скучно и серо, с лихвой компенсируется ЗП — как контракт с дьяволом.

И как в контракте с дьяволом вы лишаетесь души энтузиазма и тупо «выгораете» на порядок быстрее, чем на интересном проекте.
От вашего комментария весь монитор жиром забрызгало. Так толсто, что даже тонко. Для полного набора осталось написать фразу: «PHP — небезопасный язык».
Ваше мнение о языке PHP носит крайне оскорбительный и невежественный характер от которого так и тянет снобизмом и псевдоэлитарностью, по своему характеру напоминающей высказывания недалеких владельцев мобильных телефонов яблочной компании: «IPhone для элиты, а Android для быдла и нещебродов», и рождающий целый ряд вопросов:
1. Что значит великие дела?
2. Вы имели разговор с создателями PHP и вам подтвердили что основная цель PHP все всякие cms-ки и вордпресс?
3. Вы имели разговор с создателями Scala Python и прочих «нормальных» по вашей версии языков и они вам подтвердили, что создавали их для «великих дел»?
4. Почему Javascript, node.js и так далее вдруг стали недоязыками, по вашей версии?
5. Пробовали ли вы написать что-то серьезное на php и соответственно как велик ваш опыт в разработке на этом языке?
6. Вы упомянули jQuery, под силу ли вам написать что-то похожее, или вы на недоязыках не пишите?
7. Не кажется ли вам что холивары вокруг PHP развязывают как раз такие комментарии как ваш?
8. Как коррелируется низкий порого вхождения в PHP c уровнем самого языка?
9. Что вы думаете а тысячах программистах для которых PHP был входной точно в программирование вообще?
10. Что вы думаете о том, что благодаря PHP мир веба стал ближе, что теперь можно создать свой сайт за условных 10 кликов мышкой?
11. Что такое программирование в вашем понимаении?
12. Почему фреймворки для php не относится к программированию?
Эх… Хоть и согласен с частью ваших тезисов, но на некоторые отвечу:
2. Насколько помню автор PHP писал, что создавал его «первоначально Personal Home Page Tools». Ну т.е. близко по смыслу.
5. Я — пробовал… получается плохо… скатываюсь на лапшу :)
8. Да так в общем и коррелируют, что язык изначально упрощён…
9. Ну я начинал с Sinclair Basic, машинных кодов и Pascal… Нет, честно, не знаю ни одного действительно хорошего программиста, который начинал с PHP, впрочем таких, если есть — вряд ли много… возраст у языка маленький ещё.
10. Вот клики это плохо, а сам язык своей простотой мне нравится, а своей упрощённостью — парит :)

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

На java/C# все же требования к общей квалификации программиста выше и меньше всяких говнокодеров.

P.S. Самому потребовалось около три недели, чтобы написать простейшее приложение на java+extjs морды. Умевшее по факту, только авторизовывать пользователя, показывать табличку, да транзитивно писать в бд. И большая часть времени при этом ушла не на код, на понимание как писать конфигурационных файлы для всяких spring/log4j/hibernate.
Встречный вопрос: а что это по вашему и почему фреймворки для php не относится к программированию?
Тот же Doctrine ORM это что такое?
И вообще, что за отношение к PHP такое? Каноничное «программирование» по Вашей версии, это что за зверь такой?

Извиняюсь за экспрессию, но задели — 3 года работал php-программистом и надоело слушать что php это недоязык.
UFO landed and left these words here
Поддерживаю, в своё время спал на уроках дискретки, а теперь натыкаясь на, казалось бы, неординарные и красивые решения с удивлением узнаю что вот это вот конечный автомат, а вот тут используется теория графов. Проблема в том что у меня в вузе материал давался в отрыве от реальных задач, например проверяли мы валидность цепочек символов с помощью КА и толку, мне было не очевидно что эти знания можно применить, например, для разбора esc-последовательностей.

Очень угнетает незнание того что очень простые и полезные штуки скрываются под такими хитроумными названиями как линейная алгебра, теория алгоритмов, сразу представляются суровые программисты пишущие программы для управления спутниками навигации учитывающие релятивистские эффекты OTO и прочие страшные штуки, а на проверку выходит что эти вещи я уже использовал и просто не знал их названия :)
Проблема в том что у меня в вузе материал давался в отрыве от реальных задач
Да. есть такое. На мой взгляд изучение теории гораздо эффективнее для разработчиков с каким-то опытом реальных задач. Когда в теории находишь изящные решения этих и других задач, это дает мощный толчок дальнейшему изучению и саморазвитию
а на проверку выходит что эти вещи я уже использовал и просто не знал их названия :)
Значит настало удачное время поизучать теорию. Она поможет систематизировать практический опыт и получить серьезный левелап :)
Хочу задать вопрос.
8 лет работаю инженером в телеком компаниях, и обширного опыта разработки не имею.
Недавно я решил начать программировать, и сейчас заканчиваю свой проект. Технологию осваивал с 0 (это кстати как раз node.js, база данных в виде json-файла. Всё это заливается через командную строку на github ).
За три месяца написан проект, который уже прошел стадию альфа теста и сейчас идет бета.

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

Теперь вопрос, как мне стать разрабом и сразу за деньги (от 3к$)?
Сразу за хорошие деньги стать довольно проблематично, всё таки практического опыта в 3 месяца довольно мало.
Может сработать путь прокачать скилл ещё на нескольких проектах, оставаясь на основной работе, а уже затем приступать к поискам новой

Ну и если поняли, что программирование это здорово и классного, то безусловно нужно развиваться и уходить в эту отрасль.
3 месяца это вообще не опыт.
За три месяца я осознал, что могу понять что то новое без особых проблем, ведь до этого я понятия не имел что такое callback, замыкания, DOM и т.д., а значит и другие вещи я тоже пойму, когда они мне понадобятся.

По дилетански посоветую: OpenSource проекты, особенно активные… Там практически любые навыки командной работы поймете, там же можно и поговнокодить и чужое поразгребать и ревью какое никакое, и критика, и «заказчики» — типа «сделайте мне такую же квадратную кнопку только круглую и с дыркой», и неясность ТЗ и рефакторинг и «истерически так слежалось». И для нормального работодателя опыт в OpenSource много значит. Там кстати можно и опыт управленческой деятельности получить.

За деньги (от 3К) это где? По Москве думаю реально, в Нижнем сразу только если знания специфические подойдут.

Кстати «программист» или «разработчик» это настолько широкое понятие. Вот мне сейчас бы пригодился «инженер из телекома» который бы шаблон для заббикса мог написать, скрипты для инсталяции, чтоб с гипервизорами на ты и без закидонов «да я 11 стандарт наизусть знаю». А то достаются такие «несерьезные задачи» джуниорам и получается: плюсовики написали конфетку, а разворачивать стали — какашка, потому что без бубна (инструкции по инсталяции а-ля третий том Войны и Мира), и конфига на 100500 параметров не работает. А если работает то падает потому что такой параметр Linux ни туда выкручен и т.д.
Еще вариант — искать работу на стыке того, что вы уже умеете хорошо (инженер) и хотите уметь лучше (программирование).
Сможете ли вы ответить, почему выбрали node.js?

По поводу зарплаты.
— Нет, без многолетнего опыта вы таких денег никогда не увидите.

callback, DOM и т.д. — это очень маленькая часть. Только вогруг JavaScript сейчас наворочена огромная инфраструктура, которую изучать и изучать. Без понимания какую техноологию брать и использовать именно для решения этой задачи, программист не программист — просто кодер. Кодер больших денег не получает.

А помимо стека технологий очень нужна теория. А вот с этим большие проблемы. Сейчас теории хорошо не преподают нигде. Нужно знаючи выискивать информацию по клочкам из разных источников. Даже в Вики многое описано по верхам, а порою очень спорно.
Даже сейчас если посмотреть на хабр, то тех кто понимает что такое MVC и для чего оно нужно и чем оно отличается от MVP — очень мало.

Если хотите разрабатывать, то как минимум 1 год вы должны работать за 1к-1.5к если брать Москву.
Ну, когда я джуниором устраивался, меня больше всего ставил в тупик вопрос «А что вам интересно? А что будете делать, если разочаруетесь?». Потом сообразил, что лучшим выходом было отвечать «Ну, скучно и ладно, я и не жду постоянного веселья.»
Нет, такого ни разу не было. Это больше для продавцов мобилок вопрос.
Вот по поводу конкретных знаний, все таки, как мне кажется, дискуссионная тема. Нет, поймите меня правильно, я сторонник необходимости хотя бы базового образования (школа + младшие курсы) (хотя, сам считаю, что учиться можно бесконечно). Но абсолютно не важно прямо сейчас знать, допустим, как устроена какая то файловая система (даже, если ты работаешь с ней), знать какой то конкретный алгоритм (например, для той же сортировки), устраиваясь программистом, что нового в стандарте C++11, ну или еще какие то подобные штуки. Здесь, как мне кажется, гораздо важнее умение найти правильный (ну или близкий к правильному) ответ, пользуясь доступными ресурсами (гугл в первую очередь + литература, если есть возможность). Ну и тыкнуть в нужное место (т.е. понять, что ты хочешь найти — правильно заданный вопрос — половина решения).
В этом плане более удачными мне кажутся общие простенькие одноминутные задачки на понимание, навроде chmod -x chmod.

P.S. я не айтишник по специальности, наверное, в этом дело =)
простенькие одноминутные задачки на понимание, навроде chmod -x chmod
Вот как это можно понять, не зная что за команда chmod? Это как раз вопрос конкретных знаний, о которых вы говорите.
ну одноминутные задачки в рамках той специальности, на которую устраиваешься. Если будущий линукс-админ не знает, что такое chmod, то это, как мне кажется, совсем печально. Но я соглашусь, что подобрать задачки из этой области довольно трудно, и, чем больше личный опыт, тем труднее (т.к. многие вещи начинают казаться очевидными).

В общем, абстрактном случае, это должно быть нечто сферическое, с чем собеседуемый постоянно имеет дело, но в не совсем стандартной ситуации/применении.
Для джуниора особенно сложно. Я в таких случаях предлагал писать на «псевдоязыке». Вот например, простейший пример. Написать функцию удаления с n по m элементов линейного списка. Задача простая, но ошибается каждый второй :).
Немного не по теме, но всё же
Мне вот интересно, есть ли какой-то конкретный и однозначный критерий, по которому отличают джуна от мидла или мидла от сеньора? Временной стаж — не показатель — можно годами втыкать на сборку сайтов из шаблонов.
И ещё момент — как самому определить тот момент, когда из одной категории ты вдруг переходишь в следующую? Я вот например, почти 3 года делаю игры. 2 из них работаю в крупной российской игровой компании.
И я не знаю кто я в этой линейке мерил.
Может быть однажды, я проснусь утром, посмотрю в зеркало и прямо вот так всем телом почувствую, что вижу в отражении сениора?
Есть. Плавающая линейка конечно, и все относительно, но сильно усредненно будет так:
Джуниор донимает всех вопросами и регулярно ошибается, крепкие мидлы могут на эти вопросы отвечать и делать свою часть работы, сениоры могут самостоятельно тренировать джуниоров и ставить им и себе самому задачи, вовремя их делать.

Но нужно понимать, что с этим мерилом нужно быть осторожным. Если человек 20 лет в экзотической технологии, и знает что и как в ней происходит, и может тренировать людей и ставить задачи — это, конечно, сениор. Будет ли он сениором если его вдруг перебросят на другую технологию — не факт.

Кроме того, я должен сообщить, что Senior статус в экс-СССР необязательно равно такому же статусу в конкурентных рынках, как, скажем, в США. У нас статус могут завышать а) чтобы денег не платить сотруднику, а повышать его ЧСВ и б) чтобы лупить больше денег на аутсорсе с заказчика, давая зуб, что на проекте исключительно высококлассные специалисты.
Впрочем, это правило валидно не только для экс-СССР, а для многих аутсорс-экономик.

В общем, тайтл имеет больше отношение к умению проходить интервью на эту позицию и в гораздо меньшей степени имеет отношение к реальным качествам.
Обычно по уровню ответственности. Junior — решает очень локальную тактическую задачу. Middle — уровень конкретных задач. Senior — решает проблемы (уже может поговорить на тему предметной области с PM, дать свои рекомендации и главное — отвечать за решение проблемы). Team Lead -отвечает за всю систему целиком.
Например — мы пишем игру
Нарисовать красный пункт меню с текстом «Поехали!» — задача джуниора
Сделать полоски здоровья и маны — задача мидла
Написать систему поиска пути для юнитов — задача сеньера
Написать игру — задача тим лида
Критериев столько сколько «измерителей».
Сеньор человек которому можно доверить задачу затрагивающую изменения в архитектуре, и быть уверенным что он не налажает. Т.е. человек умеет мыслить масштабно и при принятии решений оглядывается на всю систему в целом а не «решение конкретной задачи здесь и сейчас».
Джуниор это человек которому можно (и нужно) давать маленькие очень локальные проблемы и постоянно проверять как он их делает. Если задача сложная то заранее разжевать и на пальцах объяснить где какой файл править какие методы создать и откуда их вызывать.
Мидл нечто среднее между теми двумя. Мелкие задачи он делает влет. Но задачи с изменением архитектуры надо давать осторожно, и постоянно проверять что у него получается.
Ну а как определить «ху из ху», то тут у меня есть разные вопросы для разных категорий. Для сеньоров это обычно задание на проектирование. А ля как бы вы сделали файлопомойку, как поддерживать консистентность данных в БД и ФС, обычно это диалог где мы ищем слабые места и обсуждаем как их победить.

П.С. шкалы в разных конторах настолько разные что порой тимлид мелкой конторы не дотягивает до мидла из конторы покрупнее. Не всегда так — но обычно чем крупнее айти отдел тем понятнее кто сеньор кто мидл, ибо ты видишь коллег и видишь себя на их фоне.
Кхм… ваш джун — это стажёр. Первые полгода. Ваш мидл — это джун через полгода и ещё некоторое время. Реальный мидл вполне может тянуть задачи на изменения архитектуры. Вот создание — это да, лучше сеньёора привлечь.
Кстати, архитект (Для сеньоров это обычно задание на проектирование) / тимлид — это из другой системы классификации
Главное, чтобы джуниор не был идиотом. Точка. Всё остальное — чисто субъективная методика отбора. Я, к примеру, не задавал никаких вопросов. Сказано — сделано. Когда ответ нашёл сам — запомнишь надолго.
«Через две недели после начала практики я спрашиваю как продвигаются дела, есть ли вопросы. Если джуниору всё понятно и вопросов у него нет, можно без зазрения совести выгонять его в этот же момент.»

Ну ведь бред же, ну.
Почему вариант «Человек умеет читать и гуглить» или же банальное стеснение, не рассматривается автором?
Стеснение мешает работе, если человек не может эффективно решить задачу потому, что он стесняется, это однозначный риск.
Хорошая статья для работы со среднестатистическим джуниором. Осталось понять где найти настолько среднего джуниора.

Вспомнил как начинал я и мои однокурсники, так вот, по данным рекомендациям нас бы всех поувольняли. Хорошо, что наши работодатели подходили к вопросу более индивидуально.
Сейчас поднятая тема актуальна как никогда. Первый раз в жизни выступаю ментором джуниора, дело сложное и очень не простое, желание помочь пройти путь велико, но подводит отсутствием опыта. В общем я учусь и он учится, надеюсь опыт будет полезен обоим!
Хочу поделиться своим опытом.

Картинка 1
Где-то лет 10 назад я пришел на свою первую работу, это был проект 3D автосимулятора. У меня в голове был образ: меня закрепят за наставником, который чуть ли не половину своего рабочего времени будет терпеливо мне все разъяснять и показывать. По факту было следующее: у меня конечно был руководитель, который отвечал на мои вопросы, но процесса обучения как такового не было. Директор сказал: давай в рамках испытательного срока (3 месяца) сделаем мини-испытательный срок в одну неделю, сделай задачу (озвучил какую), сам поймешь, твое ли это, мы посмотрим на тебя, если все ок — тогда уже оформим тебя (но неделю работы оплатим в любом случае). У меня был легкий шок, т.к. реального опыта было ноль, перед глазами огромный проект из 2000 классов (С++), и я даже понятия не имею с чего начать. Ну ничего, разобрался. Не факт, что если бы не разобрался, то уволили бы — думаю, по моему поведению, поиску выхода из ситуации, они бы составили портрет — в этом и смысл. Есть своя ценность в таком подходе, не устраивать «медовый месяц», а сразу в бой.

Картинка 2
Прошло много лет, я давно сменил работу и пр… Очередной проект длинною в пару лет завершился, и меня перекинули на другой проект в нашей команде. Стек технологий тот же (C#, WPF), но используется множество вещей, с которыми тогда еще не успел столкнуться (Catel, WCF и пр.). Архитектура проекта крайне сложная, множество модулей, все сделано для максимальной гибкости и расширяемости (динамические атрибуты). Коллега, который в проекте давно, отдал много времени чтобы меня ввести в проект. Намного больше, чем мой первый наставник. Я гораздо быстрее въехал в проект и смог начать активно в нем работать (на носу был первый релиз). Поскольку расписывать азы мне не нужно было, коллега в сжатом виде за пол часа выдавал мне эквивалент нескольких часов чтения книг и кода проекта.

Не должно ли было быть все наоборот: возиться с джуниором и бросить на амбразуру сениора, ваше мнение?

моё мнение: не тратить время, которые не окупиться.

В первом случае можно сказать, что вас «тестировали» на проф пригодность. Время специалиста ценно и тратить его на каждого новичка рассказывая и обучая не выгодно финансово. Особенно, если речь будет идти об азах и общих решениях по области.

Во втором случае, выгодно провести несколько-часовое (дни, недели) «погружение» в архитектуру, дизайн и решения конкретного проекта. То, что новичок не сможет «схватить» без базы (а она нарабатывается годами).

Тут несколько напоминает японщину:

I. толпа новичков смотрит и повторяет за мастером
II. мастер работает с небольшой группой учеников
III. два-три специалиста продолжают дело мастера

Ну или по-русски:
Ни один царь не пошлет юнца девичьи покои охранять.
Не буду скрывать, что “проблема технологий” часто встречается и уже среди сформировавшихся специалистов. Недавно был свидетелем демонстрации одного проекта, который можно было реализовать максимум за четыре часа штатными средствами ASP.NET MVC и jQuery.

Технологическое одеяло проекта всегда перетягивается в сторону технологий где специалист «шарит».
ИМХО, статья — полный бред.

Я канешна не знаю, как в монстрах типа МГУ, Баумана или ИТМО, но многие нынешние университеты преподают старье, которое лет 30 уже никому не нужно. И вообще часто вызывают отвращение к учебе. Я мало с чем в жизни так же клево угадал как с тем, чтобы пойти работать со 1-го же курса и обучаться в бою))

А особенно убило насчет «Если джуниору всё понятно и вопросов у него нет, можно без зазрения совести выгонять его в этот же момент». Т.е. то что человек задрочился и во всем разобрался — его и погубит. Супер)) Успехов вам с таким подходом))
Учился давно в колледже на программиста. Так у нас преподаватели даже не знали, что такое MySQL, а на защите диплома (сайт) меня спросили: «А где установочный exe-шник сайта?» :)

Сейчас заново буду пробиваться (изучать) в программирование (веб и/или моб приложения для Android)
Only those users with full accounts are able to leave comments. Log in, please.