Comments 29
по фронтенд части, если 15+, примерно такие - delphi, win forms, silverlight, php, java, jquery, backbone, react, typescript, микрофронты, react hooks, vue, alpine.
Так то я тоже лихо стартанул с линукса и совсе забыл про университетские паскаль (делфи напомнило про него) и лисп :)
Лисп - точно как говорят психологи, моя психика вытесняла как могла.
Выглядит как резюме джуна до эпохи llm.
Видите как интересно эпоха llm искажает реальность.
Поделитесь своими слоями ?
Linux, администрирование, шелл-скрипты
PHP, HTML, CSS, MySQL (ещё в школе, уровень соответствующий) + сайты на всяких там CMS.
PHP, Backbone.js, jQuery, MySQL - первый опыт коммерческой разработки.
Python / Tornado + PostgreSQL, тогда же начал использовать системы контроля версий (Mercurial, Subversion, чуть позже git)
PHP+Yii2, Docker, CI (GitLab)
Чуть позже допишу дальше
Дописываю (считать с 6)
О6лака (aws), Python / Flask, NoSQL-СУБД, первые удачные интеграции ML-пайплайнов.
Руководство небольшой командой разработчиков и датасатанистов
Облака, микросервисы и.т.д. (сейчас нахожусь здесь)
Хорошо, что проекты со статической типизацией и с функциональным программированием были у меня до проектов, растущих из PHP 5 (брезгливость), а хорошо продуманные раньше плохо продуманных. Теперь я могу вытаскивать плохие до хорошего уровня, а не наоборот
Нее, не то. Чем сложнее предметная область и выше ответственность, тем круче уровень. Все ваши свистоперделки это мишура.
Частично могу согласиться, что предметная область если сложная это стимул к развитию , ответственность тоже. В том плане что ответственность означает высокую цену ошибки и более того что человек ошибался и платил из "своего кармана"( временем, усилиями, нервами) эту цену за свои ошибки.
Но все таки если я вижу резюме где человек 10 лет на одном стеке и в одном проекте пусть и очень сложно , то у меня закрадываются сильные сомнения, например что он безынициативный, не интересуется развитием технологий и сложно представить что ни разу не пришлось коснуться смежных областей и технологий.
Не, ну мы же с деревом сравниваем: сердцевина - это образование (не только высшее, лучше со школьного аттестата смотреть), потом каждое новое кольцо это новая предметная область, "интереснее" предыдущей, а также более солидная должность, стэк может оставаться прежним, но не обязательно. Это с одной стороны. С другой никто вас в сложную предметную область просто так не возьмет и не посадит на ответсвенное место, дураки есть, но их мало. Короче дорасти надо. А если вы 10 лет сисадмините в "рогах и копытах", то с вами и так все ясно.
Ну вот я весь свой трудовой путь сисадмин. И (почти) всегда был сисадмин и остаюсь им. Но это совсем не значит, что я не интересуюсь технологиями и смежными областями - нормальный сисадмин как минимум должен уметь в пару скриптовых языков (bash, python, powershell).
Пришлось мне за свою карьеру ЧПУ-станки и ip камеры чинить и местами паять, видеонаблюдение и скуд настраивать, сайты на laravel и на django писать (и битрикс обслуживать, чтоб его черти драли)... да много-много еще чем приходилось заниматься.
Сейчас больше ушел в докер, кубернетес, airflow и разворачивание/обслуживание кластера greenplum с базой на 5+ Тб.
При этом все мои должности в трудовой - "системный администратор", пусть и в разных компаниях.
Мне давным-давно не приходилось искать работу, но если по-честному резюме писать, я могу написать "знаю" разве что про докер и с натяжкой про линукс, остальное - "трогал и что то умею". Так что по резюме так и получится, что я безинициативный и ничем не интересуюсь, хотя по факту это далеко не так.
Если по факту не так значит дело просто в том что в резюме не упомянуты важные факты и детали. Ну и линукс большой и докер и тд тоже много разного интересного.
А так да резюме зачастую очень смутное представление о человеке передает. По факту может быть все по другому при чем в обе стороны
Написал что знаю докер, потому что изучил его архитектуру и принцип работы и применил на практике.
На практике это не просто написание Dockerfile, docker-compose.yml, сборка образов и docker-compose up -d (это как раз - "трогал и умею"). Я по примеру "слоёв" файловой системы docker сделал систему разворачивания linux из "слоёв"-архивов на железо по pxe и собственно алгоритм создания таких слоёв с нужным ПО (больше всего гемора с базовым слоем - чтобы загрузчик прописывался bios/uefi и вообще система стартовала).
Соответственно смогу с чистой совестью сказать, что знаю линукс, когда на практике придётся куда-нибудь кастомное самосборное ядро заливать. теоретически могу и пробовал, но на практике я с такой задачи слился - надо было сделать чтобы старые тонкие клиенты dell wyse стали поддерживать новые протоколы rdp. У них x86(не 64) проц и памяти с гулькин нос - ничего стандартного не влезает. Я сказал, что овчинка выделки не стоит. И так то прав, но было бы на это время, с удовольствием оживил бы эту древность.
Ну а про резюме... кто ж его сейчас честно пишет то и не преувеличивает свои знания-умения...
Опять с кнопочкой промазнулся, сорян, ответил на https://habr.com/ru/articles/1066816/#comment_30314650
Ну, во-первых, я не автор статьи. Во-вторых
А как определить “профессиональный возраст” программиста ?
Автор упирает на инструментарий, которым решает, задачи
А какие кольца и слои есть у Вас ? Пишите в комментариях, что больше всего на вас повлияло!
Я свои 3 копейки добавляю, что важно не только инструментами хорошо пользоваться, но и сложные задачи ими уметь выполнять, если таких задач много и они разные, то профессионализм выше.
Я думаю, вы просто смешали в статье технологический стек, знание ЯП и предметные области в одну кучу
Короче, одно другому не мешает
Пересчитывал свои кольца несколько раз, сбивался, зацикливался, галюцинировал. Плюнул, посмотрел в зеркало, посчитал количество морщин на мешках под глазами, добавил диаметр живота, площадь облысения на голове, длину бороды и количество выпавших геморроидальных узлов... Число комплексное получилось... Узнал у Клода как трактовать всё, что я почитал для понимания своего опыта, он ответил: тебя заменим первым
Язык программирования Python
Компьютерные сети и протоколы (Модель OSI и прикладные протоколы)
Алгоритмы и структуры данных
Язык программирования C++
Паттерны программирования (Observer, Singleton, Interpreter)
x86_64 и ARM ассемблер, стек, соглашение о вызовах
Реверс инжиниринг, отладка дизассемблер
Операционные системы (PE/ELF форматы, страничная организация памяти итд)
Разработка ядра Windows, mini filter drivers, отладка в Windbg
Написание компиляторов, и интерпретаторов, виртуализация
Приведенные автором кольца - это не возраст программиста, это карьера эффективного манагера. 😉
Basic на Commodore 64C (конец 80х)
Немного Assembler на нём же
Basic на УКНЦ (школа) и какой-то Yamaha (первый курс универа)
Pascal и C в универе (это всё ещё под DOS)
FoxPro под DOS - первые подработки, пока ещё учился в универе
где-то там появились Windows (3.1, потом 95) и немножко Linux
Delphi
БД Paradox и MS SQL
Lazarus и FreePascal (несколько пет-проектов)
Опять Delphi, но уже Embarcadero
AutoIt (там свой ЯП внутри)
Python
Чуть-чуть Java (но так и не осилил, после Python сложно)
Чуть-чуть GoLang с помощью LLM (надо было написать анализатор логов, на Go работал в 20 раз быстрее, чем на Python)
И, да, я не разработчик, а тестировщик, сначала мануальный, потом автоматизатор. Но какие-то кольца тоже наросли.
///Почему я считаю, что именно кардинальная смена стека\парадигмы или ЯП делают значительно мудрее? Каждый язык имеет свою философию и формирует у человека специфичный взгляд на решение технических задач.///
Чисто субъективное мнение, если оно личное автора, а может подаваться им просто "для затравки" обсуждения такого посыла.
Во первых, и главное из чего нужно исходить, так это понимание того, что процесс разработки серьезного программного обеспечения 1в1 повторяет процесс разработки технического изделия: проектирование, изготовление, контроль, тестирование и поддержка. Программист, как один из участников этой цепочки, выполняет функцию технолога (разработка техпроцесса изготовления конкретной детали, то есть алгоритма) и рабочего изготовляющего деталь на станке (кодирование процедуры, модуля на конкретном ЯП). Поэтому, если замыкаться только на функции изготовления детали, то есть только на функции разработки программного кода, то это делает такого программиста-кодировщика более универсальным в смысле знания нескольких ЯП и НЕ более того. Термин "мудрее" тут не уместен. Если со временем и с многолетней практикой, чаще в какой-то одной прикладной предметной области, такой программист-кодировщик освоит и научится выполнять ДРУГИЕ функции разработки - постановщика задачи, архитектора, управленца, разработчика БД, тестировщика и писателя документации - то тогда он действительно расширит свои профессиональные навыки как специалист-разработчик ПО вне зависимости от конкретного ЯП.
Вывод: язык программирования или конкретная СУБД конечно же играют большую роль в разработке ПО, но ОБЩИЕ принципы постановки задачи, проектирование архитектуры и БД для конкретной реализации (веб- приложение или что-то другое), управление разработкой и последующая поддержка программного продукта независимы от языка программирования.
За мои 15+ лет опыта в коммерческой разработке просто нереально все вспомнить уже будет… А если начать еще ранее со спектрума с Sinclair Basic… Фактически, можно мемуары писать) Хотя посыл правильный от автора: позволяет отсечь тех, кто просиживает штаны, работая с легаси и периодически повышаясь по должности, но считает себя гуру)
Кольца на срезе или сколько лет программисту?