Golang Project Structure

Tutorials, tips and tricks for writing and structuring code in Go (with additional content for other programming languages)

James Smith (Golang Project Structure Admin)

Author

Who Owns Golang?

A confident and rich businessman standing in modern city, surrounded by skyscrapers. He has been successful in business, and he is wearing a suit and sunglasses.

In the world of open-source software, the question of ownership can be surprisingly complex. This is especially true for Go, a language that began as an internal project at Google but has since evolved into a global phenomenon, supported by a vast and passionate community of developers. It’s easy to assume that because Go originated […]

What Does It Mean to Say That Go Is Garbage Collected?

A dumpster on a street. It is filled with garbage, waste and trash. The dumpster is used as a visual metaphor for the importance of garbage collection in programming languages.

Memory management is critical in any programming language. In traditional languages like C and C++, developers manually manage memory through the allocation and deallocation of resources. However, in modern programming languages like Go, memory management is automatically handled by a garbage collector (GC). This feature is one of Go’s greatest strengths, since it allows developers […]

Understanding Huffman Coding and Its Implementation in Go

David Huffman depicted around the time that he developed the algorithm for Huffman coding as a young man.

Huffman coding is a widely-used algorithm for lossless data compression. By assigning variable-length codes to an input string’s characters, it ensures that the most frequently seen characters have shorter codes, while less frequently seen characters have longer codes. This technique minimizes the overall size of the data to be transmitted or stored. In this blog […]

Rob Pike’s Go Proverbs (Part Two)

Rob Pike, one of the creators of the Go programming language.

This is the second part of a three-part series discussing the Go proverbs that were devised by Rob Pike. (The original post is available to read, if you haven’t already. UPDATE: And the third and final post is now available to read too.) gofmt’s Style Is No One’s Favourite, Yet gofmt Is Everyone’s Favourite The […]

Should Go Be Used for Machine Learning?

An computer rendering of a brain made from metal with wires and lights attached. It is supposed to symbolize artificial intelligence and machine learning.

Go is widely known for its simplicity, concurrency model and performance in large-scale distributed systems. But when it comes to machine learning (ML), the most dominant programming languages have traditionally been Python, R and C++. These languages have become almost synonymous with machine learning due to the wide range of mature libraries, frameworks and communities […]

COBOL in the 21st Century

Grace Hopper, an American computer scientist, mathematician, and United States Navy rear admiral.

This blog post will attempt to provide a basic introduction to the COBOL programming language for complete beginners. We will cover the language’s history, syntax, features and applications. Then we will provide some practical examples to help you understand better how COBOL code works. What Is COBOL? Common Business-Oriented Language, known usually as COBOL, is […]

Choosing a Good Programming Chair

The Herman Miller Aeron Chair is a good ergonomic programming chair for those seeking the best quality.

Professional programmers spend most of our working lives sitting in front of a computer, focusing intently on the monitor and typing away at the keyboard. Even hobbyist coders can get engrossed in a difficult project, losing track of time as they dive deep into long lines of knotty and complicated code. With so many hours […]

How to Create a Responsive Web Design With Bootstrap

The Bootstrap logo with the text "Bootstrap" beneath. Both the logo and the text are purple.

In the current online ecosystem, having a responsive web design is no longer an optional extra — it’s essential. But designing for lots of different devices and screen sizes can be a challenge. Writing CSS media queries for each screen size, troubleshooting layout issues and ensuring cross-browser compatibility can very easily become time-consuming tasks. That’s […]