Как стать автором
Обновить

Комментарии 51

НЛО прилетело и опубликовало эту надпись здесь
А откуда тогда возьмутся такие программисты? Самому это всё постигать это x5 времени, которого сейчас и так не хватает. Освободившиеся часы времени лучше потратить с большей пользой для себя, а не работодателя.
Это часы времени будут потрачены именно на вас, потому что компетенции останутся с вами в итоге, а не с работодателем.
Это безусловно, но это будет неэффективное обучение и неполное. За то же время можно 1) больше отдохнуть, 2) получить больше и/или качественнее компетенции.
Маркетологи, продукт-овнеры и прочие обладают своими профессиональными навыками. Программист не должен обладать их навыками.
Странно, нам всегда пушили менеджеров в проекты, чтоб они ограждали излишне нежных программистов от ужасных заказчиков с дурацкими идеями (или наоборот) и переводили задачи про 5 красных линий во вменяемое ТЗ, а тут оказывается это задача юнита-программиста.

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

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

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

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

Вообще, я про эту часть:
Как я писал выше, все типы навыков должны быть одинаково развиты в каждом специалисте.


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

В этой части слов "менеджер" или "менеджмент" нет.
В навыках тоже не упоминал, что требуется быть менеджером.

И это не предполагалось. Это как раз и есть тот самый главный Пойнт, который "под другим углом". Что софт-скиллы — это не только лишь менеджерские навыки.

НЛО прилетело и опубликовало эту надпись здесь
Это вы знаете как работает чужое. Кто мешает сделать это же самое но лучше и менее уязвимое? Только извечная спешка и гонка за прибылью и/или экономией…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Думаю, здесь стоит указать то, что всё это лишь советы, и каждому самому виднее, что использовать и чем заниматься.

И если исходить из логики, что всё уязвимо, то и SaaS пользоваться не стоит в том числе, например.
Сейчас суровые айтишники набегут и запинают кирзачами ;)
Непопулярно это (текущая тема) в среде суровых перцев
Я знал, на что иду :)
В любом случае, считаю аудиторию Хабра адекватной.

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

Я даже извинился пару раз, если задел чувства чьи-то :)

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


Что касается навыков программирования, то мой опыт подсказывает, что существуют три типа навыков ("склонностей"), которые не очень часто пересекаются:


1) Программист — очень хорошо может запрограммировать заданный извне алгоритм. И здесь речь идёт не о тупом кодинге, а именно о "творческом переводе" человеческого языка в язык программирования, с учётом всех особенностей и ограничений (ну там, чтоб память не текла, чтоб гонок не было и т.д.)


2) ИТ-инженер — очень хорошо умеет проектировать и планировать где и какой алгоритм применить. Может вообще код не писать, но обычно пишет довольно бажные но очень идеологически красивые прототипы (которые очень часто манагеры любят продавать вместо готового софта).


3) ИТ-исследователь — очень хорошо умеет придумывать новые или оптимизировать старые алгоритмы (которые потом ИТ-инженер куда-нибудь вставит, если сможет). Пишет быстрый и/или экономичный код, но долго (не всякий манагер дотерпит до середины) и часто черезмерно специализированный (смена минорной версии внешней библиотеки — катастрофа)


Все 3 покрывают весь спектр собственно разработки, остальное — это внешняя организационная "обвязка", которая должна быть у любого, кто работает в иерархическом коллективе. Никто вам не расскажет про тайм-менеджмент лучше солдата (особенно солдата в увольнении :) ).


Соответственно требовать от себя или другого человека чтобы он был всеми тремя одновременно — это довольно неразумно.

Тут очень просто… когда хирург вас УЖЕ режет — вам конечно пофиг, лишь бы профессионал был. А когда до операции есть выбор между двумя специалистами примерно одного уровня, неужели вы предпочтёте того кто матом вас посылает? Проверить реальный уровень вы не можете, пока лично не прооперируетесь у обоих раз по 10… поэтому доверяем «бумажкам» а у них примерно одинаковый набор бумажек, но один посылает всех к чертям, а другой вежливо делает свою работу. В чью пользу выбор будет?

Хирурга я выбирал и буду выбирать не по бумажкам (меня не бумажки резать будут), а по личным рекомендациям и известным мне результатам (как положительным, так и отрицательным). И тут мат — не мат, просто не обращаешь внимание и всё, так же как не считаешь количество ушей и не смотришь на количество волос на голове.


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

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

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

Почему не выгоняют? Может потому что с зав.отделением пьют вместе? Родственники и прочее прочее… Или периферия, где эти два хирурга единственные на ближайшие 100км и его просто терпят.

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

НЛО прилетело и опубликовало эту надпись здесь
ИМХО, тут надо плясать от задачи. Если вы разрабатываете технически сложную программу, то на первый план выходят именно hard skills. Если же это очередное CRUD-поделие с 5-ю активными пользователями в час, тогда верно — разработчику будет достаточно минимальных технических навыков, чтобы разобраться и участвовать, и вот тогда уже на первый план выходят другие качества — и бизнес и человеческие, м.б. даже умение веселить коллектив или метко бросать дартс.
Если вы разрабатываете технически сложную программу, то на первый план выходят именно hard skills. Если же это очередное CRUD-поделие с 5-ю активными пользователями в час, тогда верно — разработчику будет достаточно минимальных технических навыков, чтобы разобраться и участвовать, и вот тогда уже на первый план выходят другие качества — и бизнес и человеческие, м.б. даже умение веселить коллектив или метко бросать дартс.

Мне кажется в проектах с 5-ю активными разработчиками на первый план выходит стоимость разработчика, а не его умение играть в дартс :)
Скажи мне, программист, кем ты будешь через 5 лет?

Так и хочется ответить — "а я томат!"
Нифига этот вопрос не помогает понять способности планирования. Единственное о чем он говорит, да и то не вопрошающему, а кандидату — это то, что его собеседует какой-то "странный" тип.

Речь идёт о том, что понимает интервьюер, всё-таки.

НЛО прилетело и опубликовало эту надпись здесь

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

Компетенции современного программиста под другим углом

с учетом того, что это 153-ая статья на тему важности soft-skills и того, что обратного никто особо не декларирует, угол не такой уж и другой, а какой и обычно
В комментариях активно обратное декларируют :)
Главный посыл, что программист сегодня — это не набиратель кода. Это важная боевая единица: юнит, который может решить исход сражения, если правильно будет пользоваться всеми своими заклинаниями.

Я скажу крамольную вещь, но по моим наблюдениям как раз всё с точностью до наоборот. Среднестатистический программист четвертьвековой давности, это как раз вполне себе самодостаточная боевая единица. Он садился и решал проблему. Среднестатистический программист сейчас нуждается в куче инфраструктуры вокруг, имеет массу навороченных бизнес-процессов, массу архитектурных и интеграционных требований, которые якобы должны повышать его эффективность, но… как в том старом анекдоте про самолёт: «А теперь попробуем со всей этой хернёй взлететь». Проблемы решаются намного медленнее и хуже.
Инфраструктура выросла вместе с отраслью.
Согласен, в некоторых местах разбухла чуть больше, чем нужно, но это не страшно.
Никто не говорит, что тот парень был плох. Он решал проблемы.
Как раз речь о том, что нужно решать проблемы (я ссылаюсь в материале на статью, где только про это и пишу). А для решения проблем в огромной и глубокой инфраструктуре сегодня, как раз и нужно обладать софт-скиллами, потому что раньше было легко. А сегодня нужно учиться сотрудничать со многими другими юнитами, разных бекграундов.
Да дело не только в инфраструктуре. Я бы сказал, в основном не в ней. Где-то произошел сбой метрик, например, когда результативность и оплату труда стали мерить в часах, строках кода и прочей ереси, а не в решенных проблемах.
Инфраструктура в глобальных масштабах, конечно, выросла. Но с точки зрения одного разработчика охват его части проблем не вырос. А может, даже уменьшился. Современный программист общается с инфраструктурой через толстые слои библиотек, и он в общем-то может позволить себе нихрена не понимать, как оно там за этими слоями работает. А зачастую и не понимает. А четверть века назад во многом приходилось самостоятельно разбираться. Хочешь письмецо отправить? Вот тебе порты, вот тебе протокол SMTP, садись, пиши реализацию. Хочешь многоуровневое приложение? Вот тебе брокер CORBA, вон тот шкаф с книгами — это мануал, а вон там на стене винтовка, сам застрелишься, как прочтешь половину.
И самое загадочное — те самые проблемы и фичи. Даже в таких садистских условиях продуктивность труда была почему-то выше.
Хм. Я бы сказал, это хорошо, что уровни абстракции инкапсулировали от программиста реализацию многих низкоуровневых вещей.
Было бы логично, если в таких условиях программист мог задуматься о конечном пользователе больше, чем раньше.
Я не говорю, что это плохо. Это хорошо. Я говорю, что даже несмотря на это продуктивность работы программистов упала.
Было бы логично, если в таких условиях программист мог задуматься о конечном пользователе больше, чем раньше.

Программист о конечном пользователе не особо думает, ни тогда, ни сейчас. Для этого и появились UI-дизайнеры и бизнес-аналитики :)
Считаю, что программисту тоже стоит думать о конечном пользователе. Как минимум на уровне мотивации к его деятельности. Типа, а зачем мы тогда всё это делаем.
А в небольших проектах, где нет UX / UI спецов и аналитиков, эта вещь становится более чем уместна.
Я опять же, не про то, как оно там должно быть, а про то, как есть. Это объективная реальность. Среднестатистическому программисту в общем не то, чтобы наплевать на пользователей, но он
а) не мыслит категориями «как это сделать, чтобы наиболее бестолковый пользователь разобрался». Для него логичен тот интерфейс, который он сам понимает.
б) если ещё и решает пользовательские проблемы, то бывает ими крайне раздражен.
Согласен с вами.
Будучи человеком, который участвует в воспитании и мотивации сотен молодых специалистов в год, считаю, что нужно продвигать более идеальные профессиональные ценности.
Все специалисты сталкиваются с объективной реальностью, но, если периодически не поднимать планку мотивации, изменений к лучшему дожидаться придётся дольше.
все верно. Надеюсь, что и диплом кому-нибудь пригодился.
Исходя из вашего ТОП-6, могу предположить, что в вашей команде отсутствует т.н. менеджер, в обязанности которого входит общение с заказчиком и специалистами из других отделов, вводить в контекст и организация работы команды, либо, если он есть, работает он неэффективно, раз эти функции вы возложили на абстрактного программиста.

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

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

К разговору о том, что расставаться с реальностью — я описываю свои принципы работы. Учитывая, что мне за них платят деньги и уважают в моей компании, значит, это реальность.
Потому что в его — менеджера — задачи входит использование данных навыков, и за умелое применение оных ему, в общем-то, и платят деньги. Если у вас небольшая команда, и вы в состоянии организоваться за конечное время, то вам он, разумеется, не нужен. В средних и крупных командах менеджер оправдывает своё существование. Я не сказал, что это только его задачи, но разве рационально разбазаривать время команды, когда это можно поручить отдельному человеку специально приспособленному под эти задачи?
Потому что от специалиста в первую очередь требуются его профессиональные навыки, т.н. «hard skills». То, что вы описываете как «soft skills», является приятным дополнением, но никак не влияет на ваши профессиональные навыки. В вашей статье эти навыки указаны как требуемые, т.е. без них специалист — не специалист, что, на мой взгляд, является некорректным посылом.

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

Скажите, вам точно платят за ваши принципы, а не за навыки?
НЛО прилетело и опубликовало эту надпись здесь
50% успеха программиста это его английский
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации