johncch
https://archives.fifthrevision.com/color-generator/index.htm...
I also have a local zsh autocomplete macro that let's me type things like "git rename annotated branch" and ctrl-g and it will get me the actual command. There's also a ctrl-r mode that searches my history using natural language. This is connected to a locally run ollama so my keys don't leak.
Secondly, idiomatic is good if it matches your mental model. However, what does idiomatic mean in the context of billions of people coming from various computing starting point. Just as a simple thought exercise, how do you design idiomatically for people who are most familiar with Windows era computers and people who start with touchscreens, both generations who are still alive today?
Tutorials on various common "patterns" (RoR web apps, iOS apps etc.) are of good quality and easily available these days. As a PM in big tech, you can try to find little ways to contribute into the product's code base, which will teach you both programming and engineering practices. In my experience (disclaimer: was a PM), engineers are delighted when PMs show interest in code, and at least a few would be excited to hand hold you through the process of setting up your dev box, building the product etc. It's not a bad way to get better while making hand and fist full of money.
That said, like any other craft and practice, programming is layered and specializes. It takes 5-10 years to be "good", and it takes equals amount of time to be good in a specialization (say machine learning for example). Even for a good ol' engineer to move from building web apps to building machine learning systems, the barriers are still non-trivial. Furthermore, consider that a career in software engineering is perhaps more akin to spending 20% of your time building somewhat sexy* new thing, and 80% of your time doing boring boiler plate work, trying to pull your hair out digging through other people's APIs and code, and wondering why the build and CI system is so broken. If that's what you want to do, then go for it.
* most likely it's just a boring CRUD app using somewhat unfashionable technology.
and it works well with vim-go integration on vim for example
However, I'd like to emphasize that there is always a place for tools that are sufficiently complex such that it allows the craftsman wield it proficiently. Past a certain point of simplification, a tool would lack the necessary vocabulary to express things succinctly. Like why Jargon is necessary sometimes.
However, I think Vim is fundamentally a finite state machine. While complex, once you grok the mental model of how it works, everything else comes quite naturally. So fear not.
Organizations aside, even in startup land or various just small companies as you know it, there are restrictions, in different forms. Customer satisfaction, for one. Investor pressure, as another, and they can be restrictions, or challenges depending on how you see it.
My problem with college is that for most of the folks, when they get into college, they don't really know what they want, with the new found freedom and gets distracted by the various frat like bonding activities that goes on in the campus.
///
I don't think creativity exists in some sort of pure unadulterated sort of vacuum where an individual is "free". Philosophically speaking, no one is ever "free". No one wants to be either.
Truly successful people are successful despite of the system. They are successful because they know how to break out of the system. They understand (metaphorically speaking) the system and how to cross the line so that the create something new. That, is creativity.
Unfortunately, my opinion is that most people try the best to construct some sort of structure to "teach the young", so to speak; I don't think there's any malice in there. The truth is, you can't teach people to be creative. You can teach people to be different, but if different becomes the norm, then different is no longer different. To be truly creative, one needs to have a good combination of observation, introspection, good working ethics (i.e. slog through the details) and willpower.