Poprawna odpowiedź brzmi: to zależy… Do jakiej firmy, jakie stanowisko, jakie projekty itp. W takim bardzo ogólnym zakresie trzeba umieć tyle, aby samodzielnie przy pomocy dokumentacji być w stanie napisać część projektu. Oczywiście, jeśli jesteś juniorem, to wiadome jest, że czegoś możesz nie wiedzieć, lub nie mieć z tym jeszcze doświadczenia. Ale jednak same założenia języka, jego działanie, programowanie obiektowe, jakieś podstawowe wzorce projektowe, dobre praktyki, sposób dokumentacji kodu, praca z systemem kontroli wersji. Całkiem sporo tych rzeczy jest związane z procesem wytwarzania kodu źródłowego, a nie samym językiem. Składnię samego języka powinno się znać tak, aby w miarę bez problemu się po niej poruszać. Z tym że to nie jest tak, że o nic nie będziesz mógł zespołu spytać, ale pytać np. jak stworzyć klasę to już trochę przegięcie. Język programowania to tylko narzędzie, a ty masz się nim posługiwać poprawnie i z pewną wprawą. Chodzi o stan, w którym nie walczysz z samym narzędziem ( językiem programowania), a ewentualnie problem do rozwiązania może cię przerosnąć.
A teraz jak do tego dojść? Po prostu tworzyć projekty od a do z samemu starając się przestrzegać jakiś standardów kodowania, systemu kontroli wersji, napisać testy i udokumentować kod.