GetGoing/overview.md

110 lines
3.3 KiB
Markdown
Raw Normal View History

2019-10-28 22:42:35 +00:00
# Overview
2019-10-28 22:20:15 +00:00
The following is my overview for what I want this book to cover. This may be
incomplete and probably will become out of date quickly, but this is basically
my TODO list.
Each top level bullet point is its own chapter/workshop. Slides will be made
available as soon as they are created.
- [x] Basic getting started
- [x] installing go
- [x] hello world
- [x] doing math
- [ ] Data Types
- [ ] Variables
- [ ] Declaring variables
- [ ] Assigning variables
- [ ] Integers
- [ ] byte, int, int32, int64
- [ ] Implement Subtract/Multiply
- [ ] Floating-point numbers
- [ ] Differences between floating point numbers and integers
- [ ] float32, float64
- [ ] Strings
- [ ] examples of strings
- [ ] immutable
- [ ] combining strings
- [ ] Slices and maps
- [ ] generic types (this doesnt mean Go has user-defined generic types)
- [ ] Slices
- [ ] creating
- [ ] appending
- [ ] sorting
- [ ] common slice types
- [ ] Maps
- [ ] make()
- [ ] add value
- [ ] delete value
- [ ] Control structures
- [ ] conditionals
- [ ] if
- [ ] switch
- [ ] type switch
- [ ] looping
- [ ] conditional looping
- [ ] C-style for loop
- [ ] iteration
- [ ] Functions
- [ ] Writing functions
- [ ] Documentation
- [ ] Types of functions
- [ ] Functions are data
- [ ] Functions as arguments to functions
- [ ] Structures
- [ ] defining structs
- [ ] documenting structs
- [ ] instantiating structs
- [ ] JSON support for structures
- [ ] What's the deal with pointers?
- [ ] pointers make values mutable across functions
2019-10-28 22:42:00 +00:00
- [ ] Interfaces
- [ ] What is an interface?
- [ ] Defining them
- [ ] Using them
- [ ] Errors
- [ ] Handling errors
- [ ] Package errors
- [ ] Making your own error types
2019-10-28 22:20:15 +00:00
- [ ] HTTP operations
- [ ] fetching data from canhazip.com
- [ ] validating response
- [ ] parsing response
- [ ] printing response
- [ ] Testing
- [ ] making a fake server for canhazip.com
- [ ] using it in testing
- [ ] Command line app writing
- [ ] Flags
- [ ] Help
- [ ] How to test a command line app
- [ ] Repo hygiene
- [ ] What should go where
- [ ] Applying that to previous things
- [ ] Go Modules
- [ ] how to depend on people's code
- [ ] best practices for releasing code
- [ ] semantic versioning and side effects
- [ ] add markdown support to the wiki
- [ ] Putting it all together with a webapp
- [ ] The Wiki example from the Go documentation 
- [ ] https://golang.org/doc/articles/wiki/
- [ ] Updated a bit
- [ ] Tests
- [ ] Webapp Abstractions
- [ ] Adding a JSON api to it
- [ ] Making a client package
- [ ] Tests
- [ ] Abstracting its storage layer to a database (ql?)
- [ ] Migrations 
- [ ] Tests
- [ ] Dockerizing
- [ ] Making the Dockerfile
- [ ] Testing with Docker
- [ ] Bonus: Introduction to Battlesnake
- [ ] brief overview of the problem space
- [ ] the types involved
- [ ] tutorial on how to make a snake
- [ ] somewhere to run it?