people often worry about originality. they have less respect for unoriginal thinkers. this isn't 100% wrong, but a lot of it is wrong. they underestimate what it takes to "copy" ideas. they don't understand that learning something is fundamentally the same process whether someone else already learned it or not.
sometimes Fallible Ideas posters are accused of cultishly copying me.
but how? u can't carbon copy ideas. that's like the mistake discussed with Karl Popper's bucket theory of mind
u can't adopt ideas semi-uncritically and really understand them. it takes critical thinking to create understanding. if you aren't thinking through potential criticisms and their answers, you don't know that much about it.
criticism is a required part of learning. so the better someone understands something, the more critical you can guess he was.
what if someone is learning one of my ideas and only considers criticism they think i'd approve of or think about myself? but they don't consider their own ideas and doubts, don't explore their own criticism? then they don't really understand it. they haven't fit the idea into their own mind in a way that makes sense for them. when they try to use it, they will run into trouble. it won't work right for them.
if they don't explore their own doubts, ideas, crit, then they won't understand it well. they'll have gaps in understanding, bad integration, fragility instead of flexibility. there will be lack of connections to other stuff in their mind
understanding an idea so you can use it requires the same evolutionary guesses and criticism process whether you get some hints about the idea from someone else or not.
copying an idea without proper critical thinking would be kind of like taking a photograph of a book, rather than reading it. book photographers don't understand the books! having a copy of the words in a book, and knowing what they mean, are different things.
here's a metaphor to help understand the issue: everyone's mind has its own programming language.
my ideas are written in ruby. i translate them to english. L then translates from english to python to learn them.
L cannot copy my ideas, b/c mine are in ruby, and her mind works with python
L cannot copy the english text i wrote, b/c her mind works in python, not english
L can photograph ruby code. she can copy/paste it and comment it out. she can memorize the letters. but that won't do her much good. she can't think using that.
L has to write a python program herself. i don't write python code for her. i just deal with ruby and english.
writing code has to be a critical process. L does things like fix compile and syntax errors. she fixes bugs.
and her language has a different set of built-in functions than mine. so sometimes she has write one of my functions using several of hers. or sometimes figure out a different way to get a similar or same result, with her own functions. and it's not just the built-in stuff that matters, but also all the many many functions (ideas) L created herself and uses in her thinking. L and I have lots of different custom functions we made.
to write your own program, in your own language, u need to know in detail how it works. in full detail. cuz u can't just gloss over details when coding. if u gloss over details, then u get some memorized english crap, but u can't run any code for that part of the issue. it's like u wrote pseudocode in comments, in english, but it doesn't actually run
and maybe u hard code a few cases. like if the input is 534, then output 888. and if the input is 241, output 983924. so then u can get the right answer in the exact cases that were the examples u were taught. but u can't run the code on similar other inputs
and there's ways ppl sorta fake this and do some like vague estimation that goes beyond a lookup table. but it's still crap.
anyway, L's python programs are all original
my program was ruby. it's not the same. just b/c they both get talked about in similar english words doesn't mean that psychologically L was copying or unoriginal. (even if e.g. academic world won't give L credit for a new idea)
One way this metaphor is cool is you can see that changing inexplicit ideas is possible. Some ideas aren't in words, like your emotions. If you can't put an idea into English, then it's harder to think consciously about. But that won't stop you from editing the value in a memory location and seeing the results. And you don't need a proper English understanding of a topic to find a function with some comments indicating it may be relevant and then replace a function call with new one that's hopefully an improved version and see if that helps.
Another way it's cool is: if everyone has to think for themselves and write their own idea-code, how do lots of people end up with the same ideas? How is there a shared culture, common sense, traditional knowledge, etc? How does conformity happen? The answer that programmers will understand is: society has a language-independent test suite based on outputs. As kids grow up, the tests are run over and over and they are punished for test failures until they get their code to pass all the tests.
(Did you like this? Click for a list of all the essays.)
Acknowledgments: some ideas presented are modified from, or inspired by, ideas from Karl Popper, Ayn Rand, David Deutsch and William Godwin. Thank you!