If you’re asking “should I commit the vendor folder in my Go project to Git?”, the answer is “almost always”. Let’s talk about why committing is generally better than not.
There are so many obvious reasons to learn to code: freelancing opportunities, career advancement, salary increase, and personal satisfaction among others. The advantages are so many that it’s worth the investment, no matter how many obstacles you might encounter.
Software engineering continues to be one of the most lucrative career paths in the tech industry. The rewards go well beyond a high salary, corporate health insurance plans, and an increased opportunity to advance. Software engineers often receive benefits like unlimited time off, not needing to have shifts covered, lax or no dress code, and cool office amenities like free drinks, snacks, ping pong, etc. It can be a really great work culture.
The naming of Java and JavaScript confuses many new programmers. They sound so similar, so one might think they have the same use-cases, similar properties, or maybe the same company created both languages. None of those assumptions are true! JavaScript is primarily used as a front-end in-the-browser language, like how we use it for boot.dev’s courses. Java has been used for everything from games, to desktop apps, to backend APIs. Let’s go over the differences between JavaScript vs Java in this quick read.
The software development industry is growing at a break-neck pace. Currently, there are close to 19 million software developers in the world, and this number is expected to double by 2030.
Base64 is one of the most popular encoding formats for representing data. Have some binary data? Base64 encodes it for convenient readability and parsing. Base58 is just another encoding format (with 58 characters instead of 64, and has gained popularity largely due to Bitcoin and other cryptocurrencies. Also, if you came here confused, encryption and encoding are not the same! Take a look at this article for more information on encryption vs encoding.
Want to learn Go fast? The good news is that Go is one of the simplest programming languages out there. It was designed to have a compact feature set, which means you can learn it much faster than most other languages.
I often hear that we need more and better comments in the code we write. In my experience, we frequently need better comments, we rarely need more, and we sometimes need less. Before you crucify me for my sacrilege, let me explain by giving you some of the “rules of thumb” I use for deciding when I should add a comment to my code.
Where I work, we use a repo-per-namespace setup and so it often happens that I want to restart all pods and deployments in a single Kubernetes namespace. Maybe I want to see the startup logs, or maybe I want to shut down production for a few seconds. Don’t question my motives.
Constants can be confusing and easy to misuse in Go if you are coming from an untyped language. Let’s take a look at some of the nuanced details of how they work in Go. It’s probably unsurprising, but Go’s constants are almost nothing like JavaScript’s bastardized version of the concept.
With #HacktoberFest being a thing, there has been an influx of devs desperately trying to contribute to their favorite Open-Source projects. Unfortunately, many of these pull requests have been a waste of time, with the maintainers ultimately unable to use the contributions. Maintainers don’t want to waste their time reviewing bad PRs, and contributors don’t want to waste their time writing code that will never make it into production.
We just launched our new “Learn Functional Programming” course, and frankly, I’m a bit exhausted (more on that later). This course is an interactive code-in-the-browser course that teaches the basics of FP in JavaScript and PureScript.
You’ve probably visited a site and attempted to sign-up only to be met with errors such as:
So you want to hire a developer? Or maybe you just want to know what is going through the heads of employers like myself. Either way, let’s dive right into what I think are best practices for hiring programmers. I’ve found my opinions to be quite controversial, but I do put them into practice in my own career and at boot.dev. When you inevitably disagree with some of my points, feel free to @ me.
I’ve recently been working on getting Rust support in the boot.dev app. To write a more engaging course, I want students to be able to write and execute code right in the browser. As I’ve learned from my previous posts on this topic, the easiest way to sandbox code execution on a server is to not execute code on a server. Enter Web Assembly, stage left.
Coding languages, tools, and frameworks are in a constant state of flux, improvement, deprecation, and popularity swings. Let’s take a look at the top 4 languages for new programmers to learn in 2026.
Higher education had its problems before Covid-19. Now the crippling inefficiencies, backbreaking cost, and lack of alternatives are being forced into the spotlight. We’re working on what will eventually grow into the alternative to overpriced universities and ineffective Bootcamps at boot.dev. In the meantime, let’s take a look at education’s biggest problems, and how we can solve them.
I lead a team that’s responsible for anywhere from 15-25 Go microservices at any given time. We’re constantly creating new services and libraries, so it’s become important to streamline the project creation process. I’m mostly writing this article for myself as a kind of self-documentation, but hopefully, you’ll find it useful as you create new Go projects for yourself.
If you’re familiar with the laws of thermodynamics, you may recognize the second law as the one that deals with entropy. In the realm of physics, entropy represents the degree of disorder in a system. Because systems tend to degrade over time, thermodynamic energy becomes less available to do mechanical work.
Creating a custom select tag with its own styling is notoriously difficult. Sometimes it’s impossible to build from scratch without a combination of styled divs and custom JavaScript. In this article, you’ll learn how to create a custom select component in Vue that can be easily styled with your own CSS. In fact, it’s the same component we use in production on boot.dev, and you can see it in action on our JavaScript playground.
I’ve been wanting to expand boot.dev’s curriculum, and one of the most requested programming languages has been Python. Because my courses allow students to write and execute code right in the web browser, I decided to look into existing projects that allow a Python interpreter to run in the browser using Web Assembly. I settled on a tool called Pyodide, which does just that.
We’ve recently made big changes to how we execute Go in the browser on boot.dev and want to explain the enhancements. Web Workers are the reason we’ve been able to solve some of the serious browser-related coding problems that were holding us back. Consider this article a sequel to Running Go in the Browser with Web Assembly.
Writing technical documents like API or architectural documentation which exceeds a simple flow diagram can be a daunting task. If you have some experience with technical documents, you will probably agree that there is nothing more frustrating than bad documentation.
Elliptic Curve Cryptography (ECC) is a modern public-key encryption technique famous for being smaller, faster, and more efficient than incumbents. Bitcoin, for example, uses ECC as its asymmetric cryptosystem because it is so lightweight. The mathematical entity that makes all of this possible is the elliptic curve, so read on to learn how these curves enable some of the most advanced cryptography in the world.
We’ve launched our new Data Structures and Algorithms course! We wrote this course for engineers who need a refresher on computer science basics or want to learn the fundamentals for the first time.