How to be a tech guru

As a Tech Guru, you have to do more than diagnose the problem. You must also consider who is asking for your help and choose the best solution. By that, we of course mean the best solution for you.

For family members, you need the quickest resolution, because they will come back to haunt you if you don't fix it on the first try. Swapping RAM modules around is a quick and safe thing to try, but reformatting and reinstalling Windows will be much like cutting the head off a hydra: you may fix the original problem but three more will grow in its place, as you try to restore all the drivers for their 15-year-old printers and off-brand sound cards.

How to be a tech guru

Learning Python is straightforward, useful and free

Learn to program

Programming is an extremely helpful skill for a Tech Guru. Lots of command line operations become easier if you know a little programming, particularly in Linux – but much more importantly, it teaches you what a computer really is.

Programmers are like Neo: they don't see files and icons, they see resource handles. Memory isn't just a quantity, like the fuel in your tank. It's a collection of discrete integers and floats and strings. When you understand how the house is built, you'll know which walls you can safely remove and which will bring the ceiling down on your head.

Programming means debugging, and the mindset you for it is the same as for diagnosing every other computer problem. Programming is like classical music theory for computer troubleshooting. You can teach yourself to strum some chords without it, but you won't become a great musician that way.

As soon as you can write a simple program, more complicated programs lose their mystique. And if you can write even a modestly useful app or a mod for a game, then your computer itself will be demystified to a degree that's impossible to overstate.

Programming is such a useful skill that it should be compulsory for all five-year-olds, never mind aspiring Tech Gurus. Happily, programming is easier to learn now than ever. Python is a good language to learn first – it's a widely used, serious language, but designed to be readable and simple. You can learn the basics for free in a few weekends at Google's Developer website. If you can complete a sudoku you can learn Python.

If you can boot this far, the motherboard is probably fine

Learning the boot sequence

When your PC is switched off but still plugged into the mains (or laptop battery), the motherboard still receives power on the 5-Volt standby rail, providing power to the circuitry that monitors the power button.

Pressing this button signals the motherboard to tell the power supply (PSU) to fire up and pulls the voltage to 0V on the reset pin for the CPU. This puts the CPU into a known start state, with default values loaded into all the registers, and sets the instruction pointer to the start address of the BIOS.

Between 0.1 and 0.5 seconds later, the voltages from the PSU have stabilised and it signals this by putting +5V on the Power Good line. This tells the motherboard to release the reset line, which allows it to return to +5V.

The CPU begins executing the Power On Self Test (POST) in the BIOS or UEFI code. This initialises the RAM and the PCI bus. If there's a problem you'll receive a series of beeps – a single beep indicates a pass, and control then passes to the video card, which executes its own video BIOS initialisation routine. Once the video subsystem is working, control comes back to the BIOS or UEFI and you'll see a summary screen or pretty splash screen.

While this is displayed, each drive is checked until it finds a bootable one. Control passes to the boot loader program stored on this disk, which copies the Windows kernel and basic drivers into RAM. The Windows logo appears, the boot loader copies the registry into RAM and loads remaining drivers. The boot loader hands off to the Windows kernel and the login screen appears.