"Give a man a match he will be warm for a minute, light a man on fire he will be warm for the rest of his life" -- The Osiris Child
Switching to using Go after using Python for a few years has been an interesting experience. Definitely appreciate the portable binaries, slimness of the language forcing you to write obvious code, and the compiler warnings making it easier to find bugs. Using golangci-lint has also been a big help, but that’s more because I am actually using a linter at all (where before I did not).
I have gone from writing impulsive untested spaghetti code to using DDD, CQRS, TDD, and linting to aim towards making maintainable code. I didn't really get it before, but after trying to maintain a huge messy project for a few years I have now come to really appreciate this new style of coding. I can now look at my code and feel confident about changing it and that if I come back to it later I'll have a real chance of maintaining it without want to scrape that's there and rewrite it.
What has really helped, though, is journalling down my thought process before, during, and after each coding session to make sure I have a better chance of fully understanding everything I am doing. I'm also trying to establish a regimen of every week day either adding / changing something in the codebase or outlining changes I need to make based on research that shows I screwed up something I have already done. That way even if I am moving at a slow pace, at least each day I will be making progress.
So far it is really weird writing tests before I write code via TDD, the slight differences between DDD and CA while still being vastly similar is a bit of a headache to make sense of, and trying to grok all of this without wasting a few weeks reading dense books has been a frustrating cycle of rewriting code over and over again after screwing up while also realizing why DDD / CA are structured the way they are.
This is also significantly worse for MPI libraries like WRF. If you have ever had the misfortune of needing to build it, you have my condolences.
The Internet Archive Wayback Machine is not working right now and I'm freaking out
https://web.archive.org/web/*/qoto.org
Apparently the distinction is for the conflicts with the SI prefix of kilo and mega being defined as powers of ten (not in relation to 1024).
HPC systems engineer