7 ms·
This is why people who can't handle too much cognitive load end up being better leaders. Or in other words... less intelligent people make better leaders. On
by crimsonalucard 7y ago
This is why people who can't handle too much cognitive load end up being better leaders.
Or in other words... less intelligent people make better leaders.
On a side note, less intelligent people also write more readable code. The principle, Keep it simple stupid, aka kiss is indeed better followed by people who are described by the acronym. So in other words... A simple and stupid person is better at keeping their code and designs simple and stupid than a smart and complicated individual.
- pault 7y agoI respectfully disagree. Simple and elegant code is extremely difficult to write, and the ability to do so is mostly orthogonal to intelligence. However, below a certain threshold of skill and capacity for reasoning about spatial complexity, the developer is much more likely to write confusing, tangled, unnecessary, and verbose code. Reading through a codebase with tons of copy pasted code requires far more effort than a codebase with well designed abstractions. The key phrase there is well designed. What you are describing is someone who know which abstractions to use when and where, and that is a skill that requires lots of experience and technical maturity.
- crimsonalucard 7y agoI respectfully disagree with your disagreement. Experience and technical maturity do not equate with intelligence. Abstractions serve one purpose and one purpose only: to reduce cognitive work load. Any abstraction above a primitive implementation only can offer added inefficiencies . Ex: SQL is less efficient than C++ which is less efficient than assembly. A zero abstraction code base is the usually the most efficient implementation and it will be written in assembly. So from a technical standpoint, we use abstractions only to reduce cognitive workload because other than that abstractions can only offer inn-efficiencies. Intelligent people do not put in the effort to learn about or implement proper abstractions because they usually deem it unnecessary to abstract what they perceive to be trivial cognitive workloads..
- zamber 7y agoI respectfully disagree with your disagreement of that disagreement. Abstractions have far more roles than reducing cognitive load. You're completely overlooking platform realities, code reuse, usability and other benefits of reduced/managed complexity. From a technical standpoint efficiency of the code is irrelevant if it's bug-ridden due to it's complexity. Code is for humans, not the other way around. We chisel away at lower-level languages if efficiency is required (Ex. C bindings in Python). If you want to utilize your intelligence to the fullest you abstract away most of the trivial stuff to the point where it pays. You can still go down and inspect or override the abstraction if it's needed. Experience in this case is knowing what to abstract in what manner so it will work for you. Intelligence is the act of keeping everything in a sane state without over-focusing on unimportant stuff. What I think you're critiquing is the act of adding abstractions when there's no need for one at a given time, just to make something simpler in name of simplicity overlooking it's usability. This can be attributed to the lack of experience. KISS is a suggestion, not a rule. It also applies to abstractions, so in one could argue that doing everything in assembly is actually the "simplest" way of programming, like a rough sketch of a scene is simpler than a full-blown oil painting. As an aside the whole notion of "intelligence" is a bit twisted with experience IMO. The "classical" IQ applies mostly to dumb pattern matching - a skill one can perfect. EQ can be trained by getting out and deliberately practicing human interactions.
- crimsonalucard 7y agoI respectfully disagree with your disagreement of that disagreement of that disagreement. >Abstractions have far more roles than reducing cognitive load. You're completely overlooking platform realities, code reuse, usability and other benefits of reduced/managed complexity. I am not overlooking anything. The traits you bring up in this statement do offer any performance improvements to the system. Therefore the only other possible benefits that these traits offer is that they reduce cognitive overhead. >From a technical standpoint efficiency of the code is irrelevant if it's bug-ridden due to it's complexity. Code is for humans, not the other way around. We chisel away at lower-level languages if efficiency is required (Ex. C bindings in Python). Yes. And intelligent people can write more complex code with less abstractions and have less bugs... We agree. >What I think you're critiquing is the act of adding abstractions when there's no need for one at a given time, just to make something simpler in name of simplicity overlooking it's usability. This can be attributed to the lack of experience. I am not critiquing anything. I have not said anything about my opinion on where or when to add abstractions. I have only commented on how a very intelligent person would do it. I never said I was intelligent... All I said was more intelligent people tend to write less readable code and this can be attributed to the fact that they have less need for abstractions. So no I am not critiquing about when or where to write abstractions. >The "classical" IQ applies mostly to dumb pattern matching IQ tests present questions with patterns that the test taker usually has not seen before. A test taker cannot "dumb pattern match" a pattern he has not seen. Therefore the IQ test cannot be testing for "dumb pattern matching." If the IQ test measures IQ and the IQ test is not measuring for "dumb pattern matching" then by concrete logic IQ must not apply to "dumb pattern matching." QED IQ must apply to something more. A general intelligence.
- abraae 7y agoI would say the opposite. Only gifted leaders and developers are able to keep things really simple, when working on complicated domains/problems.
- crimsonalucard 7y agoThose leaders are gifted with a lack of intelligence. People with lower IQ don't necessarily appear less intelligent. In fact they can be more charismatic and appear more intelligent. Steve Jobs was not an intelligent person when compared to Woz. Yet Steve is often referred to as a genius. I don't think Woz could ever come up with the design ethos that Steve Jobs had around products and this is due in great part to Woz's higher level of general intelligence (IQ).
- dzamo_norton 7y agoIs there some research you can point out that establishes cases where a lower IQ has been advantageous?
- crimsonalucard 7y agoI don't know about anything that points to a statistical advantage. I'm sure you can find some small studies via google. Since statistical evidence is rigorous and hard to find, a good portion of the knowledge of an intelligent mind must be derived from induction and anecdotal evidence with lots of assumptions. The origins of my argument are anecdotal in nature. Statistical evidence is stronger but so hard to establish that if all my arguments are always based off of statistical evidence I would hardly have anything to argue. Additionally statistical conclusions are already established. Hardly worth arguing about all together. It is the things that aren't backed by statistical evidence YET, that are more interesting and worth talking about.
- tuesdayrain 7y agoSo basically you've come up with a way to rationalize that people who write cleaner code than you are just dumber.
- thomasmeeks 7y agoSo I haven't found any of the common measures of intelligence (self-reported IQ, presence in honors/accelerated programs in school, "seems to learn new concepts quickly," etc.) to be indicative of anything particularly useful in a work environment. So how are you measuring intelligence to make these sorts of statements? I ask because reading your comment leaves me with the impression that there's some conflation between intelligence & empathy + humility going on.
- crimsonalucard 7y ago> So I haven't found any of the common measures of intelligence (self-reported IQ, presence in honors/accelerated programs in school, "seems to learn new concepts quickly," etc.) to be indicative of anything particularly useful in a work environment. Right and this is in line with my statements. Less readable code by common sense will not correlate with being more useful in a work environment. Though intelligent people tend to have other benefits that allow them to excel. >So how are you measuring intelligence to make these sorts of statements? Anecdotal evidence. I try to be as unbiased as a biased creature can possibly be. >I ask because reading your comment leaves me with the impression that there's some conflation between intelligence & empathy + humility going on. I don't know where you get this from. All I am saying is intelligent people write less readable code... or vice versa That's it. I have not commented on any other factors.
- jchanimal 7y agoMy buddy has a phrase: “high tolerance for complexity” ... kind of a bad smart.
- Firadeoclus 7y agoIt isn't bad per se but it needs to be applied strategically. After all, this ability is exactly what enables some people to deal with problems of high essential complexity, achieving what no one else can. You just have to realize that the majority of software does not fall in this category.
- Nuzzerino 7y agoI can only assume that you were trying to say that the more intelligent leaders are worse because they cannot understand more complex systems as easily and therefore require things to be done with lower cognitive load. Regardless of how simple your delivered system ends up being, you still have to understand what problems you're solving and the reasons behind it. This is almost always a product of factors outside of your control. Let's assume that in the worst case, you're going to be facing a very complex situation. Now you have three possible outcomes here when delivering. A) Your solution is simple, because you either did not grasp (or were otherwise unaware of) the complexity of the problem, did not acknowledge it, or disregarded the severity of the problem. Or your organization's engineering culture puts pressure on you to cut corners (e.g. "Move Fast and Break Things"). B) Your solution addresses the complexity of the problem, but it was a lot of work to solve and you did not have the time or experience needed to build it in an elegant or optimally maintainable way. C) Your solution addresses the complexity of the problem, and is built in a reasonably elegant, simple manner. Which of these did you say correlates with intelligence again? Edit: There's also a fourth outcome, reserved for the real rockstars out there. D) Your solution is to not solve the problem at all, because you found a way to avoid your organization/product having to deal with the problem to begin with, or you otherwise re-assessed the assumptions surrounding the problem. The famous post from a few years ago "Why I Strive to be a 0.1x Engineer" comes to mind.
- crimsonalucard 7y agoGood leaders tend to use the intelligence of their team to determine direction and design. They have meetings and empower team members to perform at 110% by giving the team members ownership and clearing away obstacles. Less intelligent people are better at this because they have no choice but to do this. Less intelligent people do not have the cognitive power to design the full system so they have to resort to relying on the team to do it. Very intelligent people tend not to do this. They rely on their own intelligence to direct the team and often times just use the team members as grunts to implement there grand designs. No matter how smart you are, your cognitive powers will always be lower than the cognitive powers of the entire team combined, therefore any attempt to have the team follow your lead rather you following the lead of the team will be worse off. The science supports this. Teams with leaders that empower team members are statistically more successful than teams that don't. My anecdotal observation is that these types of leaders tend to be the less intelligent types. They empower you and than get out of your way because they really don't have the intelligence to get in your way. Here are two statistics about humanity that will lend support to my thesis. Your IQ does not correlate with how successful you will be in life, success being measured as how high you climb the corporate ladder and how much money you make as an individual. This is an actual correlation. In direct contradiction to this... the average IQ of a country highly correlates with the economic success of that country. These two statistics say something about the nature of leadership. It says that leaders succeed off the backs of people more intelligent than them.
- kristiandupont 7y agoI read (between the lines, and maybe mistakenly) that you consider yourself highly intelligent. With that perspective, the comment sounds like reasoning for why you aren't going to be a good leader and why that is a good thing. Also, it sounds like it might even be an excuse for writing unreadable code. This perspective seems based on a premise of "intelligence" being a one-dimensional scale where everybody has an absolute ranking. I think this is generally a problem with the "IQ" concept that we've all agreed on. It seems extremely oversimplified to me, at least if we want intelligence to mean something like "brain capacity".
- crimsonalucard 7y ago>I read (between the lines, and maybe mistakenly) that you consider yourself highly intelligent. With that perspective, the comment sounds like reasoning for why you aren't going to be a good leader and why that is a good thing. Also, it sounds like it might even be an excuse for writing unreadable code. Humans tend to construct biased logic around themselves to justify their weakness. We lie to ourselves so that we may be happier. In fact, although there is currently a crisis in the veracity of psychology papers, I recall seeing studies showing a positive correlation between how realistic a person was and how depressed he was. I can tell you that I strive to be as unbiased as possible. I strive to remain unbiased even when it hurts. This is not a trivial skill. I have not seen anyone call themselves stupid even when they clearly are, in fact the way we lie to ourselves is so powerful that even if you are stupid, you wouldn't know it. That being said I would say I am more intelligent then average. I don't have IQ test scores but I have data that by common sense should correlate. I went to UCLA where the admit rate for engineering 11%. By that fact, I would assume I have above normal intelligence. I actually believe the opposite to writing unreadable code. In fact I have a bias for readability and extreme abstractions to a fault. I am a huge fan of functional programming. My observations about super intelligent people are of others not of me (note that I only believe I am higher than the average, not someone incredibly smart). I also believe that I know what it takes to be a good leader, that's why I'm able to identify the traits that make a bad leader and thus come up with this conclusion. Please stop trying to equate my personal experience with what I am trying to say. I present my views and opinions in a way where I strive to be impersonal. Please judge what I say with the same impassion. >This perspective seems based on a premise of "intelligence" being a one-dimensional scale where everybody has an absolute ranking. I think this is generally a problem with the "IQ" concept that we've all agreed on. It seems extremely oversimplified to me, at least if we want intelligence to mean something like "brain capacity". Well clearly when you have opinions about people. In your vicarious opinions you and others often make a judgement that person A is more intelligent then person B. The ranking is based off of that fuzzy general opinion and my thesis is in no way an exact law or proposition. My thesis is just a fuzzy generality that I believe is true.
- tigershark 7y agoIt seems to be exactly the opposite instead: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
- crimsonalucard 7y agoI disagree with this quotation. Any fool can write words that any other fool can understand. Programmers write words that computers can understand.