Привет, дорогой Хабр. Душа просит выговориться, так что я пришел к тебе – заодно надеюсь поделиться чем-то полезным с молодыми айтишниками. За свою карьеру я прошел через фриланс, стажировки, корпорации, смену профессии и даже запуск собственного SaaS'а (об этом как-нибудь отдельно...). Я наделал кучу ошибок и набил болезненных шишек. Под катом я вспоминаю 5 важных уроков, которые я бы хотел получить 10 лет назад.

1. Консистентность – залог успеха

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

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

2. У вас будет не получаться, вы будете не понимать – и это нормально (и это пройдет со временем, но не совсем)

Со временем станет легче, но это не пройдет. Я прогуливал пары в универе, поэтому у меня остались дыры в фундаментальных знаниях о компьютерной науке, которые я не залатал с опытом. Но это не самое важное. Самое важное, что и в своей работе вы будете иметь пропуски в знаниях. Может быть, не в конкретной работе в конкретной роли на конкретном проекте – это лимитированные знания, проект можно изучить вдоль и поперек, особенно если работать на нем достаточно долго. Но это нормально не знать какие-то вещи о вашей профессии в целом. Не нужно знать все процессорные архитектуры, которые когда-либо существовали; системный архитектор может не знать специфические инструменты тестирования. Тебе не нужно знать вдоль и поперек все сервисы Амазона, чтобы создать прочную тестовую систему. Это нормально.

3. Не держитесь за плохое место

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

4. Часто менять работу может быть полезно, но не всем

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

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

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

Важно вовремя распознать, что именно подходит для тебя лично.

5. Не упускайте возможности, даже если они кажутся мелкими или незначительными

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

То же касается и работы для поддержания себя. Моя первая работа как веб-разработчика принесла мне 5000 рублей. Я сделал два сайта на вордпресе – за три и за две тысячи. Это было неплохо, потому что я учился с нуля. Весь мой рабочий опыт до этого касался в основном работы за барной стойкой. Хоть я и позиционировал себя (в основном у себя в голове) как веб-разработчика, я брался за любую работу – от написания текстов до редактирования изображений. Первые 2-3 года на фрилансе моим крупнейшим единовременным заработком была обработка в фотошопе нескольких тысяч постеров к фильмам. Три дня и три бессонных ночи работы почти без перерыва принесли мне тогда 30 тысяч рублей – фантастический результат по тем меркам.

И еще кое-что: жаргон и абстракции

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

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


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

Комментарии (206)


  1. NikkiG
    09.06.2024 11:12
    +36

    10 лет в коммерческой разработке

    В целом по делу, но немножко добавлю

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

    2. Не всегда в случае если с работой что то не так, надо уходить. Возможно, это как раз зона для роста, стоит задуматься "а что именно мешает мне получать удовольствие от работы здесь? Как я могу это изменить?", и потом уже принимать решение. Главное не тянуть время в надежде что все само куда нибудь переменится.


    1. eaterman99 Автор
      09.06.2024 11:12
      +2

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


    1. 40kTons
      09.06.2024 11:12
      +1

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

      У меня "некоторое время" заняло 2 года. Чем только не занимался - и реверсил, и исследовал, и был коммерческий опыт на нескольких языках. И то я так до конца не определился с направлением, лишь сошёлся к двум вариантам - Golang или ML. Не могу определиться до конца во что из них углубляться, потому что не до конца понимаю что каждое из направлений собой представляет

      ML приколен тем, что углубившись в него расширится класс задач, которые смогу решать - помимо стандартных алгоритмов добавятся всякие статистические модели. Вроде он большой и там есть чем заняться. Но с другой стороны - не люблю Python. Ну, по крайней мере в Jupiter Notebook набросать решение ML задачи - это ок, но писать веб сервисы на Python, которые это модель будут куда-то встраивать - для меня уже не ок. Не воспринимаю его как язык для разработки, лишь как скриптовый язык. Разрабатывают ли ML на чём-то другом?

      Golang просто отдушина после опыта в C#, JS, Python. С одной стороны нравится сама область задач - преимущественно сервисы под Linux, серверы, сетевое программирование. С другой - ударная волна хайпа ИИ поджимает со всех сторон, что и не понятно, насколько классическое программирование будет востребовано лет через 10.


      1. sixxio
        09.06.2024 11:12
        +1

        Непосредственно разрабатывают модели действительно чаще на Python, но используемые инструменты/библиотеки в большинстве своем написаны на C++/Go/Rust, так что я бы рекомендовал глянуть в эту сторону.


        1. seniorjoker
          09.06.2024 11:12
          +7

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


          1. Pubert
            09.06.2024 11:12

            Тут имеется ввиду, что раз они написаны на c++/go/rust, можно использовать их без python)


            1. dimka11
              09.06.2024 11:12
              +3

              Вообще не факт (разве только для инференса моделей использовать) - вся обертка все равно на Python пишется.

              А альтернативы на других языках если и есть то не очень популярны. Из того, что могу вспомнить только Polars на Rust как аналог Pandas.


            1. seniorjoker
              09.06.2024 11:12

              Я когда-то давно пытался использовать Tensorflow на Go. Ничего не вышло, одни ошибки, даже не скомпилировалось ничего, и никакой инфы о том, как фиксить. Кроме того, вероятно, вашим коллегам придётся читать ваш код, а они все знают только Python.

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


    1. Georgii_L
      09.06.2024 11:12

      По первому пункту-как бы да, НО

      Без ментора/преподавателя/ репетитора на новичка в любой крупной области (а ИТ сейчас именно такая) такой поток информации льётся. что в нём легко захлебнуться. Ну или набраться несвязанными кусочками. По хорошему, надо начинать с некого скелета. Схематически что бы картинка была- вот есть разработка (бывает эмберед, десктоп, мобайл, бэкенд, фроэнд...), вот есть эксплуатация ИС (администрирование ОС, СХД, СКС, ТК.. да хоть кластера 1С), и т.д.


    1. Dr_Faksov
      09.06.2024 11:12
      +1


  1. titan_pc
    09.06.2024 11:12
    +86

    Водища. Никому эти советы сейчас не помогут.

    Конкуренция на поиск работы джуном бешеная.

    Нейросети пытаются выбить джунов и занять их место.

    В стране кризис.

    "Ну вы это с родаками поживите там. Попробуйте то да сё или что-то одно. На это уйдут годы...."

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

    В it сейчас в 2024 году чтобы ворваться из ничего. Надо перехерачить на своём пути кучу народу на тоже самое место и ещё доказать что ты не тупее нейросети.

    Хотите реальный совет - не чего Вам с нуля в it делать в 2024. Идите в тикток. Или что там сейчас за чудо сеть в тренде-шменде


    1. crawlingroof
      09.06.2024 11:12
      +7

      Не прибывить не убавить, в ТП и то конкурс, но почему-то берут самых тупых


      1. seniorjoker
        09.06.2024 11:12
        +2

        Что такое ТП?


        1. Areso
          09.06.2024 11:12
          +10

          сдается, что техподдержка.