In reply to @heysokam "sounds like you thought": I could have and should have included something positive and encouraging in my reply, to be sure. My bad. The perspective I was/am coming from was several learning experiences, some computer-related, and some not, about knowing a subject "properly", as expressed in the message I replied to. If you want to be really good at something, to properly understand something, when that something is "deep" or has many facets, it takes a long time, years even. An important moment for me, when I had started doing a lot of computer programming stuff and had gotten pretty good (or so I thought) with e.g. JavaScript, was when I realized "I know nothing". Well, it's not that I really knew nothing, but I had that feeling after digging deeper into some programing concepts that interested me (read some papers and books, even some masters' theses) and attended some conferences with presentations on the same. Listening to and speaking with people who had been in industry and/or academia for years gave me perspective. There I was, this self-taught programmer that had thought I was "hot shit" re: some coding skills, but then I saw it: the climb you have to make if you want to properly know/understand computer programming. It was important for me because it helped me to be more realistic. I would need to pace myself while working steadily at it, and I'd need to focus on some things instead of imagining I could master anything and everything programming related. There's a flip-side: when you've spent long enough with a large enough variety of programming langs, the learning curve/s for other langs can be smoothed a bit because conceptual mastery can transfer. At the same time, conceptual mastery doesn't necessarily transfer to technical mastery when it comes to the intricacies of complex tooling, e.g. the JVM. For example, imagine someone who is a great C programmer and is also a solid web-tech programmer being dropped into a situation where they need to develop and run a production-grade JVM based server-side application. That person would struggle a lot if they're on their own. There's so much hands-on knowledge re: the JVM (debugging, tuning, GC options etc., etc.) — you can learn it, but it will take time and there will be a lot of pitfalls, even if learning Java/Kotlin comes easily. Anyway, to @Norax I say, keep going! If you enjoy Nim and/or find it useful, work steadily at learning it and keep asking questions. Be patient with yourself, because systems programming is one of those "deep" subjects and Nim itself has a large surface area.