There is a saying: “All problems in computer science can be solved by another level of indirection”
I’ve always been suffering from this fact. People used remote disks for databases, but didn’t care how they actually work or could be configured to be more efficient. People use SMT solvers to prove things, but have no idea how they work so they can use them in an optimal way. People fuzz a software, but they’re too deep in their fuzzing methods and don’t care about the nature of that software to take advantage of the insights about its behavior. It really annoys me.
First, I see more experienced people bahave like this. Second, I know I’m a rookie. There is a dilemma: Should I tell them fuck you and start doing things in my own DFS-style way? Or should I believe that the problem is with me and try to adopt their approach? I mean, if I’m going to create new fuzzing methods, what I’d do is to first study the source code and documentations of the current popular fuzzers thoroughly. Then, read most of the relevant papers one by one, trying to understand their pros and cons as deep as I can. After spending some months like this, I’d only start to do experiments with my own ideas. But people are not like this at all! They start to think about how to fuzz software X, without even trying to understand the previous works. I mean, is it really how it’s supposed to be? It’s just… hard to accept for me. It doesn’t make sense. What the hell?
I don’t know. Let’s see what happens. I won’t give in. I’ll do what I think is right. Maybe I’ll regret some years later, but I hope I don’t.