Detailed my syllabus for those interested in specifics: https://flaviuspopan.com/elixir-year-technical-sabbatical/
That said, lots has changed in our world lately. I’m using LLMs as tutors to discuss concepts and clarify doubts—rather than to spoon-feed me code—but I sometimes wonder if waiting to fully grasp a language before using these tools is the optimal strategy.
Are you embracing traditional methods, or have you jumped straight into AI-assisted learning? What mix of deep study and AI guidance has worked best for you?
One of the metaphors I have carried with me all these years in software learning journeys is the power of the alloy. Alloyed materials are one of those cases where you get compounding effects, where 1 + 1 is some greater than 2.
I have found that (for me) no single purist approach to learning languages or libraries has been as powerful as using a smattering potpourri of learning techniques. Whether watching videos, taking classes, having mentors, reading books, reading articles, asking questions in forums, actually writing real code, or writing weird boundary pushing experimental larks, I find that they all compound when reflected off of each other. To date, I have found that adding LLMs in the mix is another good alloy ingredient, but that it is particularly fragile when used in isolation.
Just Friday, I was working with learning how LiveView JS hooks work better and mixing in some SVG. For some of that, Cursor was really helpful. But alone, it would never have helped me discover some of the nuggets of nuance that I needed to dig through the W3 spec to figure out. Later the same day, it helped me rough out an Ecto join query that was a bit beyond me. But I chose to go do some more research, reading Ecto manuals, watching a vid on joins, and asking a buddy who’s a stud with Postgres. But the LLM really catalyzed my venture into the space.
LLMs are a tool too. You learn to use them wisely not by using them only in angry desperation, but through critical experience.
Glad to meet another Elixir sojourner on the way.
I view it like learning a foreign language from a friend who is also not a native speaker and not a trained instructor. Maybe they'll be great and it will be fine. But I don't have any way of knowing.
* I am using traditional methods (a book or 2) and interrogating LLM about concepts I don't feel clear on, or want to know more about * Leetcoding in the language * Will build some small projects, with heavy LLM-help ofc
I think the dangers of using LLM could be twofold:
* Could obviously make entire programs in a language while understanding too little of it * Could go down too many rabbit-holes if you ask the LLM about every little thing you are curious about