в IT котируются две вещи: мотивация, мозги и умение считать до трех)
А если серьезно - лучше в IT идти менеджером\QA и т.п., чем программером. Если человек не стал программером к сознательному возрасту, то зачем тратить столько сил, когда можно получить результат (деньги и интересную работу) проще?
Но, все же, если прям в программеры, то вот мой список в порядке убывания приоритета:
1. Определиться, в какой области программить: фронт? бэк? низкоуровневые котроллеры? хайлоад? бигдата? геймдев (фронт? бэк? ии?). Для каждого пункта свой набор требований и дальнейшие пункты
2. Определиться, какое количество ресурсов ты готов на это потратить. Это хобби, потенциально могущее перерасти в работу? Это сфера деятельности? Ты свободен как ветер и можешь позволить себе экспериментировать, или у тебя семеро по лавкам и зарплата тебе нужна вот прям через месяц? Ты можешь убить полгода на то, что не выгорит?
3. Исходя из п.2 трезво оценить п.0: качество своих мозгов и длину шила в попе. Одно, в принципе, компенсируется до некоторой степени другим. Т.е. человек после ядерной физики даже без особой мотивации освоит, условно, питон для бигдаты или С для контроллеров. Человек, который (мое увожение) смог соскочить с иглы или дочитал Улисса, в состоянии освоить рихтера и пойти джуном в c#.
Если же и с тем, и с другим швах, то стоит подумать о своих сильных сторонах. Умеешь рисовать - рисуй персонажей. Умеешь систематизировать - иди в аналитики. Умеешь работать с людьми... ну вы поняли
4. В IT очень быстрый фидбек. Не плитку класть, конечно, но и не работы уровня нобелевки, когда человек полжизни работает на свое имя, а потом имя на него. Тут ты сегодня чего-то стоишь, а завтра пролетаешь, как фанера над Парижем. Ты либо тащишь, либо вседавайпока. Плюсы такой ситуации - шанс есть у каждого. Минусы - расслаблять булки не получится. Люди без поинтов из п.3 тупо не задерживаются в IT, вне зависимости от специализации.
5. В зависимости от выбранного на п.1 направления, прокачивать соответствующие скилы. Например, в моей области (c#, микросервисы, бэк) знание алгоритмов сортировки ну никак не поможет работе. А вот понимание, на каком уровне модели OSI реализуется TLS - очень даже. Умение написать обход дерева пригодится едва ли, а понимание отличия асимметричного шифрования от симметричного - более чем. Даже знание принципов ооп (король умер, да здравствует король) не так уместно, как, например, навык профилирования SQL-запроса. А уж сколько я видел менеджеров, которые перт-диаграмму даже в уме не строят (не надо так).
6. И да, самое главное - это получать удовольствие от того, что делаешь. Иначе тут вообще никак, спечёшься. А для этого нужно понимать, что доставляет тебе удовольствие, понимать себя (тут уместны аналогии с сексом). Меня, например, штырит от состояния потока. Про это сказано много, по делу и не, но вкраце: в потоке качество твоей жизни подпрыгивает. С этим мало что может сравниться. Как сказал один коллега, ты получаешь кайф, а тебе за это еще и деньги платят) А если у тебя уже есть в своей области поток, подумай хорошенько, стоит ли его терять!