Note: this is more of a journal-y post than a software one.
I'm working on trying to develop a system of mindfulness in coding. It's kind of a weird area to be in right now. I'm telling myself that it's worth it, but honestly there's already a lot of doubt in my mind.The goal is to slow down, write less code, and write cleaner code. I often write to get something broken, then slowly fix until it's good. I'm guessing a lot of developers (primarily new ones?) do the same thing, but it doesn't really leave much room for figuring out what the "best" solution is. To do that, you need to think of the alternatives.
One of the most embarrassing moments in my career was early on in my career. I was asked to work on scaffolding a new app project, and for that, to choose a build toolchain. I had about 6 months of total experience at this point, and I'm not going to pretend that I knew how _anything_ worked, so I was out of my element for sure. I ended up making choices based on popular community selections, and chose `gulp`.
The embarrassment came from when I made my first pull request to start the project, and one of my mentors asked me "why?". I'm honestly still embarrassed that I froze in that moment and didn't know what to say. I had looked at alternatives, but didn't know why one was better than the other. It was mostly just a feeling of "this one works, seems to have good support, and I've been able to find a lot of examples of projects using it that make sense to me for configuration".
Another way to say that is "because gulp seems like it has community support right now, and having the momentum of the dev community actually matters a lot for someone who doesn't know the ins and outs. If that library is becoming more and more popular, there will be more tutorials, more stack overflows, etc. that are going to help a more junior developer debug issues.In reality, the answer was "I don't know". I didn't know how it worked under the hood, I didn't know the benefits, and I was embarrassed because I didn't know how to tell. I didn't know, just by looking at the source code, or "reading up on it".
The reason it remains an embarrassment for me is because my mentor wanted me to have that curiosity, that spark to dig deeper and identify important things, and to be able to bring back information. I felt like I'd failed to be a good developer, even if now I can reflect a bit better on why I chose things. I still feel that way a lot, and have no advice on how to fix it or whether it's even supposed to be fixed.
Getting back to the original question which opened this post: why? Why am I writing? Mostly it comes down to trying to document the journey for anyone else who struggles with feeling like an idiot for most of their life, and seems to be failing upwards. This is an attempt to document my shortcomings as well as my successes, whatever they might be, and providing reflection on them to kind of self-therapize.
So why are you reading?
Thanks for coming to my TED talk.