[Tex/LaTex] How to get better at LaTeX

learning

I know this is sort of off-topic and may get closed for being opinion-based, but I haven't found what I need by browsing the LaTeX project site so maybe, before the question gets closed, I can get a pointer or two or a link or two.

I've been using LaTeX for quite a while at a pretty basic level. Now I'm getting more proficient and am slowly learning things as I write and format a book. But I feel like there is a gap in the references that I can't fill.

There are lots of materials for beginners. How to do basic formatting, make lists, basic bibliography and so on — some of these have been enormously helpful to me while learning. Then there is a whole level beyond me — where people program things, make their own environments, make up new stuff of various kinds.

e.g. I found very helpful code for flexlabelled in the documentation for memoir and modified it very slightly to get:

\entry{word}{pronunciation}
      \begin{flexlabelled}{sclabel}{0pt}{0.5em}{0.5em}{*}{\leftmargin}
       STUFF
      \end{flexlablelled}

But now I am thinking it would be good to have the pronunciation in a different size. I know I could ask that here and some helpful person would answer, but I want to know how I would learn to do that without help.

Or, how do I know what commands can only go in the preamble, what can only go in the main body and what can go in either place?

In the documentation for memoir it says

More major changes to a description-like list will probably involve
writing the code for a new environment.

OK, I can recognize that no package is going to do everything I want (although memoir does a LOT) but … How does one learn to "write code for a new environment"?

But … I don't know how to learn that. I also don't know how to figure out what goes in square brackets, what goes in braces or what needs neither.

EDIT in response to comments.

What I know: I know how to use LaTeX to write fairly straightforward documents. I know (usually) how to find a good package. I know how to do "normal" things that are covered in books such as "More math into LaTeX" or "Guide to LaTeX".

What I want to learn: e.g. If I want something formatted in ways that need a new environment, how do I do that? How do you know what goes in the preamble vs. main body? How do you know what goes in braces, brackets, parentheses or doesn't need either?

Maybe what I want doesn't exist in a book.

Best Answer

Imho "I want to know how I would learn to do that without help" is the wrong starting point. As is the idea that you only need the right book.

I have read over the years many books and texts and references about TeX and LaTeX, and doing this is certainly important. But I learned most by interacting with people, with people better than me at LaTeX who answered my questions, or contradicted me, or corrected my code, and with people I helped by explaining things or by correcting their code or by developing some commands or environments. Learning from, with and through people is very effective. It forces you to put your thoughts into words the other person can understand, it forces you to really read some code or documentation, it forces you to test your knowledge. People can point you to the small important detail that you would simply miss in a large book.

There is currently the idea floating around that teachers in schools and sites like this only exist because the (digital) learning material isn't good enough yet; that with better tablets and books and training material you actually don't need human teachers. I do find this idea quite absurd.

Related Question