[
  {
    "path": ".gitignore",
    "content": ""
  },
  {
    "path": "README.md",
    "content": "# Learn Go the Hard Way\n\nOriginated from the Go Gala hackthon.\n\n![img](res/m.jpg)\n\n## Inspiration:\n\nBefore Gala, I was having a talk with my friend, he thought coding is cool, and asked me to teach him to code.\nAt that time the idea came to my mind - How about write a open repository for gophers to learn how to code Go code by practice?\n\nI got the name \"Learn Go the Hard Way\" with the inspiration of [\"Learn Python the Hard Way\"](http://learnpythonthehardway.org/), and decided to use the form of \"Go tour\" -\nfill the unfinished functions in the source code.\n\n## Target User\n\nThe target users are the gophers who had went through the online documents and tutorials like [Effective Go](https://golang.org/doc/effective_go.html), [A Tour of Go](https://tour.golang.org/welcome/1), and [build-Go-web-applications](https://github.com/astaxie/build-web-application-with-golang), assuming the users have basic understanding about Go and want to get something to do with the features of Go.\n\n## Features\n\nThe key features are the form of learning Go.\nAll the tasks are challenging, and most come from the real open libraries as well as relevant papers or talks, however not difficult to complete. It will help you understand main parts of these works instead of browsing the huge code.\n\nIn my opinion the best way to learn coding is just coding.\n\nThere are currently 10 exercises, those works were done during the weekend of hackthon, so they are not seemingly that perfect, but I am sure, you will gain a lot if you finish the tasks.\n\n## How to install\n\nThis repo has no dependencies, so you can install by typing:\n\n`git clone https://github.com/gophergala/learn-Go-the-hard-way`\n\nor\n\n`go get -u github.com/gophergala/learn-Go-the-hard-way`\n\n## How to use\n\nYou should complete the current exercise before you enter the next.\n\nEach exercise is a git tag (from l1 to l10), you can check out the tag, and finish the task with tips.\n\nRun `go test`, if you complete the task, and it will tell you whether you pass the task.\n\nTo get the tips, please run `go run main.go`, and follow the tips to modify `main.go`.\n\nNow run `git checkout l1`, let's go!\n\n## Exercises (currently available):\n\n1.  warm up, reverse slice.\n2.  parallel vector sum.\n3.  cheat rock-paper-scissors.\n4.  make map function.\n5.  parallel dynamic programming.\n6.  tiny webframework 1, managing context.\n7.  tiny webframework 2, middleware.\n8.  lexer.\n9.  cheat sheet.\n10. a surprise!\n\n## Members:\n\n[ggaaooppeenngg](https://github.com/ggaaooppeenngg)\n\n\n## Find Colleague\n\nI am currently workinng at [kesci](https://www.kesci.com/about/team), if you are interested in Kubernetes and machine learning infra, please contact me!\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\nfunc AddPhtoFrame() {\n\t//TODO:user the res/gophergala.jpg to generate a image and write to res/m.jpg which is similar to like the logo in the README.md\n\n}\n\nfunc main() {\n\tAddPhtoFrame()\n\tprintln(`This final exercise,let's add a photo frame for gala logo!\nYou should use image package to generate a new image from the gala logo(which is stored in res/gophergala.jpg,and makes it like the res/m.jpg.\nNow edit main.go to complete 'AddPhtoFrame' function,this task has no test,enjoy your trip!`)\n}\n"
  },
  {
    "path": "main_test.go",
    "content": "package main\n"
  }
]