News for hackers. Stuff that matters.
Re:Speak English to me, The secret World of Programmers by fcatalan on Friday March 17, 2023 @04:59AM (#35194740)
It's not just concrete things like command line or linux or old crusty editors, it's about how they lack general computer savvy and flexible problem solving skills.

One example:

I had this guy, it was his second job, the previous one was about some Enterprise Java thing. Intelligent and hard working, and able to learn: we were exploring Erlang for some parts of the system and he was contributing within the month, with just a bit of hand-holding. But one day we get an urgent request for new functionality in the Java parts of the org, so I hand it to him. First task is getting some static data out of a few dusty html tables deep in the intranet and dumping it on a new table in the dev DB so we can start prototyping around it.

A couple of hours go past and I go check up on him. He's deep into some docs for an XML parser and ORM so he can parse the tables and get the data into the DB. He has already like 5 or 6 classes with all their getters and setters but he's not nearly halfway done.

I bring up the browser console, type $ to see if jQuery is loaded in the page, then come up with a one liner that spits the insert statements on the console (I had to google a couple of times, I'm not really a jQuery dude).

But then even that was a bit too flashy... he could just have coaxed the data into the database fiddling around with a spreadsheet and the DB GUI for a couple minutes.

But somehow his default and almost only mental model of interaction with data was overengineered Java, no matter how overkill it was for the task.

Re:Speak English to me, The secret World of Programmers by scoutt on Friday March 17, 2023 @05:34AM (#35194951)
One thing I learned in my 41 years is that nobody thinks like me (or you). It's not that I 'think better' or that I am 'better at thinking'. But sometimes I deal with variables that I can't correctly communicate or translate. I often think that people deals with the same information as me, and will follow my same path of reasoning.

Perhaps the dev thought it should be a tool that you will be using every day, or a thing to maintain in the future.

For example, in what you wrote, I really understood the thing you wanted to do by reading what you've finally did. Perhaps the input to the dev should have been: "Hey we have to do this, and we need this mock data from this HTML to start developing. First we take the data out. Don't worry much about how you do it, even if it's nasty. We don't need a full-fledged production-grade "HTML data extractor" to do this. This is data that we would be importing twice at max. So even if you lose 15 minutes copypasting it into a CSV file, it's fine".

Re:Speak English to me, The secret World of Programmers by alpaca128 on Friday March 17, 2023 @05:46AM (#35195009)
Building the long-term solution first is often wrong even when you need one. I use the quick and dirty method until I know I'll do that task more regularly and I know enough about the problem so I don't need to make wild guesses about the design.
Re:Speak English to me, The secret World of Programmers by scoutt on Friday March 17, 2023 @06:00AM (#35195087)
This is a clear example of what I was talking about. The fact that you use a given method doesn't mean other methods are "often wrong even when you need one". This is just the way you think and work, in the position you are now.

If your boss at the workplace you've been working probably "within the month" or a little longer tells you to write a program to do X, you'll maybe pulling all your knowledge out to write a program to do X as if it were the most important program in the world.

Re:Speak English to me, The secret World of Programmers by watwut on Friday March 17, 2023 @06:30AM (#35195249)
Not everyone do that tho. And that includes pretty good senior engineers I work with.
Re:Speak English to me, The secret World of Programmers by recfab on Friday March 17, 2023 @04:22PM (#35202381)
Learning to work "quick and dirty" is something I'm actually working on improving, personally.

I don't necessarily do BDUF or anything, but I generally do more "engineering" than is often directly necessary. Partially, it's my personality. But part of it is that in my experience, prototypes have a way of becoming production systems.

Last time I had to do a prototype for work, I split the difference: working quick and dirty, just meeting the minimal requirements, but also documenting what we would need to do if we decided to move forward with it. That felt like a good balance.

Re:Speak English to me, The secret World of Programmers by Aeolun on Friday March 17, 2023 @11:33AM (#35198405)
> I use the quick and dirty method until

I use it until I realize it’s not quick after all. Now I default to writing one off scripts.

Re:Speak English to me, The secret World of Programmers by stametseater on Friday March 17, 2023 @12:50PM (#35199602)
> First task is getting some static data out of a few dusty html tables deep in the intranet and dumping it on a new table in the dev DB

For something like this, the first thing I'd do is extract the first row manually in Vim, recording my actions as a macro, then use that macro to extract the rest. That would take a few minutes tops, depending on the structure of the data it might take seconds or there might be a bit more massaging necessary, but no more than about 5 minutes for this step. I have a keybinding that maps execution of the macro in the q register to the spacebar to streamline this process; I double-tap q to start recording, press q again to stop recording, and press/hold the spacebar to execute that q macro. In my experience, 2 or 3 passes are usually enough to cleanly extract a table of data from some random HTML page.

If the job was a once-and-done, then I'm already done. If I am meant to be creating something that can be re-used later, then I still do the above anyway and now I have the result with which to test whatever more permanent solution I'm writing.