It’s not a dichotomy of manual OR automation . . . it’s a gradient, and to be strong in automation, you have to have solid manual test skills.
I don’t think bootcamp/crash-courses/etc to become Selenium/UI automators are any good, and are rather short sighted. Many of the candidates that go that way end up living up to Maslow’s hammer (“if all you have is a hammer, everything looks like a nail”), rather than automation being a tool in their testing toolbox. I was just at a python meetup last night where someone wanted to read a CSV file and write one of the columns to another CSV file. Because of the bootcamp this person had gone to, they were trying to all of this using pandas dataframes, rather than what should have been two simple for loops, reading one file and using the values from that to read/write the second file. In this case, the person never really learned python, but just a very focused/limited amount of knowledge around pandas (e.g. they were confused about differences between strings and numeric values).
My advice whenever anyone asks this question is to learn to program/script, but do it with real world projects. Automate the little things you’re doing every day - install/uninstall of a build, database setup/teardown, generation of mock data files, modifying config files, etc. This will likely be batch scripts or shell scripts to start. Figure out how to string together several of these tasks.
Eventually you start pushing up against the limitations of command-line scripting, at which point you can start using a scripting language. Python seems to be the lingua franca these days for tying things together, and it’s got the advantage of having a REPL as well as Jupyter. Re-write all the stuff you wrote in batch or shell as python scripts.
While doing all these things, you should be learning to problem solve - figure out how to search the internet, Stack Overflow, etc, to answer questions (and more importantly, avoid the XY problem/identify the question you really want to ask).
Next steps will vary depending upon what kind of testing you do. If you’re mainly doing UI testing, then clearly Selenium. API testing means learning how to use requests or similar. Mobile testing means learning a mobile test framework.
Remember, none of this is going to happen overnight. Build solid foundational skills that ensure your know how to learn. Your goal shouldn’t be to become an expert at anything, but to build enough context that if you have to switch from one programming language to another or to a new test framework, it’s not the end of the world. Yes there’ll be a learning curve, but you’ll figure it out because you understand variables, data structures, control flow, conditionals, etc. And most importantly, you’ll have figured out how to research, ask questions, build the foundational understanding when switching languages/frameworks/paradigms/etc.
Original comment