lets consider something simpler dy/dx = 0 and y * dy/dx = 0
let's define two functions f(y) = dy/dx, g(y) = y * dy/dx
if something haves linearly it should follow the rule I stated above, so let's test it
let y = az + bw where z and w are new variables and a and b are constants
f(y) = f(az + bw) = d(az + bw)/dx, now since the differential operator is a linear operator we can rewrite this
= a * dz/dx + b * dw/dx, now let's compare this with out original function
= a * f(z) + b * f(w)
so we have f(az + bw) = a * f(z) + b * f(w) so f is linear, and thus dy/dx = 0 is linear
now if you carry out this process with g(y) = g(az + bw) you can see why it's not linear
a slightly simpler way to think of it is that something linear is of the form ay + b where a and b are constant, from this you can see that y * dy/dx is not linear because dy/dx is not necessarily a constant, but this is not a good way to think about it really because you can have dy/dx + xy which is still linear but doesn't follow the ay + b form I described