Is the difference between good and mediocre software devs their CS knowledge?