you cant do it on a first go. i write a draft of what has to happen. often i draw drafts of the solution on a4 sheets of paper(my own blackboard, the best tool i know to make software). i do research and update the drafts to a point where i type in the code. code is the last thing i do. i laught that i make coloring books and not coding :) i am quite fast and i have little problems with switching contexts. the code is much better as i "see" the whole solution. i have much better abstractions. in a recent task i have found with this way of coding, many places with bad code and made them better as they didnt fit the cleanliness of the soulution. they just stand out like the eifel tower in paris.
wow, so my assumptions that coders dont design and draft solutions, but type in furiosly code to make it work where true. i recently begin to believe the teaching how to create software is fundamentaly flawed. now i have more evidence. wow.
also, i use i3, tmux, emacs and vscode on daily basis. i changed my unix experience(mostly cli) into something close to a roguelike game - shell scripting + fzf + make + direnv can make cool things together. the less typing the better, and faster.
You could have already asked me if breathing makes me bored.
when i go ona a bike trip, i dont like wasting time on going through the neighborhood i know. so i take the train and go up to the more interesting part of the trip and have fun. do you know this trick?
i dont like typing. it is a waste of time and very slow and error prone method at least in my case. i have too big fingers and i make too much spelling errors(not related to fingers). i developed my own style copy/paste/search/replace method. simply i just copy paste tons of code(you cant type so fast) and replace names. removing redundand code is faster then typing new one :) you are not bored typing for the milionth time a for loop? :)
dev environments suck with mouse, because people talk things like that(that mouse sucks and that you have to keep your hands on keyboard) and by that no one is spending time on developing dev environments for the mouse. and they are really flawed in this matter. vim and emacs suck at using mouse so please dont say mouse sucks. those editor suck at that.
for years i was looking for tools good for my style of work until i figured out that no one makes them and my coding style is completly different from the one for which the tools are made for(i think people sit and type in the code as they go). you can find in many places that to be a dev you have to write code. that to be cool dev you have to type and use vim and there is no other way. which is bullshit. you want to make software faster? you have to operate on big chunks of code and not a single lines. the snippets suck also - you have to know them and interface is often clumsy by default. most of the things you have to remember(i think that makes being a dev hard). why we dont have starcraft like interface to dev?
I want to make software development so simple that cost of entering the software industry and competing with current companies (except infrastructure) will be close to nothing.
I really want that normal people would be building functions on their computers which today are startups.
PHP community is here a funny example. Basically an example what happens when you bully coders that their languages sucks. They went for fullblown corporate style clean code rules (slow), for a language used in places where speed is crucial. This language currently is completly suboptimal for business if you apply clean code rules.
I've worked in 2 companies that used PHP, where php programmers formed a "clean code religion". One company died, another lost a lot of money. It was directly connected to the clean code rules - they went over the deadline, by a lot, they created overbloted code(but ok with the rules) that was pain in the ass to work on. "Code is documentation" was repeated like a mantra, which is a pile of bullshit by the way and is not making stuff easier (and I ended up with my own docs anyway). Clean code rules are cool if you don't know what you're doing and you want to hide it. It's a way to say "its not my fault, look I followed clean code rules, my work if flawless".
And coders in those companies didn't even noticed that there is something wrong. I've noticed when it was too late. In the second company, on my last day (half the company was sacked cause client got pissed and cut the money), we where in a restaurant eating and talking about programming stuff. Guys (who weren't sacked) where discussing a new web page they where working on. The main frontend guy, said he spend 2 weeks perfecting a dynamic menu cause he had some problems with loading time. The guy was rendering the menu in JS, on frontend, record by record. I asked him "if making dynamic menu is such a problem, why don't you have it prerendered in a text format, and then load that text when page loads, you won't need to render anything?" He replied that this would be against the rules and the code would have to use hack or something. I don't know any fucking rule that wouldn't allow me to do such a thing. I recognize eyes of a fanatic when I see them, so I've shut up. They solved the problem of menu by displaying users a loading gif when the code waited for menu to be rendered
After that day I decided I wont do any PHP gigs anymore. Nor work with something similar in syntax to PHP.