While learning a new machine like SEM, ICP or HPLC, it's very involving to learn every single feature of the corresponding software. Should I devote weeks to just learn the software or learn only as much as I need for my research? I'm a CS engineering student currently in 6th sem. I'm not very convinced with what I have learned so far. I just want to start once again and learn everything that is required to be a good software developer. What is all that I should learn?