1) Reading and understanding. When instructing students or interns I often got asked why their build fails with this or that error, especially when using a new language or framework. Most often the compiler did just tell them what actually was wrong. Uninitialized variable, missing parenthesis, access from static to nonstatic object etc. Take your time to read and understand the error message, try to resolve it by yourself or just google it. If it's something more complicated it's fine to ask, but your problem-solving skills won't get any better if you don't try it for yourself.
2) Debugging. The amount of astonishment when showing them that they can set breakpoints, look into variables or altering the executing flow is astounding.
1) Reading and understanding. When instructing students or interns I often got asked why their build fails with this or that error, especially when using a new language or framework. Most often the compiler did just tell them what actually was wrong. Uninitialized variable, missing parenthesis, access from static to nonstatic object etc. Take your time to read and understand the error message, try to resolve it by yourself or just google it. If it's something more complicated it's fine to ask, but your problem-solving skills won't get any better if you don't try it for yourself.
2) Debugging. The amount of astonishment when showing them that they can set breakpoints, look into variables or altering the executing flow is astounding.
Definitely agree on 2). I think that was my greatest discovery when I found out that I can set breakpoints and see variable values real time