Zależy wszystko od jakiego poziomu zaczynasz. Ja mając kompletne zero pojęcia o programowaniu zacząłem od teamtreehouse i szczerze mogę ich polecić. W kursach ładnie wprowadzają w podstawy języków i wybranych, najpopularniejszych technologii jak też gdzie najlepiej później szukać pomocy czy poszerzać swoją wiedzę. Moża u nich założyć konto za free na dwa tygodnie i sam ocenisz czy taki sposób nauki Ci odpowiada. Wiadomo, jak po każdym innym kursie nie nauczysz się nagle tyle, żeby startować na seniora ale dają według mnie całkiem dobra podstawę, żeby samemu świadomie dalej poszerzać swoją wiedzę.
Przerobiłem tam większość dostępnych materiałów o Javie, PHP, HTML, CSS, JavaScript i SQL (znaczy się poznałem szeroki zakres materiałów i wiem o czym piszę) po czym mając już nieco rozeznania w podstawach uważąm, że dość swobodnie poruszam się teraz w dokumentacjach czy dostosowuję gotowe rozwiązania pod swoje potrzeby wiedząc co, jak i dlaczego się dzieje. Myślę, że ogólnie wszelkie kursy powinny mieć za misję, wprowadzenie zielonych ludzi w te wszystkie dziwne pojęcia oraz po pokazaniu podstaw pokazać gdzie iść dalej, żeby samemu się rozwijać a nie klepać na pamięć helloWorldy a przy realnym problemie rozłożyć ręce :P
Najlepsze podejście to takie jak przytoczył @Desu. Zakładasz sobie jakiś cel i siadasz uczyć się jak to zrobić bo nie ma kursów uczących ludzi języka do perfekcji. A nawet jeżeli dostaniesz papierek o opanowaniu całej składni na pamięć to nikt nie ma gwarancji, że będziesz potrafił to wykorzystać w odpowiedni sposób. Więcej myślenia (bo wszystko i tak do myślenia sprowadza się w programowaniu) nauczy Cię stworzenie jakiegoś projektu na około nie znając wszystkich technologii niż pisanie prostych przykładów zgodnie z kolejnym tutorialem :P
Co do certyfikatów to zawsze lepsze to niż gołe CV, ale jeszcze lepsza są własne projekty nawet bez nich.
Możesz zawsze na cebulaka robić tam co 2 tyg nowe konto, albo gdybyś chciał wykupić członkostwo to pisz na priv po refa na 50% :P