Ну не можу просто сприймати інформацію, як щось дане - типи "треба так", а у всьому маю зрозуміти чому і для чого, та що воно нам дасть?
Ну от, а кажете «гуманітарій» 
По-моєму, саме в такий спосіб і має мислити нормальний програміст — не заучувати «правильні» фрагменти коду, а чітко розуміти, що робить кожна деталь його програми, і що станеться, якщо щось у ній змінити.
Просто не бійтесь запитувати, якщо чогось не розумієте, і не бійтесь експериментувати зі своїми програмами — це теж важливе джерело інформації.
Курси — річ непогана. Єдине, не всі вони розраховані на зовсім початківців і не всі дають знання достатньої якості. Це ж стосується книжок, відео. Особисто мені важко щось учити з відеоуроків — книжку простіше перегорнути на потрібну сторінку, і концентрація інформації в ній набагато вища, або переписувати фрагмент коду — з відео це робити зовсім незручно. Хіба що як додатковий мотивуючий матеріал, а основне джерело інформації — книжки, різні сайти, свої власні програмні експерименти...
Ви вже пробували писати якісь програми, до речі? Потім, програмування велике — в якому саме напрямку Вам було б цікаво розвиватися (веб, мобільні додатки, розробка 3D-ігор, написання компіляторів і драйверів, створення штучного інтелекту...)?