what is a good source for learning how to design a programming language?
This was a bit too long for a comment. And in a way it is an answer.

I fear that if you have to ask that question, you are not yet mature
enough in the field to actually do the job. Furthermore, the kind of
things you need to learn and do depends very much on what the language
is for. If it is for general programming, you have to understand the
various kinds of structural choices that have to be made. The best
source is a general course on programming, not just programming in
one specific language. To understand what is scope (it varies), what
are variables (they come in different brands), what is environment and
binding, to distinguish between functional, imperative or logical
paradigms, and so on.

Designing a language is highly dependent on what you want to say
(program) and how you want to do it. Look for "programming paradigms."

Learn several advanced programming languages (Haskell, CAML or
others), not just what is commonly used by programmers. When you know
enough languages, you will naturally know how you would want to design
one, if you still do.

And of course, you have to learn all the implementation techniques for
theses structures and features. But that you will largely find in
books on compiler and interpreter writing. Maybe you can start with that.

You do not have to do that. But cemeteries are full of programming
languages that no one ever looked at.

Creating a language is a long, long work, with slim chances of success. Make sure it is worth spending a significant part of your life doing it.