For the easy and medium ones, I find a good way to start (and finish quickly) is to find yellow squares of the same number in the same row of 3x3 blocks. Then I go and find the third one and make a decision of whether I can narrow it down to one spot, and then place the number in that cube, then try to go perpendicular to the first direction. After doing this with each number 1-9, you might get some more information and can do another pass, so if you're lucky you'll have, say, a 5 in every 3x3 grid to start with.
Otherwise, for the harder ones, I'll go through the entire grid, and if I can narrow it down to three or fewer numbers I will type that into the square. If I can't narrow it down the three numbers, I put an X in the square, meaning I have already visited it once.
Once I have get it down to one number, I put a * by it.
That tells me I may have enough information to turn some of the "X" squares into numbers by narrowing down the values possible. Of course at this point you should also remove that number anywhere else in the row, column, or 3x3. Which is what I often forget to do and why I have to restart the puzzle again! :)
The other thing is to try to get the grid down to n squares with n values, for example, 145 in three squares, then you know the other six squares are guaranteed to be 236789.
After all that fails, I write down the grid, at a point I know(believe) to be valid, and make a guess and then see if it works or if I have to restart.
But you might use other symbols in the grid, say to indicate that a number must be in one of two spots, which I don't do because I don't have space to do both techniques.

