Barry Feigenbaum has decades of software engineering experience. Over his career, he has worked for major industry-leading companies such as IBM and Amazon, and is currently at Dell where he is a Senior Principal Software Engineer. He has worked on mainframe and midrange servers and many applications for personal computers. He has developed software products in many key industry languages, such as assemblers for multiple hardware architectures, C/C++/C#, Python, JavaScript, Java and now Go. He has extensive experience in the full software development lifecycle. Most recently, he has committed himself to leading teams developing mission-critical microservices, most often written in Go, that operate in large clustered environments.
He led the early development of the LAN support inside Microsoft Windows (he defined the SMB protocol that is the basis for both the CIFS and the SAMBA technologies). He has served as a software tester, developer and designer as well as a development team lead, architect and manger on multiple occasions. He was a key contributor as a developer, architect and manager to several releases of PC-DOS and OS/2. In these roles, he worked extensively with Microsoft on joint requirements, design, and implementation.
Dr. Feigenbaum has a Ph. D. in Computer Engineering with a concentration in OO software design and other degrees in Electrical Engineering. He has published multiple articles in technical magazines and juried journals. He coauthored several books on IBM PC-DOS. He has spoken at numerous technical conferences, such as JavaOne. He has served on industry standard bodies. He taught multiple college level courses on data structures, software engineering and distributed software as an adjunct professor at several universities. He has over twenty issued US patents.
He is married, has one son, and lives in Austin, TX.
Get an in-depth introduction to the Go programming language and its associated standard runtime libraries. This book is targeted towards programmers that already know the Java programming language and uses that Java knowledge to direct the learning of Go. You will get a deep understanding of the Go language and obtain a good introduction to the extensive Go standard libraries.
This book teaches Go through clear descriptions of Go features, contrasting them with similar Java features and via providing extensive code examples. After reading this book you will be knowledgeable enough about Go and its libraries to begin doing effective programming using the Go language.
Go for Java Programmers is structured more like a tutorial than a reference document. It covers key features of Go, but not every little detail as a reference might. Its goal is to get you competent enough in Go and its runtime that you can begin to effectively write Go programs.
You will:
Discover how the Go and Java languages and development experience compare and contrast
Examine the key Go Runtime libraries and how they compare to Java libraries
See when it is appropriate to use the Go language instead of the Java language
Read and understand programs written in Go
Write many programs in Go
Determine when Go is an appropriate language to develop applications in