vitls1

Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Хотел бы поделиться своим опытом обучения программированию. На мой взгляд лучший способ учиться, это определить для себя задачу и упорно ее долбить. Для себя я в свое время писал адресную книгу, с возможностью добавления, удаления, сортировки, поиска, сохранения и загрузки записей. Шаг 1: консоль, все что вводится и выводится, идет через cin, cout, cerr. Все функции расчитаны на переносимость, то есть используется только STL. Все операции только через клавиатуру. Обучаемся базовому вводу-выводу, работе с файлами, базовые структуры (деревья, связанные листы, массивы...), алгоритмы (поиск, сортировка...) и работа со строками. Шаг 2: Программирование под операционную систему. Здесь идет работа по интеграции уже написанной программы с графической оболочкой. Обучаемся системным вызовам, потокам, синхронизации. Основной код с предыдущего шага, меняются ввод-вывод и системно зависимые части. На этом этапе код с предыдущего этапа постоянно полируется и совершенствуется. В частности, я только на этом этапе начал хорошо понимать язык. Шаг 3: Кто до сюда дойдет, тот вообще молодец. Пишем распределенное приложение. Сначала просто обмен данных. Программа с предыдущего шага, загружается на двух компах (или на одном, но под разными портами). Прога с первого компа, по команде, или по таймеру, синхронизирует данные с удаленной прогой. Затем пишем клиент-сервер, на одном компе данные, на другом пользовательский интерфейс. Обучаемся идее клиент-серверных приложений, синхронизации, сетевому программированию. Хочу добавить, что уровень сложности задачи должен зависеть от вашего опыта, но любую, даже самую легкую задачу можно сформулировать так, что вам самим будет интересно. К примеру, можно добавить шифрование данных, пользовательские профили, поддержку нестандартных сетей, все что угодно. Если же вы совсем новичок, то ничто не пробудит у вас больший интерес, чем программа, которую вы написали сами, и которая (как ни странно) РАБОТАЕТ! |