00RiNtiK00, С чего угодно. Начинайте с сути задачи, а рюшечки потом можно будет прикрутить.
У меня часто бывает, что задача сразу хорошо раскладывается на мелкие подзадачи. Начинаю делать с какой-то самой мелкой, которая ни от чего в текущем проекте больше не зависит. Потом делаю для нее тест. Если все норм, беру следующую часть и т.д.
Но так же бывает, что задача прям сейчас не декомпозируется нормально, не хватает каких-то не продуманных частей. А сейчас их продумать не получается, т.к. например еще до конца не ясно как будет реализован какой-то другой компонент и какие у него будут требования. В этом случае начинаю писать с того компонента, который уже более-менее продуман и ясен в реализации. Обычно, когда набор таких компонентов реализуются уже становится ясно что делать с отложенными компонентами.
Иногда надо реализовать какую-то мат.модель. Тогда достаю учебники и погружаюсь до просветления. Бывало месяц уходил на освоение теории и написания проверочных тестов и только потом брался за сам проект. Но это редко, обычно у меня в таких случаях есть у кого по быстрому уточнить не ясные моменты.
Если вы не знаете с чего начать - вы еще не достаточно продумали ваш проект. Подумайте над ним еще, нарисуйте на бумаге основные компоненты проекта, продумайте как компоненты будут взаимодействовать между собой, все это отобразите на схеме. Продумайте с помощью каких средств вы будете реализовывать каждую часть. Если какой-то компонент на этом этапе не понятен, стоит на нем особо остановится и продумать его особо тщательно. Потом берете наиболее понятный компонент и реализуете его и т.д.
Хотел сначала написать, что нужно запустить какой-нибудь текстовый редактор, чтобы написать в него код, но потом вспомнил, что можно создать файл исходник и вовсе не имея текстового редактора.
Потом решил написать, что надо запустить компьютер. Потом вспомнил, что можно писать программы и вовсе без без компьютера.
В общем, надо хоть немного уметь программировать. Всё.
За много лет программирования(правда в основном любительского) я понял, что язык си подходит для написания либо ядер операционных систем, либо библиотек. Лучше переходите на более высокий уровень. Здесь я уже писал ответ на подобный вопрос, правда для другого ЯП.