I started programming with Racket 2 years ago and i decided i want to use a Lisp with more libraries at my disposal. So i have made some headway into Clojure and am familiar with core functions like map, reduce, filter, loop, for, doseq, some, every?, apply. I make use of macros like ->, ->>, .. sometimes. I'm somewhat familiar with destructuring and the clojure data structures.
I have never seen the need to learn transients, macros, protocols, transducers, multimethods, have struggled with string and file I/O operations on the rare occasions i need to use them. I have a vague idea of things like "parallelism", "concurrency", probably because the applications i build never have had a need of such things. I have a vague idea of how expensive calls to this or that function would be.
Most of my explorations have been with Clojurescript using Om or solving puzzles, so i have been limited to mostly small scripts, or projects that never go beyond a few files.
I would like to step up my game. I like working in Clojure enough and i think i have had enough of scripts, i want to write Clojure programs. I want to understand how to make the most of this language, and I would appreciate very much anecdotes/guidance from the community on how to do so