How do I start learning programming? What is the best language to learn first?
There is no ‘best’ language - it all depends on your interest and what you have access to at the right time. Based on my experience teaching programming over the last 9+ years to hundreds of students each year, Scratch (or Logo) is a possible starting place. Scratch has a visual drag and drop interface and is much like putting Lego blocks together. It also provides a rich set of graphics and sounds to create projects like games quickly. Here is a simple introduction to Scratch that creates a pattern using programming Some of my favorite resources for Scratch are here.
What do I do after a block based language like Scratch?
There are several languages that are a possible next step after using Scratch. One good language to learn is Processing. It is the best example of combining coding and art. The programs, called 'sketches' can be used to create some very cool visual effects and more. My students have learned Processing using on the Khan Academy CS platform and more recently using P5.js.
Python is an open source language and is very popular both in industry and in education. I have been using it in my 7/8 grade elective and recommend it strongly.
You can say, I am a bit crazy about Python in education - given I wrote a book on it - see Creative Coding in Python