Так как базы у меня не было, не было и единой картины мира. Соответственно многие знания не получалось связывать вместе. Отсутствие связей очень усложняет запоминание и понимание. Так-же усложняется понимание куда двигаться дальше.
Всегда хотел изучить си. На нём написано очень-очень-очень много всего, мне казалось не спроста. Я считаю знание си даёт реальное представление о том как работает компьютер на низком уровне. Так-же даёт представление об алгоритмах, структурах данных. В общем знание си — это и есть база.
Я много лет пытался овладеть сями. Много лет, мне это не удавалось. В общем чудо произошло наступило понимание как это работает. Здесь я хочу дать ссылки на литературу и указать с чего начать.
Первое с чего следует начать это с поиска практической задачи.
Следующее. Поставить себе цель должна быть полностью понимать исходный код. Для этого нужно этот исходный код где-то взять. Пару лет назад я перешёл на линукс, здесь с этим проблем нет. Можно посмотреть исходные коды проектов nginx, pgbouncer, whois, так-же взять что-нибудь с GNU. Получить исходный код при помощи apt-get, можно командой
cd ~/src
apt-get source package_name
Понимание что изучение языка программирования сводится к освоению его синтаксиса, конструкций, а так-же стиля как принято на нём писать. Первое и второе это:
- Типы данных и их об явление
- Выражения и присваивания
- Операторы
- Функции
- Работа с файлами
- Если язык объектно ориентированный то ещё классы
Понимание как нужно писать приходит с опытом. Нужно использовать чужой код и смотреть как он исполнен.
В общем главное — не бояться! © :)
Так-же необходима среда для экспериментов. Чем быстрее и проще появляется возможно ставить эксперименты, тем проще освоить тему.
Книги
- Отличное скучное начало. Громов Ю.Ю.,Татаренко С.И. Программирование на языке СИ: Учебное пособие
- Отличное весёлое начало Крупник Александр. Изучаем Си. Поискать.
Инструменты
- Eclipse CTD
- Geany
- Code::Block
Geany — мой выбор. Спасибо статье Алексея Снастина «Обучение программированию в Linux на примере интегрированной среды разработки Geany: Часть 1.Основы работы в Geany – создание простого приложения». Почитать.
Первая компиляция
Так-же скажу ещё что такой код сохранённый в файл test.c
#include <stdio.h>
int main (void)
{
printf("Hello, world!\n");
return 0;
}
Компилируется такой командой
gcc -Wall -o "test" "test.c"
Будет создан исполняемый файл с именем test.