Cześć. Nie jestem ekspertem, doświadczenia i wiedzy mam mało, lecz niedawno też przechodziłem przez ten etap co Ty. Podjąłem decyzję co dalej, ale chyba przez tydzień przeglądałem internet w poszukiwaniu chociażby podpowiedzi co zrobić. Niestety praca, praca, dom, remont, praca, praca itd. no i stanęło :D Jedno co jest pewne - jeśli nie wiesz co dalej, nie umiesz ruszyć z swoim projektem to na 80% nie umiesz programować obiektowo. Lecz jedynie rozumiesz tego idee i umiesz stworzyć parę klas, ew. interfejsów. Prawdziwe OOP zaczyna się przy dużych projektach gdzie nabiera to sensu i nie wyobrażasz sobie innego rozwiązania.
Pytanie co dalej jest słabo sformowane. Zależy co chcesz robić. Gry - unity. Aplikacje webowe - ASP NET MVC, Aplikacje okienkowe WPF/Windows Forms. Określ co chcesz robić a będzie łatwiej Ci znaleźć drogę do celu.
Ja określiłem kolejne kroki nauki poprzez poszukanie ofert pracy (i tak kolejno: do gier coś w stylu "Programista gier w języku C#", aplikacje webowe "programista asp net mvc" itp. itd). Przejrzałem sporo takich ofert i zobaczyłem jakie technologie są najczęściej wymagane, a przez to prawie "niezbędne" do tego by osiągnąć jakiś przyzwoity poziom i być wstanie napisać w miarę sensowną aplikację.
Jak już dowiesz się czego potrzebujesz by osiągnąć dany cel masz znów parę możliwości, albo możesz uczyć się każdej technologii po kolei a później je ze sobą złączyć co raczej jest demotywujące i nudne, a i efekty takie sobie.
Kolejna metoda to oglądanie jakiś kursów na YT, które wykorzystują te technologie, które wybrałeś. Fajne rozwiązanie, które pozwala Ci stworzyć pierwszą aplikację, co prawda powieloną ale po 3 takich aplikacjach będziesz rozumiał dużo więcej. Dodatkowo będziesz z siebie zadowolony (bo zrobiłeś coś działającego!) równocześnie pogłębiając apetyt na więcej (no bo skoro umiem powtórzyć kogoś aplikację to może czas napisać coś własnego!?).
Kolejny sposób to przeglądanie jakiś projektów opensource, szukasz na githubie lub gdzie indziej jakiś projekt, który uważasz, że chciałbyś umieć zrobić. Przeważnie takie projekty są dobrze opisane więc na pewno będzie wypisane jakich technologi używa. Ściągasz, czytasz dokumentację, analizujesz i zmieniasz, można w ten sposób się dużo nauczyć. No i nie zrażaj się tym, że jak ściągniesz to się nie włączy :) Uruchomienie aplikacji to pierwsza, ale bardzo przydatna lekcja. Ta metoda jest fajna jeśli później chcesz szukać jakiejś pracy w tym kierunku. Najczęściej w takiej firmie nie zaczyna się od nowego projektu, więc musisz całość przeanalizować, zobaczyć jak to działa, jak jest zbudowane i jak to edytować. A wybierając ten sposób będziesz miał w tym doświadczenie.
Możesz też zacząć swój projekt, ale prawdopodobnie będzie Ci na początku bardzo ciężko. Jeśli jednak to najważniejszy jest plan, rozpisanie wszystkiego.
No i ostatnia, opcja której jestem w sumie zwolennikiem. Znajdź interesujący Cię projekt, który jest w trakcie tworzenia. W wielu przypadkach są one tworzone po godzinach w domu, przez grupę osób, którzy robią to za darmo - po to by się uczyć, zrobić coś fajnego lub po prostu dla zabicia czasu (tak, tacy też są :P). Powiedz, że jesteś początkowym programistą, interesuje Cię to ale po ogarnięciu składni nie wiesz co dalej. Na pewno znajdzie się ktoś kto Cię przyjmie do projektu, da jakieś łatwe zadania a i w razie problemów pomoże. Najfajniejsze jest w tym to, że nie przejmujesz się tu projektem, funkcjami, jak to jest zaprojektowane, jedynie robisz swoje funkcję, czyste programowanie, czysta nauka. W tym sposobie jednak na początku polecam Ci ogarnąć jakiś system kontroli wersji (jeśli nie wiesz co to, nadrób tą niewiedzę jak najszybciej), a obecnie jest najpopularniejszy GIT.
Na sam koniec dodam, że w razie błędów nie zrażaj się. Odejdź od kompa, oderwij się od programowania, zrób sobie taki reset, zjedz coś, napij się albo po prostu przewietrz. Dopiero potem jeszcze raz przeanalizuj błąd, kod i spróbuj to naprawić. Jeśli się nie uda, trudno! Odpal google i szukaj, możesz najpierw po polsku. Jeśli nic nie znajdziesz nie poprzestawaj na tym - poszukaj po angielsku. A jeśli nie znasz angielskiego w takim stopniu to słownik do ręki i jazda. Uwierz mi, im szybciej zaczniesz tym lepiej - w końcu i tak to będziesz musiał zrobić. Jeśli już nie wiesz co to może być to pytaj na forum. Nie wklejaj całego kodu, napisz jaki masz błąd, co robisz a później ten błąd opisz. Napisz też co próbowałeś zrobić by ten problem naprawić. Ludzie chętniej Ci pomogą a i unikniesz sytuacji gdzie ktoś poświęci Ci czas, napisze swój pomysł rozwiązania a Ty na to mu odpowiesz "e tam, to już próbowałem". Uwierz mi, drugi raz Ci taka osoba nie pomoże.
Warto wspomnieć o testach jednostkowych oraz debugowaniu, poczytaj o tym bo to bardzo przydatna rzecz.
Warto się zapoznać z takimi zasadami jak KISS, DRY, SOLID, Clean Code (szczególnie polecam filmik https://www.youtube.com/watch?v=4LUNr4AeLZM oraz jego drugą część https://www.youtube.com/watch?v=HNVJSGYUIjc)
No i to tyle, mam nadzieję, że choć trochę pomogłem bo wiem jak ciężko ruszyć się z tego miejsca w którym utknąłeś. Pozdrawiam 