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.
How to solve “Already up-to-date” in Git
Intro To be quite frank, I wasn’t even aware this issue existed until I started writing this article, so it made me wonder how is it possible I never encountered it before, given I have used git for almost 10 years at this point. Well, from what I managed to gather,...
How to match last character(s) using regex
Intro Sometimes we are interested in the way something ends, whether it’s a single word or an entire line. Regex offer quite a convenient way of achieving this, so let’s look at a few examples and learn how 🙂 Regex to match the last character of the line Matching the...
How to match currencies using regex
Match currencies If looking at/through receipts or invoices is annoying for you, but it’s frequently a part of your routine, regex can help tremendously by highlighting/extracting the most important stuff, figures.Let’s show some examples, shall we? For this example,...
How to match everything between using regex
Match everything between two words Quite often we are trying to find if there is something (specific) or anything between a certain strings/words/characters. Let's use a simple shopping list as an example: "Fruits to buy: apples, bananas, kiwis, lemons,...
How to match everything after using regex
Everything after the word There is often a case when we need to match a certain text/string, but with regards to its appearance, like before or after some other string/word/pattern. We can target the word we want to use as a position reference, and match everything...
How to find strings that contain regex
Introduction A regular expression, also shortened as regex and regexp, is a type of searching pattern inside a text/code editor that supports it, which allows for a deep level of text manipulation. A regular expression can not only search for a given string, but can...
Replace anything with newlines in Sublime Text
Introduction Find and Replace is a decent feature for any text editor that supports it. Besides allowing you to search for a given string of text in a file, it even allows you to insert some other text in place of it. The replace function not only replaces a single...
How to show hidden characters in Sublime Text
Introduction When typing on a keyboard, you press the spacebar to separate the words from each other, by adding a bit of space between the words. Just like visible characters like a, b, c, and d, whenever you press the spacebar, a character is inserted as well, as...
How to fix ‘subl: command not found’
Introduction Many text editors often come along with a command-line helper tool rhat allows those programs to be executed from right within a terminal emulator. Sublime Text is of no exception either. It has it's very own command-line tool for starting the editor...
Fix ‘Git must be installed and in your PATH!’ in Homebrew
Introduction Homebrew is a popular package manager for UNIX-based operating systems like MacOS and Linux. Homebrew users find the most use out of it from a MacOS device, as by default, MacOS does not have a terminal-based package manager in and of itself....
Why you should consider deleting git branches
Introduction Creating git branches for a project's repo is not uncommon at all among git users. In fact, for development work, most people using git tend to create branches for bug fixes and other small sets of changes they'd like to commit to the project. ...
Why do git conflicts occur?
Introduction 'Git is a version control system' - you've probably heard this more than enough already. But why does it matter? Version control systems are a means of working together with other chefs to cook a fancy dish (collaborating with other developers on a...
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.