{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

Как Лена в 29 лет бросила успешную карьеру в финансах и решила «вкатиться в айти»

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

На этом фото Лена, возможно, делает первый шаг навстречу IT-приключениям

Так, меня, если что, зовут Пашей! На заре своей карьеры я более семи лет проработал аудитором в одной из так называемых компаний «Большой четверки». Как бы вас ни пытались убедить в обратном рекрутеры, большинство работающих там аудиторов мечтают оттуда уволиться и найти себя в чем-нибудь более интересном и доходном. (Я, кстати, был исключением – для моей занудной натуры было как раз норм копаться во всяких эксельках с циферками. Да и героиня этой статьи не сильно страдала.)

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

Я подумал, что в нынешние времена структурных изменений в российской экономике (если вы понимаете, о чем я) этот опыт может оказаться интересным и полезным для многих людей – так что я попросил одну из таких бывших коллег, Лену, написать про свою историю. Не ожидайте тут каких-то диких инсайтов и открытия Америк – нет, это просто рассказ одной конкретной истории карьерного пивота в IT из совсем не связанной сферы.

Лена не захотела самолично выгребать килотонны хейта из комментов (я в вас верю, не подведите!), так что я ее немного анонимизировал (наши общие друзья, конечно, догадаются, о ком речь – но это ок).

Верните мой 2015-й: это я с командой в Сибири, аудирую нефтедобывающее предприятие. На этом фото есть Лена (имя изменено)!

Также я везде вырезал название известной онлайн-школы, в которой героиня статьи постигала азы программистской профессии, потому что они мне не заплатили за рекламу. (Это, конечно, намек для компании: занесите мне чемодан денег – и я с радостью вас прорекламирую!!)

Всё, ниже уже идет текст от Лены. В паре мест я вставил свои комментарии курсивом в квадратных скобках, вот так: [Павел: Какое-то ценное замечание].

Прелюдия

Желание заниматься программированием появилось у меня ещё в младших классах школы: на уроках информатики мы изучали язык программирования для начинающих – Logo Writer (тот, где черепашка бегает по полю и рисует пером), мне тогда весь этот процесс показался жутко интересным.

Logo Writer: конкретно эта черепашка рисует трезубец. Что ты хочешь нам сказать, черепашка?!

Мне было интересно, как работает компьютер изнутри, но не в части «железа», а именно в плане ПО. Помню, что когда у меня только появился личный компьютер, я зашла в каждую папочку на диске, чтобы посмотреть что там лежит – открывала файлы и логи программ.

Позже я самостоятельно стала изучать html и в 10 классе школы преподаватель по информатике предложила мне сделать электронную версию учебника для младших классов по этому языку в виде локальных веб-страничек с уроками и заданиями к ним. Первое время я работала над учебником одна, а потом ко мне присоединилась моя одноклассница. Вместе мы даже участвовали с этим проектом на всероссийской конференции, на которой заняли третье место.

У меня тогда было желание пойти учиться в университет на программиста, но в силу ряда факторов (в том числе – сомнений в себе и своих способностях), выбор в итоге пал на специальность экономиста.

Завязка

В годы учебы в университете и дальнейшего трудоустройства по специальности жажда программирования периодически просыпалась во мне… В один из таких моментов у меня даже появились книги по С и С++, которые я выменяла у кого-то по объявлению, а потом не решалась с ними расстаться – хотя и не занималась по ним. Мне тогда почему-то казалось, что это всё очень сложно: чтобы работать программистом, нужно окончить университет по специальности и обязательно хорошо знать физику (?!).

На тот момент я работала в сфере финансов уже 5 лет – начинала аудитором в «Большой четверке», а потом ушла в индустрию составлять корпоративную отчетность. Характер работы, в целом, мне нравился; мою работу отмечали коллеги и начальство, я достаточно быстро росла в доходах и должностных обязанностях. [Павел: Подтверждаю, Лена была одной из самых толковых сотрудниц, с кем мне довелось поработать в аудите.]

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

Первые зерна сомнения (или надежды?) в отношении программирования посадил во мне один из коллег-стажеров – он как раз заканчивал университет по специальности программиста и стажировался на разработчика известной бухгалтерской системы. С его слов оказалось, что физику знать совсем не обязательно, да и какая-то сложная математика нужна далеко не всем. Этот разговор дал мне пищу для размышлений.

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

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

Тем временем, кстати, аудиторские компании «Большой четверки» с февраля этого года соревнуются в том, кто из них сейчас более деловой и технологичный

Я долго размышляла, но я всё-таки скорее сторонник подхода «сделать и жалеть», чем наоборот – да и обучение само по себе ни к чему не обязывало, так как с работы я решила не увольняться, пока не будет какой-то определенности с новой сферой. А еще я подумала о том, что чем позже начинаешь, тем сложнее будет переквалифицироваться – так что я приняла решение начать обучение iOS-разработке.

Молодой человек меня в этом решении поддержал. Коллегам я, конечно, ничего рассказывать не стала, да и в целом старалась говорить только самому близкому кругу – не хотелось порождать лишние вопросы и какие-то чужие ожидания, ну и было страшно, что ничего не получится. Но в целом, все, кто знал, были приятно удивлены и поддержали меня.

Процесс обучения

Обучение состояло из нескольких курсов, разбитых по четвертям. Почти все курсы шли в формате двух онлайн-лекций в неделю, после каждой из которых необходимо было выполнить практическое домашнее задание в определенный срок, чтобы в дальнейшем (уже после окончания обучения) иметь право на помощь [онлайн-школы] в трудоустройстве.

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

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

Тут Лена как бы пьет кофе, смотрит на дождь, и думает «А надо ли оно мне вообще?»

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

Преподаватели были разные (как и везде, наверное). Кто-то просто «отчитывал» свой курс и с трудом отвечал на вопросы – но нам повезло, и такие преподаватели встречались, в основном, на дополнительных курсах. А курсы, закладывающие основу профессии, у нас вел толковый специалист с релевантным опытом и способностями к преподаванию.

После каждого курса у нас получалось небольшое приложение в портфолио, на котором можно было продемонстрировать знание различных технологий. В конце обучения предполагался большой командный проект. С ним вышло не очень: за полтора года многие люди просто «потерялись», а те, кто остался, по большей части, были не очень заряжены на работу. Я присоединилась к одной из команд, у нас была идея и некоторый план (которого мы придерживались) – но по факту получилось, что свою часть cделала только я, командной работы не вышло.

Тренировка Teamwork Skills: когда все остальные давно забили болт, а ты один продолжаешь пилить код

В целом про обучение: на мой взгляд тот, кто действительно хочет научиться, сможет взять для себя необходимые знания. Информации давалось более, чем достаточно; уделялось внимание самым разным темам и технологиям. Кстати, как я потом узнала, Swift – не самый простой язык для знакомства с разработкой.

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

Трудноустройство

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

Свое резюме я составила по рекомендациям [онлайн-школы] и откликалась на вакансии отовсюду: hh, Хабр.Карьера, вакансии на сайтах самих компаний, и даже в Телеграм-каналах. Помощь в трудоустройстве от [онлайн-школы] заключалась в том, что их hr-специалист посмотрел мое резюме и дал дополнительные несущественные рекомендации, а также раз в неделю присылал мне подборку вакансий и спрашивал, как идут дела. Поскольку вакансии мы, вероятно, искали в одних и тех же местах, то большая часть моих ответов выглядела примерно так: «уже отправила резюме», «тут нужен старший специалист», «уже отправила резюме», «ответили отказом».

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

Поиск работы: «Скажите, мистер Кот, вам случайно не нужен программист?»

В апреле-мае я прошла несколько собеседований, что помогло мне выявить мои слабые стороны, подтянуть знания и лучше узнать язык. Я даже получила первый оффер – но, поскольку он отличался в два раза от моей ожидаемой зарплаты в меньшую сторону, не приняла его.

Дальше начался период отпусков и затишья, были какие-то редкие собеседования и тестовые задания, по некоторым из которых нанимающая сторона даже не утруждалась давать обратную связь после просьбы. Я снова почувствовала себя внутри «дилеммы выпускника»: для устройства на работу нужен опыт работы, чтобы получить опыт – нужно устроиться на работу. Я постоянно мониторила вакансии во всех известных источниках, но новых было мало, надежда на смену сферы деятельности понемногу таяла. Новый всплеск вакансий предполагался осенью, нужно было подождать.

В процессе собеседований я пару раз сталкивалась с предвзятостью в отношении пройденных мной онлайн-курсов: в открытую говорили, что для меня сделали исключение, а обычно выпускников [онлайн-школы] вообще не рассматривают – поскольку, в основном, на собеседования приходят «слишком самоуверенные люди, у которых в голове пусто». Но надо отметить, что личные вопросы про то, замужем ли я и собираюсь ли в декрет, мне не задали ни в одной компании (думаю, многие девушки знакомы с такими вопросами).

Вчерашние выпускники онлайн-курсов пришли на свое первое собеседование. Холст, масло.

В начале осени 2020-го мне неожиданно поступил звонок от рекрутера частного университета: она предложила в ближайший час провести небольшое телефонное собеседование с их главным разработчиком. Мне пришлось общаться и отвечать на вопросы по разработке, стоя на улице, так как я в этот момент была на работе.

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

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

Эпилог

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

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

Когда я только начинала, то недооценила необходимое количество времени и сил – казалось, что будет проще. Потеря в доходах далась тоже непросто: при переходе я потеряла около 30% своей зарплаты – по сути, откатилась на четыре года назад, если считать по меркам моей карьеры в финансах. Но уже спустя полтора года работы на новой специальности я смогла отыграть всё назад и практически достигла того уровня зарплаты, с которого я уходила из финансов.

Если вы думаете о переходе в разработку «с нуля», будьте готовы по-настоящему вкладываться, полностью погружаться и посвящать этому много свободного времени – то есть, в прямом смысле, «пахать». Нужно много практики, ее можно нарабатывать только вложенным временем. Но есть и плюс – дальше будет проще, и усилия окупятся. После изучения одного языка общие концепции усваиваются, и другие языки даются проще.

Мораль: Keep Calm & Learn to Code

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

Также, если есть возможность, как можно быстрее найдите себе ментора. У меня его не было, и сейчас я понимаю, что так было бы проще – если бы кто-то опытный со стороны мог оценить твои навыки, подсказать какие темы нужно подтянуть, подготовить к собеседованиям.

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

[Павел: Спасибо всем, кто дочитал! Если у вас есть своя история перекатывания в IT из какой-то другой области, поделитесь ей в комментариях – уверен, для кого-то это окажется полезным. Лену только не обижайте плз. =)

Если статья показалась вам интересной, то буду благодарен за подписку на мой ТГ-канал RationalAnswer. Вообще, я там обычно пишу про разумные подходы к личным финансам и инвестициям, но про карьеру тоже иногда бывает – как вот сейчас.]

0
563 комментария
Написать комментарий...
xv svs

Программистишкой стать не так просто. Если есть способности к логике и мат анализу - нет проблем. Если их нет, а хочется модную профу и много денежек - то это мучение и разбитые мечты. Не все могут стать программистами, к сожалению. Тем более, погромист - это сидение на жопе по 10 часов в день с глазами в экране и постоянное самообучение программингу - для этого нужен особый мозг. Поэтому и платят хорошо, потому что не каждый сможет программировать и оперировать виртуальными объектами качественно, а один из 10000.

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

Ответить
Развернуть ветку
Game Topia

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

Ответить
Развернуть ветку
Семён Сердюков

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

Ответить
Развернуть ветку
Anton Chernykh

Было бы не так смешно, если бы не было правдой :)

Ответить
Развернуть ветку
Alex Chernyshev

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

Ответить
Развернуть ветку
Anton Chernykh

Я не отрицаю нужность алгоритмов и прочего. Это тоже часть работы. Но и "перекладывание джонов" имеет место быть.

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

Посмеялся просто с формулировки "перекладывать джонов"

Ответить
Развернуть ветку
Всеволод Севостьянов

Любая реализация бизнес логики - алгоритм, а на сеньорских уровнях вам нужно мигрировать и оперировать данными и как раз уже ПОНИМАТЬ как работают инструменты которыми вы пользуетесь. Сорян, на сеньорских позициях чтобы расти дальше без алгоритмов и структур данных вы не поедете никуда

Ответить
Развернуть ветку
СлавалС

Брехня.
До тех пор пока вы не писали алгоритмический софт: какие-нить индексы, деревья, поиски и т.д. можно считать, что алгосы вы не знаете.
Вы просто прочитали книгу.
Я вообще не понимаю дроча на алгоритмы, если нужны: возьми и разберись, а если не нужны, ну прочитай пару книг.

Ответить
Развернуть ветку
eugene gusev

Мда... Интересная точка зрения. Прям даже вспомнился термин из юности - воинствующий ламер.

Алгоритмы и логика - это база. Без них невозможно предложить хорошее (элегантное, понятное и масштабируемое) решение путем унификации и абстрагирования логики и потоков данных.
Не зная методы оценки алгоритмов постоянно будут применять неправильные коллекции. И не правильные инструменты. Синхронизация потоков становится прям испытание. А некоторые задачи становятся просто не решаемыми.
Как-то сталкивался в кодом, который работает, вроде все правильно, но при работе с которым столько времени высасывает, а чувство тошноты не проходит. При этом сонар неистово матерится на безумные Cyclomatic Complexity. Один раз переписал небольшой класс, потому что невозможно было дальше с ним работать - количество строк снизилось раза в 2, а Cyclomatic Complexity раз в 5.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
СлавалС

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

Ответить
Развернуть ветку
Alex Chernyshev

Поделитесь сакральным знанием: это какая именно предметная область не предполагает использования алгоритмов?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
СлавалС

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Херня Всё

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

И софт, писанный разрабом, знающим логику/алгоритмы такое переваривает, может с некоторыми допилами. А софт писанный разрабами без знаний математики - можно выкидывать на помойку, тк оптимизировать невозможно

Ответить
Развернуть ветку
СлавалС

Знание математики это сильно условно. Расскажите какие знания математики вы прям таки применяли в обычном софте, какие проблемы были решены конкретно вами?
90% проблем софта это дизайн, который не соотвествует вариантам использования, оверинженеринг, технический долг, ошметки от предыдущих переделок.
Если бы 80% проблем решались бы алгосами, не было бы такого количества говнософта.
И не факт что человек, который хорошо знает алгоритм может писать понятный и поддерживаемый код.

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

Ответить
Развернуть ветку
Victor Pomortseff

Ну во-первых, вы должны четко понимать когда нужно использовать джейсонов, а когда их использование приводит лишь к пустой трате ресурсов и времени на их перекладывание.
Во-вторых, "алгоритмы" это не сортировка массива. Это в общем случае образ мышления - как данную задачу решить наиболее оптимально.
Ну вот попробую описать ситуацию.
Есть задача поиска совпадений по 4-м параметрам. И есть сделанное когда-то решение - отдельные функции поиска совпадений по каждому из параметров (ну типа микросервисы такие).
Что характерно, каждая из четырех функций вызывает некую базовую процедуру (достаточно "тяжелую"), возвращающую некий набор идентификаторов с которыми потом идет работа.
Что делает джун? Он просто берет и пишет программу, получающую на вход 4 параметра, которая внутри последовательно вызывает все 4 функции - по каждому параметру проверяет отдельно. А в результате имеем 4 вызова "тяжелой" базовой функции и реакцию сопровождения - "да вы там офигели, все это ресурсы жрет как не в себя и тормозит".
Думающий же разработчик напишет все с нуля - один вызов "тяжелой" базовой процедуры, затем использование ее результатов для поиска совпадений по каждому параметру. А еще вникнет в то, в каком окружении все это будет работать, поймет что возможны последовательные вызовы при которых изменяется только один-два параметра (от предыдущего) и закеширует результат последнего вызова - если какой-то из параметров не изменился, то будет использовать результаты прошлого вызова.
В итоге получит примерно в 10 раз быстрее и во столько же экономичнее по ресурсам от решения джуна.
Но тут уже какая-никакая алгоритмизация потребуется.

Ответить
Развернуть ветку
Alex Chernyshev

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

'Все равно же используются методы, которые реализованы уже для более простого использования'
Потому что эти 'методы' далеко не кнопка 'сделать зашибись' , нужно четко представлять где и что применять.
А без О-нотации это нереально.

Ответить
Развернуть ветку
karabas

Вы явно не занимались коммерческой разработкой фронта, 99% фронт разработчиков не расскажут вам как работает алгоритм поиска оптимального активного блока, с учетом расположения элементов, слоев и тд, потому как это не нужно.
Кнопки красить и просто накидывать компоненты однотипные реальность для абсолютного числа разработчиков.

Ответить
Развернуть ветку
Alex Chernyshev

Я много чем занимался, а вы слишком сильно обобщаете.

Компоненты накидывать? Это закончится где-то на попытке сделать бесконечную ленту или сделать аналог Яндекс.Карт - тупо panning & zoom очень большой картинки с загрузкой по частям.
Вообщем не надо говорить за всех и так поверхностно относиться к веб-разработке, там все совсем не так просто как кажется.

Ответить
Развернуть ветку
karabas

Задачи которые вы описываете выполняют 5% разрабов остальные шлепают формы. По поводу бесконечно ленты не понял в чем сложность, сам делал ее не раз.

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

А как джун, скорее всего, вы будете выполнять оочень простые задачи бесконенчо далекие от алгоритмов, аля почему TS не принимает тут аргумент

Ответить
Развернуть ветку
Anton Chernykh

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

Ответить
Развернуть ветку
Семён Сердюков

Прям повеяло душным собеседованием?)

Ответить
Развернуть ветку
Victor Pomortseff
Задачи которые вы описываете выполняют 5% разрабов остальные шлепают формы

Зависит от того где работать. У нас вот формами занимается те самые процентов 5. Остальное - логика. Которая вообще интерфейса может не иметь.

Ответить
Развернуть ветку
Alex Chernyshev

Команда равняется по самому слабому мемберу, к сожалению. Поэтому найм одного даже 'середнячка' приводит к деградации всех остальных в команде.
А если это core team в большом и сложном продукте?

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

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

И пожалуйста не нужно опять разводить срач про 99% процентов и формошлепство, в отрасли достаточно сложных задач где нужны именно профессионалы.

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

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

Ответить
Развернуть ветку
Grigoriy Malyshev

для этого есть либы

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex Chernyshev

Ни то ни другое, но в Яндекс вас врядли возьмут с таким подходом.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Roman Rodin

Если вы пишите фронт на WebAssembly, т.е. подключаете какой-нибудь С++, то, может быть, это и понадобится. Но в случае с тем же Реактом совсем другие компетенции нужны.

Ответить
Развернуть ветку
Тимур Артем

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

Ответить
Развернуть ветку
Rnatery

Так ФОТ ограничен же.

Ответить
Развернуть ветку
Alex Chernyshev

Те кто вас собеседуют на техническом интервью не имеют отношения к вашей будущей ЗП, если только не лично CTO вас собеседует.
ФОТ определяют тоже не технические специалисты, поэтому посыл про 'занизить зп' не очень понятен.

Насчет самоутверждения.
Само собой что интервью это стресс, так это устроено, вас и ваши навыки проверяют незнакомые люди. По-сути максимум за два часа интервью нужно понять можно с этим человеком работать или нет.

Но вот именно самоутверждаться за вас счет точно мало кому надо, хотя мудаков конечно везде хватает.

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

Ответить
Развернуть ветку
Семён Сердюков

Просто ты хороший программист) который думает о будущем и стелит себе соломку)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Game Topia

Только вчера об этом писал!)

Ответить
Развернуть ветку
Семён Сердюков

Да я думаю всё сталкивались неоднократно на собесе с таким. При чем у меня 100 из 100 выборка - если собеседование назначается с технической части - значит впереди будут алгоритмы и вопросы по внутренней реализации методов, ака "под капотом"

Ответить
Развернуть ветку
Game Topia

Это на какого уровня должность?

Ответить
Развернуть ветку
Семён Сердюков

Джун)

Ответить
Развернуть ветку
Game Topia

Ну да. Когда дорастете до синьора, то собеседования ограничатся одними словами.

Ответить
Развернуть ветку
Семён Сердюков

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

Ответить
Развернуть ветку
Всеволод Севостьянов

Ну щас даже на ЕГЭ в задачах есть простые задачки на bfs/dfs, операции над списками и массивами и тд

Ответить
Развернуть ветку
Game Topia

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

Ответить
Развернуть ветку
RomanistHere

потому что на джунов всем пофиг)

Будут недовольные - завтра придёт ещё 100 тыщ мильёнов

Ответить
Развернуть ветку
Anton Zavarzin

Плюсую. Знаю много примеров, как люди с далеко не математическим мышлением переходили в ойти. Не дата сайнс конечно. Но на фронтенде/бэкенде/автоматическом тестировании вполне комфортно себя чувствуют.

Ответить
Развернуть ветку
Roman Rodin

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

Ответить
Развернуть ветку
High Stakes

Худший разработчик, с которым имел дело - был профильным математиком. Формулы действительно умел, неймспейсить классы было невыполнимо.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Roman Rodin

Предполагаю, что люди просто путают алгоритмы и шаблоны проектирования.

Ответить
Развернуть ветку
Victor Pomortseff

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

Ответить
Развернуть ветку
Савва

Так не все становяться сеньорами.
Да и пастить готовые бибилиотеки - это все делают от джуна до сеньора.
Просто сеньор может выйти на 500К р
А большинство не сможет и будет получать сидя в сибири 150-250К и чуствовать себя милионером

Ответить
Развернуть ветку
RomanistHere

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

Ответить
Развернуть ветку
Game Topia
не все лендосы на реакте бахают,

Вы не разработчик? Иначе бы вы понимали, что в основе написания кода лежат всего несколько простых принципов, логика которых не сложнее логики уровня детского сада. И вот теперь ответьте - если правила такие простые, то откуда же берется сложность?

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

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

Ответить
Развернуть ветку
RomanistHere

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

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

Ответить
Развернуть ветку
Game Topia
в основе написания кода лежат несколько простых принципов - серьёзно?

Ну да. В основе всего лежит архитектура машины, которая накладывает свою специфику в не зависимости от парадигмы (FP, OOP).

Вы когда-нибудь слышали про функциональное программирование? Монады? Каррирование?

А что в этом сложного? Не сложнее разложения пакета продуктов в холодильник.

Написание программы в одну функцию через композишн и пайпы?

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

разобрались в этих ваших полиоморфизмах, и что там ещё есть, и могут успешно применять эти знания в жизни

А что сложно в этом сложного? Что сложного в понимании применения одного типа в месте ожидаемого другого, если первый тип обладает всеми признаками второго? Хотя бы уж про вариантность упомянули. Она из-за вывернутой наизнанку логики кажется сложнее.

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

Ну, это уже прям вообще вы похоже нетрезвы. Ну или жара. У вас жара?

Чувство, что говоришь с теоретиком или джуном.

И самое главное - если чуваки чего-то не понимают, то с такими синьорами они работают. Если ты чего-то не знаешь, значит тебе не смогли это объяснить. А если ты не можешь чего-то объяснить, то значит ты сам этого не знаешь.

Ответить
Развернуть ветку
RomanistHere

Архитектура машины имеет такое же отношение к программированию, как вы к умению аргументировать свою позицию в диалоге.

ФП не сложное - ок, спасибо за мнение - видно, что вы эксперт в данной области. Думаю, что на этом мы с вами закончили. Хорошего дня.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
RomanistHere

Загуглите, от меня вы сможете получить только одностороннее мнение. ФП это программирование по законам математики. Там гораздо меньше багов и абсолютно все крупные программы и системы сейчас сделаны с оглядкой на него. Каждый раз, когда у вас крашится какая-то прога или система - в этом виноват ООП и мутирование переменных.

Более простые альтернативы это что-то на уровне сравнения - зачем нам математика и её законы, чтобы копать огород нужна только лопата и сила. Кому-то достаточно огорода для жизни, а кто-то хочет покорять космос. Вот и всё.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
RomanistHere

Наличие "стейта" программы, который изменяется императивно из разных методов - основа любой ООП программы.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Game Topia
Архитектура машины имеет такое же отношение к программированию, как вы к умению аргументировать свою позицию в диалоге.

Я к тому, что курс эволюции парадигм был задан исключительно архитектурой машины. Может вам и тяжело провести параллель, но для меня она очевидна. Какую бы парадигму вы не взяли, в каждой из них лежат одни и те же концепции. И только, простите меня за мнение, шизофреник заморочится на том, что let = 5 в javascript означает ассоциация со значением, а в F# ассоциация с функцией представляющей цифру пять. Все зависит от вашего мировоззрения. Когда вы будите иметь опыт написания сложных приложений на всех топовых языках реализующих разные парадигмы, то вы начнете видеть суть объединяющую их все.

Ага, давайте. Пойду советовать по видосику делать приложухи на реакте.

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

Ответить
Развернуть ветку
СлавалС

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

Ответить
Развернуть ветку
560 комментариев
Раскрывать всегда