https://gobyexample.com/ was helpful for me to understand what is possible with Go. Visit a topic that seems interesting or completely unfamiliar and try to think of a small exercise that will allow you to practice the topic.
Another thing I did was implement a common tool like `ls` or `tree` or `grep` using go. This will allow you to compare the output and performance of your program against the binaries provided by the OS.
Lastly, there are some really cool libraries out there (see https://charm.sh/) with great communities. Try building something small and ask for feedback in the Discord channel.
Gleam is fantastic! https://gleam.run/ The syntax is familiar but there are several next-level features:
- no conditionals (case all the way down)
- `use` expressions
- pipe operator
It compiles to either erlang or JavaScript, so I was able to jump right into building something fun with a new language.
>I previously gave Clojure a try, that was a pretty good fit, but the JVM / ecosystem put me off.
I felt similarly w/ leiningen (too much boilerplate) but was lisp-curious still so gave racket (https://racket-lang.org/) a try and appreciated the batteries included philosophy of the standard library and was inspired to learn more about writing a programming language (also see: https://beautifulracket.com/)
Upvote for Gleam. Completely different paradigm. Made for building internet scale apps with offline first functionality in a fault tolerant way. Also great community.
I saw a t-shirt from a local plant nursery that I absolutely loved. The price was $25 USD, and for me it was an instant purchase because I loved the design and wanted to support the business.
This purchase was the highlight of my day, if not the week, and I wear the shirt proudly often.
When I charge for things, I think about how I can create a similar experience: someone paying a few dollars thinking they're getting a great deal and supporting a business they want to see more from.
1. Claim and prove ownership of a public key
2. Sign a session claim that links the handle with the public key
3. Service verifies the claim's signature was signed by the corresponding private key
Another thing I did was implement a common tool like `ls` or `tree` or `grep` using go. This will allow you to compare the output and performance of your program against the binaries provided by the OS.
Lastly, there are some really cool libraries out there (see https://charm.sh/) with great communities. Try building something small and ask for feedback in the Discord channel.