Główna rada - pisz więcej kodu. Bo nic Ci po tym, że przeczytasz książkę 200, 300, 1000 stron, jeśli nie będziesz wykonywał praktycznych ćwiczeń. Musisz kodzić.
Przykładowo pętla for. Możesz czytać jej definicje, ale dopóki nie zrobisz kilku(nastu) takich pętel (malejącej/rosnącej, o określonej ilości powtórzeń lub zależnej np. od długości dynamicznej tablicy) to nie będziesz "czuć" tego kodu. Gdy zaczniesz pisać kod, zrobisz kilkanaście pętel, to już będziesz wiedział co robi ta pętla, w jaki sposób ją zbudować, co powoduje inkrementacja/dekrementacja, co się stanie gdy napiszesz continue, a co gdy break.
Zacznij pisać kod, może być nawet z książki, ale najlepiej swój własny - programista musi być kreatywny. Zacznij od prostej aplikacji (choćby jakaś z kursów Pana Mirosława) - modyfikuj te programy, usprawniaj je, dodawaj rzeczy od siebie. Korzystaj z funkcji/instrukcji, których się uczysz - wtedy zdobędziesz doświadczenie jak coś działa i nie będziesz musiał z pamięci klepać definicji, tylko opowiesz tak jak to rozumiesz (przypomnisz sobie jak to działało w jakimś programie, bo sam go pisałeś).