This is just me compiling links from the web, here, and trying to learn stuff on my own. I suggest instead of bookmarks you make a list as well for future use. Cause there is just a lot to know.

This is Google’s official learning site https://learn.go.dev/ and official tutorials https://go.dev/doc/tutorial/

This is a Google style guide on code. It is the best read here. https://google.github.io/styleguide/go/best-practices

Things to remember:

  1. A link doesn't work you prolly can use Way Back Machine or Archive
  2. The Table of Content is the same as the titles in Document outline

TAble of Content
  1. Go Advocates
  2. Go Advocates2
  3. Official Resources
  4. The Best Biggest Resources Shortened
  5. Advocates
  6. The Best Biggest Resources
  7. Beginner
  8. Daily reading
  9. Bytes
  10. Array Methods
  11. Checking values
  12. http package
  13. General
  14. Database/GET/POST
  15. Beginner building
  16. Framework Examples
  17. Testing Go code
  18. Reader Type
  19. Context/logging
  20. Interfaces 2
  21. Why’s

  1. Others lists
  2. Syntax
  3. Go Wasm
  4. My Own
  5. Example projects
  6. Content Headers
  7. Resources on scaffolding restful api from url
  8. Mocking XML
  9. Docker
  10. Containers
  11. AST Package
  12. Interview
  13. Go jobs
  14. Non Go links
  15. Sveltejs
  16. Flutter
  17. VUEJS
  18. Frontend
  19. Currently What I use when deving
  20. Issues I come across and answers

Quick Notes

Google’s links

https://blog.golang.org/go.dev

If you are needing to ssh into a pi

Winscp and Putty

Really nice courses on sale together.

https://stacksocial.com/sales/the-complete-google-go-developer-master-class-bundle

Cheat Sheets

https://cheatography.com/explore/search/?q=golang

Best of go

https://bestofgo.dev/?t=24h

Jobs, resumes, ect

https://golangjob.xyz/

https://github.com/shomali11/go-interview?fbclid=IwAR2UjBDhYq4xO5rzA2-rBY844S2U29MURWuausZ4rTM7NOzbSZPnP8TEuCg

https://golangproject.com

https://golang.cafe

https://github.com/vbd/Fieldnotes/blob/main/golang.md#roadmaps-jobs-career

New easy to read generics

https://rakyll.org/generics-proposal/

https://github.com/ardanlabs/gotraining/tree/master/topics/go/generics

https://gotipplay.golang.org/p/CNfHwlI4Dbq

https://gotipplay.golang.org/p/2w2y1KEjXVE

Workshops

https://github.com/amit-davidson/awesome-golang-workshops

How to structure a go app

https://github.com/golang-standards/project-layout

Go tooling recipe

https://github.com/nikolaydubina/go-recipes

Why go?

14th used language

https://insights.stackoverflow.com/survey/2021

Highest starred language

https://github.com/golang/go

It is also #1 language to go to and not from

https://www.jetbrains.com/lp/devecosystem-2021/#Do-you-plan-to-adopt--migrate-to-other-languages-in-the-next--months-If-so-to-which-ones

Jobs

https://stacktrends.dev/technologies/programming-languages/golang/

GitHub popularity

https://madnight.github.io/githut/#/pull_requests/2022/3

Other list of resources

https://github.com/vbd/Fieldnotes/blob/main/golang.md#roadmaps-jobs-career

Go Advocates

Bill Kennedy

Dave Chaney

Ross Cox

Rob Pike

Todd Mcleod

Blog

Blog 2

Beginner

Blog

1. 2.  3.

Errors

Class1 Class2 Class3

Class1 Class2

Errors

Channel

Why Go

Channel

Git

Git

Git

Git

Git

Search

Search

Search

Search

Search

Go Advocates2

Robert Griesemer

Ken Thompson

Ian Lance Taylor

Andrew Gerrand

Brad Fitzpatrick

Blog

Website

Git

Git

Search

Search

Official Resources

Wiki

Gophercon

Concurrency

Best practices

Best Resources

Link

Link

golangprograms

Peter Bourgon

Interfaces

Concurrency

Errors

Channel

Standard

boilerplate

The Best Biggest Resources Shortened

interactive

Whats right

Best references

Design pattern

Architecture

Tour

Effective Go

Go by Example

Link

Link

Concurrency

Errors

Todd Mcloed Git

Standard

boilerplate

Todd Youtube

Book

Advocates Links

Dave Chaney/Russ Cox/Gophercon

https://dave.cheney.net/resources-for-new-go-programmers

https://dave.cheney.net/practical-go/presentations/qcon-china.html

https://research.swtch.com

https://blog.gopheracademy.com

https://github.com/golang/go/wiki

Rob Pikes archived classes

Day 1 http://web.archive.org/web/20160305024536/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay1.pdf

Day 2

http://web.archive.org/web/20160305081012/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay2.pdf

Day 3

http://web.archive.org/web/20160305075151/http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay3.pdf

Todd mcleod

https://github.com/GoesToEleven?tab=repositories

https://www.greatercommons.com

https://www.youtube.com/user/toddmcleod

https://www.udemy.com/course/oauth-authentication/?couponCode=528DD886FCA6CE900AAB

William Kennedy

https://www.goinggo.net

http://www.informit.com/store/ultimate-go-programming-livelessons-9780134757483

https://github.com/ardanlabs/gotraining/blob/master/reading/README.md

Wiki

https://github.com/golang/go/wiki/Learn

Concurrency

https://github.com/golang/go/wiki/LearnConcurrency

https://www.golangprograms.com/goroutines.html

https://github.com/MuhamedUsman/letshare/blob/main/internal/util/bgtask/bgtask.go

Best practices

https://peter.bourgon.org/go-best-practices-2016/

https://github.com/golang-standards/project-layout/blob/master/README.md

Good resource for programming and go

https://boyter.org/posts/how-to-start-go-project-2023/

https://www.class-central.com/course/coursera-functions-methods-and-interfaces-in-go-12050

https://github.com/sharkySharks/go-github-app-boilerplate/blob/master/README.md

Design patterns

https://github.com/tmrts/go-patterns/blob/master/README.md

Architecture

https://github.com/ardanlabs/service/blob/master/README.md

The Best Biggest Resources

If you are completely new to Go

https://objectcomputing.com/resources/publications/sett/november-2018-way-to-go-part-1

https://quii.gitbook.io/learn-go-with-tests/

Best for interactive

https://tour.golang.org/welcome/1

Best for directions on what’s right

https://golang.org/doc/effective_go.html

  • Best references

https://gowebexamples.com

https://github.com/GoesToEleven?tab=repositories

https://www.youtube.com/user/toddmcleod

https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/03.2.html

https://www.digitalocean.com/community/books/how-to-code-in-go-ebook.amp?__twitter_impression=true

Prolly the best book right now.

https://www.practical-go-lessons.com/chap-16-interfaces

Best resource on modules

https://zaracooper.github.io/blog/posts/go-module-tidbits/

All go books

https://github.com/dariubs/GoBooks

https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#go

Good site on many resources

http://go-lang.cat-v.org/doc/

Beginner

Example problems

https://tour.golang.org/welcome/1

Cliff notes of docs

https://golang.org/doc/effective_go.html

Go examples

https://gowebexamples.com

https://learn-anything.xyz/1601

https://github.com/smileisak/go-training/blob/master/README.md

Go by examples

https://gobyexample.com

  • Tutorials

Prolly best starter resource.

https://golangbot.com/golang-tutorial-part-1-introduction-and-installation/

https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/

https://hackr.io/tutorials/learn-golang

http://exercism.io/languages/go/about

http://yourbasic.org/golang/

https://www.getrevue.co/profile/golang/issues/autocomplete-with-go-a-github-user-search-app-sound-recording-more-133570

http://www.golangpatterns.info/home/

https://www.callicoder.com/categories/golang/

https://developpaper.com/detailed-description-of-the-creation-of-the-restful-json-api-in-the-go-language/

https://golangresources.com/

Video learner

https://www.udemy.com/go -programming-language/learn/v4/

http://www.informit.com/store/ultimate-go-programming-livelessons-9780134757483

Importing local files and setting up gi

https://docs.google.com/document/d/1EN7UOZnC3BHe0-FHSvGk6MXjTY7aTCYRcMbvZ7s_Z1Y/edit?usp=sharing

This is a resource that I made

Here

https://gitlab.com/zendrulat123/go-learning-links/blob/master/README.md

Blogs

https://golangbot.com

https://blog.learngoprogramming.com

https://golangweekly.com/issues

https://blog.meetupfeed.com/go-talk-recordings-meetups-conferences-q4-2017/

https://www.ribice.ba

https://go101.org

https://appliedgo.net/generics/

https://courseism.com/best-11-beginner-golang-courses-training-tutorial-and-certificate

https://www.golangprograms.com/go-language/interface.html

https://ieftimov.com/

Contribute to open source for beginners.

http://www.firsttimersonly.com

http://up-for-grabs.net/#/

https://github.com/MunGell/awesome-for-beginners/blob/master/README.md

https://github.com/corylanou/oss-helpwanted

https://dev.to/lemonfish/open-source-101-my-first-pr-to-hertz-2dak

Good go

https://medium.com/myntra-engineering/my-journey-with-golang-web-services-4d922a8c9897

Help docs

https://documentation.help/Golang/FAQ.html

Trivia/history

https://github.com/golang/go/wiki/CodeReviewComments

https://www.reddit.com/r/golang/comments/46bd5h/ama_we_are_the_go_contributors_ask_us_anything/?utm_source=reddit-android

https://spf13.com/presentation/the-legacy-of-go/

Coming from nodejs

https://github.com/miguelmota/golang-for-nodejs-developers/blob/master/README.md#files

Coming from python

https://golang-for-python-programmers.readthedocs.io/en/latest/

Uml Creator of your code

http://www.plantuml.com/plantuml/uml/VK_BIi0m4BpdA_ReW_OBF1GF5Gz2JzwtwROiR1B99agf_NTZAIMAE8UGcSnCc4uJnfIT68-Ez0qjmH9OyOCqE8BDG84LL8K-X6z-ee6PIIPWdoxj7eOy2jl-U1b3aChkrY7oEoRgixU9Wx-vXIhvHEaL9TDFzMKz6tzbzkCiVrESqLBnFL_txP_MtUn6KsI_QFkOMIQASDSqzUQsx3GrhxiVFlymT-IdxEGB

tricks

https://github.com/golang/go/wiki/SliceTricks

How to build a microservice

https://learning-cloud-native-go.github.io/docs/hello-world-server/

https://learning-cloud-native-go.github.io/docs/

https://github.com/learning-cloud-native-go/myapp

Daily reading

Blogs/tutorials/duplicates

https://github.com/golang/go/wiki/Blogs

https://www.ardanlabs.com/blog/

https://golangweekly.com/issues

https://blog.gopheracademy.com

https://golangnews.com

https://forum.golangbridge.org

https://www.reddit.com/r/golang/

https://github.com/golang/go/wiki/ResearchPapers

https://jgoodall.me/2015/11/17/golang-resources.html

https://github.com/astaxie

https://github.com/thewhitetulip/web-dev-golang-anti-textbook/blob/master/README.md

https://github.com/PandaWhoCodes/awesome-go-in-education

Most popular packages

https://bestofgo.dev/?t=24h

Go Templates

Multiple variables

https://play.golang.org/p/1ZtJ_bspDzu

https://github.com/slayer/autorestart/blob/master/autorestart.goCheat sheet

https://curtisvermeeren.github.io/2017/09/14/Golang-Templates-Cheatsheet

File watcher/hot reload

https://github.com/slayer/autorestart/blob/master/autorestart.go

Bytes

byte

https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/

slices

https://blog.golang.org/slices

General strings

https://medium.com/go-walkthrough/go-walkthrough-bytes-strings-packages-499be9f4b5bd

When to use []byte or string

http://joshua.poehls.me/2014/04/go-101-string-or-byte-slice/

Structs

https://itnext.io/structures-structs-in-go-golang-9ba6d9fad61b

sync.pool

http://www.akshaydeo.com/blog/2017/12/23/How-did-I-improve-latency-by-700-percent-using-syncPool/

http://dominik.honnef.co/go-tip/2014-01-10/#syncpool

func() as a param

https://newfivefour.com/golang-closures-anonymous-functions.html

My example

https://play.golang.org/p/BSpz69Ia4DU

Compiler and adding syntax

https://eli.thegreenplace.net/2019/go-compiler-internals-adding-a-new-statement-to-go-part-1/

Checking for spaces in a string

https://www.dotnetperls.com/unicode-isspace-go

Array Methods

Sort

https://play.golang.org/p/RoWTTBw9vnj

Add/Push

https://play.golang.org/p/Lm2_KTBNsMa

Filter

https://play.golang.org/p/X2J_bKRzEsU

POP/Remove

https://play.golang.org/p/D_XplpQT212

Sort string the long way

https://play.golang.org/p/XbLuSqU9Sx5

Checking values

Printing them

https://play.golang.org/p/vEMvsxJg0mc

Spew Dump

https://github.com/davecgh/go-spew

Error context

https://github.com/pkg/errors/blob/master/README.md

Visualize

https://truefurby.github.io/go-callvis/

sanitize

https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/04.2.html

http package

Http package go wiki

https://golang.org/doc/articles/wiki/#tmp3

Logging http

https://blog.questionable.services/article/http-handler-error-handling-revisited/

security

https://blog.rapid7.com/2016/07/13/quick-security-wins-in-golang/

General

Channels

https://link.medium.com/WpfOPDPb4V

http://guzalexander.com/2013/12/06/golang-channels-tutorial.html

https://imil.net/blog/2018/12/31/Understanding-golang-channel-range/

https://medium.com/@trevor4e/learning-gos-concurrency-through-illustrations-8c4aff603b3

 Install

https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-16-04

http://www.hostingadvice.com/how-to/install-golang-on-ubuntu/

https://youtu.be/XCsL89YtqCs

https://www.youtube.com/watch?v=5qI8z_lB5Lw

Doc on generics

https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/mobilebasic

General learning

https://sites.google.com/site/gopatterns/

http://yourbasic.org/golang/inheritance-object-oriented/

https://forum.golangbridge.org

http://www.golangprograms.com/go-language/slices-in-golang-programming.html

http://programming.guide/go/index.html

https://gotools.org

Interfaces

https://medium.com/golangspec/interfaces-in-go-part-iii-61f5e7c52fb5

https://research.swtch.com/interfaces

https://www.golang-book.com/books/intro/9


https://www.youtube.com/watch?v=83J256zByHA

https://github.com/golang/go/wiki/CodeReviewComments#interfaces

https://play.golang.org/p/pv7o3G32I1

https://itnext.io/interfaces-in-golang-f1aea1ba31cb

https://www.powerslacker.cc/interfaces-are-useless/

https://github.com/teh-cmc/go-internals/blob/master/chapter2_interfaces/README.md#overview-of-the-datastructures

Database

https://www.vividcortex.com/resources/the-ultimate-guide-to-building-database-driven-apps-with-go

http://www.alexedwards.net/blog/organising-database-access

Tutorials - http://go-database-sql.org/index.html

https://github.com/golang/go/wiki/SQLInterface

Structs to tables - https://github.com/samonzeweb/godb/blob/master/README.md

Prepared statements

https://stackoverflow.com/questions/30867337/golang-order-by-issue-with-mysql/30867686#30867686

Generating sql

https://github.com/Masterminds/squirrel

Restful api

http://thenewstack.io/make-a-restful-json-api-go/

https://tutorialedge.net/creating-simple-restful-json-api-with-go


https://stevenwhite.com/building-a-rest-service-with-golang-2/ - much better resource

http://blog.narenarya.in/build-rest-api-go-mysql.html

https://hackernoon.com/build-restful-api-in-go-and-mongodb-5e7f2ec4be94

http://blog.questionable.services/article/custom-handlers-avoiding-globals/

 https://medium.com/statuscode/how-i-write-go-http-services-after-seven-years-37c208122831

https://dev.to/geosoft1/versioning-your-api-in-go-1g4h?utm_campaign=Golang%20Ninjas%20Newsletter&utm_medium=email&utm_source=Revue%20newsletter

https://www.alexedwards.net/blog/how-to-properly-parse-a-json-request-body

GRPC

A way to mix languages.

You can skip all these by watching this.

https://www.safaribooksonline.com/videos/complete-introduction-to/9781789349344

Great video for advanced

https://www.udemy.com/grpc-golang/

https://github.com/grpc-ecosystem/awesome-grpc/blob/master/readme.md

My kinda learning GRPC writeup because it was taking up a whole page on here.

https://docs.google.com/document/d/1jrJHsCzokZCBPhutxjN0h7cxaYDVLSoQVS1G4V8Eggg/edit?usp=sharing

TCP connections

https://ipfs.io/ipfs/QmfYeDhGH9bZzihBUDEQbCbTc5k5FZKURMUoUvfmc27BwL/socket/controlling_tcp_connections.html

Websockets

Beginner

https://tutorialedge.net/projects/chat-system-in-go-and-react/part-4-handling-multiple-clients/

More advanced

https://yalantis.com/blog/how-to-build-websockets-in-go/

Libs

https://github.com/avelino/awesome-go

Go gotchas

http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/


https://twitter.com/davecheney/status/604837853344989184%3Flang%3Den&ved=2ahUKEwiW6tCVmvvYAhWG6oMKHYzJBlMQjjgwBHoECAUQAQ&usg=AOvVaw0zNs3pPbfn6pcKEQ2vPLbV

https://go-traps.appspot.com/#slice-traversal

Organization

https://peter.bourgon.org/go-best-practices-2016/#repository-structure

https://github.com/golang-standards/project-layout

https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1

https://link.medium.com/YnRPhtp700

Imports

https://medium.com/golangspec/import-declarations-in-go-8de0fd3ae8ff

Slices/Data structures

https://blog.golang.org/slices

https://blog.golang.org/go-slices-usage-and-internals

https://research.swtch.com/godata

https://www.ardanlabs.com/blog/2013/08/understanding-slices-in-go-programming.html


https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/the-internals-of-slice.html

Go GUIs

https://github.com/tomarus/go-gui-libs/wiki

Folder structure

https://rakyll.org/style-packages/


https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1#.ds38va3pp


https://peter.bourgon.org/go-best-practices-2016/#repository-structure

https://www.goinggo.net/2017/02/design-philosophy-on-packaging.html

https://www.elliotdwright.com/2018/02/27/directory-structure-and-manual-wiring/amp/

https://talks.bjk.fyi/bketelsen/talks?p=gcru18-best#/1

Concurrency

https://medium.com/@matryer/very-basic-concurrency-for-beginners-in-go-663e63c6ba07

For me, this was the easiest one to get started with:

https://medium.com/@trevor4e/learning-gos-concurrency-through-illustrations-8c4aff603b3

https://yourbasic.org/golang/concurrent-programming/

https://youtu.be/LvgVSSpwND8

context

https://www.jtolio.com/2017/01/writing-advanced-web-applications-with-go/

http://p.agnihotry.com/post/understanding_the_context_package_in_golang/

Docker

https://youtu.be/UtNeLfXaBJM

Code review

https://github.com/golang/go/wiki/CodeReviewComments

Auth2

https://curtisvermeeren.github.io/2018/05/13/Golang-Gorilla-Sessions

https://subscription.packtpub.com/book/web_development/9781787286740/1/ch01lvl1sec13/implementing-basic-authentication-on-a-simple-http-server

https://hackernoon.com/build-your-own-oauth2-server-in-go-7d0f660732c3

https://drstearns.github.io/tutorials/gomiddleware/

Hashing

https://medium.com/@jcox250/password-hash-salt-using-golang-b041dc94cb72

Files

https://www.devdungeon.com/content/working-files-go

A.I.

https://www.gonum.org/

https://www.elementai.com/news/2018/making-a-neural-network-from-scratch-using-go

https://www.youtube.com/watch?v=ihP7lQivA6M

Biggest resource of A.I.

https://github.com/gopherdata/resources/tree/master/tooling

Google’s A.I.

https://pkg.go.dev/github.com/google/generative-ai-go#section-readme

Observing another process

https://blog.kowalczyk.info/article/wOYk/advanced-command-execution-in-go-with-osexec.html

             Database/Post/Get/GraphQL

Database

My example of post/get

https://gitlab.com/zendrulat123/golang-post/-/blob/master/README.md

https://www.vividcortex.com/resources/the-ultimate-guide-to-building-database-driven-apps-with-go

http://www.alexedwards.net/blog/organising-database-access

Tutorials - http://go-database-sql.org/index.html

https://github.com/golang/go/wiki/SQLInterface

Structs to tables - https://github.com/samonz

Nice GraphQLtutorail

GraphQL/Dgraph -

https://tutorialedge.net/golang/go-graphql-beginners-tutorial/

GitHub - dgraph-io/travel: Starter Kit For Building Graph Database Go and Browser Apps Using Dgraph

Insomina - https://support.insomnia.rest/article/176-graphql-queries

KrakenD - KrakenD - Open source API Gateway

Skaffold - Skaffold

Dgraph facets - https://dgraph.io/docs/query-language/facets/#

                                                                    Beginner building

Middleware/logcolors/context

https://www.reddit.com/r/golang/comments/7p35s4/how_do_i_get_the_response_status_for_my_middleware/

https://github.com/logrusorgru/aurora

https://gocodecloud.com/blog/2016/11/15/simple-golang-http-request-context-example/

https://gitlab.com/zendrulat123/prettymiddleware/wikis/home

Really good form data from golang

https://dinosaurscode.xyz/go/2016/06/19/golang-mysql-authentication/

Templates and routes

https://github.com/GoesToEleven/golang-web-dev/blob/master/021_third-party-serveMux/01_julienschimdt/main.go

https://blog.gopheracademy.com/advent-2017/using-go-templates/

Connecting Jqeury/other asset files with Mux router

https://stackoverflow.com/questions/15834278/serving-static-content-with-a-root-url-with-the-gorilla-toolkit

CORS (preflight error with jqeury)

https://stackoverflow.com/questions/39507065/enable-cors-in-golang

Ajax requests with jqeury

https://blog.garstasio.com/you-dont-need-jquery/ajax/

Design

https://dave.cheney.net/2016/08/20/solid-go-design

Go books

https://github.com/golang/go/wiki/Books

https://www.programming-books.io/essential/go/

https://github.com/dgryski/go-perfbook/blob/master/README.md

https://astaxie.gitbooks.io/build-web-application-with-golang/en/preface.html

https://openstax.org/

https://bookboon.com/en/search?query=Go

cookies

https://www.calhoun.io/securing-cookies-in-go/

https://austingwalters.com/building-a-web-server-in-go-web-cookies/

Curl commands to go

https://mholt.github.io/curl-to-go/

https://curlbuilder.com/

Docker

 https://link.medium.com/X1xQhMFnfU

https://www.cloudsavvyit.com/10623/how-to-install-docker-and-docker-compose-on-linux/

Load balancer

https://kasvith.github.io/posts/lets-create-a-simple-lb-go/

Framework Examples

Mux

https://github.com/somehuman22/userapi

Echo

https://echo.labstack.com/

Really flexible

Testing Go code

General testing

https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/hello-world

https://blog.jetbrains.com/go/2022/11/22/comprehensive-guide-to-testing-in-go/

 https://medium.com/@matryer/5-simple-tips-and-tricks-for-writing-unit-tests-in-golang-619653f90742

https://blog.alexellis.io/golang-writing-unit-tests/

https://medium.com/@povilasve/go-advanced-tips-tricks-a872503ac859

https://dev.to/quii/learn-go-by-writing-tests--m63

 https://medium.com/@pierreprinetti/a-pattern-for-go-tests-3468b51535

https://quii.gitbook.io/learn-go-with-tests/

Interface Testing

https://syslog.ravelin.com/what-is-an-interface-ee67b3cc9e97

Profiling

https://jvns.ca/blog/2017/09/24/profiling-go-with-pprof/

Reader Type

io.Reader

https://medium.com/@matryer/golang-advent-calendar-day-seventeen-io-reader-in-depth-6f744bb4320b

example

https://tour.golang.org/methods/21

Context/logging

context

https://stackoverflow.com/questions/40379960/golang-context-withvalue-how-to-add-several-key-value-pairs

https://play.golang.org/p/JtDAj7aVIH

example

https://play.golang.org/p/xrK0j2W3Ecs

Interfaces 2

Russ’s explanation

https://research.swtch.com/interfaces

Understanding Interfaces

http://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go

Basic usage

https://codeburst.io/understanding-solid-principles-interface-segregation-principle-b2d57026cf6c

Best practices

https://blog.learngoprogramming.com/golang-funcs-params-named-result-values-types-pass-by-value-67f4374d9c0a

Open interface

http://changelog.ca/log/2015/01/30/golang

Using open interface for api

https://blog.gopheracademy.com/advent-2016/advanced-encoding-decoding/

http://polyglot.ninja/golang-json/

Why’s

Why inheritance questions

https://golang.org/doc/faq#inheritance

Others lists

Compilation

https://github.com/enocom/gopher-reading-list/blob/master/README.md

Others lists

https://docs.google.com/document/d/156uFdnUr5Wll7MnsGoShncluGBSip9SzNF7mz9sqU3E/edit?usp=drivesdk

https://learning-cloud-native-go.github.io/docs/a.overview/

https://github.com/hoanhan101/ultimate-go

Syntax

Am8 cheat sheet

https://github.com/a8m/go-lang-cheat-sheet

Conversions

http://yourbasic.org/golang/conversions/

[]string to string

https://golang.org/pkg/strings/#Join

concatenation

https://www.calhoun.io/6-tips-for-using-strings-in-go/

Go Wasm

Run new wasi

Download new go

https://go.dev/dl/#go1.21rc2

Uninstall old go

https://www.golinuxcloud.com/uninstall-golang/

to run wasm without a browser

https://docs.wasmtime.dev/cli-install.html

how to compile/run wasm

https://atamel.dev/posts/2023/06-26_compile_rust_go_wasm_wasi/

Link I used to make it work

https://cesarwilliam.medium.com/how-to-run-golang-1-15-code-in-a-browser-using-webassembly-e755bc733e8d

https://www.aaron-powell.com/posts/2019-02-06-golang-wasm-3-interacting-with-js-from-go/

https://ian-says.com/articles/golang-in-the-browser-with-web-assembly/

What you need

Basically it is just the following.

  1. Main.wasm file that is just a compiled version of your go files by running

GOOS=js GOARCH=wasm go build -o main.wasm main.go

This will make the main.wasm file and main.go is the name of your go file

  1. Then you just need to glue js file wasm_exec.js file that you can get from https://github.com/golang/go/blob/master/misc/wasm/wasm_exec.js?source=post_page
  2. Then you just need the html file with that calls the js

<script>

        if (!WebAssembly.instantiateStreaming) {

            // polyfill

            WebAssembly.instantiateStreaming = async (resp, importObject) => {

                const source = await (await resp).arrayBuffer();

                return await WebAssembly.instantiate(source, importObject);

            };

        }

</script>

  1. And thats pretty much it except a go server to serve that html file.
  2. var (
  3.     listen = flag.String("listen", ":8080", "listen address")
  4.     dir    = flag.String("dir", ".", "directory to serve")
  5. )
  6. func main() {
  7.     flag.Parse()
  8.     log.Printf("listening on %q...", *listen)
  9.     err := http.ListenAndServe(*listen, http.FileServer(http.Dir(*dir)))
  10.     log.Fatalln(err)
  11. }
  12. And you are done, just gotta run the compile every time you make a change to recreate the main.wasm file.

 

My Working example

https://gitlab.com/zendrulat123/wasm

links

https://github.com/golang/go/wiki/WebAssembly

My Own

Mysite

https://github.com/golangast/go_sapper

Slices/Arrays - with structs

https://play.golang.org/p/DhT__tgtd6

Interface magic

https://play.golang.org/p/IA09xBX7dYF

Embedding magic

https://play.golang.org/p/7UZUogIW_n-

Magic of map of maps of interfaces

https://play.golang.org/p/r9zyVquuvko

The Reader Interface for Go

https://medium.com/@snippet22/reader-types-2ba61290a5cf

Go Errors

https://medium.com/@snippet22/errors-in-go-1ebfa1c1b883

Adding value if unique to slice

https://play.golang.org/p/QES5-We64D6

Messing with go wasm slowly

https://play.golang.org/p/d_UziITZdoj

Restful simple example

https://gitlab.com/zendrulat123/goes

Start of my server logger

https://gitlab.com/zendrulat123/prettylogserver/blob/master/showServer.go

Pretty Middleware Logger

https://gitlab.com/zendrulat123/prettymiddleware/wikis/home

Context Logger

https://gitlab.com/zendrulat123/gow/-/blob/master/Server/Server.go

It is a lot less overhead and gives you control of the context data.  Some of it I have to refine but you can figure out the missing pieces.

filter

https://play.golang.org/p/pT-fCosqB6Y

Using reflect to separate out the fields and types

https://go.dev/play/p/zuSRmXdvBTx

Parse a string command into a struct

https://go.dev/play/p/SgAoxI3Jx14

Split a file from directory string

https://go.dev/play/p/pF9778GK4uH

Example projects

1.

https://github.com/josephspurrier/gowebapp

Updating Go on linux

1.

git clone https://github.com/udhos/update-golang

cd update-golang

sudo ./update-golang.sh

Content Headers

Allows images/css/assets to come through the templating

https://www.informit.com/articles/article.aspx?p=2861456&seqNum=5

Resources on scaffolding restful api from url
  • Use curl commands first instead of building form or query.

https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data

https://app.quicktype.io/

curl -i 'http://youripaddress/get?link=www.google.com&meta=search' -H 'Content-Type: text/pl&meta=searchin' -X POST -d "some post data"

https://davidwalsh.name/curl-post-file

https://curlbuilder.com/

Restful resource

https://www.programming-books.io/essential/go/handling-http-method-accessing-query-strings-request-body-2f90f3ba9eab401699dbb119feab6665

Sending request jqeury/ajax without refresh

https://code.tutsplus.com/tutorials/submit-a-form-without-page-refresh-using-jquery--net-59

Things to remember

for preflight

 1. check with https://jqueryui.com/autocomplete/ to see if the jqeury is working

 2. make sure the jqeury url: "http:url" is complete.

 3. make sure you are using all the properties of the struct and you are NOT decoding just the properties

 4. make sure to set the route to cors.

 handler := http.HandlerFunc(links)

        c := cors.New(cors.Options{

                AllowedOrigins: []string{"*"},

        })

        handler = http.HandlerFunc(show)

Jqeury json parsing

https://www.digitalocean.com/community/tutorials/how-to-work-with-json-in-javascript

Jqeury autocomple

https://jqueryui.com/autocomplete/

Mocking XML

Mocking xml

To create mock

http://www.json-gen.com/

https://onlinerandomtools.com/generate-random-xml?&depth=1&max-elements=10&always-max-elements=true

To understand consuming xml

https://www.programming-books.io/essential/go/xml-6744c6d0d620448dbe66e224f64b6f8b

To consume a json resource in go

https://tutorialedge.net/golang/consuming-restful-api-with-go/

Consuming api json

https://eli.thegreenplace.net/2019/go-json-cookbook/

To consume a xml response in go

https://larry-price.com/blog/2015/12/04/xml-parsing-in-go/

To create structs from mock

https://www.onlinetool.io/xmltogo/

An example put together

https://play.golang.org/p/hvlcsPAbUmL

Docker

Docker

https://docs.google.com/document/d/1lqpv7zRxL1DPmlP2KmcsZd9O1JwgfzRzpK3ZBu9Th2U/edit?usp=sharing

https://www.youtube.com/watch?v=UtNeLfXaBJM

Docker compose

https://www.educative.io/blog/docker-compose-tutorial

Containers

Resources for understanding Containers

https://docs.google.com/document/d/1ZSplcWI9GI7ZgBanBynh68x4oGCASPYJGF7AksYq8m8/edit?usp=sharing

Good explanation of what containers are.

https://www.infoq.com/articles/build-a-container-golang/

AST Package

Ast/writing tools

https://arslan.io/2017/09/14/the-ultimate-guide-to-writing-a-go-tool/

Interview

Interview

https://stackoverflow.com/questions/49771806/how-to-learn-internals-of-of-the-go-programming-lanauge-for-noob/49772651#49772651

https://github.com/nas5w/interview-resources

https://app.gointerview.dev/cheatsheet

Working as a lead of a small team of Go programme...

https://www.reddit.com/r/golang/comments/e937qu/how_to_become_a_senior_go_dev/fagg89k?utm_medium=android_app&utm_source=share

More interview resources

https://github.com/hoanhan101/algo/blob/master/README.md

https://github.com/TutorialEdge/Go/blob/master/README.md

https://dev.to/olanetsoft/12-github-repositories-to-help-you-ace-your-job-interview-2a08

SRE

https://github.com/mxssl/sre-interview-prep-guide

Go jobs

Job resources for Go

https://golangprojects.com

https://welovegolang.com

Reading/Writing Files

Using VIper

https://towardsdatascience.com/use-environment-variable-in-your-next-golang-project-39e17c3aaa66

Replace a word in a file

https://www.socketloop.com/tutorials/golang-read-a-text-file-and-replace-certain-words

Just example I did

https://play.golang.org/p/ZRaYp8I3SUO

Cheat sheet

https://cheatography.com/cizixs/cheat-sheets/go-files/

Cobra CLI framework

Main page

https://github.com/spf13/cobra

Great resource on learning cobra

https://www.youtube.com/watch?v=WvWPGVKLvR4

https://towardsdatascience.com/how-to-create-a-cli-in-golang-with-cobra-d729641c7177

To get the cobra cli commands

(idk why no one tells you this)

  1. go get -u github.com/spf13/cobra/cobra
  2. cobra init --pkg-name my-calc

If it does not work

https://github.com/spf13/cobra/issues/270

If it still will not work, reset your computer, it finally worked for me after that.

Non Go links

Front-end

https://github.com/h5bp/Front-end-Developer-Interview-Questions

https://github.com/yangshun/front-end-interview-handbook

https://frontendmasters.com/books/front-end-handbook/2018/2018.html

https://github.com/getify/You-Dont-Know-JS/blob/master/README.md

https://wesbos.com/

https://www.youtube.com/user/TechGuyWeb

https://frontendmasters.com/books/front-end-handbook/2019/#3

https://codepen.io/oliviale/post/css-guides

https://github.com/jwasham/coding-interview-university/blob/master/README.md

Position

https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/

Margins

https://www.sitepoint.com/collapsing-margins/

Javascript quick playground for testing quickly

https://stephengrider.github.io/JSPlaygrounds/

Removing characters with javascript for api

https://jsfiddle.net/7tuL3cac/1/

Design tips

https://medium.com/daily-now/most-popular-development-posts-of-the-week-11-apr-2018-12f7f2e1c4a

https://www.youtube.com/playlist?list=PLmZLFWEwl1DQBMjKSI5sqFuGCxZSJC3f4

Web assembly

https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/

https://github.com/golang/go/wiki/WebAssembly

Git reference

https://excalith.github.io/Interactive-Git-Cheatsheet/

https://learngitbranching.js.org

Web resources

https://www.reddit.com/r/FreelanceProgramming/comments/8r3a1p/comprehensive_list_of_all_kinds_of_resources_for/?utm_source=reddit-android

https://github.com/leonardomso/33-js-concepts/blob/master/README.md

Top 300 mentioned ​books on stackoverflow.com by 📚Bookadvice https://link.medium.com/OIwMUPilbR

Js

https://flaviocopes.com/javascript/

https://javascript.info

http://www.javascriptkit.com

Responsive squares just css

https://codepen.io/anon/pen/djKBgq

gitlab

cloud9

https://gist.github.com/juemura/899241d73cf719de7f540fc68071bd7d

https://learngitbranching.js.org

Math

http://www.math.ucla.edu/~tao/QED/QED.html

Acme editor

https://github.com/evbogdanov/acme

Go version of acme

https://github.com/as/a

General coding

https://github.com/DovAmir/awesome-design-patterns/blob/master/README.md

https://github.com/sindresorhus/awesome/blob/master/readme.md


https://www.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/

https://www.cameronmacleod.com/blog/cs-degree-structure

Computer science

https://github.com/ossu/computer-science/blob/dev/README.md

https://www.extension.harvard.edu/open-learning-initiative/intensive-introduction-computer-science

https://teachyourselfcs.com/

https://www.anysolo.com/books-and-videos-for-a-beginner-programmer/

https://www.nand2tetris.org/

https://www.freecodecamp.org/news/free-courses-top-cs-universities/

Cheat sheets

https://link.medium.com/8lXSDySLTT

https://www.codeinwp.com/blog/wordpress-cheat-sheets-web-development-design/?amp

https://envato.com/blog/cheatsheets-web-designers/

http://overapi.com

https://gto76.github.io/python-cheatsheet/

https://devhints.io/

CSP's

https://en.m.wikipedia.org/wiki/Constraint_satisfaction_problem

https://github.com/gnboorse/centipede

https://en.m.wikipedia.org/wiki/Quicksort

Algorithms

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/

https://github.com/x899/algorithms?files=1

Coding problems

https://codingcompetitions.withgoogle.com/codejam/archive

https://github.com/shomali11/go-interview/blob/master/strings/addbinaries/README.md

Javascript finding and removing an item from an array

items.splice( items.indexOf(name), 1 );

SvelteJS

To try it

https://svelte.dev/repl

Nice 7 hour video training

https://www.youtube.com/watch?v=ujbE0mzX-CU

scrimba

https://scrimba.com/course/glearnsvelte

How to mix go and sveltejs

https://docs.google.com/document/d/12oCEuxB6bklnEQhpuIcgt2NekFi0xaHguvGO8Ridxf4/edit?usp=sharing

examples

An example https://svelte.dev/repl/a5ea8007e01a41d2b7f1bb3071d6418b?version=3.22.2

Consuming an api

https://svelte.dev/repl/312e40192391486fa457663693196672?version=3.22.2

A with sapperproject

https://docs.google.com/document/d/1W-3u7ZTwr3r0ZuUlVUCOAidvWMAzJumH1YkvwcAK7Yk/edit?usp=sharing

Flutter

Basic tutorial

https://www.udemy.com/course/flutter-bootcamp-with-dart/

Flutter stuff I learned

https://docs.google.com/document/d/1-01EbzgTBCIXUFTAFyv66THQNqqtm-NFGcwV3Un7XjE/edit?usp=sharing

https://docs.google.com/document/d/1AxYUb3pGMcK6mjWHcxuPcIiH30HlsQwOAcdUsf0ulJY/edit?usp=sharing

https://docs.google.com/document/d/1w0mS32EtizYVd5O0BgjpWauYw2ubasYmPW7anYA6Bfc/edit?usp=sharing

VUEJS

Basic tutorial

The guy who made these videos apparently likes Go

https://scrimba.com/g/glearnvue

https://learning.oreilly.com/search/?query=vuejs

Learning example todo list

http://jsfiddle.net/zendrulat/eywraw8t/525401/

Frontend

Google tool

http://google.github.io/tracing-framework/index.html

Image loading

https://archive.barrelny.com/blog/taking-control-of-imageloading/

shadows

http://indamix.github.io/real-shadow/#/box/

UI ideas

https://goodui.org/

styles

https://bjankord.github.io/Style-Guide-Boilerplate/

https://flatuicolors.com/

https://tympanus.net/codrops/2013/06/13/creative-button-styles/

https://getmdl.io/index.html

fonts

https://www.slant.co/topics/67/~best-programming-fonts

Front end resources

https://uptodate.frontendrescue.org/

https://gist.github.com/ericelliott/d576f72441fc1b27dace

https://calltoidea.com/

http://jakiestfu.github.io/Medium.js/docs/

https://webdevresources.info/

https://github.com/vlipatdev/frontend-resources/blob/master/README.md

Js learning

https://colintoh.com/blog/5-array-methods-that-you-should-use-today

http://jstherightway.org/

https://addyosmani.com/resources/essentialjsdesignpatterns/book/#constructorpatternjavascript

React material

https://v0.material-ui.com/#/

Lazy load

https://github.com/aFarkas/lazysizes

ux

http://uxchecklist.github.io/

https://abookapart.com/products/designing-for-emotion

Css integration

https://github.com/postcss/autoprefixer

Mobile friendly

https://search.google.com/test/mobile-friendly

Text editor

https://summernote.org

Css purify

https://github.com/purifycss/purifycss

wireframe

https://wireframe.cc/

http://paletton.com/#uid=1000u0kllllaFw0g0qFqFg0w0aF

https://app.uxpin.com

http://colllor.com/skyblue

mockups

https://www.jotform.com/blog/mixing-multiple-fonts/

https://960.gs/

https://vimeo.com/17091814

Flex guide

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

angular 8

https://www.udemy.com/the-complete-guide-to-angular-2/

To deploy an angular app to a host and install it on your computer.

https://docs.google.com/document/d/1gCvZBcNZrQ80L8SaJpsFkNjTpCCbaNN5-IKTNaURxDg/edit?usp=sharing

Because no need to code much frontend

Most of it is Angular CLI

https://cli.angular.io/

I use mostly the Material

https://material.angular.io/

I try to mimic material.io

https://material.io/design/components/app-bars-top.html#anatomy

Promises in Javascript

https://www.geeksforgeeks.org/javascript-promise-resolve-method/

Sveltejs returning api result

https://svelte.dev/repl/312e40192391486fa457663693196672?version=3.22.2

Fetch method

https://jsfiddle.net/zendrulat/z3Leox8q/

Flex Box

https://gridbyexample.com/

https://labs.jensimmons.com/

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout

Cs information

https://teachyourselfcs.com/

Currently What I use when deving

Editor

VScode

Sometimes good resource for sales

https://stacksocial.com/

computer

Type: Laptop System: Acer product: Aspire E5-575G v: V1.04 serial:

Because espires always go on sale and become really cheap.  You just have to wait. Mostly got it for the 15.6’ screen.

OS’s

ubuntu

How I setup what I use.

https://youtu.be/o8csuBEhjzM

Currently What I am working on

Older resources im using

To create the backend restful

https://gitlab.com/zendrulat123/learnserver/-/blob/master/main.go

Goal

To create a basic cms with go

Resources hoping to implement after I get basics done.

https://www.dudley.codes/posts/2020.05.19-golang-structure-web-servers/

Issues figured out.

Had to add “go” in the go mod file after the import.

Cannot call the file, package, method the same.

Why am i using what I am using

Why am I using go, ngrok, sqlite?

  1. Go is obvious because of interface types and speed and readability. So basically for scaling.
  2. Ngrok is used for testing so that you dont mixup localhosts with cors.
  3. sqlite because its really easy
  4. Basically everything is for productivity and scaling and to negate complexity and be able to have a mental model of your code so that you can just focus on the data.

Go issues and what I do

https://docs.google.com/document/d/1kFgS9nBbtk73IyQhJOBQb-eY771Yy-WZc2Kf-3vDiqs/edit?usp=sharing

Arguments against python

https://docs.google.com/document/u/0/d/1dpKjHGzzmpGe2-34x6fb3fhtEBW25OCwL9UvVEOwrPc/mobilebasic

Crypto security package crypto/ecdh

Background https://words.filippo.io/dispatches/go1-20/

example

https://go.dev/play/p/VPy9PW1R-qG

JWT security

https://qvault.io/2020/02/20/how-to-build-jwts-in-go-golang/

Compiling static assets into your binary

https://vimeo.com/219863271

https://github.com/gofiber/fiber/issues/375

Gobuffalo

I use it to generate resources quickly

https://gobuffalo.io/en/docs/resources#generating-resources

https://www.youtube.com/watch?v=HOSDxHMiHLk&list=PLFP7SbLMoK_Y5Gj8WzUuDLQFXT6uYanTe

This is what I use to setup gobuffalo on my linux distro mint.

https://docs.google.com/document/d/1UXgh__H4aeKyGdMSwj1kOnvmvaYUhbJnNSUthdiUZ9k/edit?usp=sharing

My environment

OS

https://ubuntu.com/

Editor

https://code.visualstudio.com/

debugger

Delve

export GOPATH=$HOME/go

export PATH=$GOPATH/bin:$PATH

To setup make sure to add the following to settings.json

"go.gopath": "your go path",

   "go.goroot": "your go root"

Acme editor

https://www.reddit.com/r/linux4noobs/comments/nkdvdg/acme_text_editor/

https://askubuntu.com/questions/388943/peazip-error-while-loading-shared-libraries-libx11-so-6

My generate code

Generate a struct

https://go.dev/play/p/v8XPMlW0kzb