Also if you are looking for a way to learn MapBasic more than a way to learn to program, there is a huge help in MapInfo Pro thru the MapBasic window.
Open the MapBasic window (Options > Show MapBasic Window) and do the task you want to code in MapBasic in MapInfo Pro. MapInfo Pro will now write the MapBasic statements required. You can now copy these into your MapBasic source code and work from this.
It's not all that can be done this way, but it gives you a very good insight into a lot of the MapBasic statements
Sorry for digging out an old thread, but the MapBasic UserGuide and MapBasic Reference are probably the 2 best resources for getting started with MapBasic.
I myself started off simply observing code generation in the MapBasic Window (see what Peter suggested). Then I started making my own MapBasic Window scripts in Excel:
Then after a while, I found out that MapBasic can be compiled into .MBX tools and these have the benefit of being able to use Loops, Flow control, dialogues etc.
So then I started writing .mb files and compiling them to .MBX. After a little while longer I started wanting to make MapBasic applications with Ribbon Buttons. You can do this with the Alter ButtonPad statement but it is better to use the RIBBONLib created by Peter. To do so you need to get started with .MBPs - I found this difficult but got there in the end.
As for actual writing MapBasic application, I will only recommend the MapBasic Text Editor for small projects. As soon as you start creating more advanced projects I would recommend that you find a better text editor.
One option here would be to use the MapBasic IDE developed by Mustafa ÖZÇETİN. On the blog, you can find a very good guide to getting started with the MapBasic IDE.