Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition by Alan Donovan (PDF)

25

 

Ebook Info

  • Published: 2015
  • Number of pages: 400 pages
  • Format: PDF
  • File Size: 5.06 MB
  • Authors: Alan Donovan

Description

The authoritative resource to writing clear and idiomatic Go to solve real-world problemsGoogle’s Go team member Alan A. A. Donovan and Brian Kernighan, co-author of The C Programming Language, provide hundreds of interesting and practical examples of well-written Go code to help programmers learn this flexible, and fast, language. It is designed to get you started programming with Go right away and then to progress on to more advanced topics.Basic components: an opening tutorial provides information and examples to get you off the ground and doing useful things as quickly as possible. This includes: command-line argumentsgifsURLsweb serversProgram structure: simple examples cover the basic structural elements of a Go program without getting sidetracked by complicated algorithms or data structures.Data types: Go offers a variety of ways to organize data, with a spectrum of data types that at one end match the features of the hardware and at the other end provide what programmers need to conveniently represent complicated data structures.Composite types: arraysslicesmapsstructsJSONtest and HTML templatesFunctions: break a big job into smaller pieces that might well be written by different people separated by both time and space.Methods:declarationswith a pointer receiverstruct embeddingvalues and expressionsInterfaces: write functions that are more flexible and adaptable because they are not tied to the details of one particular implementation.Concurrent programming: Goroutines, channels, and with shared variables.Packages: use existing packages and create new ones.Automated testing: write small programs that check the code.Reflection features: update variables and inspect their values at run time.Low-level programming: step outside the usual rules to achieve the highest possible performance, interoperate with libraries written in other languages, or implement a function that cannot be expressed in pure Go.Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download and may be conveniently fetched, built, and installed using the go get command.

User’s Reviews

Editorial Reviews: About the Author Alan A. A. Donovan is a member of Google’s Go team in New York. He holds computer science degrees from Cambridge and MIT and has been programming in industry since 1996. Since 2005, he has worked at Google on infrastructure projects and was the co-designer of its proprietary build system, Blaze. He has built many libraries and tools for static analysis of Go programs, including oracle, godoc -analysis, eg, and gorename. Brian W. Kernighan is a professor in the Computer Science Department at Princeton University. He was a member of technical staff in the Computing Science Research Center at Bell Labs from 1969 until 2000, where he worked on languages and tools for Unix. He is the co-author of several books, including The C Programming Language, Second Edition (Prentice Hall, 1988), and The Practice of Programming (Addison-Wesley, 1999).

Reviews from Amazon users which were colected at the time this book was published on the website:

⭐Highly recommended for anyone looking to learn GO. I’m a seasoned developer, and this book took all the “scary” out of learning GO from scratch. At the end of each chapter, there are little challenges to extend the code examples used in the chapter with additional functionality. The challenges are just tricky enough to cause you to flex your dev brain and really flex your coding muscles. I’m not fully done with the book yet, but it’s organized quite well and all examples are very relevant to today’s real world scenarios.

⭐This review mostly focuses on the presentation and typesetting of the digital edition. As far as the content, I completely echo the praise that others have lauded on this book. It is the essential book that has been missing for Go as a language. That said, it is *not* perfect, and I will touch on the criticisms I have later perhaps.However, the presentation of the Kindle/Ebook edition is literally painful to read. It a significant impediment. It is so bad, that perhaps 4 stars is much too generous. (I have seen all versions other than the nook, which will undoubtedly be the same)The line spacing is unbearably compressed – it would require many over the age of 25 to squint or reach for a ruler. The font choice and typesetting are archaic, unprofessional and lazy – exacerbated by the authors failing (forgetting?) to embed the fonts they used in the production – resulting in no better than a direct export from something you would expect from a high school student essay in Word, and some 600 “pages” of it, with the code examples set stupidly on the page. I understand the appeal and desire to have this book be a contemporary version of K&R (and content wise, it succeeds), but this is significantly sub-par that standard which even so is incompatible with the legibility requirements for reading from screen. The fact that the authors advise “adjust(ing) the font size to the smallest setting” for optimal viewing is laughable, and effectively adds insult to injury. Is the print book published in a landscape orientation? No, it isn’t, and reading the ebook that way is no remedy, and no eReader device or software has the necessary controls to fully remedy it. If I were to rate the book on the presentation alone it would be a zero. It is inexcusable. If one cannot publish the book properly and as intended, then one absolutely should not. I am sure others aren’t as ‘bothered’ – good for them. Most people don’t have a terribly strong sense of smell, either. If legibility is important to you, if typesetting is important to you, if you love Knuth and everything he stands for, BE WARNED.Fortunately, we are programmers (or we want to be), and perhaps there might be means to, in effect, break the book file to alter it to something readable. But to do so is wholly illegal, and as a result has absolutely no bearing when reviewing the presentation.What makes it so painful is that this is such an essential book for this language, a legitimate successor for K&R (and probably the only one) for the only language that really could be considered a contemporary replacement for C. I will try to expand further at a later time (with an update to this review) on that perspective and where I think the content of this book fails, as no book is perfect, certainly not K&R, but given the damning paragraph above it would be deceptive to say anything more than the following sentences: The content is excellent and essential. It unquestionably has helped me, and will help me in the future. It would be helpful to anybody trying to learn Go who has some prior programming experience. It is the ideal book to read after doing ‘A Tour of Go’ (tour.golang.org) if you want to learn about Go and how to use it.To rate it lower than four stars, in spite of the appalling presentation of the ebook would be ridiculous. This is the best book on Go, hands down.P.S. If you are working through the book (any version) and would like to talk with others, get help on the examples, or whatever else I suggest you join the Gophers Slack (gophers.slack.com) and in particular join the #gopl channel. I cannot praise the wonderfully helpful fellow gophers on there enough for someone who is earnestly trying to learn Go at any level.EDIT: My apologies for not including the relevant links to the Gophers Slack!It was set up by Gopher Academy: https://blog.gopheracademy.com/gophers-slack-community/Here’s the direct link to the invite request: http://bit.ly/go-slack-signupIt’s usually an almost immediate response.

⭐This book starts out right away with the standard Hello, World (unlike what others have reported???) and quickly moves on to much more interesting and useful tutorial samples. There are, in fact, many interesting tutorials with plenty of good code samples, along with exercises to test your understanding of the material. The authors do a nice job of building up knowledge of the language. Much more importantly, they teach the idioms of the language so that one learns to write Go, rather than writing C in Go or Java in Go or some other unfortunate monstrosity.As other reviewers have noted, however, this comes at the cost of really requiring that you read the whole book through to get the most out of it. It is not a quick reference book, nor a book of “recipes” or “design patterns”. It is a much slimmer volume than some of the other, similar Addison-Wesley imprints, though there is no wasted space. Think of it like the original K&R C book (featuring one of the same authors, of course!). It is a solid introduction to the language that can take any serious programmer/software engineer/developer very far on its own merits. It includes enough technical information about design decisions, the compiler, practical trade-offs, &c to help inform the Why without ever getting bogged down in unnecessary detail.Although the book is well worth the price, especially as a textbook, I would have liked more discussion on the exercises or perhaps some online canonical references to, “This is what our solution would look like”. That said, all the source code is available online and serves as good quality, idiomatic Go. Of course, the code samples are best served within the context they are supplied in the book; don’t expect the ch10/cross/main.go to be an easy drop in for any project you need!If you want to learn Go and write quality software therein, buy this book, read it, and keep it for reference and reminders. You will probably want other books to tell you how to do some particular thing, or search online for particular algorithms or libraries, but this book will help you separate good, maintainable, idiomatic Go from all the cruft.

⭐I’ve been coding since I was 8, when I used to make little BASIC programs, through working at Microsoft and now I’m 42 and have my own kids that I teach using Python and a BBC micro:bit. I use C# on .NET Core.I’m learning for myself, for my own apps and the large scale distributed systems I build for clients. I’m also interested in Go for my kids.The book is good, its clear and succinct. But I’ve dropped 2 stars from it because it really needs to go into detail about using Go in the real-world. This is a problem with most coding books and probably why most people end up knowing syntax but “can’t code” or build spaghetti.I need to know how to build a large app. Learning the syntax of the language is really only 20% of the story. The rest is how to organise code, both on disk, but into reusable modules/packages/libraries.Go is very different from other class-based languages, so the application architecture is really important. It was designed to tackle the problem of applications at scale so the book needs to discuss the impact of this on a product team.I’m in the dark about how Go programmers structure things. Go isn’t very popular, so its hard to find this information online, and since I work alone, I rely heavily on a strong online community.I appreciate the rest of my review isn’t about the book, but learning a new language is like picking a country to live in.A Bad Time to Learn GoFrom my understanding, Go is in a transition period. It seems to have only recently gained a proper dependency manager which is a fundamental thing, so a fundamental change.There’s a lot of chatter online about ways people have worked around the lack of a dependency manager by arranging files on disk. Arranging files really matters in Go in a way it doesn’t seem to in other languages. But it’s hard to discern what is the “old way” vs. the new approach using Go Modules.Loss of TrustFurthermore, I found that using VS Code to look at the downloaded samples in the book, I was unable to simply rename a variable. The error was strange, it couldn’t “find” the code file I had open on screen. I soon found myself hitting other arcane errors as I tried to fix the issue.The tooling seems to be still catching up with the move to Go Modules. Go used to really care about where and how the files are laid out on disk, but I think in recent months it doesn’t matter so much.I solved the rename problem by moving the code into a /src subfolder. However, the official online guides suggest I don’t need to do this. As I type this, I still don’t know the “right way” and I can’t find help online. I’m unable to even make a start and have lost trust in the whole thing.The Go Community is Thin and HostileThe real problem came when I posed a question on StackOverflow. I have a reputation of over 30,000 and have been helping people on that forum for years, and yet my questions were heavily down-voted without suggesting how they could be improved, or answered in comments with nothing but a link to the official documentation. Even when another Go coder came to help with a full answer, he was down-voted.When I learned C# back in 2004, it was good fun learning with other people across the web. I don’t know where the Go people hang out and I searched but found no-one. On Reddit, I saw people discussing that Go has a hostile, aloof community which worried me.Programming Needs to Clean its Act UpGo looks like it could be a great language for kids, esp learning on fun hardware devices. Pretty soon, all our children will be learning to code and our teachers will need a lot of support, so I’m sad that many programmers online are so unhelpful and that if I a 42 year old English speaking white man can find help, kids, women and minorities don’t stand a chance.I’m going to leave it for another 2 years until well after Go 2 and see if it picks up momentum and wait for things to settle down and whether a welcoming community grows around it, or if Python keeps on growing.

⭐If you are coming from another language and need a rapid coverage of the basics, this is probably not the best book to start with. You are better off using one of the numerous online resources for that. I personally found the free ‘The Little Go Book’ as a perfect fast-paced first scan of the language .This book is best as your second (or your first, if you are not in a great deal of a hurry), and more thorough coverage of the language, and as a ready reference while you tackle projects.If I had any complaints, it would be a wish that they used bigger print in the paperback … and that an eBook version is made available and discounted for owners of the paperback.Highly recommended.

⭐I bought this book after getting a Go course on Udemy. I thought that I will learn the Go programming language, however, this book makes simple things so complicated. I had to use the online tour of go to understand things after this book completely confused me. Chapter 3 had examples mainly for assembly language. I really don’t understand why someone would write a book on a new language in such a way that it confuses the reader more than explaining things to him. The examples in this book are primarily for a professor working on maths project, not for everyday people who write software in normal offices. Overall I found this book extremely unhelpful and feel frustrated reading it. Since I have bought this book I have finished a number of other books on other software related subjects but I only get to read few pages of the book each week and I thoroughly hate reading it as it frustrates me to my utmost.

⭐Over the past years I’ve read many programming books. I must admin that this one really stands out!After completing the book you will have good understand of go language. However, note that this book will not cover all subject in depth so more advanced go programmers may not find this book very interesting.Examples are not trivial but rather interesting ones. Apart from letting you understand go better, they also give you interesting programming challenges, which could be used in other programming languages.I was really enjoying this book and highly recommend that book to any one who wants to start his adventure with go.

⭐Over the years I’ve read many programming books and this one I have to say is a standout book! The exercises, while sometimes pretty in-depth, are varied and hugely interesting. The content of the book is relevant, elegantly put forward, and full of detail. I’m enjoying this book so much I’m going through it page by page and doing all of the exercises.Maybe some will want a cheat-sheet type of book containing less detail but this book will actually help you grok Go. The authors are also approachable and helpful. Highly recommended!

Keywords

Free Download Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition in PDF format
Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition PDF Free Download
Download Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition 2015 PDF Free
Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition 2015 PDF Free Download
Download Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition PDF
Free Download Ebook Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition

Previous articleC Programming Language, 2nd Edition 2nd Edition by Brian W. Kernighan (PDF)
Next articleMastering Bitcoin: Programming the Open Blockchain 2nd Edition by Andreas M. Antonopoulos (PDF)