Все эти програмеры, зарабатывающие много денег - это фанаты своего дела
Парень, если тебе хочется идти работать в эту сферу только потому, что "много заработать можно" - то у меня для тебя плохая новость: ты НИКОГДА не будешь много тут зарабатывать.
Все эти програмеры c большими зарплатами - это фанаты своего дела. На работе они не работают. Они отдыхают. Потому, что для них работа == хобби. И мотивация, прежде всего, не в бабле, а в самом процессе работы. Потому, что интересно. Если у тебя предрасположенности к этому нет - врядли научишься чему-нибудь стоящему, даже грезя о такой зарплате.
НО елси все же припекло, и ты твердо уверен, что это - твое, то выкинь этот список в окно. Вот тебе реальные пару шагов:
выполняй по порядку, потому что каждый следущий шаг - строго продолжение предыщущего.
1. Реши что тебе интересно будет делать
* Абстрактная логика, бекэнд, и прочие сугубо логические построения - это Java EE/Java SE/ C++.
* Графика (геймдев, и т.п.): это, в основном, C++/C#. Для android - Java, для iOS - Objective-C.
* сайты в общем webdev: HTML + CSS + JS + jQuery. Так же java, если разработкаидет на GWT. Сюда же Ruby, Python и прочее. Момимо этого, на Python, как правило, пишут что-то вспомогательное.
2. Теперь определись с ЯП
Для этого возьми, скачай/купи %some_name% для чайников - напиши атм и там свой хелловорлд, и реши какой язык тебе по душе. Скажу сразу: жаба проще в освоении, но имеет меньший спектр применения, чем си.
3. Теперь начинай его пользовать
Причем не просто "я освноил как перевернуть массив". Дали задание в университете? Сядь, и напиши программу для его решения (если есть время). Надо периодически перезапускать комп? Напиши программу. Решай большую часть задач. применяя программирование. Разумеется, не в ущерб самим задачам.
4. Теперь усложняй задачи
Научился делать простенькие программы? Супер. Осваивай базы данных - без них - никуда. Сделай свой сервер бекапа телефонный книги, накидай свою программу для сбора информации о прочтенных книгах. Всегда усложняй задания.
5. Если через пару лет тебя не будет воротить от всего этого - тогда есть смысл попробовать себя
6. Если ты доучишься курса до 3-4 на программиста - то будь готов, что к вам прийдут рекрутеры от какой-нить конторы
Предложат бесплатные курсы и т.п. Иди. Вас будут пользовать на реальных проектах для тупой и нудной работы. НО зато этап джуниора ты пройдешь еще будучи студентом, и по выпуску из универа вполне сможешь претендовать на мидла, и з/п около 1500-2000 у.е. (а то и больше).
7. Самое важное: подумай насколько тебе интересно этим заниматься
Потому, что если ты в это ввязался только чтобы "хорошо зарабатывать", то забудь про это - в таком случае тебе не светят "типичные большие зарплаты программистов".
Поверь, тебе такое не нужно! Если ты думаешь только о деньгах - то не стоит! Программист это не только работа но и стиль жизни! Ты написал много книг по языкам программирования, но забыл про паттерны и алгоритмы! И в принципе если понимаешь концепцию пофиг на чем писать!
Выбрось этот список, это всего лишь инструменты. Знание инструментов - хорошо, но далеко не уедешь, они имеют свойство устаревать. Изучай математику (да, ее стоит учить, если быть точнее высшую математику и матрицы там - только самая основа) и прокачивай алгоритмическое знание, оно более важно для программиста. Математика развивает правильное и рационального мышления в этом направлении, ток тсс! А инструменты можно за месяц изучить.
---------------------------------------------------
3000$ это нормальная зп для RnD. Только беда в том, что многие думают, что IT Developer - это чувак, который на радостях херачит хорошо денег. Это много процессов разработки это менеджмент, это работа с QA, это деделайны и фича/код фризы. Это должно быть прекрасное знание английского языка... А в остальном - велкам к нам в IT только потом не ныть)
Основы это - что такое переменная, для начала! Что такое тип данных, как и где хранится! Простейшие алгоритмы, логические операции. Это основа. думаю лучше начать с алгоритмов. выбрать максимум парочку языков для начала (паскаль или делфи как в школах, или руби или питон как современные и легкие для начала обучения). перейти к структурам данных, а потом можно переходить к более высокому уровню: изучить другие языки, попробовать поработать стажером где-нибудь, присмотреться к базам данных и углубиться в изучение в какую-нибудь предметную область (веб, графика, вычисления, ...). Изучив книги ты узнаешь какие то определенные моменты , а чтобы решать какие то определенные задачи нужна практика, а её нужно не то что много а дофига. Парень, дело не в книгах. Даже если ты прочитаешь ВСЮ литературу по какому-то языку - ты НИЧЕГО не освоишь. Освоение даже самых основ - возможно только на практике. И самое главное: пиши весь код сам. НИКОГДА ничего не копипасти, ибо если что-то работает, но непонятно как, то когда это что-то сломается ты его никогда не починишь.
Меня очень мотивировало, когда в период обучения мне ставили задачу, говорили что по хорошему она выполняется, например, за 3 дня. Три дня превращались - в 4-5 суток круглосуточного чтения мануалов, гугления, написания и переписывания кода, наступания на простейшие грабли, нахождения решения простых проблем.. Это я о том, что может быть автор будет задание делать не месяц, а гораздо больше, или меньше, суть в том, чтобы он сам понял, интересно ли это ему.
Ну, если "загорели идеей", то это хорошо. В общем-то годные и успешные програмеры выходят только из людей увлеченных этим делом, Не то что увлеченных, я бы сказал фанатов этого дела.