The short answer: No, absolutely not.
While having a better understanding of writing code and script (especially for scripted automation testing) can be very useful, if not integral, for some teams, it really depends on what your goals are (and what kind of testing you are doing). Simply put, you do not need to know how to code in order to become a skilled and reputable manual tester.
Intellect, experience, and even intuition often trump hard skills such as coding in the manual testing world. Sometimes just having a deeper understanding of what the expected functionality on, say, an e-commerce site should be is all you need to find the pesky issues preventing a customer from making a successful purchase.
In terms of automation testing, if you’re writing your own scripts, then yes, you will need to know how to code. That said, there are many roles on a single team, and top-notch coding knowledge may not necessarily be a requisite.
As Jonathan Roe wrote quite astutely in an article, “You need the automation to catch regression, the exploratory testing for creative analysis, the load testing for reliability and the security testing for… security.” Especially recently, popular forms of “code-less” automation are emerging, where a precise testing plan and concept combined with software automation tools can be nearly as effective as writing your own script.
So, with that brief background in mind, what do you think? Do testers need to know how to code to have a successful career in testing?