[HN Gopher] Show HN: I wrote a book about Go
       ___________________________________________________________________
        
       Show HN: I wrote a book about Go
        
       Author : maximilienandi
       Score  : 430 points
       Date   : 2021-03-24 14:56 UTC (8 hours ago)
        
 (HTM) web link (www.practical-go-lessons.com)
 (TXT) w3m dump (www.practical-go-lessons.com)
        
       | hodder wrote:
       | "This site is blocked due to a security threat that was
       | discovered by the Cisco Umbrella security researchers."
       | 
       | Category: Malware
       | 
       | That is the warning I'm getting on this link at work. Of course I
       | don't think you are trying to malware people, but might want to
       | look into that on why people might not be able to access your
       | site.
        
         | maximilienandi wrote:
         | Hello hodder, thanks for reporting this. I have no idea what is
         | the cause of this...
        
           | maximilienandi wrote:
           | I ran a scan with Norton antivirus on the website artifacts
           | downloaded on AWS the result is OK.
           | 
           | I also checked the website with Google safe browsing
           | (https://transparencyreport.google.com/safe-
           | browsing/search?u...) and the result is also OK. I also run
           | the test with virus total website and no threats have been
           | detected. (https://www.virustotal.com/en/#url).
           | 
           | If you have more information about this do not hesitate to
           | share!
        
             | victoro wrote:
             | My browser (when behind work VPN) is showing an untrusted
             | SSL cert error so probably the issuer is not whitelisted in
             | some employer's systems.
        
               | maximilienandi wrote:
               | I'm using AWS amplify to deploy the website, they provide
               | a free SSL certificate.
               | 
               | That's probably the reason !
        
             | rhd wrote:
             | Hi,
             | 
             | It's probably a combination of young domain, and associated
             | IPs blocked from mail.
             | 
             | Check on Cisco Talos https://talosintelligence.com/ Submit
             | ticket: https://talosintelligence.com/reputation_center/sup
             | port#repu...
        
       | RSHEPP wrote:
       | Learned something useful right away in the cheatsheet. Use table
       | tests all the time, but never thought of the param struct for
       | multiple function params.
       | 
       | Awesome work!
        
       | mprovost wrote:
       | Nice! What were the tools you used to write it and convert it to
       | the ebook and paper versions?
        
         | maximilienandi wrote:
         | Thanks,
         | 
         | I worte the book using Lyx (https://www.lyx.org/) Each chapter
         | is a Lyx document.
         | 
         | Then I converted : Lyx to LaTeX, then LaTeX doc are converted
         | to HTML with pandoc (https://pandoc.org/).
         | 
         | Then I have an homemade script to generate Vue Components.
         | 
         | Lyx and Pandoc are great tools !
        
       | pietroppeter wrote:
       | I just love the positive vibes of this post, feedback received,
       | and OP's replies. It just makes HN a happier place!
        
         | maximilienandi wrote:
         | I also loved the experience of posting!I'm so happy to read
         | messages of the community ! Thank you all !
        
       | throwaway77384 wrote:
       | I applaud the effort. Very impressive work. I appreciate the free
       | access to this, but will be buying, if / when I have time to work
       | through some of the lessons :)
        
         | maximilienandi wrote:
         | Thanks for your feedback ! It makes me happy if it can help you
         | !
        
       | zealsham wrote:
       | Whenever I encounter any book on go , the first thing I do is to
       | read the installation page . This is the best I've seen of any
       | book . You made the whole "PATH" thing that drives new go users
       | mad and gave a thorough reason of why it's needed .
        
         | maximilienandi wrote:
         | The first time I installed Go I also ran into installation
         | problems. At this time I was on Ubuntu.
         | 
         | I'm happy that you appreciated my explanations.
         | 
         | Hope it will help somebody in the future
        
       | ok_coo wrote:
       | Thank you for this! We just started using Go for all of our new
       | and/or updated backend stuff and I love it.
       | 
       | I'll definitely be checking this out. :)
        
         | maximilienandi wrote:
         | Thanks I appreciate :)
        
       | binaryorganic wrote:
       | Always assume Go references are about the board game, always
       | disappointed. Congrats on the book!
        
         | maximilienandi wrote:
         | Thank you very much !
        
       | maximilienandi wrote:
       | Hello all,
       | 
       | After 2.5 years of writing, countless weekends and evenings, I
       | released a book about the Go programming language.
       | 
       | The book is available for free on the website because I wanted to
       | give something back to the developer's community :)
       | 
       | It is composed of 700+ pages, 41 chapters, and approximately 405
       | drawings/screenshots.
       | 
       | I tried to cover all the important topics that a new Go
       | programmer should know.
       | 
       | At the end of each chapter, you can find a small Q/A and a bullet
       | point list of key notions.
       | 
       | I would love to hear your feedback about it!
        
         | 120bits wrote:
         | I can't thank you enough! I wanted to learn Go and wanted
         | something like this. I really like the chapter structure, it
         | really easy to follow and progress.
        
           | maximilienandi wrote:
           | Thank you very much, I really appreciate :) I hope that it
           | will help you in your Go journey.
           | 
           | Do not hesitate to send me feedback in order for me to
           | improve the content.
        
         | movedx wrote:
         | On another note, you might want to consider converting the
         | online copy of the book to MkDocs (using the Material theme),
         | so that it's easier to read, navigate and search.
         | 
         | I'd gladly lend a hand with this, if you like?
        
           | maximilienandi wrote:
           | I will take a look at it, thanks for your suggestion. I will
           | check if Lyx has an option to export to this format.
        
         | primitivesuave wrote:
         | Thank you for this fantastic resource. I've been meaning to
         | learn Go for a while, but have a lot of difficulty staying
         | focused on tutorials with big blocks of text. Your concise
         | bullet format is really easy to follow, and would be especially
         | useful for anyone who doesn't speak English as their first
         | language.
         | 
         | Also really respect that you clearly did this out of passion,
         | so I'll say this to everyone on your behalf: support the author
         | by purchasing a digital copy!
         | 
         | https://www.practical-go-lessons.com/buy-digital-or-hard-cop...
        
           | maximilienandi wrote:
           | oh thank you! I appreciate your kind words:) It's very
           | rewarding to read all the comments on this thread... You made
           | my day !
        
         | cosmodisk wrote:
         | This is great,well done! I was thinking of picking Go at some
         | point this year, need not to forget to buy the book. May I ask
         | what did you for the website,looks pretty neat?
        
           | maximilienandi wrote:
           | Thank you for your feedback and support!
           | 
           | Go is easy to learn, and you need a limited amount of time to
           | produce code!
           | 
           | I built the website with VueJS, and I use bootstrap for the
           | CSS part (with https://bootstrap-vue.org/).
        
             | BrandoElFollito wrote:
             | Great book! (and this from someone who does not like Go
             | :)). After reading a bit I was almost ready to jump in
             | again and then I remembered errors and the associate
             | repeating code and I got back to Python.
             | 
             | I have a friend who is constantly trying to drag me though
             | the fence so maybe one day.
             | 
             | You may want to try quasar (https://quasar.dev/) for your
             | VueJS sites - it is excellent.
        
               | maximilienandi wrote:
               | Thank you ! I hope this day is close !
               | 
               | I will try quasar on another project maybe, I did not
               | know this framework. I also need to improve my
               | competences with React :)
        
         | jjice wrote:
         | I really like that you go in detail of common and important
         | standard library functions and hit come important things like
         | database drivers and JSON. 700 pages is a nice big programming
         | book and it looks like you're not skimping on details. Great
         | job and good work!
        
           | maximilienandi wrote:
           | Hello jjice,
           | 
           | Thanks for those kind words, I tried to cover a lot of
           | topics. Consequently it makes a lot of pages!
           | 
           | I hope that the content will help you ! Do not hesitate to
           | contact me if you spotted an error or if you want to suggest
           | an improvement.
        
         | movedx wrote:
         | This looks amazing. Thank you.
         | 
         | I've found an error.
         | 
         | In Chapter 6, Section 3 (Introduction) you say, "In a previous
         | chapter, we covered decimal and binary notation." but those
         | topics aren't covered until Chapter 7 :)
        
           | maximilienandi wrote:
           | Thanks for spotting this, I will add it to my todo.
        
         | codegeek wrote:
         | I love it. Hats off to you for your hard work on this. Who
         | builds your illustrations/graphics ? Looks cool.
        
           | maximilienandi wrote:
           | My spouse :)
           | 
           | Thank you for your feedback !
        
             | preommr wrote:
             | Should probably credit them in the foreward.
        
             | bigdict wrote:
             | At this point any Go-related work must come with
             | illustrations done by the spouse.
        
       | ChrisMarshallNY wrote:
       | Excellent!
       | 
       | I am not a Go programmer, so I am not your target audience, but I
       | have written a book, so I understand the work.
       | 
       | Thanks so much!
        
         | maximilienandi wrote:
         | Thank you ChrisMarshallNY, for your kind message. I hope you
         | will start using Go in the future!
        
           | ChrisMarshallNY wrote:
           | I sent a link to a friend, who is very much a Go programmer
           | (I am a Swift programmer).
        
             | maximilienandi wrote:
             | Thanks! I hope that he will find it interesting
        
       | arendtio wrote:
       | I just scrolled through the chapter that looked most promising to
       | me in the table of contents (Chapter 36: Profiling) and I have to
       | say _I love it!_
       | 
       | On that one hand the basic steps are there like how to download a
       | specific zip file, but at the same time it goes deep into the
       | different types of profiling and how to use the mandatory tools.
        
         | maximilienandi wrote:
         | Thanks for your support arendtio ! I am happy that you liked
         | this chapter, it took me a lot to write, because I never used
         | pprof before. But it's a great tool.
        
       | kroolik wrote:
       | The book looks very interesting! In the section about logging,
       | Logrus is unfortunately in maintenance mode now. We've used it at
       | my place, now we have switched to Zap.
        
         | maximilienandi wrote:
         | Thanks for your feedback ! I will add a warning in the book
         | concerning Logrus.
         | 
         | I will also check Zap to add an example :)
        
       | redisman wrote:
       | Looks great. I'm getting to learn go in my new role so this will
       | help me get up to speed before I start
        
         | maximilienandi wrote:
         | Hello redisman, I hope it will help you.
         | 
         | Do not hesitate to share your feedback with me, especially if
         | something is difficult to understand or if you spotted a
         | mistake :)
        
       | [deleted]
        
       | _kst_ wrote:
       | I haven't taken a look at it yet. Can you summarize what it
       | offers that Donovan & Kernighan's "The Go Programming Language"
       | doesn't? (Sincere question, not being snarky.)
        
         | maximilienandi wrote:
         | Thanks for your question. "The Go Programming Language" is a
         | well-written book. I have not read every line of it, so my
         | answer might not be precise.
         | 
         | I will highlight some key aspects of my project:
         | 
         | I teach computer science in my free time in a small non-profit
         | organization. Most of the students have no knowledge at all in
         | the field. I wanted to write a book that anybody could use, not
         | only to learn Go but also to learn how to code from the
         | beginning.
         | 
         | I tried to explain every notion by imagining a student with no
         | prior knowledge. I also added content about some key notions
         | like encoding, some basic knowledge about what a computer is
         | made of, what a pointer is ...
         | 
         | I also tried to keep a practical approach, with many examples.
         | I also added a lot of drawings and screenshots. Images are
         | sometimes more efficient than long explanations (this what I
         | learned when I began to teach children).
         | 
         | Keep me updated if you have some time. I would love to hear
         | your feedback ;)
        
       | exdsq wrote:
       | This is excellent! Hope you get some sales to make up for the
       | effort :)
        
         | maximilienandi wrote:
         | Thanks, I hope too !
        
       | adeptima wrote:
       | Hi maximilienandi, great work! Easy to read for non-native!
       | 
       | Always nice to see more alternative to the Blue Book too ;)
       | 
       | When I open Golang books or any kind of tutorials, I usually jump
       | into Concurrency sections to see its depth and quality ...
       | 
       | If ever start thinking of selling v2 of your book, please go
       | through Katherine Cox-Buday book "Concurrency in Go" content.
       | 
       | I like Katherine but your writing style is much much easy to read
       | and process. Wish half of Katherine content will migrate into
       | your future works.
       | 
       | Adding reference on Katherine book might help others too.
        
         | maximilienandi wrote:
         | Hi adeptima, thank you for your feedback!
         | 
         | I am really happy that you like the writing style.
         | 
         | I will order the book written by Katherine.
         | 
         | Concurrency is a really difficult topic; maybe I will add more
         | content about it later. Real-world use-cases are hard to find
         | also.
        
       | lovetocode wrote:
       | I love this -- thank you!
        
         | maximilienandi wrote:
         | Thanks for your support!
        
       | Dentrax wrote:
       | Excellent job! Maybe you are already thinking about it, but...
       | You can add a Search Bar and Go version & language selection for
       | the documentation. (i.e. see (bottom left):
       | https://docs.godotengine.org/en/stable/)
       | 
       | Also I just published this on /r/golang if you do not mind. :)
        
         | maximilienandi wrote:
         | Thank you for those suggestions. Adding a search bar is already
         | in my todo list. I will probably use Algolia.
         | 
         | Thank you for posting this on reddit ! I tried to do it but I
         | made a mistake in the title, so I deleted the post and posted
         | again (I never posted on reddit before). Now it seems that my
         | second post is not really visible.
         | 
         | Thank you for your support Dentrax !
        
       | insdel wrote:
       | Looks very good! Thanks for providing it free.
        
         | maximilienandi wrote:
         | I hope it can help others in the process of learning how to
         | build programs !
        
       | itwy wrote:
       | I love your writing style. Specially the way of not assuming
       | previous knowledge.
        
         | maximilienandi wrote:
         | I tried to define every notions used. Thank you very much for
         | liking my style. I hope that this book will help others to
         | start programming with Go !
        
       | dctoedt wrote:
       | Looks great.
       | 
       | How'd you build the Web site -- a package of some sort, or did
       | you roll your own CSS? I've been working on a law-related book
       | that I plan to post; I like the look of your site.
       | 
       | (I suppose it's too much to hope for that you created this with
       | Emacs and org-mode -- which is what I'm writing my book in --
       | together with a nifty CSS package ....)
        
         | maximilienandi wrote:
         | Thanks !
         | 
         | I wrote it using Lyx which is WYSIWYG for LaTeX. Then I convert
         | the LaTeX document into HTML.
         | 
         | The HTML is then injected (with some modifications) into a Vue
         | component (the website is built with Vue).
         | 
         | I use only Bootstrap for the CSS (with bootstrap-vue). When I
         | have some time I will publish the sources of my script.
         | 
         | I hope it can help you !
        
           | AnimalMuppet wrote:
           | > I wrote it using Lyx which is WYSIWYG for LaTeX. Then I
           | convert the LaTeX document into HTML.
           | 
           | What did you use to do the conversion? Will Lyx export HTML,
           | or did you use something else?
        
             | dctoedt wrote:
             | Pandoc will convert from LaTex to HTML (I've not tried that
             | specific conversion). [0]
             | 
             | [0] https://pandoc.org/
        
               | maximilienandi wrote:
               | I used Pandoc to make the conversion. Lyx has also an
               | option to export to HTML but I was not satisfied with the
               | result.
        
               | AnimalMuppet wrote:
               | Thanks!
        
       | tomca32 wrote:
       | This looks great! I absolutely love that it assumes no knowledge
       | of anything, including how the computer works. This is how all
       | educational material should be written.
       | 
       | I think that most knowledge gaps we all have are caused by a
       | teacher/book making assumptions about what we already know.
        
         | maximilienandi wrote:
         | Hi tomca32,
         | 
         | Thank you for the feedback. I tried to make it accessible to
         | new programmers. I hope it will be used by people how wants to
         | start their programmer's journey.
         | 
         | Being a self-taught programmer, I always suffered from not
         | knowing some very basic notions. I learned a lot in the process
         | of writing those chapters.
        
       | dave_sid wrote:
       | Moby wrote a song about it in the 90s
        
         | dave_sid wrote:
         | https://youtu.be/N_Qwo8sT9U0
        
       | wmu wrote:
       | Looks great! Seems there were some issues in conversion into HTML
       | chapter titles. For example https://www.practical-go-
       | lessons.com/chap-31-logging#log.fat...
        
         | maximilienandi wrote:
         | Thanks for your feedback I will fix this :)
        
       | damip wrote:
       | Wow thank you for your work and providing it for free. Is there a
       | way to submit correction PRs ? maybe a github ?
        
         | maximilienandi wrote:
         | I'm currently working on it :)
         | 
         | For the moment you can post your corrections on that URL :
         | https://www.practical-go-lessons.com/feedback
        
       | boundingpoodle wrote:
       | Thank you for building this!
       | 
       | I appreciate chapter 40 being included, a quick summary of
       | go/programming recommendations. Also the illustration on the
       | landing page caught my eye, good choice.
        
         | maximilienandi wrote:
         | Many thanks! When I began writing Go code I found a lot of "Go
         | idioms" on blog posts, it was hard to remember all of them. By
         | the way, "Effective Go" (https://golang.org/doc/effective_go)
         | is also a great summary of good practices.
        
       | perceptron001 wrote:
       | Great work. I am learning golang right now. The art/pics look
       | amazing and the samples and the explanations are on point. Thank
       | you for your work! I'm sure it will go a long way I'll made sure
       | I tweet about it.
        
         | maximilienandi wrote:
         | Thank you for your support, I really appreciate, I hope many
         | newcomers will find it interesting.
        
       ___________________________________________________________________
       (page generated 2021-03-24 23:00 UTC)