Java packages are not that different from Go packages, in terms of CS concepts.
Except for the set of issues that are debated to death about Go, the language is quite modular in Mesa tradition.
Given Oberon's influence in Go's design[1], maybe you will find these books interesting,
From http://www.inf.ethz.ch/personal/wirth/ check "Algorithms and Data Structures", "Project Oberon", "Compiler Construction".
From http://ssw.jku.at/Research/Books/ check Object-Oriented Programming in Oberon-2.