Basic and Python
The Lego EV3 system is a fantastic way to learn about robots but it has, in my opinion, a major weakness: it won't teach you how to do normal, text-based programming like professionals use (it has an icon-based programming interface, like Scratch). The ideal would be to be able to program the EV3 with a powerful but easy-to-learn text-based programming language, and of course, we want it to be free! The two best free options for programming the EV3 with a textual programming language are, in my opinion, EV3 Basic and EV3 Python.
It's possible to program the Lego EV3 robot with EV3 Basic, i.e. Microsoft Small Basic with the EV3 extension. Microsoft Small Basic was released by Microsoft in 2008 to put the fun back into programming for young people. Before you try to program the EV3 with EV3 Basic you should learn the fundamentals of Microsoft Small Basic. Small Basic and therefore also EV3 Basic runs only on Windows computers. I've set up a site dedicated to EV3 Basic, which I invite you to visit: EV3Basic.com (site not endorsed by Lego corporation). The Basic programming language has existed for more than half a century and although it has evolved over the years it lacks many of the features of more modern programming languages. Small Basic in particular is a very limited version - it has only 14 keywords and user-created functions cannot take arguments. It doesn't even have a logical NOT operator. Since Python is much more modern, powerful and popular programming language I strongly encourage you to choose EV3 Python over EV3 Basic.
The Python programming language is one of the most modern, most popular, most easy-to-learn and most powerful programming languages in the world, so what could be more natural for an owner of the EV3 robot than to want to learn how to program the EV3 robot using the Python programming language, preferably at zero cost? The best way to that is to use EV3dev Python which works with the EV3dev operating system.
I've made a website, ev3python.com, to help Python beginners to get started with ev3dev and EV3 Python. My website should be a useful complement to the official EV3dev website at ev3dev.org. Unlike the ev3dev website, which is mostly made for experts by experts, my website is aimed at beginners, especially Windows users who have only a standard EV3 kit (home or educational) and who do not own any third-party hardware. Check out my site at EV3Python.com (site not endorsed by Lego corporation).
Note that my website, like ev3dev.org, is intended only to teach you about the extra features of EV3 Python that are not available in standard Python. Before you start learning about the peculiarities of EV3 Python you should become familiar with standard Python, perhaps by following one of the hundreds of online courses in standard Python - some are listed HERE.
EV3 Python uses a version of Linux on an SD card that you put in the SD slot on the EV3. If you follow my advice and use the free multi platform code editor Microsoft Visual Studio Code to write and run your EV3 Python programs then you don't need to know anything about Linux. It's possible to do EV3 Python programming without using Visual Studio Code but in that case you should know the basics of the Linux operating system since you will need to work with that to a small extent. Some advice on getting started with Linux is given HERE.