Here's my point. A computer language is just a way of expressing simple commands. The concepts are pretty much the same across most procedural languages. A DO loop is a DO loop, regardless of what you call it and the exact syntax. A much bigger issue is learning the idioms and the libraries associated with each implementation of a language. Just like human languages, the more of them you know, the easier it is to pick up the next one.
I've never had any formal computer classes. Back when I started there was no such thing as a computer science degree - most university classes in computing were done the math department. But you still have to learn. Buy books, read them, do small projects to familiarize yourself with the languages. Make yourself learn. It's your career, manage it. Make certain you have the skills that are needed, and if you think you don't have the skills you need then be proactive in getting them. Use the Tiobe index to see what's trending up.
I'm at my sixth company at present. I have never been unemployed. I don't code as much as I used to because I'm in an architectural role now, but I still can code and I enjoy it immensely. I'm still the go-to guy in my areas of expertise. I made the mistake of going the managerial route at one point and discovered I hated it. Computers are easier to handle than people - they don't lie, they do what you tell them, and they don't have hidden agendas, and they don't backstab.
18 years is less than half of your working life. Coders will be needed for long time. Application coders will needed for years to come. People will be needed to code operating systems, drivers, environmental software, IDEs, compilers, etc. for many years. Don't give up, and don't believe all you read about ageism. I interviewed for my current gig with a full head of grey hair.