Начать свой путь к карьере программиста стоит с ответа на вопрос, А нужно ли вам вообще программирование?
На мой взгляд, если вы любите проводить много времени за компьютером, математика вам давалась проще чем гуманитарные науки в учебе, если с каждый разом вам интересно изучать что то новое, то программирование для вас как раз подойдет.
А с чего же начинать?
Для начинающих этот вопрос самый главный, потому что существует много направлений, много языков программирования, и не знаешь с чего начать, не знаешь что для тебя подойдет.
Для начинающий лучше всего определиться с направлением и выбрать один язык программирования. И начать его изучение. Логика языков в программирование схожая, изучите один язык, остальные понимать уже будет проще. Отличия в основном только в синтаксисе.
Для начала изучения, можно пойти несколькими путями.
Самообразование - искать материалы в интернете в книгах или в других ресурсах. В интернете очень много ресурсов и сайтов, на которых можно самостоятельно начать изучение материалов по программированию. Хоть даже качественно сделанные материалы существуют, это самый сложный путь для начинающего программиста.
Курсы по выбранной специальности - в каждом городе наверное есть курсы по разным специальностям, на которых преподают люди с опытом работы в этой сфере и делятся своими навыками. Разумеется это будет стоить денег, но результат будет хорошим. Плюс в том, что там не будет лишней информации, а только та, специальность, которую вы выбрали. И еще если, что-то будет не понятно вы можете спросить у преподавателя и он вам объяснит в реальном времени. Так же там будут такие же люди как и вы, которые интересуются точно тем же.Можно найти единомышленников и заниматься с ними. На себе проверенно, что когда один занимаешься быстро сдаешься, появляется желание все бросить и мысли что тебе этого не достичь. А когда есть союзник, то будет и интереснее и проще осваивать материал. Сам ходил на такого рода курсы и считаю что они оправдывают те средства, которые вы на них потратили и навыки обретете больше чем на самообразовании.
Университет - если вы после школы задумываетесь куда поступить и вам нравиться программирование, то можно в принципе поступать в универститет. Если даже не для знаний, то корочка будет ( плюс при устройстве на работу). Я сам после школы поступал на инженера-программиста в Технический Университет польза от этого обучения, конечно же есть, но другие сопутствующие программы образования вас будут сильно отвлекать от программирования и времени на нее останется мало. Я когда учился занимался сам изучал языки самостоятельно. Но фундаментальные знания по своей профессии я все таки обрел в университете.
Какой язык, направление, технологию выбирать?
После того, как вы станете программистом, вы будете вольны выбирать любой язык программирования. Но для первого языка для изучения следует выбрать язык с низким уровнем вхождения. Т.е., язык, который будет легче в освоении. Легкими в освоении я считаю такие языки как PHP, Ruby, Python. Но, чтобы приступить к изучению вам надо знать логику работы языков, именно тот фундамент, на чем основано программирование. Так же следует учитывать спрос на язык, который вы собираетесь изучать. На пример если вы будете изучать какой то старый язык, который в данный момент особо не используется вам будет трудно найти работу с вашими знаниями. Поэтому следует сперва изучить рынок, а именно вакансии и требования, которые нужны для устройства на работу. Можно даже выписать таким образом несколько языков и выбрать уже из этого списка. И не мало важный момент, когда программист пишет код он должен получать от этого удовольствие, а если вы выбрали язык и вам не нравится на нем писать, вы быстро сдадитесь, потому что рано или поздно надоест. А оно вам надо? Делайте правильный выбор!
Еще не мало важный фактор при выборе языка это направление, по которому вы собираетесь работать. Самые популярные и относительно легкие это: WEB - разработка, мобильная разработка, и десктопные клиенты. Под каждое направление есть свои языки программирования, которые подходят под нее, и не особо подходят для других направлений. Чаще всего это один язык, поэтому стоит учитывать и этот фактор при выборе языка. На мой взгляд проще всего начать изучать вэб технологии, HTML и CSS для начала. Самое простое и востребованное из выше перечисленного ( сам тоже с этого начал). После того, как набьете руку на них можно будет изучать уже языки чуть сложнее: Javascript, PHP, Python, Ruby и т.д., и подходящие под эти языки вэб-фреймворки, и далее уже можно будет на базы данных переходить, и системы управления базами данных.
Начальный опыт
Без опыта не получите работу, а без работы не получите опыт. Замкнуты круг реальной жизни. Но не стоит отчаиваться, выйти из этого можно.
В самом начале, когда изучаете языки можно параллельно решать задачи, которые подходят под то, что вы изучаете. Можно решать задачи из книг, в интернете тоже можно найти примеры задач, которые можно решить. Если решение далось легко попробуйте усложнить задачу и заново решить. Можно придумать свою идею и воплотить ее в жизнь и т.д..
Найдите свои первые проекты, по пройденному материалу. Это наверное самый сложный вариант,но рабочий и эффективный. Удачно выполненные работы можно будет записать в свой опыт и заполнить им свое портфолио. Реальные проекты в портфолио огромный плюс при поиске проектов.
Так же как вариант можно найти опытных программистов и договориться с ними чтобы мелкие поручения задавали вам. Это тоже будет эффективно так, как вы при каких нибудь трудностях можете напрямую к него спросить и исходя из его пояснений пополнить свой навык программирования.
Последние шаги
На последнем этапе вам стоит подготовить свое резюме. Не стоит писать лишней информации но и умалчивать о своих умениях, тоже не стоит. Надо быть уверенным в том, что у вас в резюме.Повторяйте технологии и материалы, которые учили и вперед к светлому будущему!
У меня есть свой телеграмм канал, котором я буду выкладывать как я изучал те или иные технологии и с чего я начинал в свое время, какие были допущены ошибки. Если кому будет интересно подписывайтесь и не будете повторять моих ошибок, плюс для себя может узнаете какие то полезные фишки или методы, которыми я пользуюсь. Новичкам думаю будет полезно.
t.me/road_to_developer