Hacker News new | past | comments | ask | show | jobs | submit login
Good programmers copy; great programmers appropriate (alidlo.com)
5 points by alidlo 42 days ago | hide | past | web | favorite | 6 comments



That was an interesting read I agree and find that code names that rely on a word that means a specific thing in a given field is really helpful as well. For example with Neural Networks we extend the analogy that originated from a graph/network into an image of the brain and add a new term and properties, so when we add the term neuron we can give it the property that behaves like it does from the field it originated from such as being able to fire. This creates a wonderful mental model that not only explains the purpose of the algorithm to "learn" much like brains do, but also serves as a way for people to remember, much like a pneumonic device, all the different pieces that go along with the algorithm.

I also find trying to draw analogies from different fields can lead to new discoveries for yourself and others. In the case of the neural network maybe the person who invented it said, what would it look like if we were to model the human brain in a computer? Obviously the intent there would be for your model to function as a human brain. You could always do it the other way around and start with an existing model and say what properties could I add or remove to this system to make it perform a different and interesting function? If I add this new property does it make it a different enough function that I have to change the underlying analogy? I think if you ask the right questions and seek their answers then this is one way in which you can evolve ideas. Also this way of stating different disparate ideas and evolving them is a good teaching method. For example I was once explained that a binary search tree with all items inserted in order was just a fancily decorated linked list, and though kind of silly it gave me an aha moment and connected the two more deeply in my mind.


yea definitely, a name sets boundaries of intention; and if you appropriate it from other domains helps to boostrap understanding.

>If I add this new property does it make it a different enough function that I have to change the underlying analogy?

actually ran into this situation the other day, but for the name of a project I'm working on. the intention of my idea changed, so I felt like I had to change the name, too.

a name, in that way, has a two-fold effect, it helps shape understanding but it also guides what we feel we can/can't do with something


> It’s said that there are only two hard things in computer science: cache invalidation and naming things.

I've always heard the joke as "there are only two hard things in computer science: cache invalidation, naming things, and off by one errors."

EDIT: I didn't read all the way to the end of the article before posting this, so of course it has the original joke at the bottom haha.

"There are two hard problems in computer science: cache invalidation, naming things, and off-by-1 errors." - Leon Bambrick


I include a quote at the end of most articles, and I actually included that one at the end of this one, too.

here's the tweet where it came from: https://twitter.com/secretGeek/status/7269997868?ref_src=tws...


Yeah sorry I jumped the gun and posted before I read it all. Haha, I guess that's one way for me to look naive and foolish :)


not at all, just an off-by one error (;




Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: