Эта статья - история моей карьеры. Я не уверен, есть ли тут хоть какая-либо ценность для сообщества, но возможно кто-то узнает в какой-либо части истории себя, и, опять же, возможно какие-то моменты помогут ему проанализировать свою карьеру и не повторить моих ошибок. В общем - это история тридцатилетнего разработчика-недоучки с раздутым самомнением, который наконец осознал, что вся та исключительность, про которую ему намекали и в которую он свято верил - это точно не про него.
P.S. Извиняюсь за кликбейтный заголовок, но, мне кажется, он лучше всего описывает содержание этой статьи.
P.P.S. Очень много текста внутри.
Я в школе обожал математику. Старался не пропускать ни одной олимпиады, любил решать задачки со звездочкой. Я не был ни самым лучшим в классе, ни ботаном, я был сильно ленив, но вот математика… про меня говорили - «с математическим складом ума», и я гордился этим.
Моя история программирования началась с паскаля на уроке информатики, а затем и создания сайтов для мобилок прямо со старой нокии, сидя на задней парте на неинтересных уроках. Я еще не считал себя программистом, и не представлял, что я буду зарабатывать этим на жизнь, мне просто нравилось творить. Но уже тогда в моей голове начало формироваться эго «исключительного». Я даже затребовал поменять один выпускной экзамен с гуманитарного на информатику. Так как это был если не беспрецедентный, то крайне редкий случай, школьное руководство покумекало, и выдало мне на экзамене первый, самый легкий билет, скорее всего чтобы не облажаться перед начальством, если я вдруг завалю экзамен. Тогда я этого не осознавал, а лишь еще раз убедился в том что я супермозг, получив самую высокую оценку на этом экзамене.
Затем был универ, дикая вещь, когда ты супер ленив, а унылый лектор умудрился заставить меня возненавидеть даже любимую в школе математику. Попутно я пытался фрилансить на PHP, особо денег не приносило, но появился опыт. Учился программировать «на ходу», просто копипастя готовые куски кода из популярной мобильной CMS, и методом научного тыка подгоняя код под свои задачи. Зато сайты, сделанные на коленке, начали приносить огромный доход на арбитраже трафика. А когда у тебя по карманам и полкам рассованы пачки денег, а тебе всего 19 лет - самомнение летит вверх с головокружительной скоростью.
Зимой, на втором курсе я получил свою первую работу. Там оказалось, что я очень многого не знаю про PHP, практически ничего про базы данных. Мне и тройке моих коллег читали лекции и давали практические задания первые пару месяцев, хотя по началу даже никто не говорил, что это стажировка. В общем меня научили всем азам «формошлепа», крудодела, и, немного, БД оптимизатора (всё таки джойны быстрее, чем много запросов в цикле. Я только пару дней назад узнал, что по-человечески это называется проблемой N+1). Ну, и, куда ж без этого - после пары месяцев организовали отделение зерен от плевел. Я попал в «зерна», и остался работать, еще один плюсик к самомнению. Работа давалась легко, я просто шлепал формы, писал завернутые запросы в бд на получение статистики, выполнял и перевыполнял планы и получал солидные премии. Попутно нас кормили за счет работодателя, и мы умудрялись ежедневно пропадать на пару-тройку часов, разъезжая по всеразличным ресторанам города на казенные деньги.
Так прошли 2,5 года. Вспоминая себя - я понимаю, что я мог бы до сих пор там работать, и считать себя хорошим разработчиком. Ну а как понять что ты плохой? Работу выполняю быстро, вроде бы качественно, в срок, точнее обычно - раньше срока. Кругом хвалят, премии дают. В свободное время я делал множество пет-проектов, от сайтов и андроид-приложений до скрипта на питоне, отслеживающего сообщения в скайпе, и звонящего на мобилку, если кто-то зовет всех курить.
Да, я видел, что разработка на Java, Java-Android и C++ мне дается с болью (обычно на этапе дебага, когда что-то ломается, но ты абсолютно не понимаешь что, и как это исправить, ох уж эти Null Pointer Exception). Но я списывал все на то, что «яж PHP программист», а на Java пишут серьезные, умные дядьки. И уже поздно полностью разбираться с нуля в новом языке. Фатальная ошибка. Правда, я и сейчас плохо представляю, как можно стать профи в языке, имея только небольшие пет-проекты, без постоянных рабочих задач на этом же языке.
К тому времени универ был благополучно заброшен, из-за вовремя не сданных лаб я получил недопуск к сессии и был благополучно отчислен.
Затем грянул кризис 2014 года, и мои «внушительные» $1400 превратились в смешные $800. Это был хороший пинок для смены работы, и мне снова «повезло». Или повезло (без кавычек), тут я до сих пор не уверен. Меня взяли в компанию, занимающуюся разработкой модулей под популярную CMS. Забыл упомянуть, что на предыдущем месте работы практически весь код был написан в процедурном (или функциональном, до сих пор не могу запомнить разницу, да-да), стиле. Сейчас смешно, как я слушал рассказы более опытного разработчика про ООП, и искренне не понимал, зачем мне объединять мои функции в какие-то классы. Правда на момент перехода я всё-таки немного разобрался в ООП, и даже имел за плечами пару пет-проектов на Yii.
Так вот. В новой CMS все было ООПшно, миллионы строк кода, сотни тысяч классов и огромный функционал. Мне провели небольшую лекцию на предмет «где что лежит и как оно с большего работает» и дали задачу написать простенький модуль. Это был ад. Первые три месяца я пытался грызть гранит новой CMS, нырять глубже, дебажить, но все равно работа продвигалась дико медленно. На фоне этого я словил нехилый депрессняк, и начал прятаться в туалете, играя в игрушки на телефоне, за что получил сильный нагоняй от начальства. Моя вера в свои способности сильно пошатнулась, и сейчас я понимаю, что на самом деле это был хороший пинок для меня. Но шли месяцы, я разбирался в коде все больше и больше, стал экспертом и мое эго снова вернулось на место. Как же, я могу сделать любую задачу, опять работаю быстро, начальство сыпет похвалами и премиями. Мне всего 23, куплена новенькая машина с салона, жизнь играет красками. Решил походить по собеседованиям, там тоже никто меня не огорчал а выдали оффер на +500$ от моей текущей зп. На радостях побежал увольняться, но вдруг оказалось, что я суперценный специалист, стою еще больше, и в довесок курсы английского тет-а-тет с преподавателем. Ну как тут не поверить в свою топовость?
И снова череда формошлепства с небольшими усложнениями, какими-то интеграциями, и другими простыми задачами. Конечно, пет-проекты. Я все еще считаю пет-проекты благом, позволяющим расти, но моя проблема была в том, что я взращивал свое эго от мысли «я могу в разные фреймворки». Да что там, я даже немного могу в разные языки. Покопипастить с примеров и поизменять, чтоб оно работало как мне нужно, ага, великий программист.
Потом меня перетянул в стартапчик, коллега, который меня там неплохо разрекламировал (до сих пор не понимаю, почему он, человек, который смог сменить стек, с огромным опытом, знаниями и пониманием сложных для меня вещей считал меня отличным, умным программистом). Новая лычка Senior Developer, Новый фреймворк Phalcon, в который я даже контрибьютил, хотя ядро написано на другом языке. Вот, я могу, я крут. Еще один эпизод с собесами, оффером, и перебитием оффера от текущего работодателя. Зп растет не по дням а по часам! Да я просто, мать его, гений!
Стартап развалился через год, пошел в аутсорс на год, опять эпизод с собесом, оффером, перебитием. Ушел в еще один стартап, опять развал. Вдруг прилетает предложение с моей второй работы. Техлид и куча денег. Попутно сходил еще на пару собесов. Примечателен один, по результатам которого злой красный интервьюер выдал «я не вижу тут синьора, максимум могу предложить работу джуна на $1500». Но они ведь просто мудаки, правда? Хотя, отчасти, я до сих пор так считаю, т.к. незнание всего-лишь основных настроек nginx, которые по сути легко гуглятся, не делает из человека джуна. Ну хотяб мидла-то я заслужил? Но на этом моменте, наверное, стоило остановиться и задуматься, что я делаю в этой жизни не так. Но новая лычка, куча денег и раздутое эго затуманили мой разум настолько, что я быстренько побежал устраиваться обратно. К тому времени я считал себя уже SOLIDным ООП гуру, мог строить суперархитектуры из фабрик, прокси, декораторов и сервисов, презирал switch-case и вообще считал себя достигшим потолка в PHP разработке.
Где-то в этом промежутке была пара примечательных собеседований. В Playtika мне отлично показали, что я сильно плаваю в солид, а в Viber - что высоконагруженные проекты и DDD для меня темный лес. Но я ведь просто с этим не работал в реальной жизни, чего париться? Не взяли и не взяли.
Первым большим потрясением было собеседование в Badoo. Они раньше ежегодно проводили hiring event, в котором ты решаешь алгоритмические задачки на время. У меня получалось хорошо, задачки казались довольно сложными (как оказалось в последствии - задачки-то были - easy уровня leetcode). Меня позвали в Москву, с оплатой проезда, на очное интервью. Для меня это звучало как будто я избранный. И вот, в окружении трех серьезных бородатых дядек я сижу и пыхчу над задачей «есть огромный файл с доменами, нужно получить их айпишники». И я понимаю, что я полный профан. Нет, прочитать файл и сделать запрос на dns, а затем записать - тривиальная задача. Но как посчитать, сколько процессов скрипта оптимально запустить на восьмиядерном сервере? Как ответить менеджеру, сколько времени уйдет на работу скрипта? Как быстро идут запросы? Казалось бы, причем тут скорость света, да? Когда попросили построить график «количество процессов от скорости выполнения», тут я окончательно поплыл (привет, математика). Вот тут, был еще один момент, когда стоило сесть и хорошенько задуматься над тем, куда я все-таки двигаюсь, но я просто полетел обратно, по-техлидски снисходительно объяснять мидлам, почему не стоит в одном классе мешать данные и логику. А Badoo - ну я же не сталкиваюсь с такими задачами в жизни, ну и ладно.
Затем был переезд в Штаты, и тут со всех сторон на меня полились ушаты холодной воды, отрезвляя и заставляя включать думалку. Собесы в FAANG, и фангоподобные компании. Зайдя на leetcode - я осознал, что моей думалки хватает только на самостоятельное решение easy, ну в некоторых случаях, со скрипом в часа два, medium задач. Что существуют, казалось бы, простые алгоритмы, вроде sliding window, до которых я вообще не факт что додумался бы сам, даже спустя недели/месяцы обдумывания. Что есть графы. Тот, кто говорит, что меню сайта - это хороший пример графа - мудак. Не потому, что это неправда, а потому что для формошлепа типа меня это означает «меню построил - графы знаешь». А это не так. В итоге я получил пинок практически ото всех крупных компаний и стартапов. И осознал - я, разработчик с практически 12 летним опытом за плечами - простой формошлеп. Да, еще есть время наверстать упущенное, но тогда, в 20, в самом начале, это сделать было проще и эффективнее.
Глядя на мой опыт ретроспективно, я понял, что наделал ошибок. И сейчас я постараюсь сформулировать их в надежде, что кому-то это поможет не повторить их.
Универ. Я все еще считаю, что это не панацея, и во всем можно разобраться самому, но ведь гораздо проще внимать знания от кого-то, дергать преподавателя на предмет объяснения непонятного, брать дополнительные задания чтоб разобраться в тех же алгоритмах. Давайте не будем говорить, что в универе преподает старый гриб под 70 лет, а ИТ это суперсовременная штука, где нужны молодые. Знаете, что меня поразило? Большинство, если не все, алгоритмов, которые сейчас используются для решения сложных задач - были сформулированы и выведены в шестидесятые, семидесятые года прошлого века!! Вы знали? Я не знал. Потому что забросил универ.
Деньги vs Опыт. Когда тебе 20 - все же гораздо проще работать «за еду» в проекте, где ты можешь научиться гораздо большему, чем формошлепить задорого только потому, что никто кроме тебя не знает этой CMS. В 30, когда у тебя семья, дети, гораздо сложнее выбирать между этими двумя параметрами.
Частая смена работы. Тут я не уверен окончательно. Потому что с одной стороны это позволяет изучать что-то новое. Но с другой стороны это мешает стать экспертом в чём-то старом. Сложно угадать, в каком случае ширина знаний в какой-то области будет лучше глубины. Но наверное всё-таки ширина важнее.
Алгоритмы. Если вы еще не знаете, чем отличается BFS от DFS, что такое sliding window, O(n) - то стоит начать с leetcode. Я наверное не буду говорить, что стоит поискать новую работу, хотя я бы поискал.
Challenges. Вот тут я уверен точно. Если на текущем месте работы вы давно не встречали задачи, над которой вы долго-долго думали «это вообще выполнимо?», от которой хочется уйти в запой ввиду ее сложности - стоит поискать новое место. Ну или хотяб посерфить по джире на предмет того, чем занимаются более сильные коллеги.
Пет-проекты. Если хочется сделать свой стартап - то конечно нужно брать самый знакомый стек, чтоб сделать это быстрее. В противном случае - всегда нужно брать что-то в чем вы плохо разбираетесь, ведь пет-проекты - это не только что-то для удобства/самолюбия/etc, но еще и новый опыт, новые вызовы.
Стэк. Я не хочу и не буду говорить что вот этот стэк плохой, а вон тот - квинтэссенция сложности. Но по личному наблюдению - в каких-то языках формошлепов все-таки гораздо больше, и если вы еще на этапе выбора - наверное всё-таки не стоит идти по легкой дорожке.
Эго. Если вам со всех сторон твердят, что вы суперкруты, как разработчик - это всего лишь значит что стоит отправляться на поиски новых challenges. Хотя-бы - попасть на собеседование в компанию «уровня выше» (я про уровень разработчиков, которые там работают). Просто послушать, что там спрашивают, о чем они думают и какие задачи решают.
P.S. Я не знаю, насколько мои стенания актуальны, ведь я видел и вижу людей, которые сидят в одном болоте долгие годы, занимаясь простыми задачами и получая за это неплохие деньги. И они счастливы, им не нужны знания сложных алгоритмов, завернутые задачи и суперсложность. Наверное мы просто принадлежим к разным типам людей, которым никогда не понять друг друга.
P.P.S. Добавил хаб PHP, так как это мой родной язык, и по моему наблюдению - концентрация формошлепов вроде меня в этом языке - повышенная.
Ну, и, спасибо что дочитали.
Комментарии (220)
goga_kk
20.08.2022 15:55P.S. Извиняюсь за кликбейтный заголовок, но, мне кажется, он лучше всего описывает содержание этой статьи.
Ну это вы уж слишком)
Megadeth77
20.08.2022 16:30+50Я вас сейчас вообще убью - Вы еще наверняка в квантовой теории поля совсем не разбираетесь? Ну вы ваще. По факту типичный синдром самозванца, надо от него избавляться настойчиво. Быть хорошим спецом в какой то узкой области тоже не каждому дано. Не говорю что этого достаточно - учиться это хорошо и правильно. Но и страдать от того что не знаешь всего на свете сразу не стоит мне кажется.
А с собеседованиями "западного типа" это отдельный феномен. Проходить такие собеседования - это отдельный навык, очень косвенно относящийся к умению решать задачи в реальной работе на мой взгляд.
vedenin1980
20.08.2022 19:20+23собеседованиями «западного типа»
Не с собеседованиями «западного типа», а собеседованием в FAANG и им подобные. Я устраивался во много крупных западных компаний (не FAANG) и нигде ничего подобного нет.
На самом деле, на мой взгляд 99,9% программистов (в лучшем случае) не сможет пройти собеседование в FAANG без достаточно долгой подготовки и в этом их основной смысл для компаний — показать, что у тебя достаточно мотивации и силы воли убить полгода на подготовку, которая скорее всего потом нигде не пригодиться, ради офера в гугл или амазон.
Поэтому не стоит судить о своем уровне по результату собеса в FAANG.mizugoji
20.08.2022 20:45а эти пол года подготовки - это пол года работы в компании уже, в которую специалист устраивается?
vedenin1980
20.08.2022 20:57+5Нет, конечно. Дома после работы на текущей работе, в этом и главный смысл.
Есть целые книги «как проходит собеседование в гугл», есть специальные курсы от того же гугла, где будут рассказывать как туда проходить собеседования. Тут на хабре есть множество статей как готовились к собеседованием в FAANG и полгода это еще быстро (при наличие опыта олимпиадного программирование можно чуть быстрее).nameless323
21.08.2022 02:01+2Если честно то имхо ничего такого в ФААНГ собеседованиях нет, люди просто боятся их сильнее, чем они есть, ну и они просто стрессовые, что уж там. Прям особо сложных задач там не спрашивают, если человек имеет нормальный опыт работы и держит руку на пульсе технологий, то оно все вполне проходимо (при том что я себя входящим в топ 0.1% программистов не считаю).
denakol
21.08.2022 13:00+5имеет нормальный опыт работы и держит руку на пульсе технологий
И это все ему никак не поможет в решении задач на ликоде
nameless323
21.08.2022 19:47+2Это поможет ответить на все остальные вопросы. Литкодовские задачки которые обычно спрашивают, требуют от программиста максимум здравого смысла и университетского курса алгоритмов или прочитанного и разобранного в молодости Кормена, когда человек начинал программировать и интересна была математическая и алгоритмическая база происходящего (если человек в вуз не ходил, а учился программировать сам). То есть чтобы развернуть односвязный список, или написать стэк который свой минимум умеет вернуть, или например написать аллокатор который умеет выровненный адрес вернуть, готовиться особо не надо (имхо конечно, у меня само собой свои биасы).
ris58h
22.08.2022 20:25Будьте добры, привидите примеры 3-5 задач, которые вам задавали на собеседованиях в FAANG, чтобы не быть голословным. Сдаётся мне, что там не список развернуть просили.
nameless323
22.08.2022 21:10+1Ну например из того что я могу сказать (что из прошлого опыта и не связано с моим текущем работодателем, но там задачи были того же уровня), из предыдущего моего коммента "стэк с минимумом" и "выровнять адрес" меня спрашивали, развернуть список + дейкстра были как часть одного задания. Спрашивали сериализацию сцены (по сути просто обойти граф с BFS или DFS и сериализовать/восстановить поинтеры, просто формулировка чуть сложнее). Возможно кому-то попадается что-то суперсложное, возможно играет роль что у меня 10+ лет опыта программирования именно в одной области и меня очень много чего разного из этой области спрашивали, а сложные литкод задачи оставили вчерашним студентам который по другому не проверишь. Из моего опыта (основной язык С++, 10 лет компьютерной графики + 5 лет мат универа + еще в школе пописывал что-то на сях), за последние два года я проходил собеседования в 2 фаанг компании, ни к одному ни готовился специально, из всех получил оферы. Интервью мне показались гораздо более простыми, чем я себе представлял (особенно в первый раз).
0xd34df00d
22.08.2022 21:42+3Это было года три назад, так что я всех деталей не помню, но что запомнил:
Первый интервьювер:
- Проверить сбалансированность скобочных выражений из одного вида скобок.
- То же самое, но из трёх видов скобок.
- Сгенерировать все скобочные выражения из трёх видов скобок данной длины.
- То же самое, но без повторений.
Хоть немного подумать надо на последнем пункте. Судя по всему, интервьювер в среднем рассчитывает, что до последнего пункта не дойдут, потому что после того, как я это решил, у нас осталось минут 20 из 45 на поговорить о моих вопросах к нему и о жизни.
Второй интервьювер:
- Написать немного кода, который сводился к рейт-лимиту вызовов функции (
std::function
, никакого REST, HTTP, микросервисов). - Обсудить, как бы я проверял пароль на принадлежность некоторому блоклисту. Trie, да? Молодец! А если паролей много? А если в несколько потоков? А как синхронизировать? Труднее всего было удержаться и не троллить интервьювера сочетанием тяжелого иностранного акцента и блеклиста.
Вопросы тоже довольно быстро кончились, и осталось много времени.
Третья интервьюверша:
- На двумерной плоскости есть велосипеды и люди, ищущие велосипеды. Помочь каждому человеку найти ближайший велосипед. Никаких изяществ с kd-деревьями и прочим не ожидали, решения с очередью хватило за глаза, и интервьюверша инициированный мной разговор о kd не поддержала.
- Что-то ещё было, но забыл.
Вопросы тоже быстро кончились.
Четвёртый интервьювер — ну там датасайенс всякий был. Пятый — behavioral.
H737
23.08.2022 00:58+1Мне мой "максимум здравого смысла" подсказывает, что:
"университетского курса алгоритмов" у меня не было, ибо окончил универ в 1996г.
"прочитанного и разобранного в молодости Кормена" тоже нет, ибо гугл подсказал, что первое издание его книги было в 2000 г.
никогда НЕ была "интересна математическая и алгоритмическая база происходящего"
При этом учиться программированию я начинал на Си в 1988г, еще учась в школе, в универе был курс Паскаля.
На 4-5м курсах сам изучал по книгам ООП на С++ и кодил на нем программную часть дипломной работы.
В этих книгах не было тех алгоритмов, что даны в книге Кормана, только чистое программирование без математической мути.Так и что получается, я плохой программист по версии упомянутого FAANG, ибо не смогу ответить на вопросы? ))))
nameless323
23.08.2022 01:19Ну вы же знаете что внутри std::map, std::unordered_map, std::set и т.д., и как они работают, что для чего и в каких случаях выбирать одно, а не другое., знаете что такое линкед листы и в чем разница с std::vector/std::array, имеете представление что внутри std::sort и других алгоритмических функций в stl (предполагая что ваш основной язык С++) и т.д и т.п? Скорее всего вашего накопленного опыта хватит и так чтобы решить их алгоритмические задачи. Они формально определение красно-черных деревьев например не спрашивают :)
Большей частью нужной алгоритмической базой программист по ходу работы и так обрастает. Тем более ходят слухи что чем больше опыта, тем меньший упор на литкод и больший на опыт и предметную область.
PS первое издание Кормена вышло в 1990 году, я упомянул именно Кормена как книгу по алгоритмам которая нравилась именно мне, книг по алгоритмам много :)
H737
23.08.2022 01:58-1Нет, не знаю, "что внутри std::map..." и т.д., и не интересно знать, ибо в работе не применял за 25 лет. Также как и знания по вышке и физике. Даже не понадобилось программировать решение квадратного уравнения из толи 4го толи 5го класса средней школы. Что уж говорить про дифференциальное и интегральное исчисление.
Зачем эти невостребованные знания?
Если кому интересно или нужно в работе, я не против.
Но другим то зачем навязывать в виде вопросов на FAANG?nameless323
23.08.2022 02:17Вы по работе не используете контейнеры своего языка (я написал контейнеры плюсовые просто потому что это мой основной язык)? И алгоритмы типа стандартных сортировок?
Для большинства позиций в ФААНГ эти знания нужны для работы все таки так или иначе (выбрать не тот контейнер/алгоритм может быть чревато сильным хитом по перфе, а программист может даже и не понять что выбрал не то, так как сложность какая-нибудь кубическая и на тестовых ворклоадах все норм, а когда через какое-то время нагрузка сильно изменится (проект запустили/новый регион добавили) то вся тима будет в экстренном порядке почему же все лагает и тратить время на поиск/исправление/тестирование/разворачивание, а это все в огромных компаниях не быстро). Где-то больше, где-то меньше. На мою позицию еще нужны линейная алгебра и диф/интегрально исчисление как раз, меня их тоже спрашивали, а вот думаю там где не надо их и не спрашивают (а меня всякий машин лернинг не спрашивали))).
Ну и ФААНГ это все таки просто компании, не лучше и не хуже многих других где интервью проходят по другому. ФААНГ эти вопросы навязывает просто потому, что так проще отсеять сотни кандидатов по какому-то фильтру, в их случае по фильтру алгоритмов и структур данных. Фильтр у них именно такой просто потому что могут (это как в старом анекдоте про то как опытный hr выкинул половину резюме на должность директора в мусорку, а когда молодой hr спросил почему, опытный ответил "неудачники нам не нужны"). Просто поинт в том что этот фильтр в жизни обычно для опытного программиста не такой страшный, как его представляют.
H737
23.08.2022 02:49Поиск в этой книге слова "контейнер" дал 0й результат, значит это не из этой книги. А из какой тогда?
Про сортировку есть целая глава (это без темы про статистику) стр. 173-243, т.е. 70 из 1328 стр. = 5%.
Сортировку использую конечно.
Но помнить все 1328 стр. ради 5% про сортировку как-то нерационально, не так ли?
"Просто поинт в том что этот фильтр в жизни обычно для опытного программиста не такой страшный, как его представляют. "
Так конечно не страшный, а очень даже смешной.
Это ж типа если бы спрашивали правила граматики русского языка. Именно правила, а не то как чел грамотно пишет.
nameless323
23.08.2022 02:59Контейнер это абстракция языка над структурой данных, было бы немного странно если бы в книге по алгоритмам было описание контейнеров всех языков (например возьмем контейнер std::map, который является абстракцией над структурой данных "красно-черное дерево" (обычно), соответственно сложности всех операций над этим контейнером диктуются этой структурой данных).
Книги по алгоритмам вообще помнить не надо, из того же Кормена можно при желаний выкинуть 90% всех мат доказательств из разряда "давайте докажем математически что в среднем квиксорт работает за O(log n) и там останется всего ничего из тех структур и алгоритмов которые реально хорошо бы если не помнить наизусть, то хотябы представлять как они работают или что они вообще существуют.
H737
23.08.2022 03:07-1А, вон как... А я то решил, что "контейнер" тоже что-то специфическое про Алгоритмы.
Раз 90% можно выкинуть, то не вопрос.
Тогда уж лучше прочесть книгу совсем без этих лишних 90%.
Неужели нет таких?
nameless323
23.08.2022 05:41Лучше или нет вопрос открытый. Мне лично нравится что там все расписано и доказано строго и математично и я разбирал все это просто как зарядку для ума. Если вам это не интересно, можете пропустить :) Есть куча книг где все это описано в более свободной и не такой математичной форме и выкинуты доказательства изначально, если вам такая форма больше нравится то почему бы и нет. Наизусть помнить особо ничего не надо, если вы один раз разобрали алгоритм/структуру данных, написали и осознали, оно будет автоматически помниться и когда надо написать и вспомнить будет не сложно.
0xd34df00d
23.08.2022 03:13+2Поиск в этой книге слова "контейнер" дал 0й результат, значит это не из этой книги. А из какой тогда?
А надо было искать «структуры данных», если вы о Кормене.
Но помнить все 1328 стр. ради 5% про сортировку как-то нерационально, не так ли?
Помнить не надо. Надо один раз прочитать и понять.
Это ж типа если бы спрашивали правила граматики русского языка. Именно правила, а не то как чел грамотно пишет.
Только просят как раз не правила (то бишь, не реализовать какое-нибудь красно-чёрное дерево), а грамотно написать что-нибудь (то бишь, решить задачу с использованием дерева).
nameless323
23.08.2022 03:04Смотря что вы под этим подразумеваете. Переписать булевы выражения из пачки конъюнкций, дизъюнкций, ксоров и отрицаний и выражения с одной дизъюнкцией условно, как на экзамене? Такого конечно же нет. Но так или иначе во всех вопросах связанных с битовой арифметикой (поставить/снять бит N например), булева алгебра так или иначе есть (ну и в задачах типа "есть множество элементов где каждый повторяется два раза кроме одного, найти этот элемент").
0xd34df00d
23.08.2022 03:15+1Я боюсь, спрашивать у программистов алгебру Буля (которая про дистрибутивную решётку с дополнениями) — это перебор.
H737
23.08.2022 02:55-1Программирую, но не в научной среде, и не использую ни статистику, ни всю остальную математическую муть.
0xd34df00d
23.08.2022 03:31+1Учитывая соседнюю подветку, возможно, фаанг больше заинтересован в кандидатах с другим бекграундом.
H737
23.08.2022 04:18О таком бэкграунде речь?
Скопировал из комментов ниже.
"а может быть "...Собеседование в ФААНГ говорит только о том" — насколько ты мотивирован и упёртый? Скорее всего только этим оно и ценно...."
"Ну это, как бы, неудивительно — за большинством алгоритмов стоят статьи, возможно диссертации. Очевидно, что вы за две недели вряд ли сделаете то, что делали профессор, погружённый в тему, вместе с аспирантом год или два.Этим, кстати, бесят всевозможножные "алгоритмические интервью" — если интервьюирующий их давно не проходил, он не понимает, что за 20 минут невозможно написать ничего. А уж тем более под прессом "рассказывай ход мыслей"."
"Имхо путь роста это стараться попадать в хорошие команды с хорошими специалистами, от которых ты будешь перенимать много полезных качеств.Тк путь программиста это не только алгоритмы на литкоде(которые без практики уже через два года скорее всего забудешь как решать), а умения как - подходить к задачам, общаться с коллективом, искать решения, поглощать знания, оценивать задачи и понимать интуитивно слабые места и тд и тп. Сеньер может не знать алгоритм обхода дерева, но он узнает его за полчаса.
Собеседование в ФААНГ говорит только о том, насколько хорошо ты подготовился к собеседованию в ФААНГ, ну реально же, специальные курсы, книги, сайты для прохождения собесов, полгода затачиваешь себя под собес и потом вау я прошел, теперь я суперрогер?)"
0xd34df00d
23.08.2022 04:53+1Совершенно не обязательно.
насколько ты мотивирован и упёртый
Я на собеседование в ФААНГ пошёл ради лулзов (ну и чтобы фаанговским оффером перед более интересным работодателем помахать для большей зарплаты), так что называть меня мотивированным можно с большой натяжкой.
На литкоде я задач никаких тоже не решал, так что упёртым меня назвать вряд ли можно.
Ну это, как бы, неудивительно — за большинством алгоритмов стоят статьи, возможно диссертации.
Не понял, какой тут бекграунд вы выводите. Быть автором статей по алгоритмам совершенно не обязательно. У меня вон вообще даже высшего образования в CS нет, я какой-то унылый прикладной математик. Даже непонятно, куда меня прикладывать.
И нет, умение посчитать спектр оператора или решить задачу Коши совершенно не нужно на интервью, не помогает ему, и даже не упоминается.
попадать в хорошие команды с хорошими специалистами
Ну это да, хорошие команды важны. Довольно естественный и ожидаемый исход, ИМХО.
Собеседование в ФААНГ говорит только о том, насколько хорошо ты подготовился к собеседованию в ФААНГ
Вообще не готовился к собеседованию в фаанг. Вечером перед ним, разве что, впервые открыл и прочитал специальную брошюрку, которую одна из фаанговских компаний скидывает кандидатам для подготовки, чтобы представлять, что там вообще от меня будут ждать.
H737
23.08.2022 05:04Не понял, какой тут бекграунд вы выводите
Не я вывожу, а авторы комментов вывели из своих соображений.
Скопировал их комменты целиком.
nameless323
23.08.2022 05:35Ну это, как бы, неудивительно — за большинством алгоритмов стоят статьи, возможно диссертации. Очевидно, что вы за две недели вряд ли сделаете то, что делали профессор, погружённый в тему, вместе с аспирантом год или два.
Есть огромная пропасть между придумать алгоритм, обосновать его корректность, доказать все строго и математически (что делают профессоры и аспиранты) и просто разобрать алгоритм. Одно дело придумать что то новое, а совсем другое разобрать уже существующее (по сути придумать новый алгоритм сортировки vs просто разобрать как квиксорт работает, а описывать его работу и доказывать что он действительно работает это уже не ваша задача, а она была выполнена как раз теми самыми профессорами).
0xd34df00d
23.08.2022 05:46+1В скопированном куске про диссеры ничего про ваш ожидаемый бекграунд не было.
Да и я не слышал ни про одно фаанговое собеседование, где от человека требовалось бы придумать алгоритм уровня диссера. Там даже сортировку реализовывать обычно не нужно, достаточно представлять её сложность и, на пять с плюсом, крайние случаи.
0xd34df00d
21.08.2022 20:38+3А что поможет?
В школе я ненавидел олимпиадное программирование и не решил бы ни одной задачи на литкоде. Через лет 10 практики и без всякого фокуса конкретно на алгоритмах я не видел вообще никаких проблем ни в литкоде, ни в собесах в фаанг.
nameless323
21.08.2022 22:15У меня примерно та же история, с единственной разницей что в школе и универе я любил олимпиадное программирование но это было 10+ лет назад. После этого я на алгоритмах вообще не фокусировался, просто решал рабочие задачи и писал свои пет проекты, ну и просто любопытство из разряда "а что там внутри std::sort, как и почему оно работает именно так", и никаких проблем ни с фаангом, ни с литкодом. Специально готовится туда надо наверное только когда недавний студент и по какой-то непонятной причине хочется именно в фаанг (имхо конечно же).
0xd34df00d
21.08.2022 22:44+1когда недавний студент и по какой-то непонятной причине хочется именно в фаанг
Ну почему непонятной, фаанг таки даёт неплохой плюс к пустому резюме и буст к карьере.
ris58h
22.08.2022 20:28-1ничего такого в ФААНГ собеседованиях нет
Тогда их могли бы пройти большинство кандидатов. Сдаётся мне, что этого не происходит, а значит, что-то такое там есть.
nameless323
22.08.2022 21:31+1"Ничего такого" понятие конечно относительно. Перефразирую что я имел ввиду. Если у человека 5-10 лет опыта (а не 5 или 10 раз по году), он в универе нормально прошел курс алгоритмов (или прочитал книжку, или просто не поленился за все годы работы посмотреть какие в его языке есть структуры данных и алгоритмы, как они работают и почему, а имхо это программист должен сделать), то будет ничего такого. А большинство кандидатов на то и большинство, что место разрекламированное и туда пытаются попасть чуть ли не все, чуть ли не с нулевым реальным опытом.
Goupil
21.08.2022 11:29+11Я б автора тоже придушил бы, но по причине зависти. Ему видите ли как джуну предлагали 1500$, он в 20 лет на казённый счёт кушал в ресторане в компании своих коллег. Я ещё не так давно жил на 19 тысяч отнюдь не долларов, когда был МНС и аспирант, и ел доширак в компании мышей и крыс, на этот доширак покушавшихся когда их комбикорм иссякал по причине скудности финансирования.
Ioanna
21.08.2022 13:18+119 тыс. - ставка провинциального доцента...
Goupil
21.08.2022 13:26Я очень рад за провинциальных доцентов, но я то жил в столице. И у доцентов изрядно кхм... источников дополнительного заработка, тем более в провинции. А с крыс и мышей взятки за экзамены не стрясешь.
Ioanna
21.08.2022 14:57+2Если бы у нас были "источники дополнительного заработка", то на момент увольнения из вуза за мной не числилось бы 600 тысяч рублей долгов...
Goupil
21.08.2022 17:29+2Ну значит вы были, простите за прямоту, слишком честным доцентом. И правильно сделали что уволились, честные там не нужны.
apxi
21.08.2022 14:55+1Я бы тоже. Моя первая ЗП программиста в 2001 году была 1200 рублей и это после 4 лет профильного образования, собственноручно написанного не хилого диплома и участия в олимпиадах.
ioncorpse
22.08.2022 13:41В 2001-м админил в универе на 1-м курсе за 600р в месяц и считал это счастьем. И вдруг взяли в Renault, С++, на невероятные 12к, стал считать себя богом. До сих пор смешно, это где-то 350$ тогда было. Хотя реально, даже с учётом олимпиад по математике и информатике, знания Бейсика, Паскаля, С++, Асма чутка и написания монополии ещё в 14 лет — больше и не стоил на 1-м курсе.
AASelivanov
22.08.2022 18:54Подскажите, пожалуйста, а что произошло затем?
И если вы устроились на другую работу, насколько легко/тяжело и быстро/долго это было после мнс и аспирантуры?
Ну и да, простите за такой вопрос (мне важно просто), кандидатскую в итоге защитили?
artemlight
20.08.2022 16:39+21Прочитал всё это и увидел cv обычного junior+.
Маленько растянуто по времени, конечно, но никогда не поздно начать решать литкод и вот это всё.
Про страшно-ужасные задачи решаемые в фаангах каждый день - это байка такая, в основном там те же джсоны перекладываются. System Design ботать надо, да. Лайфхак - есть книжки, кабанчик тот же.Алго-секция на уровнях выше Middle бывает редко, поэтому достаточно научиться быстро решать easy и за часок решать мидл. В моём случае на это ушло 4 месяца.
Итого - полгода-год подготовки и вы в фаангах. С учетом того, что это топовая по доходности история в мире - считать себя ничтожеством из-за 10-20 отказов без подготовки явно преждевременно. Люди и по 50+ собеседований подряд заваливали, и всё равно в итоге проходили и работали.
Резюме - у Вас синдром самозванца в какой-то жесткой (возможно, сиюминутной) форме. Не заморачивайтесь реждектами - смело набивайте поинты в литкоде. Не то, чтобы это сильно понадобится в будущем - но структуры данных и сложность операций с ними держать в голове поможет.
Ну и на всякий случай - чекните признаки клинической депрессии. После переезда у многих случается, внешне выглядит вот прям один в один как Вы пишете.
leventov
20.08.2022 21:39+23"Кабанчик" (это я понимаю такой понт - сказать так, чтобы никто из непосвящённых не понял, имеется ввиду "Designing Data-Driven Applications" Мартина Клеппмана) не особо эффективен для тренировки прохождения System Design интервью, как, впрочем, и любые другие книжки, направленные на практическое применение, а не конкретно эти интервью (а такие книги есть, да, просвещенные одному конкретному типу интервью).
Legomegger
21.08.2022 12:29+2Да нет, не понт. Название не цепляется за язык, а вот "кабанчик" легко и оказывается гуглится "книга с кабанчиком" именно та самая
Mingun
21.08.2022 13:04+9В таких случаях неплохо бы ссылку проставлять на термин или хотя бы расшифровку во всплывающей подсказке. В противном случае это именно как понты и выглядит.
klvov
22.08.2022 11:51+1Только не "Data-Driven", а "Designing Data-Intensive Applications". Великолепно написанная книга, кстати.
oleg808
20.08.2022 17:20Имхо, вы зря покинули арбитраж трафика 10 лет назад. В 2013-2017 гг он расцвёл, "пачки денег" делали affiliate'ы, паблишеры (владельцы сайтов с трафиком) деньги измеряли чемоданами, если умели хотя бы часть самого дорого трафика раскидать трекером по партнеркам, а не просто код первой попавшейся рекламной сети ставили. У меня остались знакомые в сфере, до сих пор зарабатывают, но уже конечно не чемоданы и не пачки. Хотя такие тоже есть, но мало, это уже тот тип людей, которые везде смогли бы хорошо заработать.
dvoeglazyi
20.08.2022 17:25-7Не успел начать читать статью, но вы уже покорили меня заголовком. Как появится свободное время - обязательно почитаю.
slavanikolsky
20.08.2022 17:30+15Мне уже 50)) с высоты своего возраста делю людей на 2 категории в разработке: 1. Поняли, что интересно и ушли с головой в тему и 2. Которые прыгают и прыгают, но так ничего и не добились (в глобальном смысле, но имеют широкое понимание о всем и ни чем), то работодатель не тот, то тема умирает, то мало платят, то от работы выгорает, то еще что-то, всегда найдётся причинена сменить работу. Поиск - это хорошо, но надо вовремя остановиться.
ПС
те кто не искали денег, а углублялись в тему, сейчас получают больше тех, кто искал лучше ЗП. (Возможно - это только в моем окружении так)
Не считаю себя абсолютно правым.
SIMPLicity
20.08.2022 18:00-12те кто не искали денег, а углублялись в тему, сейчас получают больше тех, кто искал лучше ЗП. (Возможно - это только в моем окружении так)
Повезло? Гы-гы-гы-гы-ы-ы....
Daddy_Cool
20.08.2022 19:02+4Которые прыгают и прыгают, но так ничего и не добились (в глобальном смысле
А метрика какая? Доход?
"то работодатель не тот, то тема умирает, то мало платят, то от работы выгорает"
К какому-то возрасту многие понимают, что работа это фигня, а главное - семья и свои личные дела. В результате работа воспринимается как досадная помеха. В результате человек работает где-то пока его не грузят сильно, дальше он начинает понимать, что надо вкладываться, развиваться, учиться (индустрия движется же), а смысл - работать на дядю?
В пределе это работа вахтером и выход на пенсию.
"а углублялись в тему, сейчас получают больше тех, кто искал лучше ЗП"
О каких уровнях ЗП идет речь?
Hardcoin
21.08.2022 04:38+6А зачем останавливаться? Что бы завершить жизнь? Сначала ты выбрал работу на всю жизнь, потом квартиру, что бы никогда уже не переезжать, потом друзей и знакомых, что бы больше никогда уже не знакомиться, хобби, что бы только им развлекаться оставшиеся годы. Так выглядит после 50?
SpiderEkb
21.08.2022 10:41+4Сначала ты выбрал работу на всю жизнь
Ну я бы сказал так - выбираешь дело, которым тебе нравится заниматься, которое тебе приносит удовлетворение. Затем становишься в нем ну если не лучшим, то где-то на верхних уровнях пирамиды.
Сначала ты работаешь на репутацию, потом репутация работает на тебя.
потом квартиру, что бы никогда уже не переезжать
Потом ты строишь дом, который становится со временем "родовым имением" и обрастает "историей".
потом друзей и знакомых, что бы больше никогда уже не знакомиться
Друзья (в настоящем смысле слова) возникают достаточно рано. И это формируется со временем, а не просто "давай дружить".
Знакомые приходят и уходят. Тут постоянный круговорот.
хобби, что бы только им развлекаться оставшиеся годы
Хобби тоже как-то само появляется. Просто то, чем нравится заниматься в свободное время. Хочется - делаешь. Не хочется не делаешь. Исключительно в удовольствие.
Hardcoin
21.08.2022 10:59+5Рекомендация очень распространенная, но не очень рабочая. Интересно заниматься на уровне, когда этот самый интерес сохраняется, а не ради топового уровня (например рисовать для удовольствия, а не круче всех).
Мой отец построил "родовое имение" дважды (первое продали). Но с чего оно станет по настоящему родовым, если там нет десятка гектар угодий, дети живут не там, слуг нет, а сыну (мне) жить в квартире вообще приятнее, чем в доме (ни в родовом, ни в своем отдельном).
За ответ спасибо, я больше отреагировал на то, что поиск - это что-то временное, а не постоянные изменения. Мне далеко до 50 и, вероятно, отношение изменится, но пока считаю, что жизнь по большей части - само по себе хобби. Хочется, делаешь, не хочется - пусть катится к чертям, что-то меняй.
Изменения - это хорошо, если они нужны, стараться "вовремя остановиться" - значит законсервировать жизнь. Старость в любом случае наступит, но начинать жить в ней намеренно и целенаправленно не хочется.
axmct
21.08.2022 21:15Поиск - это хорошо, но надо вовремя остановиться.
Судя по всему, @slavanikolsky о том, что лучше определиться как можно раньше, чем ты создаешь и добиваться мастерства владения инструментом.
Примерно как не метаться из копейщиков в мечники, из мечника в пращники, из пращников в лучники. Выбрал - стань мастером. Не важно что в руках, важно как ты этим владеешь.
Примерно как не менять лошадь на слона, слона на страуса, страуса на птицу Рух.
И конь, и слон будут одинаково благодарны и преданны. А копье или меч - вопрос мастерства.
Luciphur
21.08.2022 22:43+1копье или меч, простите, вопрос дистанции. Те же рыцари умели и в то, и в другое и моргенштерном в промежутке помахать. Самураи изучали длинное и короткое оружие в рамках одной школы.
в программировании тоже есть рост вертикальный, есть горизонтальный с охватом соседних специальностей. У каждого случая свои плюсы, доход больше зависит от умения их продавать ИМХО.
axmct
22.08.2022 00:42копье или меч
из копейщиков в мечники - это вопрос в каком качестве вы нужны в отряде.
Можно уметь и то и то. Но видеть вас будут по вашей специализации. Это не вопрос применения оружия, это вопрос применения вас.
есть рост вертикальный, есть горизонтальный
Башня мага она только вертикальная :) И если все только от умения продавать, то лучше сидя в своей растущей вверх башне. Просто потому что башня это инвестиция, а не умение стоптать очередные сапоги.
denis-isaev
21.08.2022 20:28+1Ну я бы сказал так — выбираешь дело, которым тебе нравится заниматься, которое тебе приносит удовлетворение. Затем становишься в нем ну если не лучшим, то где-то на верхних уровнях пирамиды.
COBOL и нечего прыгать и прыгать… :)SpiderEkb
22.08.2022 11:49+1COBOL и нечего прыгать и прыгать… :)
Ну не надо так узко смотреть.
Разработка, это же не просто использование какого-то одного инструмента раз и на всю жизнь. Разработка - это прежде всего паттерны и практики. В какой-то степени алгоритмы. Немножко архитектура. А выбор конкретного инструмента уже зависит от конкретной задачи.
И уж если говорить о COBOL, то это узкоспециалзированный язык для реализации бизнеслогики в коммерческих расчетах. И в своей области он хорош - на нем написано огромной количество строк mission critical кода которые быстро и стабильно работают до сих пор.
Сам не сталкивался, но активно сейчас использую альтернативу ему (от IBM) - RPG. Вполне нормальный процедурный язык, активно развивающийся. Очень широко используется на платформе IBM i (коммерческие middleware сервера на процессорах PowerS) - порядка 80% кода сейчас пишется на RPG. Теги rpg/rpgle усть на SO, есть отдельные ресурсы по разработке (rpgpgm, IT Jungle, code400 и т.п.), есть группы в LinkedIn.
Но он, будучи вполне полноценным процедурным ЯВУ, все равно остается достаточно специализированным инструментом. И его удобно использовать в сочетании с другими - низкоуровневое пишем на С/С++, бизнеслогику на RPG.
В других областях будут свои инструменты. Но суть разработки от этого не меняется. Умение писать эффективный код не зависит от того, на чем его пишешь. Умение думать об использовании ресурсов, синхронных/асинхронных подходах не зависит от используемого инструмента. Ну и так далее.
Более того, в разных, казалось бы, областях разработки оказывается много общих подходов. Вот занимался раньше разработкой системы мониторинга инженерного оборудования зданий. Этакая распределенная система - двухуровневая сеть промконтроллеров, микроядро, работающее в несколько потоков, набор интерфейсных клиентов. Я занимался микроядром в задачу которого входило реализация отношения многие-ко-многим между контроллерами верхнего уровня и клиентами, маршрутизация потоков данных и еще ряд задач.
Сейчас в банке, занимаюсь разработкой на уровне ядра АБС. На тех самых IBM i серверах. И обнаружилось, что опыт работы с распределенной системой в плане межпроцессоного взаимодействия тут очень в тему когда речь идет о взаимодействии между параллельно работающими заданиями (процессами), например, при параллельной обработке больших объемов данных. Также неплохо переносится опыт обработки нештатных ситуаций когда все работает в фоне и мы не можем просто выкинуть плашку "что-то пошло не так, попробуйте позже", а должны как-то сами решать что делать - насколько критична ошибка, нужно ли останавливать процесс или можно ее обойти и продолжить с каким-то дефолтными данными, нужно ли откатывать то что уже сделано, как зафиксировать текущее состояние и т.п.
Все это на уровне паттернов, от языка и системы не зависящих.
2 @Hardcoin
я больше отреагировал на то, что поиск - это что-то временное, а не постоянные изменения. Мне далеко до 50 и, вероятно, отношение изменится, но пока считаю, что жизнь по большей части - само по себе хобби. Хочется, делаешь, не хочется - пусть катится к чертям, что-то меняй.
Мне за 50 уже (ближе к 60 чем к 50). Последний раз круто поменял работу (не в плане сферы деятельности - разработка нравилась всегда и нравится до сих пор, но в плане области применения - из практически промавтоматизации ушел в банк, да еще на платформу IBM i, которая вообще ни на что не похожа из распространённого - даже файловая система своя).
И считаю что в профессиональном смысле стоит заниматься чем-то до тех пор, пока есть запас для роста. В предыдущей области (а занимался ей достаточно долго) стал виден тупик. И стало скучновато. А поскольку не нашлось ничего похожего, открывающего новые горизонты, решился вот на такое. Да, многие паттерны и опыт разработки пригодился, но очень многое пришлось буквально с нуля начинать. Тривиально - вся работа в системе ведется в терминале командами системного языка. А референс по нему - 2300 страниц. Плюс возможность самому новые команды создавать.
Новые сущности, новые типы объектов, не имеющих прямых аналогов в других системах. Новые концепции (то же интегрированное языковое окружение позволяющее писать на разных языках и собировать в один программный объект - нечто подобное сейчас появляется в LLVM, но пока еще не сильно широко используется, а тут это стандартная практика).
Такие "повороты" очень хорошо спасают от выгорания и неплохо мозг напрягают.
Ну а хобби... Много разных было, к чему-то охладел (достаточно долго велосипед нравился, сейчас как-то равнодушен к нему), что-то нравится до сих пор (фотография, но тут времени не хватает катастрофически - нужно от суеты отрешиться, в соответствующий настрой войти), горные лыжи (это с детства мечта была, но тогда не сложилось, сейчас наверстываю)...
Так что жизнь идет как идет. Какие-то приоритеты меняются, какие-то остаются.
select26
21.08.2022 19:08В моем окружении есть и удачливые "прыгуны", которы по заплате обошли "ушедших с головой". Но я сам разделяю п.1.
Ну и про синдром самозванца: яркий признак - убедился в том, что ничего не знаешь, но спрашивать уже не у кого - все спрашивают у тебя.
На меня иногда накатывает такое.
kinall
22.08.2022 21:52+2те кто не искали денег, а углублялись в тему, сейчас получают больше тех, кто искал лучше ЗП. (Возможно - это только в моем окружении так)
Это, конечно, да... Мне тоже такое говорили, когда я сидел в НИИ гордым СНС-ом с зарплатой, тождественно равной сумме аренды квартиры и стоимости еды на месяц. И даже примеры приводили. Мол, вот, смотри на Н. - всего десять лет карьеры, а уже ого-го!.. А начинал вот тоже как ты, так что потерпи ещё лет пять-семь, и вот тогда!..
Вот только весь наш отдел (трое молодых бойцов) стал контр-примером. Двое (я в том числе) ушли "прыгать" и сейчас если и не хорошо живут, то уж точно не бедствуют. Тот же, кто остался углубляться, сидит на той же должности и (в пересчёте) зарплате уже четырнадцатый год.
Так-то да, хороший узкий специалист очень ценен, и денег у него будет - лопатой греби (в том же НИИ видел примеры). Но на одного такого, который а) долбил в одну точку; б) делал это хорошо и в) самое главное, это оказалось в какой-то момент "золотое" направление - на одного такого легендарного героя будет 100 или 1000 тех, кто тоже долбил, но или не хватило таланта, или ошиблись с точкой, и кто оказался ни с чем.
fakedup
20.08.2022 18:01+10Мне кажется, вы слишком сильно обесцениваете свой опыт.
Желаю вам постичь дзен)
Cheater
20.08.2022 20:00+3"есть огромный файл с доменами, нужно получить из айпишники". И я понимаю, что я полный профан. Нет, прочитать файл и сделать запрос на dns, а затем записать - тривиальная задача. Но как посчитать, сколько процессов скрипта оптимально запустить на восьмиядерном сервере?
Ну если вас это утешит, то я тоже подзавис над вопросом и не знаю правильный ответ) Вероятно, в районе 8 тредов, и правильный ответ можно узнать только эмпирически. Это же задача по системному программированию и сети (причём имхо не банальная, из серии простых вопросов со сложными ответами. Thread pool, накладные расходы на процесс и тред, лимиты OS на кол-во одновременных UDP/TCP соединений, опционально разговор про многопоточный ввод-вывод). Что эта задача делала в списке задач у прикладника? o_O
попросили построить график "количество процессов от скорости выполнения"
Наоборот же? Скорость от количества процессов?
NikolasSumrak Автор
20.08.2022 20:12Да, наоборот, вы правы. Но по сути же, если я не ошибаюсь, будет одно и то же, просто зеркально относительно диагонали между х и у.
vedenin1980
20.08.2022 20:29+2Это же задача по системному программированию (причём имхо не банальная, из серии простых вопросов со сложными ответами. Thread pool, накладные расходы на процесс и тред, опционально разговор про многопоточный ввод-вывод)
Я занимался подобными задачами, но это скорее простой вопрос без правильного ответа — там не количество процессов главное — а ширина канала, задержки ответа от сервера, возможное количество портов, даже какая операционная система и какая версия php стоить на сервере — тоже важно. На мой взгляд, очень мало вероятно дать такой ответ чисто на бумаге хоть с какой-то приемлемой погрешностью.
То есть такой вопрос — либо они сознательно пытались сбить цену, либо хотят услышать ответ выше и рассуждения почему такой график построить очень почти невозможно (по крайне мере, без реальных замеров).
Вопрос очень похож на сколько тенинсных мячей поместиться в автобус.mizugoji
21.08.2022 13:29+2я как то решал подобную задачу с запуском большого колличества tcp соединений в многопоточном режиме.
Правильный ответ - надо тестировать, пробовать запускать, смотреть результат, потом ещё корректировать код, опять запускать, опять смотреть результат потребления цпу, памяти, пропускной способности и ещё много чего.
У меня например после какого то увеличения tcp соединений начало падать ядро (или что то там ещё) на роутере "keenetic 1", соответственно загрузка цпу на роутере тоже была на 100%, роутер оказался не пригоден для продуктивного решения моей задачи. Роутер был заменён на mikrotik, с ним такой проблемы не наблюдалось.
ну и так далее. Короче смысл в том, что ответа на этот вопрос не будет точного, это дни/недели разработки кода и тестирования.
Если на собеседовании такой вопрос задали специально, чтобы занизить ценность способностей, тогда работодатель плохой человек.
Если вопрос был задан, чтобы получить ответ, как я и сказал выше, тогда это ещё норм.
select26
21.08.2022 19:11Можно было роутер не менять, а настроить параметры ядра для TCP стека.
Но в общем - вы совершенно правы. Это задача не только и не столько на программирование, сколько на знание сетевой архитектуры и мониторинг процессов.
Paskin
20.08.2022 23:12+10Пожалуйста, не надо пихать всюду Thread pool. Сеть отлично работает в асинхронном режиме (select() в POSIX, /dev/[e]poll в Linux, IOCompletion в Win и так далее).
steanlab
20.08.2022 20:59+1Эго. Если вам со всех сторон твердят, что вы суперкруты, как разработчик — это всего лишь значит что стоит отправляться на поиски новых challenges. Хотя-бы — попасть на собеседование в компанию «уровня выше» (я про уровень разработчиков, которые там работают). Просто послушать, что там спрашивают, о чем они думают и какие задачи решают.
Это, кстати, касается всех тех специальностей (имхо). Когда ты поверил в то, что ты крутой — ты уже проиграл. Говорят «крутой» — рискни посягнуть на невозможное :)
YuriPanchul
20.08.2022 21:39+3Ой, ну потратьте 2-3 года, поштудируйте книги по алгоритмам, поупрапражняйтесь на открытых и более простых проектах, и пристройтесь на что-нибудь поинтереснее, чем вы сейчас делаете, а потом на те позиции, на которые вы с наскока не смогли попасть. То, что вы описали - не фатально, даже в 50 лет.
MyraJKee
20.08.2022 21:51+3Узнаю себя почти во всём. Кроме самооценки. Я всегда осознавал что "ниочень". Но был ленив чтобы что-то менять. Пока не понял что поезд уехал без меня. Поэтому сейчас пытаюсь заставить себя потеть и учиться, учиться, учиться...
omxela
20.08.2022 21:54+15Я, возможно, чего-то не понимаю, но что-то синдрома самозванца, о котором не раз упомянули, я не вижу. Понимаете, этот синдром характерен для людей, у которых объективно всё ОК, есть репутация, опыт, авторитет, определённое положение. А они в глубине души думают, что это "так получилось", и уверены, что если не сегодня, то завтра у всех откроются глаза и они увидят... (стыд и позор). Из текста ТС я понял, что он как раз не может ни за что толком зацепиться. В таких историях важно, с чего человек начинает. И о чём он пишет в этой связи с самого начала?
(1) Недоучка с раздутым самомнением - это мучит ТС. "Исповедь ничтожества" - так в припадке самоуничижения (то есть, гордыни) пишет он.
(2) В школе обожал математику. Это страсть. Но "был сильно ленив". Несколько ниже он повторяет: "супер ленив" по отношению к университету (а что он там изучал, любопытно?)
Не видите очевидного противоречия? Как сочетается искреннее увлечение (мощный источник мотивации) и акцентированная "лень" (то есть, очевидное отсутствие мотивации)? Это не такая уж редкость в детстве. У ребёнка крайне завышенная самооценка. Попытки самобичевания только подтверждают, что она и сейчас высока. По неким причинам он и окружающие внушили ему, что он любит математику (мда, вообще?) и имеет некий "математический склад ума". Это такой род психологического программирования. Могучая штука. Он чувствует, что это не так, но бороться с этим невозможно. Получается типичная коллизия ложной жизненной цели. ТС занялся не своим делом. Возможно, это мои буйные фантазии. Если ТС скажет, что это не так, - я тут же соглашусь.
arheops
21.08.2022 17:28+1Нормально сочетается. Знаю кучу людей-олимпиадников искренне увлеченных и абсолютно ленивых.
А даже одного математика — доктора наук, не интересующегося вообще ничем(ну вот вообще, включая где ближайший магазин) и все так же ленивого.omxela
21.08.2022 19:37Раз Вы так считаете - так оно и есть. Для Вас. Но что понимать под ленью? Это бытовое понятие - в психологии есть мотивация или её отсутствие по тем или иным причинам. Если человек, скажем, участвует в олимпиадном движении - это процесс, состоящий циклически из нескольких этапов. Не пройдя один, не попадёшь на другой. Если вы "абсолютно ленивы" (Ваше выражение), то вы этот путь просто не пройдёте от слова совсем. Совершенно другой вопрос состоит в том, какое впечатление вы при этом хотите сознательно или бессознательно производить на окружающих. Не все люди, особенно подростки, хотят выглядеть в глазах окружающих как упёртые ботаники. Дальше. Не всякая упорная и целенаправленная работа выглядит как рытьё траншей от забора до обеда. Если ваша работа - думать, то внешне, поверьте, это выглядит как абсолютное ничегонеделание. Вот я, доктор наук, именно так сомнительно выгляжу бОльшую часть времени. Иногда сажусь и быстренько записываю результат, если он готов. К лени это не имеет никакого отношения, кто бы как ни считал.
0xd34df00d
21.08.2022 20:44+2А какая разница, где ближайший магазин, если ему и без этого очевидно норм?
dmi3mart
22.08.2022 10:37Синдром самозванца может возникать и от неспособности принять себя на своём месте (да, я чего-то достиг, но вы посмотрите на них, как же мне до них далеко!..) и от склонности наказывать себя и запрещать себе пожинать плоды своих успехов (да, меня ценят, но ведь я тогда схитрил, а там схалтурил - об этом узнают и тогда меня разоблачат и накажут).
iboltaev
22.08.2022 14:35Ну кстати синдром самозванца таки немного есть, потому что достижения тоже есть. Также не вижу, чтобы TC занимался не своим делом, иначе у него бы просто не получалось пилить сайты с мобилы в юности и в этой же юности хорошо этим делом зарабатывать. Завышенная самооценка - это есть, но в этом также множество плюсов, завышенная самооценка позволяет метить выше и в итоге добиваться большего, даже несмотря на то, что имеет тенденцию чуть что падать с небес на землю, причиняя эмоциональную боль и страдания. Искреннее увлечение и лень - сочетаются действительно плохо, но в одной и той же голове как нефиг могут уживаться (вообще, в одной и той же голове может такая дичь уживаться, что ахнуть), причиняя страдания внутренним конфликтом.
А если откинуть занудство, то в посте есть все - и самовозвеличивание, и самоуничижение, как попытка навести во всем этом бардаке хоть какой-то порядок)
meettya
20.08.2022 22:10+1Любезнейший, напраслину на себя возводите. Прогуляйтесь, подышите свежим воздухом.
Как говаривала моя преподавательница органической химии "Дима, Вы такой умный, почему Вы такой ленивый?". На что я молчал и думал про себя "потому что могу себе это позволить" :)
Просто решите что для вас на самом деле важно и гребите в эту сторону. Все фуры на трассе Москва-Владивосток не обогнать :)
Daddy_Cool
21.08.2022 13:54Большому костру надо много дров.
Увы, для ребенка нет явного ХОРОШЕГО способа использовать/развивать свои мозги на всю катушку.
У меня было - олимпиады, турниры городов, математический кружок при МИФИ, физматшкола, справочник по математике любил читать как художественную литературу и... этого было недостаточно!
В институте математика оказалась вообще неправильной - как впрочем и почти везде. Это здорово снизило мотивацию.leventov
22.08.2022 13:09Посоветуйте хорошие ресурсы по математике?
Daddy_Cool
22.08.2022 15:36Увы. Почти не посоветую. Справочник Бронштейна и Семендяева - вещь. А так - математика очень большая. Лучшие ресурсы у меня - знакомые выпускники кафедры математики ФФ МГУ.
wormball
20.08.2022 22:24Поставили бы хабы «биографии гиков» и «читальный зал» — так бы больше народа прочитало.
vkni
20.08.2022 22:50+4Что существуют, казалось бы, простые алгоритмы, вроде sliding window, до
которых я вообще не факт что додумался бы сам, даже спустя
недели/месяцы обдумывания. Что есть графы.Ну это, как бы, неудивительно — за большинством алгоритмов стоят статьи, возможно диссертации. Очевидно, что вы за две недели вряд ли сделаете то, что делали профессор, погружённый в тему, вместе с аспирантом год или два.
Этим, кстати, бесят всевозможножные "алгоритмические интервью" — если интервьюирующий их давно не проходил, он не понимает, что за 20 минут невозможно написать ничего. А уж тем более под прессом "рассказывай ход мыслей".BenderH
21.08.2022 14:49+1так интервьюеру, кроме как — "рассказывай ход мыслей" — ничего и не надо. Он что — решения не знает?:) Его, скорее всего, интересовал потенциал....
eleoleeye
20.08.2022 23:03+6Зачем слушать советы того, кто за 10 лет еле-еле разобрался в том крутой он разработчик или нет)(без обид).
>В Playtika мне отлично показали, что я сильно плаваю в солид, а в Viber - что >высоконагруженные проекты и DDD для меня темный лес.
Почему-то мне кажется, что не только в солид дело, а завалили вас там по всем пунктам скорее всего.
Имхо путь роста это стараться попадать в хорошие команды с хорошими специалистами, от которых ты будешь перенимать много полезных качеств.Тк путь программиста это не только алгоритмы на литкоде(которые без практики уже через два года скорее всего забудешь как решать), а умения как - подходить к задачам, общаться с коллективом, искать решения, поглощать знания, оценивать задачи и понимать интуитивно слабые места и тд и тп. Сеньер может не знать алгоритм обхода дерева, но он узнает его за полчаса. Собеседование в ФААНГ говорит только о том, насколько хорошо ты подготовился к собеседованию в ФААНГ, ну реально же, специальные курсы, книги, сайты для прохождения собесов, полгода затачиваешь себя под собес и потом вау я прошел, теперь я суперрогер?)
Зы морали не будет.BenderH
21.08.2022 14:58+1а может быть "...Собеседование в ФААНГ говорит только о том" — насколько ты мотивирован и упёртый? Скорее всего только этим оно и ценно....
nameless323
23.08.2022 06:03Все таки подготовка к собеседованию в ФААНГ по специальным курсам, книгам это такой себе чит, изначально я думаю подразумевалось что кандидат без определенной подготовки будет показывать что знает. Мне было как раз интересно "а смогу ли я с тем, что знаю, без подготовки пройти" например, просто, как ачивку в игре получить. Цели вообще не стояло, получалось что писали, я думал что "а почему бы и нет", через неделю тех собесы, особо не подготовишься, да и зачем.
MTonly
21.08.2022 00:55-1задачки-то были - easy уровня leetcode
Зайдя на leetcode - я осознал
стоит начать с leetcodeСтатья — реклама LeetCode?
pae174
21.08.2022 00:55есть огромный файл с доменами, нужно получить из айпишники
Я просто оставлю это здесь:
axmct
21.08.2022 01:11+3Частая смена работы. Тут я не уверен окончательно. Потому что с одной стороны это позволяет изучать что-то новое. Но с другой стороны это мешает стать экспертом в чём-то старом. Сложно угадать, в каком случае ширина знаний в какой-то области будет лучше глубины. Но наверное всё-таки ширина важнее.
Специализуйтесь в конкретной узкой нише. Та же Magento это e-commerce и это PHP. Мечта просто. Если там не нужны сложные алгоритмы - значит они и вам не нужны.
Все у вас хорошо. В нише есть границы очерченные инструментом и предметной областью, как в любом доме со стенами и крышей. Живите в нем с свое удовольствие. Именно постоянство позволяет быть в домике.
wormball
21.08.2022 01:44+23Да что вы понимаете в ничтожествах!
Я научился читать в 3 года, в 7 лет прочитал все учебники по химии в доме, все взрослые рассуждали, сколько я получу нобелевских премий, когда вырасту.Правда, «здесь и сейчас» отчего-то относились ко мне приблизительно как к говну.Исповедь настоящего ничтожестваВо втором классе меня перевели в четвёртый класс. Раз вундеркинд — значится, должен асилить. А я ниасилил. Что на удивление не привело к лишению меня титула вундеркинда, каковой выражался в основном в том, что ежели у меня чего-то не получалось с первого раза или я чего-то не знал, то надо было непременно поставить мне это в вину, ведь мне столько дано, а я совершенно бездарно этим распоряжаюсь. А, ну ещё перед знакомыми мной можно было хвастаться.
Приблизительно тогда же у меняя появился спектрум (нафаня). Только в отличие от 99,9999% здесь собравшихся я не стал в тот же момент великим программистом. То ли оттого, что кнопки были совершенно чудовищные, то ли от не менее чудовищного способа ввода во встроенном бейсике (который вроде как должен был экономить нажатия, но лично меня только запутывал), то ли оттого, что программу надо было набивать каждый раз заново. Хотя, скорее всего, в силу моей альтернативной одарённости.
В восьмом классе я выиграл районную олимпиаду по химии (ещё на «тех» знаниях). Но на этом мои олимпийские победы закончились.
Поступил на биофак МГУ. Попался одногруппник, который ещё со школы увлекался программированием. Вот тогда-то я таки асилил паскаль и несколько лет довольно регулярно им занимался. Меня ажно назначили модератором на одном известном в народе форуме по паскалю. И даже на какие-то вопросы на форуме я отвечал. Тут-то я во второй раз в жизни почувствовал себя великим чижиком-пыжиком — самостоятельно (почти) освоил программирование, даже людей поучаю!
Правда, когда я захотел сделать нейронную сеть, играющую в змейки (2002 год, тогда это ещё/уже не было модно), у меня отчего-то это не получилось, и я так и не смог понять, отчего. Более того, когда я захотел написать функцию, превращающую строку в число с плавающей точкой, я этого также не смог сделать! И с фракталом Мандельброта та же петрушка. С другой стороны, я выиграл один чемпионат по виртуальному футболу среди программ, причём среди соперников были натуральные математики, которые эти программы несколько лет писали. Причём программа моя была совершенно дубовейшая (других я и не умею, как вы уже поняли). Математики, правда, вскорости исправили это упущение.
А потом я закончил биофак. Напросился в аспирантуру к упомянутым математикам. Только когда я увидел программу вступительных экзаменов — мне стало как-то не очень хорошо. В итоге пошёл на родной биофак. Зачем-то выбрал тему «давайте напишем ещё одну программу для молекулярной динамики». Хотя этих программ хоть жопой жуй, а я на тот момент не имел никакого понятия, что в них не так и как бы это можно было улучшить, так что никому это было не нужно. А учитывая мои невиданные способности к программированию, описанные выше, вы можете догадаться, что как-то с этой затеей не срослось, и из аспирантуры меня изгнали.
Ну, раз изгнали — то вроде как надо бы работу искать. Как нам рассказывали при поступлении — ты только скажешь «я окончил МГУ!» — а все будут таять только от этих заветных трёх букв. Оказалось — меня жестоко обманули! На самом деле реакция на эти буквы скорее напоминает известный анекдот. В общем, сходил на штуки три собеседования по программированию и три по биологии, никуда меня не взяли (да, я знаю, что реальные посоны ходят по меньшей мере на сто собеседований, но это выше моих сил). Хотя вру, взял один господин, который хотел по результату электрофореза в полиакриламидном геле ставить поциентам универсальный диагноз. Только мало что он был откровенным шарлатаном, так ещё и за месяца два работы заплатил мне ровно одну тысячу рублей — за то, что я ему на домашнем компьютере изничтожил вирус-вымогатель (хотя есть подозрение, что «компьютерный мастер» взял бы раз в десять больше). В общем, с работой тоже как-то не заладилось.
А раз работы нет, а родители есть, то надо что? Правильно, пора бы увековечить своё имя в истории! У меня же, как мы помним, потанцевал на кучу нобелевских премий, а то и больше. Ну я и изобрёл гениальную идею — давайте сделаем искусственную жизнь, чтобы она сэволюционировала до человеческого уровня и захватила мир! (Если кому интересно — ищется по выражению «вырастим искусственный интеллект».) Наверное, вы уже догадались, что и здесь у меня ничего не получилось. Сделал интерпретатор форта на дельфях по образу и подобию retroforth, с грехом пополам запустил кучу его копий многопоточно, но на большее меня не хватило.
В общем, как-то я после всего вышеописанного разуверился в своей способности делать что-либо нетривиальное, учиться чему-либо нетривиальному или хотя бы не помереть с голоду без благотворительности со стороны других людей.
Итого я в 39 годиков большую часть жизни после окончания университета провёл, валяясь на диване и смотря ютуб. А меньшую — работая на малоквалифицированных должностях и в свободное время также смотря ютуб. Больше 50 тысяч в месяц никогда не получал (а это москва). Друзей нет, женщины нет,населена роботамии даже роботов нет.
После «известных событий» захотел было уподобиться поросёнку Петру, а для этого надо вроде как работу найти. Открыл соответствующие сайты и понял, что я испытываю перед поиском работы такой же животный ужас, что и пятнадцать лет назад. А что самое печальное — аналогичный ужас я испытываю и перед процессом обучения, что платного, что бесплатного, что самостоятельного. Ибо больше пятнадцати лет я только и делал, что учился — а результат такой, как будто я маугли, воспитанный деревенской собакой.
Как-то раз я встретился со своей бывшей одноклассницей, которая отчего-то считает меня очень умным. И она мне подарила книжку «цветы для Элджернона». Прочитал, ну книжка и книжка, я вообще не большой любитель художественной литературы. А потом как понял! Это же про меня! Я как тот главный герой — обычныйолигофренальтернативно одарённый, которому все вдруг стали говорить, какой он умный, а де факто его недюжинного интеллекта хватило только на осознание собственной ущербности.anarchomeritocrat
21.08.2022 04:51+5Воу, воу, народ, давайте только не надо состязания в ничтожничестве тут устраивать и в самобичевании соревноваться )
Во первых (автор статьи, это больше Вам) особенность программирования как навыка как раз в том и состоит, что это навык универсальный. Выбирая этот путь, надо понимать и быть готовым к тому, что скилуха сия может понадобиться для решения вообще каких угодно задач и что программист - это пожалуй самая мотивирующая к максимальному расширению кругозора профессия. Я на втором курсе универа матерился в процессе решения транспортной задачи, а через 15 лет обнаружил внезапно что я архитектор системы мониторинга подвижных объектов. Осознайте наконец, что нет в мире вообще ничего не интересного и увлечься можно абсолютно любым направлением человеческой деятельности, причем не потому что вдруг понравилось, а сознательно, специально... ну да, тут хороший комментарий есть про обогнать все фуры от Москвы до Владивостока, по этому разумеется, на случай если придётся в неожиданную сферу вникать (вероятность, поверьте, просто жесть какая высокая), то я очень рекомендую заложить себе в подкорку такое отношение к любой области, что если понадобится в неё, то что бы это начиналось с состояния "ух ты, любопытно...", а не "ой б.. яж не шарю...", или "упс, а я не проходил...". Для программиста самая адекватная мантра это "Саморазвитие во всём", а не только в программировании, ради программирования, иначе можно даже на программировании дойти до симпрактического мышления, как тут недавно в одной статье это назвали. И научитесь доброй радости победам и достижениям без такой составляющей, как гордыня. Знаете, чем она от гордости отличается? Когда гордость говорит, "мы это сделали!", гордыня пытается навязать своё "я лучший", или "я гений" и тд, из серии "себя не похвалишь, ...", запомните - радоваться жизни можно тихо, не надо становиться дофаминовым наркоманом и усиливать кайф от достижений, накручивая себе корону на голове, даже больше - будьте даже в некоторой степени (тоже в здоровой разумеется) самокритичны, тогда голова Ваша будет светлая и ни что не будет мешать разглядеть, чего в ней не хватает и как это туда добавить.
Во вторых (это уже больше к Вам, автор комментария, который комментирую) вот поверьте это прямо совсем не работает "хочу сделать что то великое и по этому надо придумать что то безумное, главное что бы было правдоподобное" - решайте реальные задачи, а не создавайте виртуальные задачи, что бы их решать. Вот просто ответьте на простые вопросы: какую реальную проблему это решает? кому это нужно? а потом задайте их своему "давайте сделаем искусственную жизнь, чтобы она сэволюционировала до человеческого уровня и захватила мир!", если ответы "ни какую" и "ни кому", то Вы просто впустую убьёте кучу сил и времени, жестоко разочаруетесь в результате и ещё глубже свалитесь в депресняк, фантазируя там очередную бесполезность, утешая себя что вот он, мой выход. Нет. Не выход. Ещё ни одно действительно востребованное и гениальное изобретение не родилось из чистой софистики. Хотите совет? Opensource. На чистом энтузиазме. Полистайте проекты на github c интересным лично Вам стеком технологий, почитайте issues, найдёте то, с чем сможете помочь интересному для Вас проекту, открываете CONTRIBUTION.md, читаете гайд, делаете, получаете респект от команды, а может даже и вполне финансовое спасибки главное помните, что "путь в тысячу шагов начинается с первого шага"
Ну и вообще всем, у кого похожие проблемы: научитесь быть частью команды, даже такой, где Вы ни кого не знаете, все анонимусы и единственное вознаграждение - это когда Ваш коммит, YES!, в master смерджили! разучитесь быть одиночками с виртуальными самодельными коронами, потом начнёте обнаруживать что ого! а оказывается комьюнити - это не только статейки на хабре комментировать, что есть такие замечательные вещи, как gitcoin, что можно например полистать отечественные гранты, даже не для того, что бы получить их, а где прям не поленились расписать че вообще сейчас надо в реальности, что если задаться целью, вполне реально собрать команду, или примкнуть к существующей, найти финансирование, либо даже запилить что то на голом энтузиазме (да, даже в этом случае можно найти единомышленников - вы не единственный гик, фрик, мечтатель, понимающий, ... ) и главное, будьте неуёмны в любопытстве, интересуйтесь всем при всем, но только с оговоркой - не делайте из этого прокрастинацию.
...ладно, комментарий-статья получился правда, но пусть останется комментарием - в этой статье ему самое место, а на закуску вот Вам для детальной саморефлексии, по идее тоже должно помочь )
SatyrB
22.08.2022 11:57Похожая история, и тоже, блин, началась с химии… Набивал знаниями голову, как Плюшкин свои комнаты. В итоге влечение к учебе утратилось.
Мозг, особенно выдающийся, устройство достаточно нежное, и испортить его можно запросто.wormball
23.08.2022 01:10> Набивал знаниями голову
Не, ну я-то знаниями голову не набивал. Во-первых, у меня память плохая (хоть мама мне всю жизнь говорила, что она у меня хорошая), во-вторых, у меня в доме было не особо много книжек из интересных мне, на новые книжки не было денег, в библиотеку меня сводили один раз, а там одни похождения доблестных советских пионеров, а интернет у меня только на втором курсе появился, и то в компьютерном классе. А в-третьих, меня среди прочих взаимоисключающих параграфов потчевали такой максимой — что повторение — это для лохов, настоящий гений должен сам всё изобретать.
> В итоге влечение к учебе утратилось.
> и испортить его можно запросто.
Я вот не так давно пришёл к мысли, что порчей мозга и отбиванием интереса к учёбе занимается старая добрая школа (причём, скорее всего, целенаправленно). А родители зачастую ей в этом помогают (скорее всего, бессознательно, но не менее эффективно). Ну, точнее, мне это Дима Зицер на ютубе рассказал, и с тех пор я его повсюду рекламирую. Вот и сейчас: www.youtube.com/results?search_query=Дима+Зицеризвените за неровный почерк.
> Мозг, особенно выдающийся
По моему глубочайшему убеждению все эти термины наподобие «выдающийся мозг», «вундеркинд», «гений» и т. п. — во-первых, ложны, во-вторых, откровенно вредны. Ибо:
— Когда ты назначаешь вундеркиндом своего ребёнка, у тебя появляется ажно два соблазна. Первый — когда он задаёт вопросы, отвечать «раз ты гений, то сам должен знать», ну или «мы-то люди простые, академиев не кончали, откуда ж мне знать». А второй — который я в предыдущем каменте упомянул, что ежели у ребёнка чего-то не получается, не помогать ему, а обвинить его в лентяйстве и прочих смертных грехах, ибо раз он такой гений, то у него всё должно получаться как два пальца об асфальт, а раз не выказывает успехов — то это он не иначе специально над родителями издевается, надо бы его наказать. А это, прямо скажем, контрпродуктивная стратегия, ежели ты хочешь, чтобы твой ребёнок развивался, я это на себе прочувствовал.
— Когда ты искренне считаешь гением себя — то появляется соблазн не прислушиваться к чужому мнению и не сомневаться в своей правоте. А это конец любому личностному росту и чревато принятием откровенно идиотских решений.
— Когда у общества появляются какие-то авторитеты, великие мысли которых простым смертным никогда не понять и надо просто им верить, ибо они гении… Ну, что бывает в этом случае, мы все знаем на примере «текущих событий». Когда люди натурально оправдывают массовые убийства аргументом «царю видней».
Ну и это, моя племянница научилась читать в 1 год и 10 месяцев, то бишь в два раза раньше меня и в четыре раза раньше «номинала». Однако ж в 6 лет по «общему развитию» она не тянет ни на 24 года, ни даже на 10 лет.И химию читать не хочет, падла.В общем, есть подозрение, что «выдающиеся» люди появляются попросту оттого, что им повезло пройти по такому пути, который их вывел на что-то, чего раньше не знали. А мозг у них приблизительно обычный. (Здесь важно заметить, что я не говорю, что любой человек может освоить всё — это тоже крайне вредный миф, но я говорю, что не бывает людей с кардинально сверхчеловеческими умственными способностями «в целом».)
dom1n1k
21.08.2022 02:04+2Большинство, если не все, алгоритмов, которые сейчас используются для решения сложных задач — были сформулированы и выведены в шестидесятые, семидесятые года прошлого века!!
Так и есть. Все основные и практичные алгоритмы изобретены до наступления 90-х годов. Это не значит, конечно, что потом не появлялось ничего нового — было, но в основном что-то сложное и/или узкоспецифичное.
kellas
21.08.2022 02:26+14Вот все наразвиваются по твоим советам, а кто формы делать то будет?
Ты профессиональный, опытный формошлеп! Не всем же нейронки писать. Людям нужны простые "дубовые" решения, простых задач. Кто-то должен это делать. И мне например не нравится когда в компании эту работу сгружают на джунов которые криво косо и ооочень долго их клепают , развиваясь на стороне в другом направлении с одними только мыслями как-бы побыстрее выучить "правильный" язык и уйти заниматься "серьезными" задачами. Формошлепить тоже уметь надо и об этом как раз нет умных книжек и не помогут тут ни алгоритмы ни какие-то особенные технологии. Это очень сложное сочетание менеджмента, работы с клиентом, требованиями и экстремального программирования.
Просто делай дальше круды , делай их быстро и качественно, с чего ты решил что вообще надо куда-то расти?
tommyangelo27
21.08.2022 11:24Вот плюсану, тем более что автор из сферы екоммерса, а там хорошо платят (о чём тоже есть в статье).
В екоммерсе можно спокойно гонять джейсончики задорого, а для души - прогать на стороне.
semenyakinVS
21.08.2022 03:04А не думали бросить на время кровавый веб и двинуть в геймдев почилить? Чисто отдохнуть от этой гонки и расширить кругозор? Там и алгоритмы вам, и математика, и рок-н-ролл. И даже зарплаты норм бывают, если повезёт
Femistoklov
21.08.2022 06:58+2Ну что вы такое говорите, ТС же открыл, что для просветления ему не хватает самой малости.
Один алгоритм читается за 15 минут (плюс полчаса на запрогать пример), SOLID за пару часов, вся суть DDD почти полностью описывается одной статьёй на Хабре (остальное - детали реализации). С O(n) может быть посложнее, если универа не было, но бытовое понимание можно получить за час, без всяких пределов и матана, статей объясняющих полно. Итого, до завтра можно всё успеть.
Svbakulin
21.08.2022 07:31Некоторые вещи видел. Был у меня на 1м курсе старый гриб 80 лет который наотрез отбил у меня желание честно учиться в универе. Вероятно именно поэтому, хотя нельзя сказать наверняка, я и не стал разработчиком.
А вообще в крайности бросаться не хорошо. Синдром самозванца в паре с низкой эмоциональной зрелостью могут натворить дел тех еще. Не факт что все плохо, просто реалити чек который автор получил в лицо без подготовки можно было получить в меньших дозах за бОльшее время чтобы так не удивляться. Каждый не может быть Дональдом Кнутом, но вероятно количество более низкокачественных формошлепов сильно больше количества людей уровня фаанга на фоне которых автор не шарит.
Достижение фазы осознанной некомпетентности на самом деле может быть началом следующего уровня карьеры.
fndrey357
21.08.2022 08:11+1В принципе, если откинуть вопросы финансов, то останется старое и древнее философское "Я знаю, что я ничего не знаю".
Мы все примерно такие. Кто-то чуть больше, кто-то чуть меньше. Кто осознает, кто-то нет.
saipr
21.08.2022 08:56попасть на собеседование в компанию «уровня выше» (я про уровень разработчиков, которые там работают). Просто послушать, что там спрашивают, о чем они думают и какие задачи решают.
Очень дельный совет.
DrinkFromTheCup
21.08.2022 09:28+10Йоу.
Помнишь Саню с неприличной фамилией и косой харей из .sty?
Кратко-тезисно:
я, разработчик с практически 12 летним опытом за плечами - простой формошлеп
Николай, знаешь, по какому событию я тебя помню и вспоминаю со священным ужасом?
Ты фактически за пару перекуров "на проговорить" + буквально два дня чистого времени на проработку деталей "поставил в позу лотоса и трахнул в ухо" интеграцию с одной очень user-unfriendly платилкой для одного очень user-unfriendly (да ещё и писаного ногами) модуля.
Задачка, к которой кроме тебя особо НИКТО не знал, как подступиться.Вообще, ты неоднократно вытаскивал зашедшие в тупик ресёрчи и архитектурные уточнения.
ВОПРЕКИ обстоятельств, о которых не принято говорить.
НЕЗАВИСИМО от их сложности.Поверь человеку, который видел самый разнообразный сброд в глубочайших айтишных подмышках Минска.
Ты толковый разработчик, креативный, оборудованный здравым смыслом.
То, что сейчас в скоупе нет достойного челленджа для твоих навыков, не значит, что навыков нет.
А ошибки... что ошибки?Универ.
Деньги vs Опыт.
Это не ошибка. Это рассуждение зрелого человека, выбор, осознать который - почётно. Иные десятилетиями плавают как в проруби, не осознавая этого.
Частая смена работы.
Это не твоя ошибка.
Оглянись.
Мы уже лет десять (может, больше) в фазе, когда HR в IT просто сошёл с ума.
Мы с нашей стороны можем только не опускать руки.Challenges.
Вот что по этому поводу писал легендарный Станислав Лем:
"...некоторые философы уже заявляли, что чем больше прогресса, тем больше кризисов; если же кризисов нет, стоило бы устраивать их специально, поскольку кризис активизирует, цементирует, высвобождает творческую энергию, укрепляет волю к борьбе и сплачивает духовно и материально — словом, вдохновляет на трудовые победы, тогда как в бескризисные эпохи господствуют застой, маразм и прочие разложенческие симптомы. Подобные взгляды проповедовала школа так называемых оптисемистов, черпающих свой оптимизм из пессимистической оценки настоящего..."
Но стоит обратить внимание на то, что кризисы иногда случаются прямо под носом...
В жизни всегда присутствует достаточное количество челленджей, даже при самом размеренном темпе жизни.
"There is a magic word, and that word is "Oooooh, look!" - Gene Simmons
Пет-проекты.
Не ошибка. В любой момент одно может перерасти в другое и наоборот.
Стэк.
You see Ivan, если некому станет шлёпать формы, не для кого будет ваять архитектуру, на которую надо шлёпать формы... и не из кого будет обучать архитекторов.
Эго.
См. про частые смены работы. Дело не в эго. Дело в безумной культуре найма.
.
..
...В любой момент времени есть только одно правильное решение.
Какое решение правильно - зависит от наличной информации.
Если текущее решение не нравится - нужно не зацикливаться, а добыть недостающую информацию.
Иначе да, ступор, Bleak Thoughts и искушение разменять монетку на ночь без сновидений...DEE_M_ON
22.08.2022 22:52Спасибо. Ваш взгляд со стороны (или изнутри, хз) это прямо глоток свежести, ясности и мотивации.
Epsiloncool
21.08.2022 12:03Чувак, ты не представляешь, насколько тебе повезло. Я прошёл примерно такой же путь с небольшими отличиями, но понял, что я просто странный чувак с завышенным самомнением только в 42 года. В 30 гораздо проще измениться и поработать над собой.
Zoolander
21.08.2022 12:08leetcode ломается стальной задницей - в ее задачах главная проблема это регулярно выделять время на их решения
Но сами решения разжеваны даже индусами, есть и на русском
Greenback
21.08.2022 12:27+1У меня вопросы
Если сравнить программиста со швейцарским ножом-мультитулом, где каждый tool - это навык (ООП, алгоритмы для leetcode, формошлёпство, solid, нейминг, тестирование, слепая печать и т.д) то очевидно что набор инструментов у всех будет разным - у кого-то нож и открывашка для пива, у другого - 57 штучек-дрючек на все случаи жизни.
Когда человек-швейцарский-нож приходит на собеседование к работодателю, тот ожидает наличия вполне определённых тулзов для решения реальных задач (я надеюсь).
Мне интересно, почему же кандидата гоняют по алгоритмам, которые ему пригодятся раз в никогда? Алгоритмы - это какой инструмент: обязательный нож или калёные щипчики для ногтей динозавров? Если это нож, то почему большинство обходится без него, годами? А если щипчики, то почему работодатели смотрят на них, а не на десятки более часто используемых навыков?
vedenin1980
21.08.2022 14:05+1Ну, во-первых, большинство компаний (и на Западе), по алгоритмам как раз не гоняют, это больше фишка гугла и близких ему по размеру.
Во-вторых, алгоритмы в данном случае как сухой хвостик у арбуза, некий индикатор что арбуз (программист) будет качественным (хоть и ничего не гарантирующий).
В-третих, алгоритмические собеседования ввел в моду (по-моему) гугл, потому что ему требовался некоторый универсальный критерий для программистов на любом языке, котопый показывал бы умение думать, учится, мотивацию и силу воли потратить время на то что возможно больше нигде кроме собеседования в гугл возможно никогла не пригодится. С таким же успехом, они могли требовать умения в совершенстве прогораммировать на условном хаскеле (а то и brainfucke), даже если идешь на javascript программиста. Это просто критерий позволяющий сократить количество кандидатов от тысяч до десятков, потому что гугл может себе это позволить.taujavarob
22.08.2022 00:10+2Верно.
Читал книгу как в 90-е парень из бывшей СССР попал сначала в Израиль, а потом в Калифорнию. Там он устроился на фирму по производству средств хранения (ёмкие HDD). Отбор проводил парень, который таскал с собой учебник по матану и требовал решать дифференциальные уравнения. Такие были времена. Книжка интересная.
На другой фирме проводили набор на курсы тестировщиков. Их требовалось человек 10. На бесплатные курсы набирали человек 25. А пришло 100 человек. - половину отсеяли на знании английского. А остальных? - дали программу на языке С. - зачем? - а как убрать половину ещё, если они все примерно одинаковые? Конечно знание С им нигде не требовалось ни на курсах ни на работе.
Вот такие критерии отбора. Бывают.
DrinkFromTheCup
22.08.2022 11:01+1Hold my grog...
Меня как-то раз отсеяли по причине "Жалость".
"Ну он же такой весь бодрый на оптимизме. Наши угрюмые злюки его просто съедят. Жалко."
Почти дословная цитата...
yerbabuena
22.08.2022 11:46Читал книгу как в 90-е парень из бывшей СССР попал сначала в Израиль, а потом в Калифорнию. Там он устроился на фирму по производству средств хранения (ёмкие HDD)
https://www.litmir.me/br/?b=27783 - оно? Да, Торин хорошо свою биографию описал
yerbabuena
21.08.2022 14:21Мне интересно, почему же кандидата гоняют по алгоритмам, которые ему пригодятся раз в никогда?
Народу подается много, чего бы и не поустраивать бег в мешках по канату...
arheops
21.08.2022 21:48+3В основном для того, что если человек заморочился алгоритмами, которые нужны только на собеседования — то, скорее всего, что-то еще тоже знает. Ну надо же хоть КАКОЙТО критерий. Можно только блондинов брать, к примеру.
Просто нормально не проверить программиста за выделенное время.
Daddy_Cool
21.08.2022 14:12+3Кажется пора создавать сообщество недооцененных гениев и переоцененных вундеркиндов.
1) Группа поддержки - собираемся, стулья в кружок - дальше классика - "Здравствуйте, меня зовут Вася, и я в три года написал нейросеть на ассемблере..."
2) Выбираем мировую проблему требующую решения.
3) Не можем ни о чем договориться, потому что каждый считает себя самым умным.
4) Не можем ничего сделать, потому что у всех проблемы с селф-менеджментом.BenderH
21.08.2022 15:14+15) По ходу выясняется, что — оказывается — каждый для себя выбрал другую проблему...
popov-a-e
21.08.2022 17:26+4Автор, ваша ценность как программиста измеряется не тем что вы знаете, не тем какие сложные алгоритмы умеете, и не тем что там умеют другие. Ваша ценность измеряется тем, приносите вы пользу обществу, компании или самому себе или нет. Поэтому если вас действительно ценили, если вы помогали зарабатывать деньги и строить продукты, все остальное не так важно. Да, умение делать высоконагруженные сервисы ценится выше и позволяет заработать больше. Да, лучше писать масштабируемый, модульный, оптимизированный код чем лапшу. Но зачем пилить микросервисы и задрачивать алгоритмы если вы делаете внутренний продукт с 10 RPM? В общем, это скорее вопрос выбора где сравнение что лучше а что хуже в общем смысле неуместно и поэтому нельзя считать себя ни гением ни ничтожеством. Радуйтесь, что вы не бесполезный менеджер-саботажник, вот это действительно ничтожная роль
karalex
21.08.2022 17:42Есть универсальный инструмент распознавания своего уровня и крутости - это делать свой проект, как бы нанимать самого себя, то есть быть по обе стороны найма.
Если твой проект реализуется тобой, имеет успех, прибылен, конкурентоспособен, стабилен, оптимизирован, рентабелен, то ты крут. Только побывав одновременно и в шкуре нанимателя и наёмного понимаешь требования к себе, да и к другим и к профессии в целом.
AleksSkela1313
21.08.2022 17:42Статья конечно эмоциональная. В принципе понятно, что самое сложное в разработке - это разработать алгоритм. Но вопрос, часто ли в повседневной производственной жизни встречаются такие ситуации, когда нужно его разрабатывать. Думаю не очень часто...
crystallize
22.08.2022 06:23Реквестую такую же историю но от человека без склонности к математике, а скорее про полу-гуманитария который немного шарит в алгоритмах.
Refridgerator
22.08.2022 07:22+6Гуманитарий такого не напишет. Гуманитарий знает, что всё описанное в статье — тщета, а истина в вине. Гуманитарий знает, что за всё надо платить, а за некоторые вещи — ещё и расплачиваться, и не каждая вещь стоит платы за неё. Гуманитарий знает, что ценность пути — в пути, а не достижении цели, поскольку все цели кончаются одинаково — смертью.
P.S. изучил ассемблер в 11 лет методом тыка по справочнику для спектрума, но завалил поступление в институт по математике. Осознанно пошёл учиться на гуманитария. Хипповал. Читал и Кастанеду, и Страуструпа, оба есть в бумаге. Профиль на гитхабе есть тоже.
Schtil
22.08.2022 10:16И вот прочитав статью сидит я, 22-лeтний оболтус SRE-инженер по работе, и немного PHP в душе.
И думаешь, а как сделать так чтобы не оказаться в такой ситуации?)
Rtuty
22.08.2022 10:20Ваша проблема, как вы написали, заключалась в завышении своей важности и опыта. Как по мне, большинство it-шников рано или поздно столкнуться или уже столкнулись с ней. Автор, не стоит называть себя "ничтожеством" из-за того, что опыта не хватает :) 30 лет - не 70, наверстать упущенное никогда не поздно, тем более после признания своей проблемы, её горазда легче решить.
Nedder
22.08.2022 11:19+1Ребята, на моем месте должен быть не я! (с) почти "Бриллиантовая рука"
Очень часто кроме знаний от человека требуется множество дополнительных способностей, которые вроде бы напрямую с его деятельностью (к примеру, программированием) не связаны.
Например, ходить регулярно на работу с 8 до 16.00, не уходит в запой внезапно, общаться нормально с коллегами, писать нормальное описание того, что он накодил и многое всякого, что может перевесить отличные знания.
Я во фрилансе (в качестве заказчика) столкнулся с такими исполнителями, которые могут выдать отличный результат за вполне скромные деньги, а могут вдруг пропасть надолго и вообще не отвечать на вопросы.
acordell
22.08.2022 11:23+1Ой, я вас умоляю... Это просто переход на новый этап развития. Это что-то вроде когда бессистемно рос-рос, уперся головой в потолок, несколько лет в него поупирался, а потом он просто под твоим напором нафиг проломился. В этот момент, ты оказываешься в совершенно незнакомой обстановке, ощущая себя мальчиком в коротеньких штанишках. И все что ты знал и умел до этого кажется какой-то детской ф-ф-фигней. Но тут важно осознать две вещи:
1) Это глядя сверху на свой опыт он кажется таким незначительным, а вот тем, кто смотрит на него снизу, он кажется совсем иным. Примерно как тебе сейчас кажется необъемным то, что нужно освоить на этом уровне.2) Ощущение своей ущербности суть ресурс. Это огромная мотивация расти дальше. Как раз пришло время сесть посмотреть куда/что/как и начать шебуршить ручонками/ноженками.
Отличная пора! Гораздо лучше, чем когда ты считаешь себя полубогом программирования, а на самом деле гниешь заживо.
AleksSkela1313
22.08.2022 16:36+1Рос-рос, уперся головой в потолок. Он не сдвигается. Уперся еще сильнее. Наконец он сдвинулся. Плита вышла из зацепления и придавила...
leu_astashonak
22.08.2022 13:29я видел и вижу людей, которые сидят в одном болоте долгие годы
мы просто принадлежим к разным типам людей, которым никогда не понять друг друга
Все наоборот же: те люди в порядке, а вот автор — как раз в болоте.
olezh
22.08.2022 14:23+4Вопрос в автору: а что вы хотите-то от жизни? По тексту выходит смысл в том, чтобы всем доказать свой высокий скилл. И когда что-то идёт не так, всё рушится.
engine9
22.08.2022 15:00+2Мне кажется, главная ошибка — низводить себя ярлыком "ничтожество", не разрешая себе быть таким, какой уже есть. Сверхобобщенные и доведенные до крайности мысли вот это надо дебажить в первую очередь.
nikolas78
22.08.2022 15:10Трудно разрешать себе быть таким как «я» есть, если общество вокруг давит «будь таким, будь этаким» (а иногда и требует этого).
engine9
22.08.2022 15:23Есть такая проблема. Но, взросление (развитие мышления) включает в себя выработку осознанного отношения к такому давлению.
Догадываюсь, что чаще всего это "давление" выглядит как пристыживание, да?nikolas78
22.08.2022 15:33+1Думаю да. В детстве просто пристыжают, а в старшем возрасте начинает включаться реклама. С другой стороны, это дает некоторый импульс к развитию. И вот очень непросто понять, как с одной стороны не зависеть от такого давления, а с другой оставаться самим собой. И что вообще значит «оставаться собой»?
engine9
22.08.2022 15:54Это один из способов принуждения при воспитании детей, пристыживание через сравнение с другими детьми.
Но это примитивный способ и может привести к выработанной потом привычке самобичевания. Он плох тем, что он примитивен и туп и сковывает мышление человека. Не позволяет рассмотреть пробему комплексно или найти объективные плюсы в сложившейся ситуации. А так же он не учитывает генетические и физиологические ограничения человека.
DrinkFromTheCup
22.08.2022 23:08"оставаться" не нужно: это естественное состояние организма.
Нужно заботиться о своём комфорте через устранение причин дискомфорта.
Как я со своей стоматологией. Да, я могу поставить очередную горсть пломб и ещё пару лет чувствовать себя неплохо... пока очередная горсть не высыпется. Но лучше найти доктора с яйцами, который не убоится заменить гнилую плоть на металл. Металл не болит... и пломбы не устраняют причину.
Что доставляет тебе больше всего дискомфорта прямо сейчас? Что в твоей жизни можно улучшить, чтоб снова стало в кайф?
souls_arch
22.08.2022 18:09Когда я пришел на первый проект меня сунули носом в огромный монолит и на дали ни единого комментария о структуре. Так я научился плавать
mma_habr
22.08.2022 18:39+1Интересный текст, уважаемый NikolasSumrak . На мой взгляд - всё у вас хорошо, профессионализм - это в том числе и умение себя продать. Кроме того - вы делали софт которого хватало заказчикам, и это на самом деле главное в реальном программировании, далеко не всем конторам нужны мегаскорости, паттерны и прочие микросервисы. Продавайте себя дороже там где это рациональнее (PHP, 1C , питон, веб всяческий..) , а в свободное время - решайте литкоде и тренируйтесь на интервью в Фаанги. Жизнь конечна, срок жизни вашего кода вряд ли превысит 10 лет, так что отнеситесь к ситуации с юмором, еще лет 20? 30? можно на Фаангах тренироваться и при этом зарабатывать профессиональным формошлепством. Не всем писать ядро Линукса, кто-то должен быть и простым но хорошим таксистом (формошлепом), это называется профессионал.
denis-vc
23.08.2022 08:44Как говорил Прометей в советском мультике "я просто хотел помочь людям".
А вот в Вашей исповеди почему-то нет ничего ни про семью, ни про коллег по работе, ни про клиентов. Мне кажется, что вы зациклены на технических аспектах, но сильно недооцениваете коммуникации.
Вы пилите софт, но не видите за софтом людей, а отсюда не возникает ощущение масштаба и сопричастности к реальным физическим процессам.
А когда люди становятся наблюдаемой величиной, то оказывается, что порой вообще компьютер не нужен, чтобы помочь, не то, что какой-то конкретный алгоритм. Подскажи, подбодри, выслушай. Помоги стол перетащить в другой кабинет. Посуду помой, книжку с ребёнком почитай.
И не подумайте превратно - я тоже неустанно стараюсь прокачивать скилы, пробую себя в разных специальностях и должностях. Это действительно важно... Но не важнее людей, вовлеченных в процессы.
З.Ы. Почему-то ещё одна цитата вспомнилась: "все говорят о сексе, а ищут любовь". ))
kichrot
Нет, это обычная и крайне распространённая история. :)
"Разделяй и властвуй", это вечный принцип, который используют для повышения эффективности эксплуатации трудовых ресурсов. Внуши человеку его исключительность, что он лучше всех может "Citius Altius Fortius" и человек будет во многом пахать за идею, человек станет ручным. Естественно потом, позже приходит отрезвление. А, снизу подпирают новые "исключительности", которым внушили, что они лучше всех могут "Citius Altius Fortius".
Breathe_the_pressure
Так он и сам сидит на эмоциональных качелях, либо я бог разработки, либо гмо ничего не умеющее. Такому морковкой помахай, он уже на турбонаддуве.
Мне кажется, если ставите целью какое-то внешнее признание своей исключительности, то будете всю жизнь ездить на таком эмоциональном ролекостере. Для вас начинает являтся важным внешняя оценка вашей деятельности. Ну и к тому же будете постоянно покупаться на разводки работодателей, а они просекли это уже давно.
Если ставить целью профессионализм например, это более скучно, так как всё время приходится его совершенствовать и это внутренняя оценка ваших знаний. Не получил нужные знания, не занимался увеличением профессионализма, сам виноват. Иди и догоняй.
Вижу это так.
mizugoji
полностью подтверждаю каждый обзац данного комментария, сам прошёл через все пункты. Всё верно.
Hardcoin
А чем это плохо? Я, например, люблю ощущение энтузиазма, когда пытаешься сделать что-то крутое ради самой цели. И если кто-то поможет, помахав морковкой, что такого?
Разумеется, нужно держать в голове простое правило - крутые вещи часто нужны людям настолько сильно, что они готовы за них не только благодарить, но и отдавать свои деньги. Значит твоя - часть этих денег, причём заметная.
Если же ты свою часть не получаешь, это просто кидалово, а не морковка, тут надо заранее быть аккуратным, с кем работать, а с кем нет.
brownfox
Палочка, как всегда, о двух концах, а термодинамика - о двух началах :)
"Повышение профессионализма" за счёт углубления знаний в узкой области, как правило, фатально сказывается на разработчике, когда область становится менее востребована. Начинаются все вот эти "мама, я лузер" и прочие депрессивные мысли.
Широкая же эрудиция (пусть и с меньшей глубиной постижения предмета) позволяет расти не только профессионально, но и карьерно, например, в сторону системного архитектора или человека, определяющего идеологию продукта.
Посему, нужно не столько догонять, сколько смотреть вперёд и в стороны.
axmct
Можете привести примеры?
Сила мага - в башне. Сила башни - в вертикальности которой ты владеешь и постоянно инвестируешь.
Если ты сидишь над кем-то сверху - ты в чужой башне. Силы твои уходят другим.
brownfox
Банковские и биллинговые системы на Коболе. В своё время язык был очень популярен в этой сфере, разработчики хорошо зарабатывали. По мере перехода систем с мейнфреймов на Unix-сервера происходил и переход на другие языки, узкие спецы остались без работы. Я застал этот процесс в конце 90-х в Telecom Italia, будучи ещё совсем юным юниксоидом.
Делиться силами в правильной команде - это нормально. Есть масса вещей, которые нельзя сделать в одиночку. Башня в этом случае общая.
axmct
Кобол специалисты сейчас вполне на коне. Рынок для специалистов есть.
Возможно, в какие-то годы предложение превысило спрос, и, в результате с рынка ушли junior, и даже может и middle. Но те у кого башня была высокой, то есть senior уровень, судя по всему даже не заметили потрясений почвы.
https://www.dice.com/jobs?q=Cobol developer&countryCode=US&radius=30&radiusUnit=mi&page=1&pageSize=20&language=en&eid=S2Q_
Wiki
Testimony before the House of Representatives in 2016 indicated that COBOL is still in use by many federal agencies.[114] Reuters reported in 2017 that 43% of banking systems still used COBOL with over 220 billion lines of COBOL code in use.[115]
By 2019, the number of COBOL programmers was shrinking fast due to retirements, leading to an impending skills gap in business and government organizations which still use mainframe systems for high-volume transaction processing. Efforts to rewrite systems in newer languages have proven expensive and problematic, as has the outsourcing of code maintenance, thus proposals to train more people in COBOL are advocated.[116]
During the COVID-19 pandemic and the ensuing surge of unemployment, several US states reported a shortage of skilled COBOL programmers to support the legacy systems used for unemployment benefit management. Many of these systems had been in the process of conversion to more modern programming languages prior to the pandemic, but the process had to be put on hold.[117] Similarly, the US Internal Revenue Service rushed to patch its COBOL-based Individual Master File in order to disburse the tens of millions of payments mandated by the Coronavirus Aid, Relief, and Economic Security Act.[118]
Башня мага - это источник его силы, его библиотека и его лаборатория с заветными скляночками и ретортами. Вертикальная экспертиза. То, что можно унести с собой и то, что всегда с тобой. Маг там всегда одинок так же, как и в своем CV.
Сообщаться и взаимодействовать это не мешает. Особенно сейчас когда все больше работа удаленная. На которую нанимают по высоте твоей башни.
Euki
Свой профессионализм тоже нужно как-то оценить. И в этом без внешней оценки не обойтись. Чем больше тем лучше. Автору как раз это и помогло понять свой, более менее, объективный уровень.
H737
Есть еще как минимум один "принцип, который используют для повышения эффективности эксплуатации трудовых ресурсов".
А именнно - понижение ценности:
например задают вопросы, на которые кандидат не может ответить, и говорят, типа, не получится претендовать на высокую зарплату.
mizugoji
а как противостоять таким манипуляциям?
H737
Как вариант, сказать что-то типа: "ну значит в моих услугах вы не нуждаетесь".
vkni
Полностью — только переходом к социализму. Как-то частично — уже то, что вы эти манипуляции можете распознать, сильно снижает их эффективность. Даже никому ничего говорить не надо.
Hardcoin
Нет, спасибо. Яркое слово, за которым уже и смысла-то конкретного не стоит. Абстрактная справедливость, мол, при социализме всё будет правильно. В 19 веке такое называли утопией, в 21-м + социализмом.
vkni
Всё стоит, причём очень конкретно и просто:
1. Из-за требования максимизации прибыли при капитализме, нанимателям необходимо минимизировать траты на зарплату. Поскольку уровень зарплаты фиксируется при найме, на собеседовании нужно выторговать, как на базаре, как можно меньше у продавца (работяги). Для этого используются обычные техники (как на базаре: "у вас помидоры мелкие").
2. При социализме прибыль максимизировать не нужно. Более того, обычно системы денег тройные, то есть, зарплата никак не зависит от "прибыли" предприятия. Соответственно, основной фактор, давящий на нанимателя по сбитию цены на "способность к труду", уходит.
Grigorenkovic
Максимизировать прибыль никто ни от кого не требует. Но если показатель прибыли не самый главный, в силу вступают другие, менее эффективные. "На собеседовании нужно выторговать" - везде и всем нужно "выторговать". Взаимообмен - основа человеческих взаимоотношений.
Основной фактор - эффективность предприятия и его существование никуда от нанимателя не уходит. Т.е за счет чего платить зарплаты фиксированные кем-то другим (видимо плановым отделом на гос.уровне), если у предприятия нет столько денег. Нету сбития цены - есть сбитие результатов труда (завышение норм, "герои труда" и т.д.)
MadL0ad
При социализме нет понятия о деньгах как таковых, и прибыли предприятия. Из-за плановой структуры, предприятие не думает о том, как продать подороже, а просто производит (в идеале) столько, сколько надо. В итоге нет денег, а есть эквивалент труда, который можно обменять на товар. Этакий извращенный proof-of-work :)
PereslavlFoto
До косыгинской реформы не было понятия о прибыли предприятия, а после — уже было.
0xd34df00d
Сегодня первую половину дня копал яму у себя во дворе, вторую половину — закапывал. Задолбался очень сильно, уж поверьте. Что я на этот труд могу обменять?
ShNURoK42
Если поставить камеру и создать канал...
whoisking
главное бассейн в яму не забыть
kichrot
Естественно, что Вы написали идеалистическую антимарксистскую чушь, так как именно прибыль является критерием производительности труда:
... Производительность труда, это, в последнем счете, самое важное, самое главное для победы нового общественного строя. ...
В.И. Ленин. "Великий почин", 1919 год
При социализме глупых рабочих стимулировали морковкой "исключительности", что он лучше всех может "Citius Altius Fortius ":
IvanSTV
производительность труда не равна прибыли. Производительность труда оценивается в НАТУРАЛЬНЫХ ЕДИНИЦАХ. Количество натурального продукта за определенное время.
DMGarikk
как оценивали людей которые не производили натуральный продукт?
anatolius
по идее оптимизировать ресурсы и при социализме надо.
vkni
Ресурсы и прибыль — это разные вещи. Они даже в разных единицах измеряются.
Ivan22
прибыль - мера измерения эффективности использования ресурсов при рыночной экономике
vkni
Да.
0xd34df00d
Почему? Повышения, бонусы (это у нас с тобой от наших действий размер бонуса особо не зависел, а в некоторых фирмах он может быть от этак 50 до 200 в год и составлять за половину оплаты), те же акции.
Никогда не понимал, что там требуется максимизировать вместо этого, и по каким таким причинам кто-то что-то будет делать, особенно неприятное/скучное/с ответственностью.
Роботов на все задачи, от операций до чистки канализаций, не предлагать.
vkni
Ну, например, ты, работая в коммунистическом локусе (OSS) максимизируешь свою производительность по мере сил, чтобы не тратить время на чепуху.
Там много чего можно максимизировать/минимизировать, кроме прибыли.
0xd34df00d
Только у меня не очень полезное для общества определение производительности. Я стараюсь максимизировать веселье и положительные эмоции, а не производительность в смысле скорости закрытия багов, добавления фич, и так далее.
На прошлых выходных я написал простенький симулятор инвестиций с Монте-Карло на хаскеле под браузер (ghcjs, это все). Тормозит, зараза, в 60 раз медленнее нативного кода. Поэтому на этих выходных я начал переписывать его на идрисе (тоже под браузер). Но проблема в том, что на идрисе нет адекватного генератора случайных чисел, не лезущего на каждое действие в IO, поэтому я начал писать свой ГПСЧ (вернее, не свой, а pcg family, но смысл понятен). Но проблема в том, что битовые операции, нужные для ГПСЧ, в идрисе описаны как, например,
shiftR : Bits64 -> Fin 64 -> Bits64
, и когда сдвигом выступает результат сдвига другого 64-битного числа, например, на 59 вправо, мне нужно доказать, что результат такого сдвига влезет в Fin 64 (то есть, что он меньше 64). Это очевидный факт, но проблема в том, что операции над битами выражены примопсами и не имеют кода на идрисе, поэтому я ничего напрямую про них доказывать не могу, и в итоге я вместо написания симулятора с Монте-Карло сижу и думаю, как мне битики доказуемо двигать-то.Да и как двигать? Постулировать некоторые базовые свойства примопсов? Или описать свою модель числа с N битами как тупо вектор из нулей и единиц длины N, описать руками все операции с ним и постулировать изоморфизм примопсовым битам и операциям над ними? Или вместо вектора с N ноликами-единичками пойти во все тяжкие и формализовать группу Z, формализовать вообще понятие группы, формализовать понятие фактор-группы и взять Z\N? А что мне это даст, и как потом представлять знаковые числа?
Очень эффективно, не правда ли?
И это я еще не говорю о том, что я действительно не делаю неинтересные или скучные вещи. Есть баги или реквесты, которым бы любой ПМ поставил наивысший приоритет, но которые мне просто неохота делать, потому что они скучные или недрайвовые.
Общество так жить не может.
vkni
"Цыплят по осени считают" — производительность научной деятельности вряд ли серьёзно мерялась. А уж смотреть на полезность для текущего общества — вообще десятое дело.
Ну эти две вещи считаются очень важными. Например, когда детей учат чему-то, им стараются продлить эти эмоции, т.к. иначе ребёнок бросит занятие через 5 минут. А ведь очевидно, что за час можно сделать в 12 раз больше, чем за 5 минут. Ну, если раздолбайски подходить, то раз в 5 больше. :-)
Достаточно — в результате будет генератор. И ещё совершенно непонятно, что же в результате для человечества полезнее: очередной Monte-Carlo или быстрый генератор для Идриса. :-) Понятно будет в лучшем случае года через 2-3.
0xd34df00d
А это не научная деятельность. Аналогичные задачи уже наверняка были решены на каком-нибудь Coq, но мне просто интересно решить их с нуля самому. Да и лучшем случае, если меня это не задолбает, дело кончится библиотечкой на гитхабе, нужной хорошо если полутора энтузиастам. Какой-нибудь научной статьи и контрибьюшена в мировую копилку знаний там точно не будет.
А какое общество у нас есть, кроме текущего? ИМХО обсуждение полезности ни для чего, кроме текущего общества (и его локальной окрестности), не имеет смысла, потому что, ну, других обществ не завезли.
Но в случае обучения эти эмоции — это инструмент. В случае же личного опенсорса это самоцель.
Ну, с одной стороны, один генератор уже есть. Просто у него API нечистый.
С другой стороны, чистый генератор можно было бы получить быстрее, засунув пару
believe_me
в нужные места вместо написания полусотни строк доказательств. Можно даже ограничиться тем, что явместо мыслей о том, как бы это обобщить, сделать меньше
believe_me
, и так далее.Задача, которую я лично себе сформулировал — придумать способ прикидывать, что лучше — сразу купить штуку за N денег, или инвестировать N денег в такой-то индекс и взять кредит под M% годовых на Y лет. Инструментов для адекватного решения этой задачи я не нашёл, поэтому начал её решать для себя лично. И, кстати, тут есть довольно забавные статистические вопросы — я с удивлением для себя обнаружил, что даже ответ на вопрос о том, каким распределением описывается годовое приращение акции/индекса/етц, не является общепринятым в тусовке трейдеров/экономистов, и немало людей вообще берёт логнормальное распределение, потому что складывать после логарифмирования вычислительно устойчивее, чем умножать. Но это так, к слову.
И если бы это было моей рабочей задачей, то мой менеджер мне давно сказал бы «да хреначь на JS/TS, чо ты». Заботливый менеджер, возможно, предложил бы вместо этого какой-нибудь purescript. Но заниматься yak shaving'ом настолько глубоко, чтобы битики ковырять на идрисе — да меня б выгнали давно уже.
olezh
и по каким таким причинам кто-то что-то будет делать, особенно неприятное/скучное/с ответственностью.
такой ответ есть:
https://www.youtube.com/watch?v=j_9Zxu1c70s
tommyangelo27
По ссылке как обычно у марксистов: «Нужны другие люди», в данном случае других людей предлагается воспитать.
Плохая новость в том, что других людей не бывает, именно поэтому их идеи не сработают.
0xd34df00d
И комментарии там классные:
Хорошая аудитория. И дело даже не в лексике, а в мыслях об оплате при обсуждении общества, где не будет самого понятия денег. Диалектика опять попёрла, наверное.
0xd34df00d
Там 15 минут видео. Оно есть в текстовой форме?
UPD а, рядом написали как раз. Ну, ожидаемый ответ.
0xd34df00d
Пока тут пельмени варил, посмотрел на ×2. Моё мнение по этому ответу:
сточнойводы) — это аргумент, но не в ту сторону, в которую думает автор видео. Ну, вообще-то стоматологи тоже так-то деньги получают за свой труд, и вопрос о том, кто будет лечить зубы (или резать людей) при коммунизме — это тоже очень хороший вопрос. Кто будет резать людей и брать на себя ответственность, что отрезал что-то не то и не так — ещё более хороший вопрос. На который я, кстати, намекнул в своём исходном комментарии.Посмотрел половину ролика — дальше не могу. Сажа, скрыл.
Короче, моё мнение по этому ответу — автор либо осознанно врёт, чтобы окучить определённую аудиторию и набрать
классыдонейшны налибо идиот. Те, кто это всё смотрит и у кого не возникает вопросов выше — никого окучить не могут, поэтому там никакого «или»-«или».
nikolas78
holydel
Две недели - и уровень зарплаты расфиксирован.
vya
Если кратко - утопичного в социализме мало. Если на пальцах - социализм это капитализм в котором каждый сотрудник организации является её акционером, а каждый акционер является её сотрудником.
mizugoji
есть что то в этом. Только в этом случае сотрудник будет максимально замотивирован в успехе, развитии и прибыли компании.
BenderH
""...а каждый акционер является её сотрудником. ..." — прям крепостничество какое-то. И никак не уволиться — под страхом потери акций?
Hardcoin
Самое главное, что никак не уволить. Ладно бы посредственный акционер жил на дивиденды. Но он же ещё и сотрудник, который на своей позиции плохо работает, а социалисты будут убеждать, что мы его плохо мотивируем и заменить его нормальным сотрудником нельзя.
Hardcoin
Я имел ввиду утопию в смысле, близком к изначальному значению - место, которого нет, состоящее из людей, которых не существует.
Обычные люди, даже самые хорошие, интересы своего ребенка, например, ставят немного выше интересов других детей. Более того, это культурно поощряется, это нормально. Капитализм от этого становится менее эффективным, а социализм ломается через пару поколений.
Ваше на пальцах - из корпорации нужно уволить неэффективных сотрудников - инвалидов и глубоких пенсионеров. Можно? Если нельзя, наша корпорация проиграет конкурентную борьбу с другими корпорациями. Именно это, собственно, и произошло. Хотите повторить, как говорится?
BenderH
Вообще-то — это кодекс жизни пиратов. Каждый «сотрудник» — бессменный «акционер»????. И выход из «предприятия» — только через рею...
Keeper13
Через рей.
GospodinKolhoznik
Ну это вообще легко. Устраиваетесь в Роснефть, например, щас по 350 рублей торгуется. Денег хватит даже у уборщицы.
nmrulin
Ну не совсем так. Т.к. сотрудник является акционеров всей "корпорации", которая владеет всеми фабриками и заводами. Поэтому ответ тем кто ниже писал, можно нерадивого сотрудника уволить с конкретного завода . Но при реальном социализме с этим действительно были проблемы.
IvanSTV
Проблемы возникали только на тех заводах, где, как бы это ни выглядело сейчас странно, НЕ БЫЛА НАЛАЖЕНА ПАРТИЙНО-ИДЕОЛОГИЧЕСКАЯ РАБОТА. Налажена не формально, а по существу. Мне доводилось общаться с бывшими заврдскими парторгами, так вот те, у кого партийная организация что-то на заводе значила и РЕАЛЬНО РАБОТАЛА. а не собрания собирала (то есть, члены партии имели поручения, вели разъяснительную работу, проводились неформальные беседы и политинформации, где парторганизация не приписки прикрывала, а реально боролась за выполнение плана), говорили. что не было проблемы уволить лодыря. Быстро оформлялись бумаги со стороны администрации (акты, приказы), визировались в парткоме, профком не вякал в таких случаях, потому что там все понимали, что раздолбаев на заводе не требуется. И летел голубь со статьей с завода в бичи на овощной склад грузчиком. Иногда просто выдавливали даже без этого. Типа, хочешь вылететь с характеристикой соответствующей или сам пойдешь? Обычно уходили сами. Сильный партком на предприятии - и проблем нет.
А там, где партийцы мочалку жевали, там да, лодыри резвились - то партком пожалеет, то профком, то собрание цеха не хочет прецедент создавать, то директор инспекцию по труду опасается.
DMGarikk
ага, конечно. а потом попробуй уволить сотрудника в связи с оптимизацией производства, они же будут блокировать, как акционеры, любые попытки чтото поменять
например производство по сборке коробок, 50 человек сидят их клеят, вместо них надо поставить робота которого обслуживает 2 человека, а производительность в 50 раз выше тех 50.
но проблема, эти 50 человек — акционеры и голосуют против. — и что делать?
IvanSTV
оптимизация производств в условиях нетоварной экономики означает не выбросить кадры на улицу, а просто перевести на другое производство.
Это каждый хозяйчик не думает, что там за пределами его предприятия, люди для него внешний ресурс. А когда вся страна - одно предприятие, люди уже ресурс внутренний, и просто выбрасывать их невыгодно в целом.
DMGarikk
с переобучением?
вот вы работете вязальщиком проводов в Подмосковье, акционер
А вас переводят на Сахалин вахтером. отличный вариант чо
Или вы скаеже что при социализме на всей территории страны одинаковый уровень жизни?
zum
Да откуда вы всё лезете?
kotete7858
Это называется "прожать по зарплате". Обычно пытаются прожимать на каких-то "академических" вещах, слабо применяющихся в реальной разработке. Поэтому, когда проходишь собес, например, на джависта на банковский/финтех проект, а тебя спрашивают: "расскажите нам что такое и зачем применяется transient, пожалуйста" И, когда ты начинаешь плавать(что-то такое на лекции Борисова ты слышал, но не помнишь уже), то тебе: "ммм очень жаль, но на миддл уровень вы не тянете, максимум - сильный джун, мы вам можем предложить -50к от ваших запросов по зп". Можно ответить так: "это всё, конечно, очень интересно и хорошо, что вы знаете или заранее глянули что такое transient, но вы не могли бы мне рассказать где и как я его буду применять на реальном проекте куда вы меня собеседуете? Не вижу причины основывать мнение о моём низком уровне, как разработчика, на не знании каких-то вещей, которые практически не применяются в той сфере, где мы работаем. На крайняк я знаю, что у Борисова есть толковая лекция по этой механике и она у меня в закладках."
Правда такие сентенции могут зайти только если у вас реально уровень миддл+ и есть хотя бы пару лет энтерпрайз разработки за плечами. Ну и ещё в большинстве случаев это дико бесит интервьюверов))
V-core
deglape
Нужно иметь собственную ценность и не бояться отказов. Данного рода манипуляции оперируют к установкам "я непрофессионал и скоро все это поймут", проще говоря к синдрому самозванца. Нужно знать себе цену, понимать, что отказ не делает вас плохим профессионалом и подальше бежать от таких работодателей)
Еще как вариант, если вы почувствовали, что вами манипулируют так и сказать "у меня ощущения, что вы сейчас пытаетесь (понизить мою стоимость)" и выстроить границы "я рассматриваю только данную позицию, если у вас есть сомнения в моей кандидатуре, то давайте закончим собеседование". В данном случае HR, как минимум, офигеет вашей психологической проработанности, как максимум может перестать демпинговать.
H737
Ну и разновидность этого принципа - фраза, рассказанная сисадмином:
"Ну какой же ты программист, если в кондиционерах не разбираешься".
nulovkin
А какой смысл говорить человеку, что он исключителен, и при этом платить? Если бы было наоборот, я бы ещё понял, но это просто бессмыслица.
NikkiG
Поэтому нормальные люди учатся программировать на с++, а не на пхп.
Потом проблемы других языков достаточно спокойно понимаются после небольшого чтения матчасти