Несмотря на заявления, сделанные Джоэлом в этой статье, - и он признает эту точку зрения, - многие предметные области, которые могут быть пропущены "JavaSchool", не являются необходимыми для многих работ.
Я посещал что-то, что, как мне кажется, напоминает JavaSchool, в котором мы проводим большую часть нашего времени, концентрируясь на языках высокого уровня, таких как C # и Java, но это не меняет того факта, что «Алгоритмы и структуры данных» все еще являются частью списка обязательных классов. - не говоря уже о всех других теоретически ориентированных классах. Конечно, не все «JavaSchools» одинаковы, но это не главное.
На мой взгляд, более важным, чем понимание некоторых более сложных тем разработки, является способность эффективно решать проблемы, когда возникают уникальные проблемы. Как разработчики программного обеспечения мы проводим подавляющее большинство нашего обучения на работе, и поэтому два основных аспекта нашего описания работы заключаются в том, чтобы решать проблемы и улавливать незнакомые понятия. Если во время собеседования кто-то не может сделать заметную и логичную попытку решить проблему, которая является для него новой, то его несовместимость для данной позиции, скорее всего, проявится.
Очевидно, что при найме кого-либо на должность, которая требует постоянного ознакомления и использования какой-то сложной темы, которая может быть упущена JavaSchool, часто бывает логичным выбрать человека, который имеет предварительное понимание, но недостаток опыта не должен всегда исключать право на работу .
Более чем вероятно, что 50-летний парень из Java в вашей компании, который был там до тех пор, пока кто-нибудь помнит, не имел никакого понимания Java, пока его работа (текущая или предыдущая) не попросила его изучить его - и он сделал это. Строго говоря, это плохая практика увольнять «старого парня», чтобы его место занял более молодой и более современный кандидат; При этом, если описание должностных обязанностей какого-либо работника младшего или старшего возраста меняется, ответственность за то, чтобы его поймали или нашли новую работу, лежит на нем. Тот факт, что человек (особенно программист с прошлым опытом) не понимает какую-либо концепцию, не означает, что он не желает или не способен ее изучить. На самом деле, если они не хотят учиться, то, вероятно, они не принадлежат ни к какой работе, а тем более к вашей.
Справедливо сказать, что некоторые «JavaSchools» лучше других, и этот факт, безусловно, следует учитывать при выборе кандидата на должность, но есть гораздо более важные личные качества, чем то, где кто-то ходил в школу.
Мы склонны решать проблему и находить решение, которое определяет нас как инженеров, а все остальное является второстепенным.