*Jonathan says this was inspired by my post on unschooling oneself.
I have to say that there was one signal occasion in which we all pooled our ignorance: my very first writers group. we really had not a clue. But fumbling together, we all became markedly better writers and eventually all were published. No, I don’t know how it works, but it works. -SAH*
Pooling Ignorance- A Guest Post By Jonathan R. Lightfoot

I don’t precisely remember when I first used my off-the-cuff catch-phrase at work over 10 years ago, nor whether I had seen it somewhere and adopted it or just created it myself. Original or not, it is the truth of it that is important. As long as it stays true it matters not whether I borrowed it or not (though I like to give attribution when due and known).
“Let’s Pool our Ignorance” It is a Paradox. When I first used it It was a seeming self-deprecation that was also a form of arrogance. No, I don’t know the answer, but yes I can get a good result, answer the question, find out what we need to know and do what we need to do — Without another set of credentials or series of classes.
It was also my way of giving the questioner buy-in to the situation. You are asking me a question, but you may already know more of the answer than you think you do. Let’s take what we both don’t know and come up with a working solution.
The deep dark secret within pooling of ignorance is that most of the time we know hardly anything about the subjects and issues we deal with on a daily basis, but this doesn’t prevent us from living successful and well-ordered lives where our ignorance always highly exceeds what we know.
So how does one Pool Ignorance successfully? It starts by taking a personal inventory of what you think you already know. Don’t be surprised if you know a lot more than you thought you did, and don’t be disappointed if you know a lot less than you hoped. Sometimes the big holes tell you more than the well-ordered facts.
This is followed by interviewing the other people you are pooling ignorance with, to see how much you have in common, what is different, and variations in what was presumed to be the same pieces of data.
I base my pooling on a world view gained through a liberal arts education and a liberal arts mode of thinking. Almost any thought, idea or fact I can find I can place it somewhere within the framework of the things I already know. This means that the great gaps of ignorance are a part of the great matrix of knowledge and learning that I have begun and will continue, for the rest of my life. I may look at sections of it in hindsight with a completely different perspective and conclusion than when I began, but I am able to build upon it filling up some holes, replacing some spans with new data, and make sense of what would otherwise be an often senseless world.
They say that one of the hardest things for anyone to say is “I don’t know”. But when you pool ignorance, you say this, freely, and without shame, all the time. When you pool ignorance you find other people fascinating as you gather what they know, and often help them understand better what they already knew as you discover great new answers, avenues and vistas.
Covid has turned may of our lives upside down. I have been unemployed for over a year, and during that time I have faced several unexpected projects at home. It has pushed me into the position of a general contractor on projects related to plumbing, masonry, carpentry, electrical, landscaping. I was told first off by a good friend that just one of those projects was too big to do, I should give it up. But I cycled through him and others, who helped and walked off, and I picked the brains of many others on what to do. Some of the most emphatic “you can never do it that way” type people were the greatest help, as I blazed forward after doing it the way they said it couldn’t be done.
I didn’t do all the work myself. My hands didn’t have the skill the physically do it all, but I was able to understand what had to be done in those cases, and find the people with the skills, not the ones who could say the right words, but the ones who could actually do the work.
And I had my failures here and there. But they were the greatest successes of all. What I learned from them was invaluable.
Pooling ignorance is liberating. There isn’t only just one right answer or way to do most things. There are many ways and opportunities, and you can try many of them. Now, when something is wrong it is wrong, but more often there is a multitude of right options to choose from.
School may not make us memorize lists by rote, but practically it does make us learn the one way, the right way. Get out of that mentality, and find the freedom in an ignorance that knows more when it knows less and takes advantage of what it does not know to leverage a better future.
Don’t ask me how I became a guru at work. It wasn’t my idea and if anyone had asked me, I’d have responded that surely there was someone around who knew more than I did. It turns out I would have been wrong.
Whenever someone comes to my desk and says, ‘I have a question.’ My inevitable response is, ‘I have an answer. Let’s see if they match.’
This generally gets a smile, gets the other person to relax a little (asking for help is stressful as hell, but then, so is being a guru. There’s sooo much pressure to know everything!), and also sets the stage in case my answer is ‘I don’t know, let’s go find out.’ (FYI, my stock answer is 42. No, it rarely matches with the question being asked, but it helps me sort the nerds from the geeks.)
I find that doing things this way takes the pressure off me to know everything (because that is clearly impossible). It gives a confidence boost to the questioner, since it lets them know that there’s stuff that the ‘guru’ doesn’t know, so they’re totally not expected to know everything either. And once we’ve discovered the answer together, we’re both better off for it.
“I don’t know,” can be a very enlightening answer, as long as you don’t stop there.
I had two stock phrases: “I don’t know.” But sometimes that isn’t accepted. “It depends …” Either way. It is lets research this some … Well I still have, it is just I’m rarely asked these questions anymore. I LOVE retirement.
I hated being the “expert”. Anytime I was responsible for any new or specialized feature I tried hard to get any one else interested in knowing too. Failed miserably but I tried.
Know one thing they don’t, and you are stuck.
When our department opened its India office in 2006 they sent 2 people to get one on one training in the US and two from the US to India to train everyone else in 6 week cycles. I got one of the first two to visit the US. I didn’t realize until 3 weeks in that my trainee was not another grunt like me but their future senior VP. When he went back that instantly made me a guru to the rest of them that I didn’t even know, because who else their VP?
I found that amusing and daunting. I also realized I had to decide what sort of legacy I wanted to leave in their corporate culture, since I had been given a unique form of influence and way to make a difference. I chose to encourage their own confidence to question us, the USA office, whenever our answer didn’t make sense. I gave them the heritage that the guru isn’t always right, without eroding confidence in my ability or theirs.
In 2007 I got to visit the India office for 2 weeks and met a lot of the people. A guy named Somnath, who I had not seen in the US, came to me with a question, and I reviewed his issue and gave him an answer. A couple hours later he came back and asked me again, and I realized I had moved too fast and given him the wrong answer. I said “Somnath, always do what you just did, If an answer we give you doesn’t make sense, keep coming back until it does.” And I shared the Somnath story with many people there for the next 13 years.
> If an answer we give you doesn’t make sense, keep coming back until it does.
—
…and that’s the difference between information and understanding.
The way to tell the difference between a pro and a poseur on Wall Street is to find out what they know. The poseur knows many, many things and the more credentialed he is the more he knows. The pro knows that “no one knows nothing”. Why? Because we’re dealing with the future and we can only know about the past. The key is to find a way to flourish and deal with the stress whilst not knowing. The doing is not hard, realizing you need to do it can be.
> Because we’re dealing with the future and we can only know about the past.
—
The present is iffy, too…
Sounds like most of my meme gun ideas….
I usually see this type of thing working in electronic fields. When someone is dogmatic though, the entire thing falls apart.
The holes in the knowledge are REALLY helpful– a lot of the time, I know how to find answers, but not how to tell good answers from bad.
While someone with the right surrounding information can tell what fits.
I like that term — “surrounding information”. Have to borrow that, should come in handy.
Like a jigsaw puzzle. The surrounding shapes don’t tell you what the picture looks like, but you get a decent idea of what it could be, as well as finding out what shape of piece that you’re looking for.
I think you’re the one that linked some of the news stories that made me realize it was an important tool– waaaaay back when, some folks doing news stories about Lord of the Rings.
And they ran into parody pages, and didn’t have enough information to recognize the parody.
When I do some religious research, I don’t have enough information to know what is legitimate, and what is “catholics worship mary” level anti-information.
(information that is not just wrong, but if accepted will warp all the surrounding information)
The Onion used to have that problem, and now the Babylon Bee.
The Babylon Bee’s problem is, they can’t find anything stupid and crazy enough that our Fearless Leaders won’t up and do it.
Like all those far-out Conspiracy Theories from last year that have come true.
No one works harder to stay ahead of the news than the Babylon Bee.
It is an interesting situation when the information “doesn’t exist”, (when nobody has yet figured it out).
Some of the seemingly adjacent potential information is absent, some is information, and some is anti-information. IOW, good luck finding it, and figuring out which is what.
A lot less windy than the short German dude.
“… the material which one has acquired through reading must not be stored in the memory on a plan that corresponds to the successive chapters of the book; but each little piece of knowledge thus gained must be treated as if it were a little stone to be inserted into a mosaic, so that it finds its proper place among all the other pieces and particles that help to form a general world-picture in the brain of the reader.” [excerpted from a *much* longer paragraph]
– Adolf Hitler, “Mein Kampf”, British (James Murphy) translation of 1939.
It ia getting harder to do – disinformation is increasing everywhere
When I was studying for my comprehensive exams in grad school, I referred to it as “Plumbing the depths of my ignorance.” There were entire sub-fields of US history I had 0 clue about, such as diplomatic history. Talk about cramming, and making stacks of notes about “areas I need to fill in.” I’m doing that again with European history. I thought I knew a fair amount. I don’t know enough, but I know where to go to start finding the bits and pieces I need.
It was sooooo much easier when I had a huge academic library in walking distance!
Oh, God. Qualifying (comprehensive) exams. There’s a nightmare I never want to revisit!
When I worked in a big box in garden- or just passing through the area, I would often be asked- “Will this insecticide work on this pest?” I ad no clue, I know just basics about poisons. So, I’d say, “Well, let’s see. There’s instructions on the bottle.” And I’d peel the instructions open, read them out loud, then say 1 of 2 things. Looks like it will work.” or “Looks like you want to use something else. Let’s see…” and peel the instructions off something else.
Believe it of not, customers constantly praised me to management for knowing so much.
In plumbing, I’d just give them an answer. If I had to look an answer up- well, it was a very difficult question.
In appliances, “What’s the best washer?” The right answer is, “There is no best washer- there’s what washer is best for you.” (Good for any other appliance) And then ask questions until you get them there. I have my favorites, but not everyone wants a front loader.
Where did I pick up the fact in my education that we are not in the age of knowing the answers but knowing how to find the answers. When right in front of you I suppose it does help to actually look at them.
Being an expert is a PITA as many, if not most, people want you to do the work for them. I’ve long lost count of the number of times I’ve told people, “You have full access to get that yourself. Here’s a step by step task breakdown how to do it.”
I tell my kids: “I can do it for you, but I can’t learn it for you.”
Oddly enough, that’s more or less worked in terms of how they ask for help.
This is why I prefer working with teenagers to adults.
That’s the goal of discussion groups in classes. I used to do that to my students. Get them to teach each other by telling them, each person state one thing they got from the reading and it can’t be “Oh, what she said.” Then let them have at it. Amazing what they figured out.
On a “working in an office” note, NEVER become the expert on un-jamming the printer or copier. If you figure out how to do it, make sure nobody else ever sees you doing it. If it jams and you have others standing around, just throw your hands in the air and walk off muttering about seeing if the copier in accounting works…
I can see having a sledge… “Can you un-jam XXXX?” “Sure…” *picks up sledge* “..Uh, never mind.”
Of course, it might become, “Can I borrow that?”
Or an ax, and a really eager look in your eyes. 😛
You tempt me, you do.
Multi-function copiers. Can’t live with ’em. Can’t throw them off the roof.
Preach it, Becky, preach it! Since the Copier of Doom retired, I get called to the main workroom far less often.
I got caught by that in my first office job. Learned my lesson. Never again (up to and including the shared printer/copier at the job I left just last year) did I let on that I knew any secrets about any copier or printer.
My first job after going back to work, ’90, included hardware, with the programming). I learned to not like hardware. My second job, my first day IT called to say “hardware was here but won’t get it setup for me until the afternoon, we’re sorry.” Started to say “That is okay, I can do it.” Stopped my self. Paused. Replied “That is okay. I think there is some paperwork I need to do.” Hung up and did a little no more hardware dance …
I deal with hardware … At Home, or for mom. AND most of our hardware is laptops (not something to take apart) or printer. And generally by the time the printer needs “help” we can’t get ink for it anyway … Replace Printer Time.
Son put together his own desktop. Mom know nothing. Nada. Zip. Nothing.
Programmable barcode handhelds … Last job. I’d barely been on the job for 6 months when the boss mentioned he wanted to bring the code in house VS rely on the company that they got their hardware from … Ironically, that is what they ended up doing, again in 2016, after I retire, but back to when I first started. I made the mistake, and trust me, in a lot of ways it was a HUGE mistake, to remind him what my last job was … Writing a software tool that allowed programmers to generate the C Code to write programs for barcode handhelds … Which meant I knew how to write programs for the handheld, especially the simple one they had (no verification, just basic inventory count, or issue, data collection). Not only made changes to that program but fixed the PIA process to upload data and the wide range of programs, with not common code, that did it. OTOH wrote C (not new), C++ Embedded (newer), and finally C#, as the units progressed. FWIW, I hate Intermec and Symbol …
Never become the expert in using the biohazard equipment.
The key is the first step of admitting ignorance to the rest of the group. A lot of people have trouble saying “I don’t know” and instead spout some theory that they guess might be right.
This isn’t just a thing in small groups. It applies to lots of other circumstances too. For example I recently had to figure out how to identify all the IP addresses in Crimea. This turned out to be a surprisingly hard problem because if you ask 3 different IP geolocation sources where one of these addresses are they’ll come up with radically different answers (there are more than 3 sources, but 3 is quite enough for this example).
One will say “Yalta, Crimea”, one will say “Sadovoye, Respublika Adygeya” (somewhere fairly nearby in Russia) and one will say “Ukraine” and point you to Kiev. Take a different address and similar things happen only now it’s the first provider that says “Moscow, Russia” and the third that identifies the address as “Simferopol, Crimea” etc.
When you dig down all the services will tell you the location they give is accurate to within a radius of 100-1000km (depending on location, some will give you a specific accuracy per IP, some will stick to generic). 1000km from Crimea is a joke as it includes all seven different countries around the Black Sea and several more (possibly over a dozen). But even 100km accuracy is poor given that Crimea is a peninsular with dimensions of 200km N-S and 300 E-W. 1000k
It turns out there’s a trick to figuring it out, but it is clear that the geo IP services either don’t know the answer but are unwilling to admit it or don’t know that they don’t know the answer
So now the FICUS has tried to weasel out of any responsibility for the latest total cock-up in Afghanistan, shedding at least two whole crocodile tears. Then there was the Capitol Police officer sniveling about having no choice but to shoot an unarmed woman because she was such a dire threat to the dozen armed officers facing her, boo hoo hoo. Ashli Babbitt must have been a White Supremacist, dontcha know.
I couldn’t watch. I can’t watch anything from that lot any more. Lies turn my stomach.
———————————
That is OUR house. Congresscritters are just the help.
If the photo from in the chamber is any indication, it’s a wonder he didn’t manage to pot a few congresscritters too. (Note trigger finger and where the gun is pointing.)
https://www.newsweek.com/exclusive-police-lieutenant-who-killed-january-6-capitol-rioter-ashli-babbitt-finally-identified-1623166
“Byrd is a controversial figure with a record of mishandling firearms, including once leaving a loaded pistol in a Congressional Visitor Center bathroom. Roberts said Byrd’s decision to fire his weapon on January 6 indicated his unfitness for duty. “If I was a congressman, I’d be very concerned about him carrying a gun around me,” he said.”
Gee, ya think??
> including once leaving a loaded pistol in a Congressional Visitor Center bathroom.
If you wear a proper shoulder holster instead of trying to hang it off your pants, that’s another non-problem.
The holy grail of pajama carry has long eluded me…but perhaps a shoulder holster is the true answer. Lateral thinking! 🙂
*Snerk* Gee, maybe he was too dangerous when he tried to draw from a shoulder holster – no trigger discipline, perhaps, or he muzzled himself too often. *snerk off*
In all seriousness, I listened to the Range Boss explaining WHY for some people, belt carry is safer for themselves and those around them. It was educational.
A group of Capitol Police filed a lawsuit against Trump and several others today. I suspect that it’s not a coincidence that the interview with Babbit’s killer aired today.
As for what Biden is doing, sadly it was pretty clear from the start that he was going to act in this fashion. One of the first things he did when it became clear that this was going to be a disaster was to blame it on Trump. In fact, it was even a source of pushback a little while back. I don’t remember exactly when it happened, but a while back a reporter was questioning Psaki about withdrawing from Afghanistan (this was before we fled Bagram Airbase like a thief in the night). Psaki blamed the withdrawal from Afghanistan on Trump’s negotiations with the Taliban, but the reporter pointed out that the Biden administration had cancelled plenty of things done by the Trump administration, including some that involved foreign countries.
It’s all Trump’s fault for making sane, sensible plans, thereby forcing them to employ insane, nonsensical plans! Because Orange Man Bad!
Yeah, the whole thing has been surreal. It actually surprised my that 13 casualties was the highest hit we’ve taken in over ten years.
But it’s also weird because I’m neck deep in some WWI and WWII stuff, and I know that a full hot battle, the casualties can easily be orders of magnitude worse. And, probably will be. What happens when a manpad takes down one of those C-17’s?
Will we bomb the perimeter? Or will our positions be overrun by insurgents using the panicking crowds as human shields. Or will we bomb out the area, but only after our forces in the ground have been cut to ribbons?
People are horrified and angry about today, but the tsunami of blood is on the horizon.
“Congresscritters are just the help.” And yet they’re no help at all. They’re helping this country just like all of Penelope’s suitors helped the kingdom of Ithaca (and when is Odysseus coming home, btw?).
I wandered through a bit of news that had part of the FICUS’s speech about the explosions. Things I noted
1) almost no affect in all but a few things, that doesn’t fit his previous behavior he’s a screamer
2) voice was down right weird, like damage to the vocal chords or voice box
3) Mild to moderate asymmetry in his facial expressions, Maybe I’m imagining that but it seemed that his right side was less responsive than the left.
Not that this is news to anyone here but it seems something is SERIOUSLY physically wrong with the FICUS. Wild ass guess he is experiencing/has experienced mild strokes or TIAs. He certainly didn’t look THAT bad in the democratic debates. He was an idiot but that was just Joe “screw the pooch” Biden at his normal self. This is like watching a refugee from a John Romero movie. The bad thing is I don’t think there’s a tolerable choice down to the bottom of the line of succession. We are well and truly schrod.
Yeah, the Democrat strategists must be having conniption fits, because even for their purposes there’s not a good stack. What they should probably do is get Kamala to resign, install a semi-competent (by Dem standards) VP, then take out Biden… But the whole thing has a lot of risks. Certainly Pelosi would be a disaster. And they risk losing their narrow fraudulent lead in the Senate.
Problem one, how do they replace Kamela before they replace her?
Because they need her to control the replacement.
The last name I heard kicked around was “Mayor Pete.” However, that was two-three months back, and then silence.
That’s the Obvious Predator gay guy, right?
(Anybody getting huffy, when someone builds their entire campaign around “I am the gay guy,” get pissed at THEM. Not people who notice.)
Yes. Formerly Mayor of Bloomington, IN, who had unhappy constituents. Not because of his sexuality, but because he did a poor job as mayor.
Which they weren’t supposed to notice, because he was Such A Nice Person and Gay, right?
Seriously, how the F does that guy get past central casting for big warning signs of “no, not a nice person at all, weaponized nice who will do horrible things without a twinge”?
He did the DIE dance and as per usual once the dust settled the 12% or so black “representation” of a 16% black population had dropped to 5%.
He has baggage.
Yep.
Pete Buttigieg is actually 14th in line of succession (Secretary of Transportation), Marty Walsh is 11th (Secretary of Labor) full line is here : https://en.wikipedia.org/wiki/United_States_presidential_line_of_succession#Current_order_of_succession) Not a fan of Marty Walsh by any means but at least Boston isn’t the total hellhole that many Blue Cities are (merely a heckhole? although current acting mayor is total idiot and is trying to play catch up with Seattle and Portland). Mostly Obama leftovers or longtime Dem Pols.
gah
Perhaps masking too much gave him strokes. Perhaps he was senile enough that he could not do self care in that respect.
Wise words, and something I’m stumbling my way through in order to figure out a lot of things… Unlearning bad training isn’t easy. Glad everyone’s been so patient with me in the process!
You can find out what you don’t know by trying to write about it. Like, “What would a man from another planet have seen while traveling from Europe to Japan in the spring and summer of 1637? How would he write it up in a report?”
One time honored trick in my profession (software engineering) is, when someone comes to you with a problem, have them walk you through the problem as thoroughly as possible. A little more than halfway through the light bulb usually goes off, and they spot their error. Makes YOU the guru–who knew?
Walk-throughs probably predate computers. But they’re still around because they work… even though I’ve worked where nobody else had ever heard of such a thing, and were gobsmacked when they saw it in action. It seems to go in and out of fashion,
I’ve used them in aviation trouble-shooting for things like electronics, and complex “black boxes” like a certain type of autopilot. Oh, and a really odd control-linkage problem that should never, ever have left the other shop. [Short version. The controls should NOT have been linked.]
I once, long ago, was in a program management class. One of the exercises has always stuck with me. We were given a sheet listing some 30 tasks that were all part of a software development project from requirements gathering to architecture, code, and documentation and everything in between. He asked us to put them in the sequence which they needed to be done. Each of us did that, and then the teacher asked us to share our lists with the others at our table and come up with a list that the group thought best. The teacher then shared the answers and we each scored our individual lists and the group lists. Even though my individual list scored significantly higher than that of anyone else at the table, our group list did even better than that. It was a wonderful object lesson. You may know more than anyone else about everything, but someone always knows more than you about some part of that everything. Stay humble my friends.
Same exercise. But by then the older students, pretty much were in the same group. Individually our lists were highly scored. Together we got 100%. Regardless of our backgrounds, prior, and sometimes current careers, we’d all been around the block, once or twice, with programming commercial projects. Of coarse we had a lot of side comments of “Yes! That allllllwwwwwaaaayyyyssss Happens! ….”, “NOT!”, “I Wish!”, etc., heavy to sarcasm.
—–
There has never been a programmer who when asked to throw together something quick to prove a sampling work of concept, who hasn’t on presentation been told “Great Flesh it out and lets get it released.” <– That. Don't Do.
“Why can’t we just ship the demo? Why do you need so much more time? It looks fine the way it is.”
Demos are generally focused on the user interface which is all the common user knows about the system. Why shouldn’t they assume that if all the buttons for the functions they want seem to respond to their input, then the system is ready to ship? That’s why I insist no one do user interface mock-ups with real code. A picture generated by Balsamiq or something similar gives the audience the idea of how the system is to work from their perspective, but is intuitively understood to not be actual working code.
Yes, but in that case it was the Director of Information Technology, complete with doctorate in Computer Science, who thought we’d pulled a rabbit out of out hat and were months ahead of the schedule he’d signed off on.
He wasn’t quite as bad as a later boss, who only wanted a button to do some_complicated_thing. It was only a button, how hard could it be?
Um. Ouch. Too close for comfort 🙂
On Fri, Aug 27, 2021 at 3:42 PM According To Hoyt wrote:
> snelson134 commented: “https://www.youtube.com/watch?v=kJAx_E4Scb4” >
Um. Too close for Comfort 🙂
Have I mentioned how much I love retirement, from coding?
OMG! LOL 🙂 and every other silly idiomatic abbreviation. Thanks.
It’s what you think you know and don’t that causes many problems. This won’t make sense to most non-network people, but was working with a Senior Network Engineer who was doing cleanup before lunch and he pulled the default route off the main router. Basically this means that any traffic covered by that route, like the internet, no longer was being directed and was being dropped since it no longer had anywhere to go.
It was quickly resolved but many questions were asked on how someone could become a ‘Senior Network Engineer’ without knowing something as basic as what a default route was and why it’s a bad idea to remove it in the middle of the day.
That sounds like the exciting moment when someone put block 0.0.0.0/0 into the firewall rules. To be fair it was a bug in that he put in an invalid IP address/subnet and something in the system turned that invalid address into 0.0.0.0/0 but it led to an interesting few minutes
> pool our ignorance
Sliding in from a different angle, in John Brunner’s “The Shockwave Rider” Delphi boards were used for economic and social predictions, gambling, and religious counseling. The government ran black ops to try to tweak the Delphi outputs to give results they liked better.
> They say that one of the hardest things for anyone to say is “I don’t know”.
I used to have a hard time with that, myself.
Richard Feynman *loved* to say “I don’t know.” Because his next words were usually, “Let’s find out!”
This. “I don’t know” is okay, but it needs to not be the end of the conversation. Especially if dealing with teenagers. When dealing with teen boys the follow-on should generally be something along the lines of “And I forbid you from testing it out on your siblings!”
> There isn’t only just one right answer or way to do most things.
That seems to make a lot of younger people profoundly uncomfortable. They’re the product of an education system which acknowledges one, and only one, correct answer. That there can be more than one answer, or none at all, isn’t something they’re used to dealing with.
Sometimes I think that’s the main reason behind the decline of the Perl programming language. Larry Wall’s motto was, “there’s more than one way to do things.” Newer languages like Python were presented as less flexible and more structured, and that those were *good* things.
I programmed in Perl for about 10 years and switched to Python last year. The thing I dislike most about Python is the whole culture of authoritarianism, how everybody should do things the same. People in the “community” (gag) scold people for wanting a line length longer than 79 characters! So stupid. And don’t get me started on the idiocy of Python “type hints”. The linters enforce all kinds of petty rules, like the number of empty lines you can use. Python is an okay language, but there are definitely things I miss about Perl, and one important one is fewer rules and regulations.
My co-workers are all much younger than me, and all of them are much more into enforcing rules and implementing useless linter based typechecking. I assume it’s either something they were trained into in college or it just comes from their age cohort. Compared to a them I’m a radical against (useless) typechecking. I can see the benefits in something like Rust, where type checking actually helps, but in Python it’s all just a form of documentation and you end up doing stupid things to avoid the linter complaints.
There are no bad programming languages, only bad programmers. And a bad programmer can make a mess with any language.
In defense of linting rules: I work in Javascript, not Python, but code conventions enforced by lint absolutely have their place, especially in a corporate environment where hundreds of programmers could touch a single codebase over the course of a few years. I’m an approved code reviewer at my job, and without linting rules and guys like me enforcing the rules that can’t be linted, the code would become unreadable gobbledygook before you could turn around. Yes, some rules are annoying (no really, this one function needs seven parameters, screw your 6 or less rule, and I have had to split a perfectly good function into two solely to satisfy code complexity requirements) but overall they’re necessary. Again, in a large joint-access environment.
THIS. You can’t take the time to figure out the individual quirks of 50 developers working in the same code language but 4-5 different actual languages,
camelCaseIsAnAbomination();
snake_case_rules();
Also, yes i do have a reason for implementing this data structure, and no, std::vector<std::vector<std::vector… wont work!
Same experiences here.
I’m trying to write some fast compiled libraries for a project I’m working on, and running into the same sort of doctrinaire CS dogma. I’m getting challenged on things like writing certain data structures and container classes: Was told that you are never to write your own container classes, or allocated/deallocate your own memory within them. “You aren’t smart enough”, and what you do “isn’t optimized or tested” (despite the fact I have all the tests *right there in the code*, and as far as I can tell the computer thinks I’m smart enough because it’s *doing what I told it to*. I’m working with multidimensional arrays that need to have their buffers contiguous in memory. std::vector<std::vector<std::vector>>>>>>>> a) isn’t flexible enough, and b) breaks up the memory into buffers scattered all over the place in memory. (The contiguous memory thing is so that I can point to data being fed in from matlab or python via a C or mex interface without having to do some awkward slow copy operation.)
Tried explaining that, and was told that I should instead look into other libraries to depend on. “Doesn’t OpenCV have a 2d array class somewhere?”
(head —> desk)
Where did this attitude come from? As far as I can tell, the founding programmers in any field reinvented whatever the hell they felt like inventing, and everyone uses their weekend hobby projects (whether they are crufty or well done) as if they are unquestionable artifacts handed down by the gods. No one else has permission to originate, only the gods have permission to originate.
What happened to the hackers? Where did all these cultists come from?
Interestingly enough my job ’90 – ’96, required me to be creative. If it was easy then the casual end users could do it using Excel, dBASE, system libraries, etc. More than one system that was in status of “almost right, but can’t do this …” which generally was a report that couldn’t format correctly, constantly having to add to array sizes (fixed arrays), *adjust database definitions, or whatever “took too long”. Generally meant going in and gutting at least 1/3 of original, replacing, and adding new stuff (system would then be 2/3, or more new). Did get to create a few solutions from scratch.
* My solution for that got squashed by the tool on a new release in early ’96 … “Oh that was a bug that was fixed. You can’t do that.” Arrrggggg. A “bug” I exploited … A Lot. Division was sold that spring. As long as the programs weren’t changed and recompiled. Or whomever ended up with it stayed with the old compiler, they were fine. Needed something from the new compiler? Have fun … It was frustrating to leave a lot of little systems without ongoing solution, and one large system fragile, but one person can only do so much.
OTOH my job from ’04 – ’16 was a lot more restrictive. Didn’t have the freedoms had from above job or the replacement job from ’96 – ’02, again, full control, other than the tools on hand. Needed a solution not easily available? Figure it out an run with it. I know all the solutions I did were in full use until the product was retired from sales in ’10 or so. But the last job, creative options were not encouraged, on the grand scale (someone else figured those out and had to stay with those standards). Did sneak in a few tweaks (even within the rules, just not how was expected) 🙂 but very, very, small scale.
Same place all the other “standards” fetishes come from: “lawyers”. As long as you are following the orthodoxy, you have a defense when Murphy strikes and someone starts looking for “fault”.
Same experiences here.
I’m trying to write some fast compiled libraries for a project I’m working on, and running into the same sort of doctrinaire CS dogma. I’m getting challenged on things like writing certain data structures and container classes: Was told that you are never to write your own container classes, or allocated/deallocate your own memory within them. “You aren’t smart enough”, and what you do “isn’t optimized or tested” (despite the fact I have all the tests *right there in the code*, and as far as I can tell the computer thinks I’m smart enough because it’s *doing what I told it to*. I’m working with multidimensional arrays that need to have their buffers contiguous in memory. std::vector<std::vector>>>>>>> a) isn’t flexible enough, and b) breaks up the memory into buffers scattered all over the place in memory. (The contiguous memory thing is so that I can point to data being fed in from matlab or python via a C or mex interface without having to do some awkward slow copy operation.)
Tried explaining that, and was told that I should instead look into other libraries to depend on. “Doesn’t OpenCV have a 2d array class somewhere?”
(head —> desk)
Where did this attitude come from? As far as I can tell, the founding programmers in any field reinvented whatever the hell they felt like inventing, and everyone uses their weekend hobby projects (whether they are crufty or well done) as if they are unquestionable artifacts handed down by the gods. No one else has permission to originate, only the gods have permission to originate.
What happened to the hackers? Where did all these cultists come from?
Will try to reply one last time… (not posting. It’ll probably show up as 3 of the same post, if so, sorry.)
Same experiences here.
I’m trying to write some fast compiled libraries for a project I’m working on, and running into the same sort of doctrinaire CS dogma. I’m getting challenged on things like writing certain data structures and container classes: Was told that you are never to write your own container classes, or allocated/deallocate your own memory within them. “You aren’t smart enough”, and what you do “isn’t optimized or tested” (despite the fact I have all the tests *right there in the code*, and as far as I can tell the computer thinks I’m smart enough because it’s *doing what I told it to*. I’m working with multidimensional arrays that need to have their buffers contiguous in memory. std::vector<std::vector<std::vector a) isn’t flexible enough, and b) breaks up the memory into buffers scattered all over the place in memory. (The contiguous memory thing is so that I can point to data being fed in from matlab or python via a C or mex interface without having to do some awkward slow copy operation.)
Tried explaining that, and was told that I should instead look into other libraries to depend on. “Doesn’t OpenCV have a 2d array class somewhere?”
(head-desk)
Where did this attitude come from? As far as I can tell, the founding programmers in any field reinvented whatever the hell they felt like inventing, and everyone uses their weekend hobby projects (whether they are crufty or well done) as if they are unquestionable artifacts handed down by the gods. No one else has permission to originate, only the gods have permission to originate.
I offered to do it with raw C buffers, and was told NO! That requires memory management, and no one is smart enough to do memory management correctly! (I do it all the time. It's one of the POINTS OF USING THE LANGUAGE.)
What happened to the hackers? Where did all these cultists come from?
Well, I’d *love* to reply to you, to share some gripes, but can’t seem to do so. WordPress keeps eating my post.
?
As a programmer, I’m really good at going into a new codebase or an unknown section of code and figuring out how it works. But I have co-workers who just can’t. They have anxiety attacks, or start demanding that somebody else (i.e. me) pre-digest the code and write up detailed documentation so that they don’t have to figure it out themselves.
I think at least part of it comes down to an intolerance of being in a state of ignorance. You have to start in a state of “not knowing”, but with the belief that with investigation, notes, and chipping away you will eventually get to a state of “knowing”. So some people might also be missing the trust in their ability to figure it out.
Or maybe they find the intellectual work of the “figuring out” too painful. I have occasionally thought that one of the differences between those who enjoy programming and those who don’t is how painful that mental work is and how much tolerance they have for that.
I came to programming in a round about manner. I write code here and there, mostly excel macros. While the ‘google people’ are generally quite helpful when it comes to coding functions that are new to me, I find that often the best way is to record myself doing what I want done, then picking apart the code thus produced. And this is because I’m an engineer by inclination as well as training. I love taking things apart to see how they work and then putting them back together again in different configurations to see what new things they can be made to do.
The ‘figuring out’ thing is likely something they did little of in class. It’s not something that’s easy to grade.
Long ago when I was learning programming it was still necessary to go down to assembly language to make programs do what was needed. I hated assembler and did as little of it as possible. The aulde pharts sneered at the “high-level language kids” and told us we’d never master the machines if we didn’t get down to the bare silicon.
Now… I’ve seen coursework that starts newbies out with “stacks” of toolkits, and programming is basically sticking them together with a GUI and a some limited hand coding. Which is something people are willing to pay them for, but… I think a lot of them don’t know what they don’t know, and if they were, they wouldn’t be interested in learning anyway. And they might even be right; thirty years ago, things were incredibly simple, even though I got aboard late and had to scramble to catch up. Now… there are only so many hours in a day, and I expect employers want buzzword specialists more than flexible programmers anyway.
A friend once said, long ago: “There are two kinds of people; the ones who will never wonder what’s going on inside the box, and the ones who can’t stand not to know.” I seem to be in the latter group…
Hey, I like assembly. There are things that can only be done in assembly. A logical, well-written assembly function can be a work of art. Ever work with a Motorola 6809? Densest, most efficient code I’ve ever seen. I wrote a floppy disk device driver in under 800 bytes.
“The ‘figuring out’ thing is likely something they did little of in class. It’s not something that’s easy to grade.”
Or easy to figure out how to ask. My Assembler midterm, the instructor presented us with a program and asked us to write down what it was doing. Well, the first thing most of us put down was “crashing and burning, because this instruction is addressing memory about 4k outside the program boundary.”
What got amusing was that the instructor was absent that night, so the IS dept head was proctoring. We showed him this and the back of his neck got red. He wouldn’t do anything then, but when the instructor flunked most of us, he directed the instructor to re-administer the test and replace the grades.
The deep dark secret within pooling of ignorance is that most of the time we know hardly anything about the subjects and issues we deal with on a daily basis, but this doesn’t prevent us from living successful and well-ordered lives where our ignorance always highly exceeds what we know.
That is because you and I are rich beyond the dreams of avarice. So we can afford these games. For now.
I hope that the writer of this piece is somewhere where the Smart People range, because his story might reach them. I’m going to try to get it down to share with folks deep in the Blue.
But for us, I suspect anyone who stuck around this blog has “run and find out” already stamped on their soul.
testing testing 1,2,3?