Duolingo może być spoko uzupełnieniem, ale na 100% nie zrobi roboty.
Moim zdaniem warto zainteresować się immersją językową, czyli takim "otoczeniem się" językiem. Z początku to może być ciężkie, ale u mnie dało to najlepsze rezultaty w sensie ogólnego zrozumienia i komunikacji. Jeżeli programujesz - rób wszystko po angielsku; poradniki - po angielsku; wikipedia - po angielsku itd. itd.
Poza tym, polecam program Anki - darmowy program do fiszek, który ma bardzo dobry SRS.