Есть опыт программирования. Но за всё время так и не научился самостоятельно писать то, что задумал. Например, я хочу написать своей мессенджер, но как они устроены? с чего начать? куда двигаться? Погуглив немного я понял что есть готовые примеры, но тупо переписывать код надоело.
Как написал Igor Vorobiov - изучить сокеты. Как вариант - двигаться в сторону своей реализации протокола XMPP. Для начала можно взять готовый сервер и написать к нему клиент. Потом посмотреть как сделан сервер (Openfire на Java) и написать свой. А можно вообще круто завернуть и написать свой протокол.
Обдумайте сначала что должен уметь делать ваш мессенджер, как должен выглядеть - запишите это. Далее обдумайте логику вашей программы, как она должна работать - запишите это. И начинайте работу.