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

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

Спасибо, ваша статья содержательная и полезная, но в ней высказывается предположение, что лирический герой в исходной статье и есть её автор. Насколько я успел ознакомиться с творчеством @fillpackart,речь в них всё же не о нём самом, а некий собирательный образ, а повествование от первого лица -- художественный приём.

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

Знания, которыми ты не пользуешься, вымываются из памяти. Ты можешь прийти студентом со знанием десятка языков и нескольких платформ, но через десяток лет сможешь пользоваться только теми, что постоянно приходилось использовать в деле. До тех пор, пока активно используешь два языка ты можешь в них развиваться или хотя бы поддерживать уровень актуальных знаний (какой ценой?), но на остальных с трудом наколбасишь Hello World с помощью гугла. И тут возникает вопрос — стоило ли тратить время, если ты всё это забыл? Я хотел бы услышать здесь чужое мнение
PS Многие учили когда-то Basic, Pascal, да даже C, а если бы сейчас могли выбрать изучать вместо них любимый язык, согласились бы?
Вопрос того, на чем ты фокусируешься. Изучать языки как функции и операторы действительно довольно бессмысленно, но вот концепции это совсем другое дело.

Если бы я не полез учить Haskell, мне было бы куда сложнее понять часть особенностей C# и многих других современных языков.

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

Учить похожие general purpose языки достаточно бессмысленно, разумеется. Особенно бесполезно заучивать функции и операторы. А вот смотреть на разные языки и подходы, чтобы понять лежащие в их основе идеи и механизмы это как раз полезно и переиспользуемо.
Звучит как T-shaped: крутые знания в одном, базовые во многом. Очень полезно, да и с опытом просто неизбежно лезешь в соседние технологии. Но изучение концепций это ни разу не фуллстек
Зависит. Именно из-за знания концепций я легко пишу продакшеновый код на разных языках, когда этого требует проектная необходимость. Даже low-level штуки гораздо легче учить — опять же, там используются некоторые общие концепции. Хаки и те похожи.

Собственно, статья во многом об этом и как раз-таки о t-shaped. О том, что фул-стек должен обеспечиваться за счет понимания разных принципов, которые ты можешь комбинировать в своем арсенале. И это протиповопоставляется системе архетипов с жестко выстроенным скиллсетом.

Это неверно. Смотрите Асю Казанцеву про долговременную память.

Посмотрю, спасибо. Но пока не посмотрел, возможно вы выскажете своё мнение тезисно? Так-то мнение я высказал на основе своего опыта, там как раз 20 лет набралось :)

То, что попадает в долговременную память уже "не вымывается". Оно остается условно-навсегда. Вы правы в том, что если вы выучили что-то 20 лет назад, то за 20 лет версии этого "чего-то" уйдут далеко вперед и знания будут не первой свежести. Кроме того, неиспользуемое действительно "условно забывается". Иными словами, без тренировок теряется "форма". С этим ничего не поделаешь. В людей "свободно владеющих C++, React, Haskell и еще 20 страшных слов" я не верю. Мой тезис в том, что сейчас зачастую доходит до абсурда, когда люди пишут даже не на одном языке, а на одном фреймворке.

Пример "потери формы" - это мышечная память. Любой профессиональный музыкант скажет, что если не играть несколько месяцев/лет, то многие сложные партии сходу уже сыграть не получится. Но музыкант может сесть на несколько месяцев и восстановить скилл. А если ты никогда на инструменте не играл, то уйдут годы. Восстановить форму != выучить новое.

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

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

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

Очень похож путь:) Правда пока не архитектор, а так team lead, но приходится копаться и в бэке .net, и xamarin, и в typescript angular, и в java с obj-c часто залезаю, чтобы разобрать специфичные задачи которые на текущем проекте требуется. Есть интерес именно разносторонне расти.

У хороших знакомых недавно систему акторов продвинул в проекте, потому что там iot большой, правда akka.net так как у них все дотнетчики, ребята джуны, но парни уже хорошо навострились, и сами кайфуют от того как пишется.

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

З.Ы. Почти к вам устроился в прошлом году:) Жаль проект на который меня хотели, немного забуксовал, но Анна и Андрей очень крутые, хоть я и подтупливал на собеседовании)

фулстэк это как инвестировать в лонг-терм фонд. Это сильно отличается от специализации, когда через 2 года вы сможете стать сеньором реакт разработчиком. Тут главное выбрать правильный набор языков. Нытьё про фс обычно можно услышать от ребят которые выбрали js на бэк/ фронт /десктоп/ мобилы.

Выбирая свой стэк вы обязательно должны взять:

Enterprise язык - java или C#, они развивают медленно, ещё медленнее они обновляются в enterprise приложениях. Это даст вам подушку на ближайшее 3-6 лет - вы всегда будете востребованы, даже не следя за релизами.

Раз два и в прод - php, python. Позволят вам поднимать не большие заказы с фриленса на досуге, копаться в легаси или автоматизировать заказ ? пиццы. Php (нет он не умер) проще зайдет после Java/C#

Js - вам придётся, выбора просто нет, его изучать веселее всего, особенно если речь про браузер.

Базы данных - PostgreSQL/MySQL + MongoDB, реляционнки для enterprise, монга будет схожа с другими документоориентированнвии бд, в общем случае нужно понимать концепт.

Future vision - golang, kotlin, swift, rust - возможно сможете попасть в интересный проект или просто показать на интервью что вы идёте в ногу со временем.

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

Несколько лет пройдёт и вы сможете спокойно онбордить всех этих джунов и мидлов в разные команды, с таким же успехом как это делает сеньор определенного направления. Развитие карьеры, вы 100% не будете тем сеньором который получает по ляму баксов в год и пишет крутой оптимизированный код для <выберите специализацию>, но вы сможете стать Теч/Тим Лидом, менеджером, СТО, архитектором с таким же пейгрейдом, правда написание кода перестанет быть вашей основной обязанностью.

В Facebook всех кого угодно любят. У нас 40000 инженеров работает, есть место для всех.

милорд =)))))
а откуда этот мем пошёл, интересно?
НЛО прилетело и опубликовало эту надпись здесь

из твиттера, по-моему. скриншот переписки

НЛО прилетело и опубликовало эту надпись здесь
Знаете, а ведь правы (IMHO) одновременно и вы, и Король Разработки (лирический герой Фила Ранжина): фуллстеки — это вечные миддлы, в том числе — и миддлы-архитекты. Потому как архитектор — это отдельная от кодеров специальность, которой, вообще-то, надо учить отдельно, но которой, похоже, просто не учат — а потому миддлы-самоучки там востребованы.
PS А вообще-то, путь развития отрасли — это всегда специализация. Примерно как в промышленности — от ремесленников-мастеров позднего Средневековья, делавших свои поразительные chef d'oeuvre, через мануфактуры Нового Времени, где отдельные операции делались куда более узкими специалистами, и до современных промышленных предприятий, в которых эти операциии подверглись всяческой механизации-автоматизации, и требуют совсем немного квалификации. IMHO промышленная разработка ПО, как очень молодая отрась, просто находится в начале этого пути, а потому вынуждена использовать, в основном, мастеров. Но тот, кто научится использовать более узких, а потому — более дешевых специализированных работников (особенно — из числа вайтишников) сделает большой шаг в организации процессов разработки. И победит в конкурентной борьбе на рынке.
Ждем.

Примерно как в промышленности — от ремесленников-мастеров позднего Средневековья, делавших свои поразительные chef d'oeuvre, через мануфактуры Нового Времени, где отдельные операции делались куда более узкими специалистами, и до современных промышленных предприятий, в которых эти операциии подверглись всяческой механизации-автоматизации, и требуют совсем немного квалификации

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

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

Мне кажется в пользу фуллстеков играет быстрое развитие технологий. Например, если сейчас взять VueJS и за день прочитать документацию, то скорее всего напишешь не хуже, чем какой-нибудь сеньор на чистом js или jquery. Я к тому, что выход новых языков и фреймворков, в некотором смысле обнуляет сеньорство и позволяет джунам/миддлам на новой технологии быть не менее эффективными, чем сеньор на старой. Для фуллстеков достаточно легко переходить на новые языки и технологии и им не приходится жалеть о потраченных годах на изучение уже нерелевантных вещей.

Рад видеть, что что тут не только про реакт.

Фуллстек миддл, прочитавший за день документацию с vuejs станет через год не более чем миддлом в vue. А тот чувак, который не играл в фуллстек и любит во фронт, станет хорошим спецом в vue3 и typoscript за год.

В вашей статье допущена критическая ошибка.
Развитие мультикласса в ДнД остатет всего на 1 уровень а не в два раза.
Вот посмотрите на таблицы опыта персонажей в ДнД 2

таблицы опыта классов




Итого персонаж набравший 500 000 опыта может быть или Воином 10 уровня, или Магом 11 уровня или же мультиклассом Воин-Маг на уровне Воин: 9, Маг: 10

Мдя, не думал, что кто-то полезет проверять таблицы опыта. Поправлю. Идея была в том, что дуал не должен всю игру шарить опыт между двумя/тремя классами, поэтому не обязан постоянно отставать в уровне от чистых классов. Кстати, если уж учитывать таблицы опыта, можно ещё упомянуть, что у некоторых классов последние уровни требуют такого дикого количества xp, предлагая такие-себе плюшки за этот уровень, что гораздо разумнее этот опыт закинуть в несколько уровней другого класса.

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

Заглянул в табличку опыта BG2 (собственно тормозные мульти-классы я помню от туда, а не из настолько D&D). Там даже не всегда в два раз. У Друида на уровнях 13-16 происходит что-то странное с опытом. В D&D есть какое-то объяснение этому, но я уже не помню деталей. В итоге Джахейра намертво залипает на 14 уровне друида и плохо прогрессирует как воин. Поэтому у меня постоянно была дилемма: то ли заменить ее кем-то более эффективным с точки зрения распределения XP, то ли оставить. Все-таки они на пару с Минском только из первой части перекочевали (Имоен первые три акта сидит в темнице).

Непременно прочту статью до конца, но спешу высказаться (трагикомично): 51++ лет, чуствую себя вечным "жуном", хотя "жоины" на "мускулах" накачал, в ЯП "хтмл" даже умею, и "дотнет" читаю в оригинале. Когда не умеешь программировать - программируешь с радостью первооткрывателя, но с опытом радость от "готово, я сделяль" тухнет, приходит желание написать 100500 тестов на 1 фичу, чтобы не было мучительно больно. Вот тут и раскрываются чакры, и понимаешь - что ничего не понимаешь, и начинаешь думать головой, но не переполненной кучей.
Пошел дочитывать...
Всем добра.

в ЯП "хтмл" даже умею, и "дотнет" читаю в оригинале

Да мало ли их, скилов, весь фулстек наперевес...

Кроме си, си ниасилил...
СиЖун
СиЖун

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

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

напорется он пару раз на стирающиеся дженерики

Что за зверь такой?

Type Erasure. Собственно, в том-то и пример, что [почти] любой миддл из мира Java не может этого не знать.

Спасибо, гляну

Максим, спасибо за статью, спасибо за то что продвигаешь путь расширения кругозора вместо пути уныния и страдания)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории