When someone starts programming, they might be intelligent, they might have some experience behind a keyboard or even some rudimentary programming skills but despite the desire to get someone to be productive and independent as soon as possible, baby steps are crucial to ensuring that the noob learns how to do something well.
If an Electrician employs an apprentice, they can easily be productive on day 1. They can get stuff from the van, clean up, go to the shop to get something all before they know anything about electricity. To show someone how to strip wires and wire up a socket or to drill holes takes seconds and immediately there is payback. In programming, of course, that is rarely possible.
A programming junior, like a trainee doctor has to learn a lot before they can be much help. They are not likely to know:
- What actions can be tried and which will immediately cause damage
- Which parts of what they are doing are easy to get wrong and which will be checked by a compiler of some sort
- Effective ways of using Google to find answers, whether finding precise results or separating the useful results from those that are wrong/out of date/not applicable
- What processes you use, even if they are already faimilar with other processes.
- What is an efficient way of working and what will take them 100 x longer
- How to sanity check the work task to make sure it is correct and not misleading
- What are quick/easy things to check and what will take more work and should be left until later
- Common causes of bugs/build errors
- How all of your systems fit together
- What is automatic and what needs doing manually
- What is a one-off piece of information and what is mission-critical "write it down" stuff
They are also more likely to have come from school/home and are used to having things done for them and having someone else pick up anything they forget/don't do.
School actually works better if a student doesn't turn up. It is one less person to manage, although of course if they are off long-term it might change things. At work, if someone being away makes it easier, then there is a either a culture problem or that person doesn't have a proper job or they are simply not providing any benefit.
This culture shock, this change from spoon-fed to self-reliant is not usually embraced by the young and why would it? If you have never been given a specific responsibility, why should you naturally be responsible at work? The truth is that most people's first job is a real eye opener. Kids go home shocked, crying or afraid because they got shouted at or someone swore at them because they didn't do what they were asked. They might have been fired because they are simply not providing any benefit to the business.
Hopefully, most of us have wise parents who will counsel the youngster as they adjust and will help them see that work are not your parents and mostly not your teachers. If you are paid to wash glasses or clean windows or move stuff around in a warehouse and you don't do it, you won't get moaned at and told to go to your room, you'll be fired.
As employers though, we need to teach some very simple baby steps to our youngsters, especially in technical roles where the complexity is very high and simple mistakes can be costly. I suggest we teach them things like:
- Always make sure you understand what you are asked to do and ask for clarification if not
- If at any point you realise you didn't understand what you thought you did, ask
- Make changes in small steps and test things at each stage. If something fails, you only have one step to debug instead of your entire changeset
- Check in with your boss when you arrive to make it clear that you need something to do instead of sitting quietly until you are asked
- If you have any significant problem with doing the work, you are expected to raise it, not ignore it or solve it by yourself, which might take far too long. Even if your boss asks you to try and solve it, they then know you are stuck and won't wonder why your task isn't done.
- Do not go off-piste and do not assume anything. You are not going to win prizes for initiative until you know what you are doing. Until then, you are more likely to break something and cause work for someone else
- It is OK when you are asked to do the same thing 10 times. It creates muscle memory and familiarity.
- Communicate frequently and clearly. If you are struggling with a topic, say so. If you really nailed something, say so.
- If you need help, ask
- If you need help with just one part, ask
- If something seems harder than it should be, ask
- If you need help with anything else, ask
Really, the expectations for noobs are usually relatively low (or they should be) so the worst things you can do as a noob are:
- Breaking something because you tried to use your initiative even though you don't have any experience
- Taking ages to do something because you didn't ask for help
- Not communicating so your boss thinks you were playing games all morning instead of working
- Making childish excuses "I thought you were busy", "My computer was playing up" (but I didn't tell you), "I just decided I needed to look into X for 4 hours"