W C++ można napisać wszystko, jego ograniczenia bezpośrednio odwzrowują ograniczenia systemu, na którym są pisane w nim programy. Tak jak wspomniał kolega @Harsay, aby coś osiągnąć w dziedzinie programowania to musisz poświęcić wiele czasu, na pisanie. Wiedza, owszem jest potrzebna, ale liczy się przedewszytkim jej wykorzystanie. Wiedze najlepiej czerpać z książek napisanych przez autorytety w tej dziedzinie. Polecam ksiązki autorstwa Stephana Prata, jego żarty są może suche i uciążlwe, ale sama treść pod względem merytorycznym jest na najwyższym poziomie. Jeśli przerabiasz książkę, to rób wszystkie zadania na końcu każdego rozdziału oraz przepisuj każdy przykład jaki przytacza autor, zrozum go, a następnie na tej bazie napisz coś podobnego samodzielnie. Jeśli masz problem z błędami w kodzie, to najpierw samemu poszukaj jego przyczyny. Znalezienie błędu, przy skomplikowanych projektach, nawet gdy program kompiluje się normalnie, może zająć całe dnie, więc się przygotuj na to, że nie jest łatwo. Poszukuj odpowiedzi na stackoverflow.com, jeśli chcesz jakieś zagadnie ogaranąć w miarę szybko.
Zacznij od prostych programów. Nie warto rzucać się od razu na głębokie morze, bo tylko się zniechęcisz niechybną porażką. Nie zastanwiaj się na użytecznością tych prostych programów, Ty się narazie uczysz. One są użyteczne tylko dla Ciebie, każda napisana aplikacja, nawet nie dokończona to kolejne doświadczenie. Jeśli znajdziesz lepsze rozwiązanie danego problemu, usuń obecny algorytm i zaimplementuj nowszy. Nie ucz się kilku języków naraz. Zaprawde powiadam, uczenie się kilku języków naraz to samobójstwo. Nie będziesz miał czasu, aby wymasterować ten jeden. Lepiej pisać w jednym przeciętnie, niż w dwóch beznadziejnie.
Gdy już będziesz miał te solidne podstawy w C++, wielką frajdą jest przystąpienie do programowania gniazd sieciowych, nie wymagają dużo roboty, ani sporo wiedzy. Już na podstawowym poziomie możesz napisać jakiś serwer połączeniowy z własnym protokołem. Możesz zaimplementować np. czat. Potem ulepszasz takie aplikacje bez końca bo uważasz, że możesz dodać jeszcze A,B,C,D... i następuje takie zjawisko, że sam siebie napędasz i żeby te wszystkie bajery zaimplementować potrzebujesz wiedzy, której już szukasz na własną ręke. I spirala się nakręca :D