self study in golang