Coders are herd animals - FunFunFunction #18

Fun Fun Function · Intermediate ·🛡️ AI Safety & Ethics ·10y ago

Key Takeaways

Discusses the concept of programmers being herd animals and its implications on AI safety

Full Transcript

good Monday morning I'm mpj and this is fun fun function so today I have a cold my head feels twice the size it normally is today I want to talk about the programmer in the context of humans being herd animals and if you think that yeah I'm not a herd animal that's just other people then you are probably the worst herd animal of all because this affects everyone because it's built into the backbone of our brains first we're going to talk about what is a herd animal what's the definition of a herd animal and what are the cognitive biases that we have that we need to be aware of secondly what are the benefits of being a herd animal what are the benefits of a huge amount of programmers all doing the same thing and then of course what are the downsides of being a herd animal when does this go wrong for us as programmers and finally we're going to talk about when it is appropriate to break from the herd and when it's not a thing that I tend to repeat on this channel a lot is that there is no best tool and the reason I repeat that a lot is that people ask me that a lot what is the best tool there is no such thing as a universal good you need to have some kind of context some sort of criteria in order to judge the thing against this is actually true in general not just programming there is actually a great book on the subject uh called sen and the Art of Motorcycle Maintenance I uh I don't seem to have it in my bookshelf but trust me it's amazing you should read it either way I don't think that most people need to read a book in order to figure out that in order to know what the best tool is you first need to understand what your problem is and then and only then evaluate tools to figure fig out which tool is the best fit for your problem but even though most people know this deep inside they keep asking I know that I do whenever I start learning a new area of development I start intuitively to look for the recommended way of doing things I I'm I'm searching for Best Practices to do this best practices so why do we why do we do that all the time and my theory is that we do it because we are herd animals so what is a herd animal I'm going to look up the definition on Wikipedia the group tends to act together for example all moving in the same direction at a given time but that this does not occur as a result of planning or coordination rather each individual is choosing behavior that corresponds to that of the majority of the others members possibly through imitation or possibly because all are responding to the same external circumstance this behavior is well documented in humans and it is called social default bias if you want to read up on social default bias I've linked a great article in the description but the tldr is whenever we can't make informed decisions we copy others so are there any benefits to this I mean it's obvious that it's beneficial for a uh heard of animals escaping a lion but is it a useful behavior for programmers as well I would say yes absolutely I would say that PHP is probably the best example of it PHP is a language with a few flaws but the fact that so many people use it makes everybody very aware of the floors and uh creates tooling and documentation and all around help in in order to compensate for that when many many people use the same tool it allows us to create this big ecosystem around it and that ecosystem is often way more valuable than the core technology itself some communities or herds are also very good at finding a single way of doing things the python Community is really good at that uh and the c community too there is one way of naming private variables there is one way of inden there's one way of inheriting it's it's pretty calming it's pretty comfortable the JavaScript bir does not quite have that cohesion so if you are used to something like python you're going to be very frustrated when you when you start learning JavaScript and you wonder how do I do inheritance and uh a person ask well that depends on what kind of person you are but what are downsides of being a herd the problem is that you kind of risk stagnation it's a bit annoying when a herd is unstable like the JavaScript Community is on some point but it is way worse when a herd is too stable it makes it really easy to get into the herd because all the rules are very clear but it also makes it really hard to change the herd and if you become too unresponsive to change you might miss out on a lot of good change for example like washing your hands around the year 1846 there was this guy called semil wise he was the person that first figured out that washing your hands uh stops disease from spreading at that point they didn't know what bacteria was but he figured out with clear statistical significance evidence of and everything that if you have your doctors wash your wash their hands in a hospital uh a lot less people die after this was discovered proven and documented uh it took about 80 years before doctors started washing their hands as a common practice when people have a habit especially in a group it's really hard to change that but that's doctors that's medicine that's a that's slow us programmers we're agile we don't do that right well I would say yes we do I know that I certainly do I would say that the web development evidence in question is jsx I remember clearly when I saw jsx for the first time I hated jsx it's not like I started using it and then hated it no I started hating it from the second I saw it and the reason I hated it was that it mixed JavaScript and HTML in one file and that was clearly against the beliefs of us as web developers so after a while quite a while we the web developers and me with them uh started to learn that just because we want to do separation of concerns doesn't mean that we need to do uh separation of Technologies and we learned that JS Su that's that's pretty awesome so there is upsides and downsides to being a herd then the question arises when do we break with the herd when do we go in a New Direction and uh when do we not what's important to realize is that there will always be a better tool available than the one the herd is using Always Somewhere someone has written a better tool but earlier we talked about how the herd Builds an ecosystem it builds documentation it builds tools and that ecosystem has tremendous value so in order for a switch to something new to make sense this new thing has to be a lot better not just a little better A lot better because we will be throwing away a lot of this ecosystem in order to make the switch and this is why a dart fail Dart is a clear Improvement upon JavaScript I think you can safely say that it is objectively better but it's not like it's 10 times better and that is just not better enough an example of something that is better enough is git git is amazingly good compared to its predecessor sub version G completely rethinks How We Do Version Control it's such a big difference that I would I would personally not not want to work for a company that you subversion over git the difference is so huge throwing away the subversion ecosystem made a lot of sense because git offered so much more value in the case of Dart not so much so today we have explored the programmer as a herd animal we have thought a bit about what a herd animal is what the upsides are of being a herd animal what the downsides are and when it is a good idea to break from the herd and when to take the herd in a New Direction I am mpj this is fun fun function until next Monday morning stay curious

Original Description

💖 Support the show by becoming a Patreon https://www.patreon.com/funfunfunction Humans are herd animals, and by extension, so are programmers. The upside of this is that we build strong ecosystems and help each other out. Following the herd makes us strong and keeps us from being distracted by new shiny things, but it also makes us a bit blind to things that are different and might help us out, leading to stagnation if we're not careful. I also muse on why Dart failed to replace JavaScript and Git didn't fail to replace Subversion. Stuff mentioned in the video: Zen and the Art of Motorcycle Maintenance https://en.wikipedia.org/wiki/Zen_and_the_Art_of_Motorcycle_Maintenance Social default bias http://coglode.com/gems/social-default-bias Hilarious story about JSX announcment https://www.youtube.com/watch?v=KVZ-P-ZI6W4#t=8m36s
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Fun Fun Function · Fun Fun Function · 27 of 60

1 Higher-order functions - Part 1 of Functional Programming in JavaScript
Higher-order functions - Part 1 of Functional Programming in JavaScript
Fun Fun Function
2 Map - Part 2 of Functional Programming in JavaScript
Map - Part 2 of Functional Programming in JavaScript
Fun Fun Function
3 Reduce basics - Part 3 of Functional Programming in JavaScript
Reduce basics - Part 3 of Functional Programming in JavaScript
Fun Fun Function
4 Destructuring: What, Why and How - Part 1 of ES6 JavaScript Features
Destructuring: What, Why and How - Part 1 of ES6 JavaScript Features
Fun Fun Function
5 Reduce Advanced - Part 4 of Functional Programming in JavaScript
Reduce Advanced - Part 4 of Functional Programming in JavaScript
Fun Fun Function
6 Closures - Part 5 of Functional Programming in JavaScript
Closures - Part 5 of Functional Programming in JavaScript
Fun Fun Function
7 Too many tools and frameworks!
Too many tools and frameworks!
Fun Fun Function
8 Currying - Part 6 of Functional Programming in JavaScript
Currying - Part 6 of Functional Programming in JavaScript
Fun Fun Function
9 Recursion - Part 7 of Functional Programming in JavaScript
Recursion - Part 7 of Functional Programming in JavaScript
Fun Fun Function
10 Promises - Part 8 of Functional Programming in JavaScript
Promises - Part 8 of Functional Programming in JavaScript
Fun Fun Function
11 Staying relevant as a programmer
Staying relevant as a programmer
Fun Fun Function
12 Factory Functions in JavaScript
Factory Functions in JavaScript
Fun Fun Function
13 Composition over Inheritance
Composition over Inheritance
Fun Fun Function
14 Software needs to be better - FunFunFunction #1
Software needs to be better - FunFunFunction #1
Fun Fun Function
15 Unit testing: How to get your team started - FunFunFunction #2
Unit testing: How to get your team started - FunFunFunction #2
Fun Fun Function
16 Straight-line code over functions - FunFunFunction #3
Straight-line code over functions - FunFunFunction #3
Fun Fun Function
17 Clojure - FunFunFunction #5
Clojure - FunFunFunction #5
Fun Fun Function
18 The growth stages of a programmer - FunFunFunction #6
The growth stages of a programmer - FunFunFunction #6
Fun Fun Function
19 5 tips to quickly understand a new code base - FunFunFunction #7
5 tips to quickly understand a new code base - FunFunFunction #7
Fun Fun Function
20 Semicolons cannot save you! - FunFunFunction #9
Semicolons cannot save you! - FunFunFunction #9
Fun Fun Function
21 Functors - FunFunFunction #10
Functors - FunFunFunction #10
Fun Fun Function
22 Functors: I was WRONG! - FunFunFunction #11
Functors: I was WRONG! - FunFunFunction #11
Fun Fun Function
23 Questions and Answers - FunFunFunction #12
Questions and Answers - FunFunFunction #12
Fun Fun Function
24 Streams - FunFunFunction #13
Streams - FunFunFunction #13
Fun Fun Function
25 Prototypes in JavaScript - FunFunFunction #16
Prototypes in JavaScript - FunFunFunction #16
Fun Fun Function
26 Fast or Flexible? - FunFunFunction #17
Fast or Flexible? - FunFunFunction #17
Fun Fun Function
Coders are herd animals - FunFunFunction #18
Coders are herd animals - FunFunFunction #18
Fun Fun Function
28 Weekend Kubernetes Shenanigans - FunFunFunction #19
Weekend Kubernetes Shenanigans - FunFunFunction #19
Fun Fun Function
29 Monad - FunFunFunction #21
Monad - FunFunFunction #21
Fun Fun Function
30 Moar Weekend Shenanigans - FunFunFunction #23
Moar Weekend Shenanigans - FunFunFunction #23
Fun Fun Function
31 Questions and Answers - FunFunFunction #24
Questions and Answers - FunFunFunction #24
Fun Fun Function
32 Losing motivation - FunFunFunction #25
Losing motivation - FunFunFunction #25
Fun Fun Function
33 LONGEST KUBERNETES SHENANIGANS! - FunFunFunction #26
LONGEST KUBERNETES SHENANIGANS! - FunFunFunction #26
Fun Fun Function
34 Fast code is NOT important - FunFunFunction #27
Fast code is NOT important - FunFunFunction #27
Fun Fun Function
35 Pair Programming a Facebook Messenger Bot - FunFunFunction #28
Pair Programming a Facebook Messenger Bot - FunFunFunction #28
Fun Fun Function
36 Writing unit tests for personal projects? - FunFunFunction #29
Writing unit tests for personal projects? - FunFunFunction #29
Fun Fun Function
37 Let's Code a Pomodoro Button - FunFunFunction #30
Let's Code a Pomodoro Button - FunFunFunction #30
Fun Fun Function
38 What editor do you use? - FunFunFunction #31
What editor do you use? - FunFunFunction #31
Fun Fun Function
39 Arrow functions in JavaScript - What, Why and How - FunFunFunction #32
Arrow functions in JavaScript - What, Why and How - FunFunFunction #32
Fun Fun Function
40 Is Programming Art? - MPJ's Musings - FunFunFunction #33
Is Programming Art? - MPJ's Musings - FunFunFunction #33
Fun Fun Function
41 Generators in JavaScript - What, Why and How - FunFunFunction #34
Generators in JavaScript - What, Why and How - FunFunFunction #34
Fun Fun Function
42 Haskell Basics - FunFunFunction #35
Haskell Basics - FunFunFunction #35
Fun Fun Function
43 Haskell - Baby's first functions - FunFunFunction #36
Haskell - Baby's first functions - FunFunFunction #36
Fun Fun Function
44 Is Big O relevant to you? - Q&A Part 1 - FunFunFunction #37
Is Big O relevant to you? - Q&A Part 1 - FunFunFunction #37
Fun Fun Function
45 How much are you allowed to Google? - Q&A Part 2 - FunFunFunction #38
How much are you allowed to Google? - Q&A Part 2 - FunFunFunction #38
Fun Fun Function
46 Haskell lists - FunFunFunction #39
Haskell lists - FunFunFunction #39
Fun Fun Function
47 var, let and const - What, why and how - ES6 JavaScript Features
var, let and const - What, why and how - ES6 JavaScript Features
Fun Fun Function
48 Why are some programming languages popular? - MPJ's Musings  - FunFunFunction #41
Why are some programming languages popular? - MPJ's Musings - FunFunFunction #41
Fun Fun Function
49 Does a developer need to be nice? - MPJ's Musings - FunFunFunction #42
Does a developer need to be nice? - MPJ's Musings - FunFunFunction #42
Fun Fun Function
50 bind and this - Object Creation in JavaScript P1 - FunFunFunction #43
bind and this - Object Creation in JavaScript P1 - FunFunFunction #43
Fun Fun Function
51 Examples of this and bind - Object Creation in JavaScript P2 -  FunFunFunction #44
Examples of this and bind - Object Creation in JavaScript P2 - FunFunFunction #44
Fun Fun Function
52 Prototype basics - Object Creation in JavaScript P3 - FunFunFunction #46
Prototype basics - Object Creation in JavaScript P3 - FunFunFunction #46
Fun Fun Function
53 Separation of concerns RANT - MPJ's Musings - FunFunFunction #47
Separation of concerns RANT - MPJ's Musings - FunFunFunction #47
Fun Fun Function
54 Cellular Automata - Pair Programming - FunFunFunction #49
Cellular Automata - Pair Programming - FunFunFunction #49
Fun Fun Function
55 The 'new' keyword - Object Creation in JavaScript P4 - FunFunFunction #50
The 'new' keyword - Object Creation in JavaScript P4 - FunFunFunction #50
Fun Fun Function
56 __proto__ vs prototype - Object Creation in JavaScript P5 - FunFunFunction #52
__proto__ vs prototype - Object Creation in JavaScript P5 - FunFunFunction #52
Fun Fun Function
57 Unity game pair programming - Let's code - FunFunFunction #53
Unity game pair programming - Let's code - FunFunFunction #53
Fun Fun Function
58 Throw out your tools - MPJ's Musings - FunFunFunction #54
Throw out your tools - MPJ's Musings - FunFunFunction #54
Fun Fun Function
59 Unit tests vs. Integration tests - MPJ's Musings - FunFunFunction #55
Unit tests vs. Integration tests - MPJ's Musings - FunFunFunction #55
Fun Fun Function
60 Object.create - Object Creation in JavaScript P6 - FunFunFunction #57
Object.create - Object Creation in JavaScript P6 - FunFunFunction #57
Fun Fun Function

Related Reads

📰
Disrupting a Criminal Scam Operation
Learn how OpenAI used ChatGPT to disrupt a Cambodia-based scam operation and understand the importance of AI in preventing cybercrime
OpenAI News
📰
The Hidden Cost of AI: What Nobody Warns You About Until It’s Too Late
Discover the hidden costs of AI on human behavior and society, and why it matters to consider these effects
Medium · AI
📰
Horizon3 Raises $250 Million As Cybersecurity's Next War Goes AI Vs. AI
Horizon3 raises $250 million as AI-powered cybersecurity becomes the new frontier, with machines predicted to dominate the cyber battlefield
Forbes Innovation
📰
Security, Structure And Trust: The New Rules Of Healthcare AI Adoption
Healthcare leaders must measure AI tool effectiveness and address issues to ensure trust and adoption
Forbes Innovation
Up next
The Danger of AI Humanizers in Academic Writing
Sanraj Education
Watch →