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.
sorry for earlier post, a lot of stuff still hurts.
i'm in poland. my type of manager would be a person who accepts me, gives me clear target and constraints and leaves alone, person who does his job, person who doesn't bullshit me and says the truth if we're in shit or not and realises that we are all on the same boat and we're also waist deep in shit so there is no point in fighting each other.
on 16 IT companies I worked in, there was only 2 such people. that's 12.5%.
shouting and batshit crazy behaviors are normal.
someone here wrote that some things are cultural. a lot of stuff is cultural in poland. its a catholic fundamentalists country. so anyone who solves problems is a problem. people here had no type of french revolution or industrial revolution. basically its feudalism in modern dress.
last guy i worked for was freestyling everything. he had no plan. he told me he uses his imagination and he tells people what he had imagined and they have to do it. i found out about this when i was trying to resolve communication issues that i had with him. he often imagined new stuff and forgot to tell me about it and during code reviews he blamed me for not doing what he wanted me to do. i ditched the guy because he didnt wanted to do anything with that problem. the guy sabotaged himself throught the whole time. sometimes he had some strange outbursts.
there is a lot of such people in poland. a lot of office workplaces are like kindergartens. there's constant chaos. no plan. big ideas but nobody wants to wait. people who want things done asap usually are abusing others, not to mention that they are total morons cause abusing people takes time they dont have. most companies are micromanaged.
thing that keeps me going is knowing that, as someone said here, this stuff is cultural and that there are some better places. although after all those companies i'm kinda like a dog from the impound. i dont know how to trust people. word nation is for me the smallest joke possible to say. i'm afraid of polish speaking people.
most managers is drug&alcohol infused money starving 10 year olds with no fucking idea what they are doing and knowing only how to abuse people like their fucking abusing power figures called parents
FP programmers are above the nonFP in terms of skills. Mangers are non-functional programmers who understood they are shitty programmers and ran to do management instead. They never knew anything about FPs cause they didn't get there. Also mangers read marketing mumbo jumbo on the web - this is the cause why some languages are used in wrong industries etc. If you dont know the benefits or that something even exists - you wont use it. Most people on the planet dont know what FP can give them.