Start by creating an aqueduct so that the water in the divot will touch the sugar cane on each side. I made mine 7 blocks long.
After you created the divot fill it up with water.
Put sand on each side of the water so that the Sugar Cane can grow there.
Create the wooden planks shown in the picture. I messed up on this picture and instead of the wooden planks being a 2 x 7 it should actually be a 3 x 7.
Add Pistons on the wooden planks closest to the Sugar Cane as shown in the picture.
Add Redstone repeaters behind the pistons as shown.
Now put red stone behind the repeaters.
Now on the farthest wooden plank on the right and left side place a lever so it will activate the pistons. Also add lily pads in the water so you can run across the water quickly picking up sugarcane
You may also want to cover up the circuitry for the aesthetic aspect of their creation.
For this to work effectively wait for the sugar cane to grow to its highest point three blocks high to press the lever.
Pressing the lever will activate the pistons to chop off the tops of the sugar cane. The root of the sugar cane should stay so it can continue growing.
You can run across the lily pads to easily collect the fallen sugar cane that has chopped off. No more need to chop your own Sugar Cane!
The creator of this guide has not included tools