Select Page

Programmer Hat

Programmer Hat is an online community of software engineers. Our content is crafted to help new software engineers learn how to get started in programming. We also provide in-depth coverage of all software tools and systems, to help software engineers stay ahead of the curve.

100+ Free Guides!

Programmer Hat was created as a resource for software engineers to hone their programming skills.

Starting a new career in software engineering can feel overwhelming.

Which software tools should you be using? How to fix all these bugs in Ubuntu? What are all the tricks of the trade that I need to learn to be fully productive as a software engineer?

Programmer Hat offers an award-winning newsletter, custom digital downloads, and a series of in-depth guides designed to cover every topic related to software tools, operating systems, design, and programming.

All our guides are free.

Premium content is also available for subscribers to our newsletter.

 

Linux

Linux is the most popular operating system for servers. If you want to master backend, learn how to become a server admin master!

Vim

Vim is a popular code editor but it has a steep learning curve. Learn the important keyboard shortcuts to turn you into a Vim coding machine.

Find the Best Software Engineering Tools

Mastering a specific Linux operating system or code editor or programming language can be very difficult. Programmer Hat offers a concise list of every tool a software engineer needs to succeed. Some of the tools were developed open source. Others are custom products we built to help our readers.

Blog Posts

Read our latest blog posts which cover blogging tips, SEO, social media marketing, and new digital publishing platforms.

Are you using Vim Retab right?

Are you using Vim Retab right?

Introduction Whether you like to use tabs or spaces while writing code is pretty much a personal preference. But both of ‘em have their goods and bads. Some people simply like the idea of using spaces alone and not mix them up with tabs, given how one could fine-tune...

Fix ‘a2enmod: command not found’ in Linux

Fix ‘a2enmod: command not found’ in Linux

Introduction Apache HTTP Server is one of the most popular server softwares found out there. Popular websites such as Ebay, Adobe, and Spotify use Apache behind the scenes. Apache HTTP server has several modules to help you set up your own HTTP server. These modules...

‘no package epel-release available’ in Linux

‘no package epel-release available’ in Linux

Introduction "Extra Packages for Enterprise Linux", shortened as EPEL, is a set of extra packages for RedHat Enterprise Linux, compiled by the community members of the Fedora Project. This package is responsible for providing the programs you'd not find in RHEL...

Fix ‘goimports: command not found’ in Linux

Fix ‘goimports: command not found’ in Linux

Introduction Go is a general purpose programming language aimed at scalability. It is primarily used for system programming and is influenced by the C programming language. Go is a good programming language of choice for beginner programs due to its ease of use, and...

Fix ‘setenv: command not found’ in Linux

Fix ‘setenv: command not found’ in Linux

Introduction The setenv command in Linux can be used for setting environment variables by giving them names and values. It is a built-in command for the C Shell, and its forks. It is similar to the export command found in other POSIX shells, having a slight difference...

ngrok: command not found’ in Linux

ngrok: command not found’ in Linux

Introduction Ngrok is an HTTP Tunneling software which allows you to expose a local server in your machine to the Internet. When you expose a program which is stored in your local machine by using ngrok, it takes your port number and hosts it under a subdomain of...

How to fix ‘jq: command not found’

How to fix ‘jq: command not found’

Introduction The jq command is a Command Line tool which is primarily used to format JSON files, right from the command line. It is also referred to as a JSON Processor, to that account. The reason why anyone would really wish to use a command line tool to format JSON...

All things git diff (on specific files)

All things git diff (on specific files)

Introduction The git diff command is used to differentiate two sets of data inputs, and write down the changes in stdout which are required to merge the two inputs into one. At least, that’s what the diff function is meant for. But in git, the diff subcommand has a...

Fix ‘Cannot be resolved to branch’ in Git

Fix ‘Cannot be resolved to branch’ in Git

Introduction Whether or not you like it, git is case-sensitive. This gives rise to a lot of flexibility over the the names you could give to your branches in a repository, but at the same time, it raises concerns, such that lead many to see the following error...

How to undo a git cherry-pick

How to undo a git cherry-pick

Introduction The cherry-pick command in git allows you to move a group of commits from a given branch to another branch. This command gives rise to a different approach to git merge, and at times is used as an alternative for it. For instance, instead of using the git...

‘heroku’ does not appear to be a git repository

‘heroku’ does not appear to be a git repository

Introduction  Heroku is a platform for developers which allows them to create, run and operate programs all within the Cloud. It is also known as a polyglot platform, due to the fact that it allows the deployment of applications that are written in any...

When to use ‘git rebase –skip’ and why?

When to use ‘git rebase –skip’ and why?

Introduction Oftentimes, if not always, there will be situations where you will wish to, or more frankly, need to skip doing a commit due to some reason, the most frequent of which is due to some sort of conflict, as most people suggest. For such scenarios, the --skip...

Code Editors

Everything you need to get start mastering code editors.

Linux

Everything you need to know about common tasks and common bugs in Linux as a system administrator.