Giter VIP home page Giter VIP logo

gokatas's Introduction

Go Reference Go Report Card test and scan

Go katas

Katas (ๅฝข) are practiced in martial arts as a way to internalize the movements and techniques so they can be executed and adapted under different circumstances, without thought or hesitation. Let's try the same with Go code.

Why

I've been learning to program in Go. I work in the sysadmin/devops and security areas so I don't normally get to program every day. But I still want to keep my coding skills fresh. Maybe even improve them. I use gokatas as one of the ways to achieve this.

How

The approach is pretty low-tech. Go katas is basically a list of packages and commands (package main) that you should understand and then be rewriting from scratch or partially. There's a command to show katas and your progress:

$ go run cmd/gokatas.go -c 2
Kata              Last done    Done  Level     Topics
----              ---------    ----  -----     ------
boring/boring     0 days ago     1x  beginner  concurrency, design
boring/channel    0 days ago     1x  beginner  goroutines, channels
areader           3 days ago     2x  beginner  interfaces, io.Reader
----                           ----
3                                4x 

It's important to practice regularly because repetition creates habits, and habits are what enable mastery. Start by taking baby steps. Set a goal that you can meet, e.g. 15 minutes every day before work. At first it's fine even if you only read through one of the beginner level katas. Use documentation or a search engine if you don't understand something.

After some time it will require much less will power to practice. Your programming moves will start looking simpler and smoother. If you feel comfortable enough with a kata, stop practicing it and pick another one that interests you and is slightly beyond your current ability.

Initial setup

  1. Install Go.

  2. Fork and then clone the repo: git clone [email protected]:<you>/gokatas.git.

  3. Start practicing:

cd gokatas
> katas.md # if you are not me :-)
go doc

gokatas's People

Contributors

dependabot[bot] avatar jreisinger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.