Каква е разликата между Junior и Seniorновини в областта на информационните технологии на портала ITMozg

областта
От години се опитвам да разбера какво отличава старши специалист от младши специалист. 10 години опит с Java или .NET? Докторска степен по информационни технологии? Брой завършени проекти?

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

И тогава ме удари. Участвах в конференцията IDDDTour в Белгия, където се обсъждаха проблемите на проблемно-ориентираното програмиране. Знаете ли какво ме изненада? По някаква причина стаята не беше пълна с млади професионалисти, които усвоиха мъдростта на опитни разработчици.

В публиката имаше 70 опитни специалисти, които наистина се интересуваха от сферата, в която работят. Те обмениха знания и идеи и си отговаряха на въпроси от категорията „защо?“, а не „как?“. Те надхвърлиха техническите граници на своята област и се фокусираха върху бизнес стойността на своя продукт.

Това е подходът, който определя истинския пенсионер.

Старши разработчик е някой, който задава въпроси на своите клиенти/работодатели/лидери, за да разбере същността на бизнеса на своята компания и да създаде наистина полезен продукт. Това е човек, който непрекъснато подобрява знанията си, за да създава качествен код, но основната му ценност е крайният продукт. Тя надхвърля, защото отвъд рамката започва магията.

Един старши разработчик е стотици пъти по-ефективен от най-професионалния младши, когато става дума за производителност на бизнес ниво.

И все пак "младши" звучи достатъчно ... ммм ...снизходително. Junior няма нищо общо с възрастта, само нивото на умения.

Спомнете си модела на Драйфус

(модел от пет стъпки на умствена дейност, участваща в придобиването на умения)

Малко предистория за тези, които не знаят.

В началото на 1980г двама братя учени, Хюбърт и Стюарт Драйфус, изнесоха лекция в Центъра за изследване на военновъздушните сили на САЩ за обучение на пилоти. Първоначално братята изучават проблемите на изкуствения интелект, а след това преминават към изучаването на процеса на познание като такъв. Така се ражда моделът за придобиване на умения, кръстен на тях. Този модел се различава значително от много подобни изградени матрици на компетентности. Първо, с факта, че е успешно приложен на практика в областта на здравеопазването с интензивно обучение на медицински сестри. Второ, фактът, че този модел описва не само самите етапи на развитие на уменията, но и обратната връзка на човек.

каква

Как работи в реалния живот?

Наскоро мой приятел обучаваше екип от 15 .NET програмисти за международна немска компания. За решаване на прости проблеми екипът беше разделен на мини-групи. Като задача за загряване те трябваше да решат следната проста задача:

Разделете текста на изречения и маркирайте всички изречения, съдържащи определени думи.

Ефективността на различните мини-групи варира десетократно.

Най-бързият екип намери решението за 30 секунди:

return source.Split('.', '!', '?') .Select(_ => _.Trim()) .Where(_ => searchFor.All(_.Contains));

Най-бавният екип от трима програмисти не реши задачата дори за 45 минути (!). Всички тестове бяха зелени, но кодът не работеше. Темно след като завършиха упражнението, те все още бяха доволни: все пак тестовете бяха наред. Този екип така и не разбра, че е премахнал няколко твърдения и проверката се оказа невярна.

Всички тези 15 програмисти бяха високо платени, но обхватът на техните умения варираше от начинаещи до ниво специалист.

Разработчикът на Dreyfuss "Pro" може да е най-добрият програмист в света, но мисленето на високо ниво и способността да се поставят под съмнение решенията отгоре тласкат производителността на "Expert" до тавана.

Белгийският разработчик и основател на своя бизнес Том Янсенс пише за нивата на придобитите умения по следния начин:

„Попитайте разработчик как биха се справили например със задача като тази: имате нужда от уебсайт с възможност за изтегляне на файлове от локалната мрежа, така че трябва да създадете изследовател, вграден в браузъра, за да преглеждате файлове в мрежата. Как програмисти от различни нива ще се справят с това?

Новик. Пита как трябва да изглежда изследователят и започва да говори за внедряването.

Продължава. Пита как трябва да изглежда изследователят и започва да говори как да го внедри с ajax и други неща.

Специалист. Адресира проблеми със сигурността на браузъра и мрежовия драйвер.

Професионален. Пита защо имате нужда от тази функционалност, реализирана по този начин.

Експерт. Ще постави под въпрос взетото решение и ще изиска бутонът за изтегляне да бъде използван като най-добрия вариант в тази ситуация.

Това ясно показва не линейно увеличение на производителността, а експоненциално.

разликата
Тъй като индустрията за разработка на софтуер се развива с тревожна скорост, неекспертите забавят нещата и често се противопоставят на промяната просто защотоне разбирам съвсем причините. Те могат да имат дълги аргументи относно качеството на кода по отношение на грешки, надеждност, стабилност, производителност и повторна употреба - всичко, но не и наистина важното нещо - бизнес стойността на продукта.

Истинската бизнес стойност на софтуера се крие в неговите конкурентни предимства и удобство за потребителя. За да направите такъв продукт, трябва да преосмислите неговите възможности и комуникационни умения, които ще ви позволят да вербализирате концепцията и ресурсите, необходими за изпълнение.

Както във всяка друга област, истинският експерт работи инстинктивно. Ако го попитате как точно е направил това или онова, той няма да може бързо да отговори на този въпрос. Точно както не мислите какви движения правите, когато ходите.

Светът се нуждае от разработчици, които се стремят към простота.

Светът се нуждае от разработчици, които се нуждаят не от месеци, а от минути, за да разрешат проблем.

Какъв е резултатът?

Старшият разработчик е фокусиран върху бизнес стойността на продукта и не усложнява процесите. Той развива бизнес процесите по такъв начин, че те да работят без негово участие.

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

Какво да правим с юношите? Позволете им да работят и да учат в спомагателни области, в некритични елементи на системата, да се учат от по-възрастни другари, да им осигурите полезна среда за самообучение. Не работете с хора, които не искат да учат и не се вписват в култура на постоянен растеж.

Превод: Люси Ширшова. По материали от блога на Марко Хеймешоф.