Hacker News new | ask | show | jobs
by LyndsySimon 3142 days ago
> if I do something and someone refers to it as "magic", it actually makes me uncomfortable; it means that they don't understand what I did or how I did it

It occurs to me that the first steps I take in most new-to-me established projects are basically magic - I'm looking for specific shell commands that the other dev(s) use to perform certain actions: build, run, test, deploy, etc. What's more, there are often undocumented environment dependencies - env vars that need to be set, certain executables that must be installed on the dev's system and in the path, etc.

> It looks opaque, but it can be understood.

I don't think "magic" in this sense means "cannot be understood" - only that it's incomprehensible at some point, and it's performed without understanding to achieve the desired result.

1 comments

> It occurs to me that the first steps I take in most new-to-me established projects are basically magic - I'm looking for specific shell commands that the other dev(s) use to perform certain actions: build, run, test, deploy, etc. What's more, there are often undocumented environment dependencies - env vars that need to be set, certain executables that must be installed on the dev's system and in the path, etc.

I fully agree with this. In fact, I've reified it into a pattern I use to learn new things: Copy, Paste, Break, Fix. Start with copying and pasting, to make sure I know what happens ("My environment is broken! Their code is broken! I've found an ancient tutorial and the example is broken!") then, once I know it's good, break it somehow, and fix it. Then I make changes to the example, fix what breaks there, and then iterate until I've gotten a good end result.