Software testing is a technique to analyze software to check it and detect differences between existing and required conditions and to evaluate it is defect-free. It also identifies errors, missing requirements with concern to the actual needs. Software testing can be performed manually and using automation tools.
There is no definite time to learn software testing; one must never stop learning no matter how far you think you have come. Depending upon the testing and the type of tester you want to be enlisted are the following requirements that require at least 3-6 months to be a full-proof tester.
Software testing requires a broad knowledge of various programming languages and software to test an application. A professional tester must have a basic to high-level knowledge of the entire application contents from the IDE used to language to the desired client output to deliver a defect-free application. A project cannot be bug-free, but a tester faces many challenges to make it bug-free and user friendly. I won't say it is an easy job, but it is not difficult to learn it. It's challenging to learn it, but the more you test an application, you learn every time.
The main qualification required is the determination to become a tester and some patience along with a mindset of giving up even if you fail million times.
When you are ready, enrol for a course in class or online and start doing beginner level testing sample projects to be job-ready. You may read some books as well regarding testing or excel in one or two software testing tools. When you are confident enough, you can apply directly to companies or start with freelance work to gain some experience at the beginning.
To answer in one word, yes, one must have a basic understanding of coding to be a tester. However, testers can be classified as Quality Analysts(QA) or Software Design Engineer in Test(SDET). The former verifies the software only after the development phase, and so knowledge of coding is not much needed. The latter needs to understand the inner workings of the product and thus should have knowledge of coding, database, design, and user interface.
Yes, Python is used for testing. Python is easy to understand, fun programming language, and a tester. Python for developed software doesn't need to learn the syntax because the Python programming language is read like English and simple to understand for who are new in the programming.