2 года в IT, что происходит с джуном веб-разработчиком +6





Зачастую статьи личного опыта имеют три категории от двух типов людей:


  • история успеха / провала от новичков;
  • крутые статьи про сложные штуки от крутых ребят;
  • истории про разочарование от тех же крутых ребят (но это не точно *).

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


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


Обложка
Правда, по четвёртому сценарию мой опыт пока что в духе "рядом стоял / мимо крокодил".


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


Дисклеймер:


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

1. Технологии — ничто, фундамент — всё


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


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


2. Спрашивай у интервьюверов "что я должен изучить?"


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


3. Карьерного роста не бывает без личностного


В прошлом мне казалось, что достаточно хорошо делать свою работу, вырабатывать стаж и тогда будет заслуженный рост по карьерной лестнице со всеми вытекающими плюшками. Работа в IT же показала, что здесь есть лишь два направления роста — становиться высококлассным специалистом в одной области (например, дизайн, UI / UX, все фронтовые фреймворки + вся фундаментальщина по своей теме и по программированию), или становиться фулл-стек разработчиком для решения широкого класса проблем и сведения разрозненных задач в единый проект. И у людей обоих направлений впереди непаханное поле новых знаний и опыта, которые нужно получать ежедневно, пробовать руками, внедрять и отвергать. На это не хватит и всей жизни. Тех же, кто закрепился в зоне комфорта ждёт в лучшем случае удачное стечение обстоятельств.


4. Чтобы сложное стало простым надо сесть и делать


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


5. Инвестируй в жизнь, здоровье и инструменты


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


коротенькое ответвление про рабочее место

Нам на работе купили классные компьютерные кресла и спустя полгода использования я решил рассказать о нём в формате видео (раз уж полез в создание контента, то надо экспериментировать с форматами), если интересно, заглядывайте: https://www.youtube.com/watch?v=0g9cuMpltyM


Ну и самое главное — не слушай каких-то чуваков из интернета, как нужно жить.


Котик


/????? \

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

Какой у тебя непрерывный рабочий стаж в IT?

  • 15,4%Менее года123
  • 24,9%1-3 года198
  • 14,6%3-5 лет116
  • 45,1%более 5 лет359

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (80):

  1. xState_level80
    /#21323006 / +2

    Четко и по делу. Тоже около 2х лет в вебе.


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

    • Desiderio
      /#21324282

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

      Дело в том, что я сейчас нахожусь в раздумиях — стоит ли мне начать изучать программирование. Пока что смотрю на всё это издалека, так как не имею ни программисткого/математического образования, ни какого-либо представления о программировании (кроме нескольких примитивных попыток в HiAsm и в html — но ведь ни то, ни это, по сути программированием не является). У меня может назреть идея примерно на полгода-год уйти в абсолютно свободный отпуск и заниматься только изучением программирования. Такая идея появилась после того, как где-то прочитал статью о том как какой-то русский чувак полгода «посидел» на javarush.ru по 6 часов в день, и теперь зарабатывает по несколько сотен тысяч рублей в месяц. Хотелось бы попробовать точно так же. Проблемой для себя вижу то, что я по своему характеру вряд ли смогу быть тем идеальным кандидатом в программисты, который постоянно изучает что-то новое и совершенствуется. Мне было бы психологически комфортнее разово получить некий навык (хочу пройти весь курс на этом JavaRush.ru), и потом постоянно зарабатывать применением только этого навыка без какого-то особо активного роста и постоянного нового обучения.

      Вот те ребята из Вашего примера — они точно так же живут и работают, как я планирую? Или они всё таки больше развиваются?

      • Heliki
        /#21324364

        Вам точно не хватит «разово полученного навыка», потому что, ну, язык-то вы выучите один раз, а вот экосистема, новые паттерны, подходы — это все постоянно изменяется. Соответственно, вам придется все время примерять эти новые практики на то, что уже известно, да и вообще быть в курсе этого нового, чтобы не плавать, когда это встретится в коде, написанном коллегами.

        • Desiderio
          /#21324412

          А эти экосистемы, паттерны, подходы — они будут изучаться просто в процессе работы с ними?
          Или это всё потребуется изучать отдельно от работы? (ну, типа, как если кто-то работает и дополнительно проходит курсы повышения квалификации).

          • Heliki
            /#21324464

            Все зависит от компании, в которую вы устраиваетесь. На джуна, скорее всего, вас возьмут с базовыми знаниями, и вы всему научитесь в процессе. Но тут есть нюанс: если брать только рабочее время, то вы узнаете ровно про то, что уже используется в компании. Когда вы будете искать новую работу уровнем повыше, у вас уже кроме базовых знаний языка будут спрашивать что-то о работе конкретных технологий. Если вы ничего сверх работы не читали/учили, то вероятность того, что вас возьмут на совершенно новый стек, довольно мала. То есть, если вы начинали, например, с бэкенда на JEE+Hibernate, то перейти на какой-нибудь vert.x+noSQL будет сложнее.
            Я сейчас говорю конкретно про java, но подозреваю, что для других языков (особенно в вебе и бэкенде) все более-менее так же.

            • Alex023
              /#21327506

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

        • MaM
          /#21333892

          Достаточно прочитать знаменитый список «что нужно знать с++ программисту» или список классики CS и что бы ни случилось в этом мире, пока существуют классические языки программирования, ты будешь вкурсе как разобраться хоть с чем.
          Так что разового получения навыка хватает, вопрос в том, что надо найти побырому лет 7 из загашника.
          Неверите мне, берете и вспоминаете последний изученный вами паттерн/идеому/фреймверк, немного гуглите и оказывается, что все изобретенно давным давно.

        • LborV
          /#21347696

          Даже язык не выучит, по своему опыту работы преподователем заметил такое — чем яростнее и фанатичней человека интересует ИТ, тем больше успехов он делает. А те кто приходили с мыслью получить навык и тупо работать — не заканчивали курс даже

      • Reverlight
        /#21325274

        Как мне кажется в программировании большинство людей в обучении идут от общего к частному. Загуглилы Вы топ языков программирования для новичков к примеру, выбрали для себя python. Пошли в интернет, как выучить пайтон, нашли видео уроки по основам. Через неделю две (как у меня это было) перестанете понимать что вы учите и зачем, и интерес пропадает.
        Представьте, если ваша цель в другом, например вы хотите сделать простого бота для получения цены криптовалюты, начинаете смотреть видосы читать документацию. Возникает вопрос, ага а как зарегать бота, а как получить текст сообщения от пользователя, о как неудобно это делать через getupdates может может есть способ удобнее? Ага оказывается есть вебхук, хм нужен сервер для получения данных от телеграмма, ага это значит ставим фреймвор для пайтона чтобы запустить сервер/сайт потом используем тунель чтобы телеграмм смог его увидеть и отправить. Ага а как обработать, а как спрасить данные о цене.
        Может не самый хороший пример получился, но я думаю идею вы поняли. У вас есть задача и вы пытаетесь загуглить как её решить. И так идёте от одной задачи к другой пока не получится проект (например тот же бот, о котором я писал выше). Это конечно мнение любителя, но я так вижу обучение программированию.

        • Desiderio
          /#21327330

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

      • melodyn
        /#21325306

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

        Не пойму, это нативная интеграция рекламы в комментарий? Я отвечу схожим образом: я позанимался два месяца на hexlet.io и теперь зарабатывают несколько десятков тысяч рублей в месяц. В разработке есть разные люди, можно и будучи формошлёпом получать больше сотки, множество факторов решает. Но мотивация идти в творческую профессию ради денег — это ужасно.

        • Desiderio
          /#21327340

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

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

          • SpiderEkb
            /#21327718

            Не надо ориентироваться на чьи-то частные случаи. Реальность может оказаться куда более унылой.

            Если вы твердо решили идти в программирование, то сразу настройтесь на то, что

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

            если вы к этому готовы, «значит вам туда дорога» (с) — вы готовы заниматься программированием потому что вам это действительно интересно. А, значит, вы будете свой интерес постоянно удовлетворять новыми знаниями и навыками и таким образом расти.

      • aPiks
        /#21325422

        Я сидел в банке 2.5 года и там никто никуда не растёт. Все сидят над одним проектом по 7-8 лет, допиливая новые фичи к нему. Естественно, набор технологий тоже не меняется. Там вполне себе можно после курсов java программиста сидеть на попе ровно и увеличивать процентов на 10-15 каждый год себе зарплату пока не упрешься в какой-то потолок. А потом также плавно перейти в менеджеры и расти дальше по карьере менеджера до пенсии. За пределами работы учить ничего не надо, а если что-то надо будет, то всему научат на курсах внутри компании и пошлют на оплаченные банком курсы.
        И скажу даже больше, можно спокойно освоить достаточный уровень за 3-5 месяцев по 5 часов в неделю…

        • Desiderio
          /#21327348

          Спасибо за конкретные примеры. Значит мои предположения об этой профессии похожи на действительность.

        • SpiderEkb
          /#21327438

          Сильно зависит от. Как всегда, как везде.
          Хотел бы я посмотреть на человека, пытающегося что-то написать под мейнфрейм «после курсов java».
          Все интересное в банке происходит в бекенде. А на фронтах… Там по большому счету что банк что не банк — нужно сделать некий среднеудобный для всех фейс, дергающий предложенный беком набор вебсервисов. Естественно, особого роста в таких условиях трудно ожидать.

      • Krivitskiy_Anton
        /#21327220

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

        • Desiderio
          /#21327356

          Ну пока что мною движет только именно интерес познакомиться с миром разработки, поэтому если ничего не понравится, то потратится только время, так как в сети есть множество мест бесплатного обучения.
          А как Вы думаете, если «тупо пройти JavaRush», то можно будет хотя бы если и не устроиться на фуллтайм джуном, то хотя бы фрилансить на каких-то простых заданиях?

          • SpiderEkb
            /#21327764

            Мир разработки очень многогранен. Одно дело вебразработка. Другое — разработка мобильных приложений. Третье — промавтоматизация (как встроенные системы, так и верхний уровень). Отдельная тема — мейнфреймы (большие коммерческие сервера на разных экзотических платформах типа той же IBM i (или z, хотя она ближе к общераспостраненным системам)
            Или геймдев. Или еще что-то…

            И в каждой сфере своя специфика. Где-то надо знать фреймворки (и уметь ими правильно пользоваться), а где-то надо вникать в тонкости платформенного API и архитектуры. Где-то придется всякими хитростями выживать максимум производительности из железяки и привыкать мыслить милли- и микросекундами и над каждым циклом думать «а нельзя ли его подсократить, а уложусь ли в таймаут, а что можно вынести за пределы отведенного таймаутом времени?»
            А где-то голова болеть будет о том, а насколько вот эта операция нагружает систему? А нет ли тут лишнего переоткрытия файлов? А не закешировать ли прочитанные данные на всякий случай?

            Ну и так далее. И все это «мир разработки».

      • SpiderEkb
        /#21327422

        Не надо идти в программирование за деньгами.

        • glestwid
          /#21328334

          Чегой-то так? Программирование что — корова священная, которую не касаются меркантильными руками?

          • SpiderEkb
            /#21328550

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

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

            • badstarosta
              /#21329578

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

              • SpiderEkb
                /#21329782

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

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

  2. xfides
    /#21323212

    Фундаментальные знания о программировании сложно найти, тяжело понять и невозможно забыть,

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

    — «Нет. Это не принесет здесь и сейчас денег. Это не нужно не рынке.»

    — «Так вы же потом это все еще 10 раз наверстаете. У вас по крайней мере будет точка опоры, от которой вы сможете оттолкнуться при изучении тех же новомодных фич. Вы сможете созидать не бессмыслицу, а обоснованные и грамотные решения!»

    И снова взгляд непонимания… И снова остаюсь в одиночестве, разгрызая очередной гранит спецификации \ паттерна \ алгоритма…

    Ладно, не все так грустно. Некоторых людей уже сумел перетянуть на свою сторону. Теперь 2 пары, нет 3, 4, 5 пар глаз жадно поглощают информацию, осознавая что и зачем они учат. Увидели границы, выработали план, стремимся к мечте… стать настоящими программистами, а не кодерами.

    • vlreshet
      /#21324226

      разгрызая очередной гранит спецификации \ паттерна
      ИМХО, изучать паттерны не имея за плечами опыта разработки реального продукта — нет смысла. Это то же самое что учиться плавать по учебнику сидя на диване.

    • niktarkov
      /#21325394 / +1

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

      • sumanai
        /#21325508

        Попробуйте Битрикс ))

        Для тех счастливых, кто не знает
        Это такая вещь в себе, навыки программирования на котором применимы только для него, и где навыки программирования с использованием фреймворков не применимы. Идиоматично там своя JS библиотека (и патченный Vue, лол), своё понимание MVC, свои стандарты коддинда, даже свой скрипт для подстановки телефонов в стандартной поставке.

      • SpiderEkb
        /#21327826

        А если нет фреймфорков? Ну вот нет и все. Есть платформа, есть язык (один или несколько), есть системные API, работающие с какими-то чудными системными объектами (типа *dtaara, *dtaq, *usrq, *usrspc, *usridx и т.п.) и все это крутится хрен знает где куда у вас доступ через эмулятор терминала:

        image
        image

        И на все это навешано куча «нефункциональных требований». Что можно а что нельзя «иначе отключим газ».
        Нужно решить задачу? А она занимает слишком много времени? Распараллель обработку. Но потоки использовать нельзя т.к. сопровождение их не может контролировать. Т.е. только запуском нескольких задач обработчиков. Но их придется контролировать, придется налаживать между ними межпроцессный обмен. Следить за ними как они работают. прибивать те, что перестали отвечать…

        И все это на голимом системном API без никаких фреймворков.

      • Inpassor
        /#21328010

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

        Лично я вот пишу на компьютере…

    • thomas17anderson
      /#21325396

      Прочитал и почувствовал вдохновение. Огромная благодарность за столь экспериментальный стиль письма. Я проникся идеей «основ» и прошу поделиться литературными источниками/названиями/авторами, которые дадут понимание фундамента!

      • melodyn
        /#21325464

        Спасибо за тёплый отзыв! От себя могу порекомендовать следующие книги:


        1. "Чарльз Петцольд — Код. Тайный язык информатики" — это отличная книга для людей любого уровня, даже не являющихся программистами, но увлечённых технологиями.
        2. "Н. Поликарпова, А. Шалыто — Автоматное программирование" — по теме конечных автоматов, упомянутых в статье. Тоже достаточно легко читается и даёт повод для размышлений, но лучше совмещать изучение автоматов пополам с их реализацией. Поскольку я пишу на JS, то экспериментировал с "javascript-state-machine" и немного познакомился с "xstate"
          По алгоритмам "Грокаем алгоритмы", но её нужен не читать, а прорешивать и пока что я этого не делал, но она стоит в задачах на ближайшее будущее.
          Сам я обучался на ресурсе hexlet.io, где были упражнения в стиле чисел Чёрча и курсы, подготавливающие тебя к этому не столько морально, сколько физически :)

        Если хочется окунуться в сложность и фундаментальность с головой, то "СИКП" (Структура и интерпретация компьютерных программ) — отличный вариант.


        По Linux сложнее. Я едва-едва прочитал "Робачевский — Операционная система Linux", настолько по диагонали, что больше ничего не хочется. Основной опыт пришёл через общение с девопсами (они же сисадмины), Хабр и как-то косвенно. Поэтому тут порекомендовать ничего конкретного не могу, кроме самого факта, что надо немного понимать подкапотную линукса.

    • werevolff
      /#21329906

      1. Фундаментальные вещи имеют свойство устаревать. Всем уже пофиг, что ты знаешь XHTML 1.0. Важно, что ты умеешь верстать на HTML 5. HTTP спецификации тоже изменяются. Я сейчас подчеркнул то, о каких "фундаментальных" знаниях говорил автор статьи. Впрочем, когда-то и оператор goto не считался моветоном. И, да, раньше говорили "моветон", а не "антипаттерн". Таких примеров куча.
      2. Всем насрать какой паттерн ты сейчас изучаешь: выдай результат на фрэймворке! Знаю людей, которые, допустим, изучают Vanilla.js, игнорируют фрэймворки, их современные паттерны и умудряются писать медленный код на ванили. Медленно пишут медленный код. Нафиг оно не нужно! Современные паттерны будут использоваться ещё долго. Тот же подход, предложенный Redux. Не удивлюсь, если это скоро станет стандартом.
      3. Многие интервьюеры щеголяют тем, что опрашивают соискателей на предмет знания фундаментальных основ. Не знаю, где их так "трудно" искал автор, но большинство основ вполне себе находится на таких ресурсах, как Хабр и tprogger.

      • SpiderEkb
        /#21330062

        Я бы не стал относить HTML и подобные вещи к базовым.

        База, на мой взгляд, это Вирт (Алгоритмы и структуры данных), Кнут (Искусство программирования) и подобные основополагающие вещи.

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

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

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

        • werevolff
          /#21330570

          Я бы тоже не стал. Это ТС пишет:


          Понимание алгоритмов, принципов работы HTTP, Linux и прочие вещи, которых избегают новички — это именно то, с чего нужно начинать.

          Из всего, что он описал, к фундаменту относятся только алгоритмы. Спецификацию протокола новичку знать не нужно. Я повидал джунов, которые шарят в теории работы протоколов, а пишут говно. Linux? В зависимости от прикладной области. Знать теорию ОС — обязательно. Уметь настраивать рабочую среду — обязательно. А то будет джун трахаться с задачей по переименованию загруженной в программу картинки и её катологизацией.
          Теория алгоритмов? Только если нет старшего программиста или он не проводит ревью. Основные алгоритмы учатся просто на ревью. За пол года можно вполне освоить ВУЗовский уровень знания алгоритмов. Можно, даже, UML выучить и применять. И всё — за счёт ревью. Но, если джун одинок, е у стоит самостоятельно учить алгоритмы. В перерывах между написанием сериалайзера и вёрсткой формы. Потому, что за знание сортировки пузырьком ему никто не заплатит.


          Вообще, моё мнение таково: теория в программировании нихера не даёт без практики. Большинство студентов вообще не понимают того, что учат. В их голове не уложится ни один алгоритм, пока они не начнут писать код. Код надо писать на фрэймворках. Нужно читать код библиотек и применять паттерны. Даже ООП сразу человеку не даётся. Вот прямо из джунов монстров делают: говорят, что они не развиваются без знания фундаментальных основ. Да ни один современный гуру программирования без практики не осваивал фундамент! Какого автора не возьми: начинал с написания запросов к БД, закончил разработкой системы анализа больших данных. Начинал с написания простых программ, закончил созданием информационной системы. Нет, блин, ни одного гения, который в начале "выучил теорию алгоритмов", а в конце описал модель построения алгоритмов для квантового компьютера. Все теоретики от программирования давно ушли кричать "свободная касса"! Теория хорошо изучается между делом, если ты работаешь в команде. Целенаправлено изучать фундамент стоит тогда, когда ты уже начинающий миддл, знаешь основные шаблоны проектирования на своём фрэймворке и готовишься взять под опеку джуна. Тогда, да, ты открываешь свою кодовую базу, учебник теории алгоритмов, пособие по проектированию БД и начинаешь осозновать эту теорию через призму реального опыта.

          • SpiderEkb
            /#21332176

            Код надо писать на фрэймворках.


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

            И без понимания базовых вещей, таких как списки, очереди, стек. Понимание основ межпоточного/межпроцессного взаимодействия и подобные вещи.

            Даже ООП сразу человеку не даётся


            ООП вещь более архитектурная. Если приподняться над тонкостями реализации, то ООП проявляется прежде всего на этапе проектирования — сначала мы проектируем объекты, олицетворяющие собой физические сущности предметной области, а потом проектируем взаимодействие между этим объектами. А потом уже из этих кирпичиков строим готовый работающий код. Это один из возможных подходов. Есть и другие (машины состояний, батчмашины и т.п.) Но все это тоже из разряда фундаментальных основ — умение перевести задачу в алгоритм. Уровень, правда, уже не джуна (и может быть даже не мидла), а скорее сеньора.

            Вообще, моё мнение таково: теория в программировании нихера не даёт без практики.


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

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

            • werevolff
              /#21332218

              Там, где они есть — да. А где их нет? Ну не ограничивается программирование одним веб фронтом на джаве и ей подобном. Есть очень большой пласт разработки, где нет никаких фреймворков, а есть системные API. Большая часть глубокого (по настоящему глубокого) бекенда пишется именно так.


              Это не задачи для джунов. Джуны выбирают готовое решение и пилят на нём промышленные продукты.

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


              На рынке вполне умещаются и билдеры на CMS, и программисты. Если брать именно зарплатный рост, то у билдеров он, со временем, останавливается. Но это другая категория специалистов. Они хорошо знают свой инструмент. По большей части, рынок требует именно инструменталистов. Зачем писать что-то с нуля, если есть готовые решения? Сектор индивидуальной разработки — это не слишком большая часть рынка, который начинается от сборки сайтов на Web-конструкторе. Говорить, что новичок не добьётся успеха в той же сборке сайтов на Wix — не совсем корректно. Просто, у них будет свой потолок роста и всё. Поэтому, не вижу ничего плохого в том, что на рынке есть специалисты, которые позиционируют себя, как узкие инструменталисты. В любом случае, я не претендую на ту зарплату, которую готов платить их заказчик.

              Откровенно говоря, я тоже ощущаю себя инструменталистом. Есть некоторые решения, с которыми мне комфортно работать. Если рынок предлагает мне переквалифицироваться, то это уже отдельный вопрос. Просто знать свой инструмент в достаточной мере — это тоже важный навык. Без фундаментальных познаний его не освоить, на самом-деле. И всё же, это как качелька: учишь инструмент, значит, меньше времени посвящаешь фундаментальным знаниям и математике. Плохо ли это? Не знаю. Я лично не хочу быть универсальным программистом. Мне это скучно. Да и, говоря откровенно, код программистов, которые в совершенстве владеют именно базовыми знаниями и общими паттернами, для фреймворка может быть очень слабым. Человек просто берёт и херачит универсальный код там, где уже есть готовые утилиты в самом движке, либо, коммон-практис совершенно другая.

              • SpiderEkb
                /#21332332

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

                Мой личный опыт несколько иной. Да, я могу работать с библиотеками и фреймворками (есть опыт в VCL, MFC, QT...) Но оно меня не ограничивает потому что я могу и без них не хуже работать.

                Был случай, когда за помощью обратилась некая команда — они инетмагазин делали и уперлись в то, что не могут сделать модуль общения с сервером ОФД, соответсвущий стандарту (несколько сотен страниц с описанием протоколов обмена, обработкой возможных ошибок, форматами данных и прочим). Соответствие стандарту требуется для успешного прохождения сертификации.

                На стороне ОФД стоит TCP сервер — к нему нужно законнектиться через TCP сокет (никаих там рестов, соапов и прочих хттп нет — устанавливаешь TCP соединение напрямую и далее по протоколу обмен данными). Требования стандарта — обмен должен идти в отдельном потоке.

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

                Далее. Когда менял работу позвали поговорить в банк. Шел без особых надежд — основное время работал под виндой, предметка — смежная с промавтоматизацией область — работа с удаленными контроллерами. А там финтех, AS/400 и свой пропертиарный язык (RPG как основной).

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

                Да, первые два месяца было очень тяжело. Но выжил. А потом обнаружил что многие вещи, которые освоил на прошлой работе, применимы и тут. Например, межпроцессоный обмен данными. На прошлой работе была распределенная система с микроядерной архитектурой, здесь распарралелнивание обработки больших объемов данных. Там был датаграммный обмен через сокеты (между узлами системы) и майлслоты (внутри узла при многопоточной обработке), здась — датаграммный обмен между задачами (job) в рамках одного мейнфрейма. Там был обкатан принцип потсроения обработчика датаграмм на таблице коллбеков, и здесь он работает не менее успешно.

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

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

                • werevolff
                  /#21333648

                  Я бы сказал, что есть люди разного склада ума. Я буду либерастом, но я считаю, что даже знатоки одного фрэймворка имеют право работать так, как им удобно. Web отличается от разработки десктопных решений, либо от разработки мобильных решений. Здесь можно клепать сайты на вордпрессе и много лет рубить на этом бабло. А можно пилить целые информационные системы с интеграцией в управление складом или с микроконтроллерами, собирающими метрики. Что там в этой системе будет — никто заранее не знает. Специальная БД для анализа big data или микросервисы с нагрузкой в миллион обращений в минуту? Парсинг ста ресурсов одновременно или искусственный интеллект, принимающий решение на основе нейронной системы? Может быть, плеер, проигрывающий треки, защищённые самописной DRM? Или обмен сообщений со сложным шифрованием? В любом случае, это не большая доля рынка, на котором процентов 80 — 90 всех проектов — сайты, интернет-магазины, одностраничники и паблики в соцсетях. Разработчикам, покрывающим этот рынок, нафиг не нужно интегрироваться со сторонними сервисами или пилить часть обработки входящих данных в мультипоточном режиме. Они в любой момент могут взять заказ на вёрстку одностраничника очередной пиццерии.

                  • SpiderEkb
                    /#21333816

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

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

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

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

                    • werevolff
                      /#21334684

                      В web не встречал чистой специальности архитектора. Именно в стэке python/ruby/js. Есть тим-лид и овнер. Соответственно, овнер — архитектор системы, тим-лид — архитектор команды. При этом, овнером нельзя устроиться — это административный этап роста, когда программный бегемот, которого ты высрал, начинает какать большими деньхами.
                      Второй момент: у многих заказчиков джун должен самостоятельно принимать архитектурные решения. Только они мельче, чем в случае с миддлом и сеньором. Это обусловлено спецификой разработки: здесь жёсткие паттерны и стандартные third-party пакеты. То есть, джун может свободно поставить, скажем, axios на js или DRF на Django. Стандарт же. Знаю проекты, где джуны сами выбирали стиль организации кода, архитектуру моделей. Просто потому, что их задача — запилить модуль. Полноценный, автономный, рабочий кусок кода. И сеньор лишь требовал тесты. Всё зависит от бизнеса: можно пилить модульную архитектуру и мириться с говномодулями только потому, что они приносят доход, превышающий стоимость их разработки всреднем качестве. Можно пилить монолит с жёстким стилем и правилами только потому, что важен сам продукт, а не его части. Это web, уважаемый. Ты даже не представляешь сколько у нас есть подходов, паттернов, технологий. Для нас нормально запилить систему анализа данных с несколькими десятками тысяч тестов, собранную лучшими инженерами баз данных и обработки данных… и заказать для неё промо-сайт на вордпрессе с говёным модулем, использующим 0.5% API, но покрывающим 20% рынка конкурентов. А пилить систему будет наш мидл (сам модуль) и сторонний сайтоклёп за 5000 рублей

                      • SpiderEkb
                        /#21343120

                        Мы с вами живем в разных мирах. Я никогда не сталкивался с веб разработкой, вы, судя по всему, не сталкивались с глубоким беком на уровне ОС. Разные миры, разный спектр проблем.

                        В моем мире джун — это исполнитель. Кодер, которому даются типовые задачи и код которого обязательно ревьюится. Никакой самостоятеьности у джуна нет. Джун — это «дух бесплотный». Делает то, что скажет тимлид на основе утвержденного тимлидом FSD.

                        Мидл — уже самостоятельная боевая единица. Он не требует в общем случае кодревью со стороны тимлида. Более того, он уже сам может ревьюить код джунов. Он сам способен дать оценку затрат на разработку по данному FSD. И мидлу уже предоставляется некоторая свобода в принятии решений по реализации задачи.

                        Сеньор же еще более самостоятелен. Он принимает участие в осуждении заявок на разработку со стороны бизнеса. При написании FSD с ним советуются аналитики как лучше прописать тот или иной алгоритм. Он может вернуть аналитику FSD со словами «тут мы будем делать не так потому что...» В некоторых ситуациях он знает больше чем аналитики по тонкостям работы того или иного модуля.

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

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

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

                        Я в целом, чисто теоретически могу себе представить зоопарк паттернов и фреймворков на веб фронтах и связанных с этим проблемах, но и вы попробуйте себе представить проблемы бека на уровне ОС — насколько глубоко нужно ориентироваться в том, как оно все работает внутри для написания эффективных приложений. А вопросы эффективности стоят у нас очень остро т.к. при всей мощи мейнфрейма (сейчас это кластер из трех серверов, объединенных высокопроизводительной шиной данных, каждый сервер 16 12-ядерных SMT8 процессоров — в сумме 192 ядра, 1536 параллельных потоков исполнения на сервер) пиковая загрузка достигает 95%
                        Все это хозяйство обеспечивает порядка 3млрд изменений БД в сутки. И последний серьезный инцидент был когда сопровождению пришлось отключить один из модулей потому что там неправильно использовался varchar. В условиях пиковой нагрузки это вызвало резкое снижение производительности модуля в 100 раз. Отключение модуля привело к невозможности проведения операции с пластиковыми картами на несколько часов в масштабе страны.
                        Это как бы масштаб проблем, которые мы (разработчики бека) должны постоянно держать в голове.
                        Ну и другие вещи — некорректная работа модуля, скажем, комплаенса, может привести к прохождению платежа, который может расцениваться как «финансирование терроризма». А за это сразу штраф с очень многими нулями (и это в лучшем случае, могут и лицензии лишить). Это тоже наша головная боль и уровень ответственности.

        • glestwid
          /#21330804

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


          я вот слышу такую фразу уже лет 20, сколько я в индустриии и около. Что-то не видно стремительного падения. Может, не там смотрю?

          • SpiderEkb
            /#21332186

            стремительного не будет. а расслоение на «кодеров» и «архитекторов» уже есть. И далеко не всякий кодер становится архитектором. Большинство так кодерами и остаются.
            Даже само деление на джунов-мидлов-сеньоров есть проявление этого процесса.

    • Kazikus
      /#21330066

      База бесуловно важна. Но новичок может быстро интерес потерять. Без какого либо опыта ему тяжело понять, для чего все эти линуксы, знание протокола http, алгоритмы и прочее. Он видит примеры из документации vue и видит результат сразу. Просто не сможет сопоставить базу с этим. А вот когда шишек набьёт, в своём же коде заблудиться, тогда и придёт за базой, ооп, фп, позже может и алгоритмы. Либо в институте заставят сразу базу учить. Но самому до этого можно только через шишки прийти

  3. Clarity1997
    /#21325308

    А где же тут Symfony? Я, например, сразу начал карьеру в веб-разработке с Симфони и бэкенда. Вёрсткой на профессиональном уровне не занимался.

    • melodyn
      /#21325326

      нужно было совмещать PHP с jQuery на легаси и одновременно актуализировать проект под новый фреймворк

      Фреймворк — symfony, просто не стал уточнять.

  4. Vaultboy84
    /#21325330

    Блаблабла, какой то аутотренинг, честно говоря.

    • melodyn
      /#21325414

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

      • werevolff
        /#21330604

        Ну, вещи говоришь простые и правильные. Просто и правильно — два столпа программирования. Не соглашусь только с глобальной и срочной потребностью в изучении фундаментальных основ, а так, абсолютно согласен. Особенно, с тем, что надо тратиться на себя, на здоровье и удобство. Разумеется, излишний комфорт вреден, но если ты херачишь по 12-16 часов в сутки, он тебе не помешает, как и отдых на следущий день

  5. Soupbreak
    /#21325332

    С одной стороны статья в духе: нормально делай — нормально будет.
    А с другой, за 2 года JS, UI, PHP, фундаменталка, SQL, NoSQL, Docker, документация, архитектура и еще, еще и еще? Извините, но нет, не верю.

    Ну и соотвестенно о чем это все? И зачем?

    • melodyn
      /#21325372

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


      Просто личный опыт, чтобы люди, которые ищут сравнения себя с людьми своего "уровня" могли сделать какие-то абстрактные выводы. Прямой цели я подобным форматом не преследовал :)

  6. Freeman_tip
    /#21325334

    Автор снял с языка. У меня высшее купленное образование программиста. Средне специальное было хорошим в этой же сфере. Сейчас мне 30, 6 месяцев без работы, потратил на обучение, уже 6 месяцев работаю фронтенд разработчиком на vuejs. В итоге год в it, и теперь вернулся к изучение основ, потому что именно это двигает вперёд, а не модные фреймворки.

  7. SnowyBoard
    /#21325336

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

    • melodyn
      /#21325374

      Там должно было быть "или", я поправил :)

  8. guhasan
    /#21325480

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

    • melodyn
      /#21325506

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

  9. AndrewTishkin
    /#21325926

    Автор, сколько Вам?

    • melodyn
      /#21327202

      29 лет, образование инженера-электрика (высшее), в веб я начал как фрилансер и год шёл к тому, чтобы войти в it, и вот в декабре 19го года было два года, как вошёл.

  10. NeverIn
    /#21326534 / +1

    Прикольно, что советы для джунов зашли почитать 50% тех, у кого 5+ лет в IT.
    Когда Вовочке стукнуло 40 он решил отписаться от рассылки "Секреты успешных людей"..

    • werevolff
      /#21330628

      Не обламывай. Мы зашли поностальгировать. Джуны, один фиг, советам не внемлют и будут ещё лет пять работать за еду.

      • NeverIn
        /#21334554

        Люто плюсую, где мои 17 лет…

  11. Tolomuco
    /#21326684

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

    • melodyn
      /#21327210

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

  12. JGlisovic
    /#21327198

    Привет всем! Сразу скажу: статья очень понравилась — ибо злободневно.
    Одно не понимаю, что это самокопание или кризис возраста?
    Может не стоит загонять себя; пытаться объять необъятное?
    «Но мотивация идти в творческую профессию ради денег — это ужасно.» А разве это не связано? И потом, смотря о какой сумме идет речь. Мне например, достаточно 40-50 в месяц, чтобы думать только о работе полностью погрузившись в процесс. Я что много прошу?
    Я с легкостью могу представить себя после 2 лет, может тоже напишу такую статью. :-)
    Но в конце-концов, если я не буду чувствовать отдачи или буду ощущать себя как в этой статье — я просто брошу все и займусь чем-то другим!

    Извиняюсь заранее. Может было слишком дерзко или я чего-то не понял. ;-)
    Спасибо Автору и удачи!

    • melodyn
      /#21327218

      смотря о какой сумме идет речь
      Да, мой комментарий оставлен в контексте комментария другого пользователя, спросившего о нескольких сотнях тысяч рублей в месяц. Я сам в своём заМКАДье сумел поработать и за 15 тысяч в месяц в IT-компании, и мотивация была та же, что и за 50 — делать что-то крутое, интересное, помогающее людям. В основном, я работаю над продуктами в которые верю и про них не стыдно рассказать, даже если не взлетело. Поэтому и утверждаю что идти в разработку только ради денег не стоит.

      • a1ex322
        /#21327650

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

      • NeverIn
        /#21334572

        утверждаю что идти в разработку только ради денег не стоит.
        а куда стоит идти?

    • SpiderEkb
      /#21328118

      «Но мотивация идти в творческую профессию ради денег — это ужасно.» А разве это не связано?


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

      Ну вот за себя скажу — программировать начал году в… 89-м вроде. Потому что было интересно. Никаких онлайн курсов, никакого гугля с интернетом тогда не было. Чудом удавалось найти какие-то книжки, статьи (в т.ч. из достаточно серьезных в те времена журналов типа Computer Science). Но очень многое постигалось методом тыка и многочисленными экспериментами и тестовыми программами.
      В значительной степени помогло крепкое базовое образование — физтех (универсистетский курс математики по 200 часов в течении первых шести семестров + полный курс теорфизики + еще ряд физических и инженерных курсов). Ну и главное чему научили в институте — учиться самому. Искать литературу, вникать…

      Профессионально в разработку ушел в 91-м волею случая. Просто позвали знакомые. Да, в тот момент по деньгам выиграл относительно предыдущего места работы. Зато потом было много чего. В том числе проект, который тянули (по нынешнему «стартап») с нуля небольшой командой с нуля, с разработки архитектуры, с уговаривания заказчика что им это надо (на тот момент рынка в той области не было совсем, потом уже конкуренты появились, но большинство шло по нашим стопам уже). Работали часто без зарплаты (на жизнь приходилось на стороне зарабатывать). Но проект вытянули. Поому что считали его своим делом, которое мы должны сделать, бросать было стыдно.
      Вообще считаю что тот проект сформировал нас во многом как разработчиков.
      Сейчас да, все ровно, спокойно, банк (из топ-10), бэкенд, мейнфрейм от IBM, сложная но интересная платформа, замысловатые порой задачи, жесткие сроки, жесткие требования по качеству, зарплата примерно 2х от средней по городу плюс всякие плюшки. Хороший рейтинг в коллективе.

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

      • Krivitskiy_Anton
        /#21328142

        Какая средняя зп в Екатеринбурге? У нас средняя 25-30, но разработчики такого уровня 4х-6х могут найти спокойно.

        • SpiderEkb
          /#21328368

          Официально где-то 37-38 вроде бы по городу. У меня порядка 2х от средней не считая годового бонуса (15% от годового оклада помноженный на личный коэффициент и коэффициент банка — по банку в прошлые годы было порядка 1.1, личный… ну больше единицы :-) Т.е. где-то еще пара окладов в год.

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

          Кстати, банк это сильно не только счета-проводки, но и много чего всего еще. И очень жесткие требования по нагрузке. Казалось бы — три сервера в кластере, каждый по 16 процессоров, 192 ядра в сумме, каждое ядро в 8 потоков работает, но бывают ситуации когда пиковая нагрузка под 95% достигает. А это значит очередной аудит, выискивание узких мест и раздача разработчикам задач на оптимизацию (это поверх обычной текущей нагрузки, а там то у регулятора новые правила, то новый ФЗ, который надо соблюдать… и поверх периодически случающихся дефектов промсреды).

          В общем, тут скучать не дают и на бэке все достаточно интересно (за подробностями — в гугль на тему AS/400, i5/OS, IBM i)

          • TerraV
            /#21334762

            И как получилось что вы, имея такой опыт, работаете пусть и за хорошую, но еду? Для человека с 30+ лет стажа в IT это странно.

            • SpiderEkb
              /#21343128

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

              В целом я ценю на только деньги, но и уровень комфорта в работе.

          • warhamster
            /#21334822

            Че-то как-то сурово, неужели правда? Грубо говоря, со всеми премиями ну пусть сотня в месяц — и это в банковском бэкенде с ibm и всем вот этим вот? В Новосибе, например, это з/п хоть и вменяемого, но все же мидла, причем вебщика, а не, скажем, джависта или сишника. Как-то не укладывается в голове.

            • SpiderEkb
              /#21343170

              Да, правда. См. выше.

              Уверен, что можно и больше зарабатывать. Просто гнать код под более дорогие проекты. Но будет ли это интереснее с точки зрения приложения ума? будет ли там комфорт с точки зрения взаимоотношений с коллегами?
              Будут ли там дополнительные плюшки в виде ДМС, страхования НС, всяких скидок типа бесплатных страховок в при выезде за рубеж, льготных условий по кредитам и ипотеке?
              Будет там 100% белый гарантированный оклад без премий? Я уже наелся всяких «оптимизаций» когда при нормальной сумме на руки более 50% от нее оказывается разными премиями, которые в любой момент могут отменить.

            • SpiderEkb
              /#21348346

              Еще добавлю. К этому посту и к посту выше.
              Когда менял работу (это было лето 17-го), то уже было готовое предложение на удаленку. Там была некая система архитектурного проектирования для которой нужно было писать плагины (главным образом для осмечивания и выдачи данных в 1С). Инструментарий — Visual Studio + QT. Тестовое задание выполнил без проблем, уже договорились о начале работы, дали доступ в репозиторий. По деньгам там все было вполне.
              И тут приглашение из банка на собеседование (с туда ничего не посылал т.к. в финтехе себя не мыслили совсем — до этого все мои интересы лежали в области промавтоматизации, построении распределенных гетерогенных систем и тому подобное. Ну и немножко ГИС).
              В банк пошел просто поговорить. И… Зацепило. Было очень хорошее собеседование, никаких HR, только свои. Никакого формализма, олимпиадных тестов. Просто рассказал чем занимался, мне рассказали чем занимаются в банке. И я понял что хочу. Вот хочу тут работать. Потому что тут все новое. Совершенно непохожее на то, что делал раньше. Другая платформа, другой инструментарий, другие языки (хотя по ходу работы потом оказалось что опыт и знания С/С++ тут тоже очень кстати и вполне применимы и полезны равно как и многое из того, чем занимался раньше).

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

              С тех пор прошло более 2.5. лет. По деньгам выросло на 25% от первоначального оффера. Чем глубже погружаюсь в AS/400, тем все это интереснее. Типовых задач уже меньше (для этого есть молодежь :-) Больше задач замороченных, требующих нестандартных подходов и решений (типа «у нас тут есть SQL запрос, он работает, но долго — нужно что-то придумать чтобы было быстрее»).

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

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

              Да и пересмотр ФЗП тут каждый год.

              Так что… Писал выше — не надо идти в IT только за деньгами. Работа должна быть интересной и что-то давать еще. Кроме денег. Как кто-то сказал «Если вам нравится ваша работа, вы никогда не будете работать».

              Ну как-то так.

  13. vexgg
    /#21327528

    О, и у нас в офисе такие кресла стоят, очень удобные )

  14. riskov
    /#21329172

    Сначала хотел написать, что третий пункт универсальный, но четвертый и пятый тоже подходят к другим сферам)

  15. Fierce0rion
    /#21333956

    Хорошая статья, но отнюдь НЕпохожа на пацанский цЫтатник

    P.S.
    P.S. а зачем в конце котик