Yay I got a gemini client (finally)
I am terrible at a lot of things, when it comes to programming, what I suck at the most is syntaxes and designing.
For syntaxes, no matter how hard I try, no matter what tools I use, something about syntaxes in programming languages just makes me not want to memorise them well. And even when I do memorise them well enough, it would be lucky if more than half the time I didn't accidentally forget a closing bracket.
For designing, everytime there is an idea in my head, I do generally know what I want, I know what type of problems I'm about to solve, I know how to read libaries and code, but I just do not understand how to do things in a way that makes everything sane for me (and everyone else). If I try to do things in a sane way, chances are I'll get insane because I can seemingly only either get good at designing or get good at problem solving, and I'd always go for problem solving which means software I made would ended up feel shaky, overly complicated, hard to maintain, and unreliable in general.
I'm only decent at problem solving at a higher level, but software engineering is about engineering, not about yapping on how a problem can be solved through a 300 word "essay" that my peers these days would call me autistic whenever they see a sentence with more than 10 words (as if they have never read a book before), it is about the ability to create something for humans that makes their lives easier (or more fun, whatever it's trying to solve) in reality, and it is apparent that saying something, no matter how good you are at it, does not make it a reality.
Look I know that many of you probably despises the mere existence of LLM, or maybe you're one of those who thinks it can do everything while you don't even know how to make a simple hello world website with an LLM because you hate learning even though you're also arrogant, or maybe you're sane and normal, whatever you think of LLM, this is about my absurdly personal experiences with coding, so all you need to know is that I (over)rely on it.
As bad as it sounds this works for me (mostly) for serveal reasons, most notably it solves the 2 biggest issues that I have with programming: syntax and design. I get that there are people who loves it when they get to do everything by themselves, or that they want to make sure that they know all about their code by typing most of the stuff by themselves. I don't really care. Yes this does make me a rather irresponsible programmer which is also part of the reason why I no longer think I should get a job in software or contribute to open source with any sort of code, but this is also a compromise that I'm willing to take when the alternative is that I do nothing well and get frustrated by everything that I wished I coule care less about.
And when it comes to prompting, if you have some type of sharp senses by the time you read till here, you'd realise that I'm *really* bad at organising thoughts in a way that's coherent externally (and internally if it's no longer in my mental model), and that I *really* like to phrase everything in a way that makes everything sounds more confusing than they should, even though logically I know that this does not benefit anyone, this is just the way I prefer to speak (and also the reason why I've gotten more and more hesitant at it, unless I'm either talking to myself, or I'm okay with being an asshole, or I simply supress all my thoughts). This creates a disconnect between me and other people where we use LLMs in such different ways, that most of the time they would not understand what I'm even attempting to do, because of the sheer mental energy I'm exerting to people who just wants to socialise normally. This also means that I talk to LLM differently from others, and me doing this means that this is in fact a valid way of using LLMs, though unconventional.
At the beginning I naively thought that I can just code everything the way I want, while ignoring all design principles (as if I'm using any), so even back in the earliest gpt4-0314 days, I would type in a seemingly incomprehensible sets of instructions to the LLM and I would wait for the result to come, and when it doesn't work it's usually because my English wasn't precise enough, so I just change it until it gets good enough, and for some reason it works really well. This is also the reason why I struggled to find any use for smaller LLM models when it comes to coding, because there is simply no way I can be satisfied with saying some sentence and pretend the LLM will give me exactly what I want when it's almost never going to be the case. What amuses me even more is that there was an overwhelming majority who does in fact do these things and is happy about it when the LLM would generate the most generic who cares piece of crap ever, but that perhaps is out of the scope for the current topic.
There was one point where I changed my approach a bit, and it also shapes the way I use LLM now,which is that I find code that is related to what I want, paste it to the LLM, ask the LLM to do something simple about the code, the LLM does it. The model I did this was mixtral-8x7b, and I did this because at the time Groq (a fast AI inference provider, by the time the only option) didn't aggressively censor based on geopolitical reasons, and me as a happy user would constantly iterate through the code with a mid at best model that is good enough to do my task, and this is also the time where I would start caring more about designs and try my best not to nest through everything.
Then I hit a wall.
To simply put, I forgot that I have a not good but still functuonal brain, at that time I was both lazy and insecure about myself, so naturally what this means is that I'd tell myself how I suck at everything (I still think I do, but I'm no longer insecure about it) and so I'd prevent doing as many things as possible just so I get to cope about how there are things that are better than me at everything. And it was at that moment I fell into the trap of being a programmer who seemingly "lost" the ability to solve a problem.
Though I would say that, this isn't any LLMs' fault, at that point in life even if LLMs never existed, I would've fell for the exact same trap, I can blame myself or others for this that has happened, but pointing fingers at this point does not solve anything, what matters is that that happened and I had to deal with it, until rather recently.
So after months of irrational fear I realised that I like solving (probably useless) problems, and I often do think things can get better my way (whether or not that's true is a different topic), but basically I could've done many things much better if I ever just put some trust in myself.
And so I did, for the first time ever, I have identifed a problem within my code that's within my ability to solve, and everything just seems to go well whenever I have actually used my brain to solve problems, instead of bitching about why some things just doesn't work, I took my time to understand the problem and solve them, even though it's still an LLM that implements the fixes, I would be the one who often come up with the solution, and the confidence boost though small was very much needed. When I do start to struggle on something, whenever I start putting effort, most of the time it's just a matter of me caring to fix the problems at hand.
The reason I wanted to become a dev is because of the fact that I wanted to support those whom I care deeply about, and overtime even with a lot of goalpost changes, my motivator has always been largely other people, not myself. This is not to say that I don't do anything for myself, but more so that I would only continue doing things for myself when there are others who I know gives a crap.
So right now I have realised that most of the things I do, including things that does not have anything to do with software, I can only bring out the best of me if there are people who care enough to care about what I do being better. There were multiple points where I stopped caring about a project for a while simply because people who I thought cared ended up either don't or their standards were so low it made me question the point of me caring so much about the things that I do, and there are also instances where I never get to finish something simply because those who asked me has never put any pressure onto me, despite me directly asking for it.
What's good about this is that now that I understand this is how I work, I can put myself into a position where I can do things happily because of others, even if that might not be the case in reality. After all, it's the perspective that's all that matters, as long as I don't abuse it to accidentally harm myself or others.
I usually attempt to write my entries in a way that is more comprehensible than this, I ended up writing it this way to see how it would be like if I put more focus on myself instead of on others, and also it's probably not a terrible idea for others to understand how I typically work internally as opposed to when I'm trying to communicate with other people, if reading all this gives you a headache, here's a :D
____________________