Научиться программировать несложно. Надо сначала понять: что такое алгоритм. Потом найти для себя какую-нибудь задачу и подумать, как ее можно решить, то есть найти алгоритм решения задачи. А потом, когда решение будет найдено, нужно будет "объяснить" компьютеру пошагово что надо сделать, чтобы он смог эту задачу и подобные этой задачи решить. Компьютер пока еще не умеет мыслить, как мозг человека, он "мыслит" электрическими сигналами - 12 вольт и 5 вольт. Если над всем этим приподняться, то окажется - 12 вольт - это логическая единица, а 5 вольт - это логический 0. Если еще выше приподняться и посмотреть, то окажется, что нули и единицы можно комбинировать между собой, а значит процессор сможет распознать эти комбинации цифр и единиц как машинные коды. по которым он будет "знать" что ему делать. Но машинные коды примитивны - это команды, которые могут немногое. Поэтому, чтобы написать программу быстро, надо еще выше подняться и окажется, что есть языки программирования, которые относительно просты и наглядны для человека и могут четко объяснить микропроцессору - чего от него хочет человек. Итак, пишем свою первую программу: Надо вывести на экран строку "Привет!". А на каком языке будем ее делать? Давайте на Паскале:
program MyFirstProgram;
begin
writeLn('Привет');
end;
На экране появится строчка "Привет". Но как это получится? Компилятор из наших строчек сгенерирует огромное количество машинных команд и запишет их на диск в специальном формате. Операционная система откроет этот файл, загрузит машинные команды по определенному адресу в памяти и сообщит процессору - по какому адресу лежит первая машинная команда. Когда процессор узнает, где лежит первая команда для него, он ее выполнит и после первой команды он сам сможет найти безошибочно следующую команду и так шаг за шагом он выполнит всю программу. Но процессор не знает, что такое экран - ему это неинтересно. Процессор просто будет выполнять свою программу, в которой будет множество команд в результате чего и появится надпись именно на экране. Но так как программа будет взаимодействовать с операционной системой, а процессор понятия не имеет - где находится экран, то через операционную систему можно попросить программу вывести слово "Привет" куда угодно - на принтер, на удаленный компьютер, на плоттер... Но это уже другой уровень...
Другой пример - а как сложить два числа?
Сначала надо их ввести (с клавиатуры, например). Потом их надо где-то запомнить (в переменных, например). А потом просто значения этих переменных сложить. А то, что получилось - вывести на экран (или в файл, плоттер, принтер...)
program MySecondPrg;
var
a, b, c: integer;
begin
Writeln('Первое число: '); readln(a);
Writeln('Второе число: '); readln(b);
c := a + b;
Write('Результат: ');
Writeln(c);
End;
Сложно? Нет.
А так:
Mov Eax, a
Add Eax, b
Mov c, Eax
То же сложение чисел, только на Ассемблере
или так:
void main()
{
int a, b, c;
cout >> "Первое число: "; cin << a; cout >> endl;
cout >> "Второе число: "; cin << b; cout >> endl;
c = a + b;
cout >> "Результат: " >> c;
}
Сложно? нет.
Поэтому вывод такой: чтобы научиться программировать, надо:
- Научиться разрабатывать алгоритм решения задачи
- Глубоко знать СИНТАКСИС языка программирования
- Знать особенности среды разработки и какие есть библиотеки для выбранного языка программирования и для чего они, собственно, нужны
- Понимать и знать как работает операционная система - хотя бы основное, не вдаваясь в дебри
- Понимать причины возникновения ошибок в программе на этапе компиляции и на этапе выполнения и знать, как их исправить или исключить
- Знать основные подходы к современному программированию и уметь их использовать - например - ООП - объектно-ориентированное программирование - знать, что такое класс,объект, наследование, инкапсуляция, полиморфизм, виртуальная функция, базовый класс, перегрузка, переопределение и как это все реализовано в РАЗНЫХ языках, в частности Java и C++, например
- Знать, как написать надежную программу и какие надо соблюдать правила, чтобы исходник смог легко понять другой разработчик или лично вы, но спустя какое-то время.
- и так далее....
- Много читать и учиться - это придется делать всю жизнь - ничего на месте не стоит в программировании
Вот в целом примерно так и надо осваивать программирование...