I am a self-taught programmer&#x2F;hacker and the best thing I ever learned was Racket. <a href="http:&#x2F;&#x2F;racket-lang.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;racket-lang.org&#x2F;</a><p>Here is what got me off the ground. The first unit is learning ML and the second unit was Racket. <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;user&#x2F;afigfigueira&#x2F;playlists?shelf_id=6&amp;sort=dd&amp;view=50" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;user&#x2F;afigfigueira&#x2F;playlists?shelf_id...</a><p>This is from a Coursera Course that is not being offered right now. It covers a lot of different languages but the Racket and ML parts are a great starting point.<p>I liked this book - <a href="http:&#x2F;&#x2F;www.amazon.com&#x2F;Realm-Racket-Learn-Program-Game-ebook&#x2F;dp&#x2F;B00DHRV584&#x2F;ref=mt_kindle?_encoding=UTF8&amp;me=" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Realm-Racket-Learn-Program-Game-ebook&#x2F;...</a><p>If that is too simple there always is <a href="http:&#x2F;&#x2F;www.amazon.com&#x2F;How-Design-Programs-Introduction-Programming&#x2F;dp&#x2F;0262062186&#x2F;ref=la_B000AQ3UQU_1_4?s=books&amp;ie=UTF8&amp;qid=1444664197&amp;sr=1-4" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;How-Design-Programs-Introduction-Progr...</a><p>I prefer seeing people code and talk about it so the videos are great.