What are the three common mistakes made by beginner programmers?View other answers to this thread
Learn Something New Everyday,
Connect With The Best Developers!
- Not asking for help when they need it. You're a junior, you will need help.
- Asking for help without making a genuine attempt first. Seniors do know when you're taking the piss ;)
- Trying to do too many things at once. Learn one thing properly, not ten things badly. Bugfix one thing in isolation, don't change ten things at once then commit the lot when something works.
Balancing (1) and (2) is tricky. A really good strategy is time boxing. You are having a problem with something. Consider how long you think is reasonable to try on your own before you seek help (and go short - 1 hour? 1 morning? 1 day at most). By planning ahead a bit you essentially put a time limit on your own stress; plus you can plan to ask for help at an appropriate time.
Some totally hypothetical examples follow, I have not in fact been all four of these people at different times, not at all, you can't prove anything:
Bad: coming to your senior on the last day of the sprint, incoherent with frustration, having spent days trying to fix a low-story-point bug. You've changed everything, tried everything, nothing works. You've got fourteen git branches named things like
fix5 and a nice collection of red builds; and you're starting to wonder why the hell you thought coding was a good idea. Meanwhile your senior just mentally scrubbed the chances of finishing what they were working on; and are starting to wonder why the hell they thought taking on some leadership duties was a good idea.
Good: you spend an afternoon having a solid go at solving a problem. You've tried A, B and C; but three tests are still failing and you don't know what to try next. At standup the next morning you ask a senior to give you a hand with it, because you're not sure what to try next. They say yes, they'll help you after they grab a coffee.
Realistically the second dynamic persists well beyond junior/senior, it's really how things always go when you need help from someone who knows a topic better than you do. So you might as well get used to it as soon as possible ;)
Mark the amount of time does depend on the size of the task, but I should probably have said "a couple of hours" rather than "an afternoon" :) Still, I tend to be pretty generous with time for junior devs. They need the space to be able to look up some information, try a few different things, break stuff, fix it again, learn those incidental things that haven't come up before, etc.