Развитие компьютерных технологий, привело к компьютерному буму в ХХI веке. И теперь профессия программиста стала цениться в разы больше чем раньше. В начале развития сферы, компьютерных специалистов называли наборщиками текста или «клацальщиками» из-за шума, который они издавали, набирая машинный код.
Еще со школы Вас в последних классах учат программировать на Pascal (раньше на Basic) и школьники, выучив один из этих языков, считают, что они хорошо знают программирование. Хороший специалист определяется не тем, сколько языков программирования он знает, а тем, как он рекламирует свой продукт и свои идеи. Хороший специалист на форуме программистов всегда на виду: он даст ответы на вопросы из самых различных областей программирования.
Поэтому первое, чему надо научится — завлекать своими идеями других людей. Вспомните историю Билла Гейтcа или Стива Джобса, эти парни не были гениями в компьютерах, а обычными фанатиками, но теперь весь современный мир держится на их разработках. Советую посмотреть фильм «Пираты силиконовой долины» для получения дополнительной информации об этих успешных людях.
Какие языки обязательны к изучению, чтобы стать на путь успешного специалиста?
Конечно — английский и СС++. Многие сейчас подумают, что я сумасшедший. Зачем теперешнему программисту язык Си, когда существуют С#, JAVA, Python и библиотека .NET Framework? Все просто, Вам обязательно нужно приблизиться к языкам низкого уровня и машине, и чем ниже, тем лучше, только тогда можно увидеть всю прелесть разработки ПО.
Для многих, является сложностью выучить английский язык. Это проще чем кажется, я сам много раз пытался выучить слова, но от зубрежки реального толку нету, через месяц уже ничего не помнишь. Самый лучший способ выучить английский — вести диалог с людьми. Но если нет возможности? Не беда, будем говорить с компьютером, с помощью англоязычных фильмов. Заходите в Интернет, находите фильм на оригинальном языке (желательно с субтитрами), и вперед изучать. После 40-50 фильмов Вы уже будите знать все основные фразы, а главное — ничего лишнего.
Когда все подготовки завершены, можно приступать к кропотливому изучению. Начните с самого малого, решайте задачки. Желательно, чтоб это был сайт с возможностью оценки ваших решений (e-olimp, topcoder). Разглядывайте чужие исходные коды, и пытайтесь разобраться что там происходит. Задачки помогут выучить основные алгоритмы. Займитесь серьезным изучением структур данных (Алгоритм + структура = программа). Структуры данных — стек, очередь, дерево и все в этом роде.
Выучив алгоритмы и структуры можно приступать к работе. Напишите пару программ себе, друзьям. И если проблем не будет, можно заняться фрилансом или разработкой свободного ПО.
Последнее что Вам придется выучить, это деловое общение или начальную экономику. Для того, чтобы умело представлять свои разработки. Удачи во всех начинаниях!