Question, since I’m not sure it’s answered and I think it’s important information: do you want to learn to code? Also, similar but actually very different question, do you want to do a job that involves writing a lot of code?
You ask what we would do in your situation, and well - I was there. I was in a situ until last year where I had loads of freedom and autonomy to learn and implement whatever I felt was best; and like you I didn’t feel I had the experience to be able to do that, or the devs to lean on to help implement the stuff I wanted to do. Mostly, I knew what needed doing, what could be valuable. I knew what a good breakdown of tests looked like, where they would live, what would be tested by each moving part and when. But setting it up? Battling through endless afternoons spent crying at my desk because I had no idea what this error even meant, and I didn’t understand the explanations on StackOverflow either? Feeling constantly on the cusp of understanding, waiting for the last piece of the puzzle to click into place where I might one day have a eureka moment and everything I was trying to do would finally be easier? It was the worst! At the very core of it, looking back now, I realise that I was being given all the time I needed to do things that were actually quite advanced. And as a beginner or intermediate person, you can have all the time in the universe and it will not help. And I didn’t want to think of myself as a beginner after all the time I had spent in self-guided learning, the experience I had in multiple languages and tools and frameworks. But I was/am.
When we’re learning a new branch of skills (I wouldn’t automation or coding a skill, it is a massive blinkin’ family of skills, many of which are invisible to the learner), a lot of us need a specific goal that we’re held unpressuredly accountable for, and people there who have the time and will to dedicate towards helping us meet it.
The more testers I talk to who are learning to code, the more I realise that the vast majority are not being given enough time and/or guidance to properly learn - and just because you’ve been given the time, doesn’t mean you can magic some learning direction and enough motivation to slog through the inevitable failures out of your bottom. You’re a person. No one expects a new dev just learning to code to be able to create complex React apps integrating with existing apis in the real world, without guidance. No one expects a new idk ops person learning their shizzle to be able to set up a balanced pipeline with authentication and monitoring across three environments and all that, without guidance. No one should be expecting a tester who is learning to code, to be able to pick it all up without solid guidance and learning objectives, and help from real humans who already know what they are doing.
It kind of annoys me tbh, because as companies and teams we know how to help people learning new skills. I see it with junior devs, coming in to existing projects and being given small bits of planned work that don’t delve too deep into the hard stuff to start off, then slowly being given more and more exposure to whacky functionality, the bits of the project that maybe aren’t that stable, where they will eventually be taught to wrestle with the same issues as everyone else. But many testers coming into automation don’t get that introduction. We have to go straight into the hardest part - setting up a project or framework. We have to work out all the issues junior devs have senior devs to help and guide them on, often without that senior figure who is accountable for our progress. And I guess this is partially because there’s been such an explosion in automation that there aren’t enough truly knowledgeable/experienced test automation engineers about to fill every team out there who has decided that automation is the answer to all their woes, and the ones that do exist are concentrated in great companies. Oh oops I’m on a rant, sorry.
As a slight aside on the ‘clicking’ of coding… I have not had that moment. I ended up moving to another company which already had a mature automation setup where other people had done the crying and tearing out of hair before me. So any time I’m stuck, can’t remember how to get X piece of information from the response and map it into a list of objects that I can compare against another list of objects, or whatever… Oh look, someone did something similar in this project, or that step file. I have other examples to look at which I know work for our exact environment and setup - not just slightly-related examples on StackOverflow or tutorial sites. So I have a playground with all the things I need to know in it already, all the parts are there, and I get to work out why they’re there, and how they fit together, without having to do it with most of the pieces missing. I get a lot less autonomy in this role than I did in my previous one, but I learnt a lot more about good structure and practices for test projects etc in three months here than I did in the two years before. And I feel like if I went back to having that autonomy now, I would be able to do much more with it this time because I’ve filled enough of the holes in my experience that I’m like a swiss cheese instead of a sieve. I just needed to go somewhere and be a junior and be taught things by people who wanted me to learn them, until understanding and solving stuff became easier. I haven’t had a click, but there’s been like… a dimmer switch, slowly bringing up the lights. And I literally did not realise that I wasn’t still sitting in the dark, until I wrote that sentence just now. xD
But yeah, I was very lucky to get the job I have now. And like you, I have had - and continue to have - times, days or weeks where I just think testing is not for me. But like you, I want to do it, I want to get good at it. I just needed the right environment that wanted me to get good at it enough to actually help.
Sorry for the big, possibly unintelligible paragraphs, and I hope that you resolve the things, and feel free to hit me up either on twitter or on the MOT slack if you ever want to rant at someone on the bad days.