Ответ на пост «Ответ на пост "Прохожу курс по питону. Отчёт за день 50"»
@zuko4f, раз я про тебя вспомнил. Подскажи, с какого направления лучше начать новичку, никогда не изузавшему программирование.
Решил написать отдельным постом, т.к. вдруг ещё кому полезно будет. Я сразу оговорюсь, что не претендую на истину, а всё, что написано ниже - моё субъективное мнение.
Во-первых, надо понять, зачем ты вообще хочешь работать программистом. Предположу, что ради больших денег. Тут сразу есть подвох - на стартовых позициях конкуренция огромная. Студенты и свежие выпускники готовы работать натурально по 60 часов в неделю и при этом работать почти за еду. При этом у них молодой и гибкий ум, свежая голова, не забитая кучей лишней инфы и способная много всего запомнить/усвоить. Если у тебя нет хорошего релевантного опыта и возможности пахать 60-80 часов в неделю - лучше просто забей и даже не начинай.
Если ты хочешь просто попробовать себя в этой роли без сильного погружения - ок, можно. Но на деньги не рассчитывай, зарплата будет на уровне кассира пятёрочки или даже ниже, т.к. конкуренция огромная. С момента, когда я написал свою первую программу и до момента, когда моя зарплата обогнала зарплату кассира прошло 17 лет. Ещё раз - семнадцать лет чтобы обогнать кассира по зарплате. Конечно, бывают и более резвые люди, но за год-два выйти на уровень хорошей зарплаты невозможно. Только если у вас уже есть сильный технический бэкграунд.
Вообще, где будет интересней работать в Яндексе.
Тут небольшое лирическое и, возможно, слегка грубоватое отступление. Я часто собеседую людей в Яндексе, сейчас как раз очередная волна набора стажёров. И требования к кандидатам очень высокие. Не потому что мы тут все охренели, а потому что у меня всего два свободных места и больше сотни соискателей. Тут и победители олимпиад, и люди, уже прошедшие пару стажировок в других местах, а у кого уже несколько лет опыта разработки. Это я к тому, что в начале у вас не будет выбор "где бы мне поработать". Работать придётся там, куда возьмут и если возьмут. Меня взяли в Яндекс с 7 попытки. Перед этим было 6 неудачных попыток в течение 9 лет. Не потому я слабый, а потому что конкуренция настолько велика, что любой мелкий косяк - и всё, кто-то из сотни конкурентов уже обошёл вас.
Но если вам всё ещё интересно и вы планируете серьёзно работать программистом, то мой список скиллов (для бэкендера, не фронта) вот:
Математика. Я из тех, что считает, что без изучения математики никуда. Вам не потребуется знание интегралов и т.п. Но математика учит правильному подходу к валидации своих и чужих знаний. Математика даёт общую базу того, как вообще должны строиться алгоритмы.
Чтение технического английского. Без этого у вас просто нет шансов вырасти. С трудом дорастёте до мидла, и то не факт. Вся информация, которая вам нужна - есть в англоязычном интернете. Но нужно уметь её добывать.
Базовые языки программирования. Тут есть разные школы мысли, лично я люблю С++. Но начинать изучать программирование с С++ это сомнительно, поэтому я бы рекомендовал Python. Курсов тьма, берите любой бесплатный. Мне как платформа нравится coursera. Платный брать не надо, т.к. именно на бесплатных курсах хорошо видна сила вашей мотивации и энтузиазма.
Онлайновые соревнования. Они вам не помогут в работе, но они помогут научиться решать задачи с собеседований. Leetcode, kaggle, Topcoder, etc.
Я намеренно не пишу слишком глубоко, т.к. не вижу смысла. Если есть какие-то вопросы или где-то нужно уточнение - пишите, попробую ответить.