This article contains information about the programs that might come in useful in your day to day development. I used macOS as a destination, but I am pretty sure most of these programs have different flavours, depending on your preferred operating system.
Also, it is intended to be just an enumeration of the useful technologies – a fun generic name for whatever we have on our computers – and some ideas on how to keep your work clean and safe.
Clean start
At times you might need to completely cleanup your computer. You can do that following the following simple steps:
- Restart / Shutdown the laptop and upon start hold
Command + R
until the logo appears; - Select
Disk utility
; - Erase
Mackintosh HD
and removeMackintosh HD - Data
if present; - Click
Install macOS
.
Source: https://www.pcmag.com/how-to/how-to-factory-reset-a-mac
Useful programs
Ferdi
Ferdi is an open source spin-off of Frantz. It is mostly a free messaging app. It will help you keep your focus in one place when dealing with communication. It includes WhatsApp, Gmail, Facebook and many-many more.
iTerm2
In programming nowadays, the command line is your friend. In many situations you will need more than one, so.. something like iTerm will come in handy.
An important customisation can be to make the terminal slide down when using a certain shortcut.
Source: https://stackoverflow.com/questions/30456472/iterm2-slide-down-over-full-screen-app
Homebrew
The best choice for a package manager is homebrew
. More information is available here:
zsh
Zsh will make your terminal way more attractive. The basic version comes with some nice themes. And you can also have plugins installed to ease even more your interaction with the terminal (e.g. add some autocomplete). You can use antigen to easily customise the looks and functionality.
- https://sourabhbajaj.com/mac-setup/iTerm/zsh.html
- https://draghici.net/2020/05/02/virtualmin-hosting-on-debian-10-buster/
- https://unix.stackexchange.com/questions/383365/zsh-compinit-insecure-directories-run-compaudit-for-list
Git
Make sure you have Git installed on your system. If the name is new to you, then search some tutorials about it as soon as possible, because it is at the root of web development (this is our target, though it can probably be found in almost anything) nowadays.
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
NVM
NVM helps you switch between node.js versions easily. You might not want to target programming in node.js, but even so, it will provide more control over the popular npm
command. By using the npm package manager, you will be able to install command line tools that will save the day.
https://github.com/creationix/nvm
Docker
With docker and minimal knowledge about how to use it, you will avoid the hustle of installing and maintaining webservers and databases on your computer. This is the smallest advantage you have. The greatest: consistent configurations between your project’s environments – later on you will natually get the meaning of this.
Visual Studio Code
This a high performance code editor. Its ease of use and versatility are amazing. Quick tip, available in most nice editors: do use the embedded command line.
Useful extensions, apart from those the editor suggests automatically:
- EditorConfig (if you have
.editorconfig
files in your project, it will suggest it, though. Otherwise, start using them; - Project Manager (https://github.com/alefragnani/vscode-project-manager)
- sftp (https://github.com/liximomo/vscode-sftp)
More tools
appcleaner
This application help you properly uninstall applications on your mabook.
https://freemacsoft.net/appcleaner/
anydesk
This is a nice alternative to TeamViewer. It is not as notorious, but it properly offers an easy remote control option.
sequelpro
Sometimes you might need to connect directly to your database. This program will help you do that in a mature way. However, do remember to use migrations
in your project.
Browsers
For extra browsers, apart from Safari, my choice is for Firefox, Brave and Chrome.
General ideas
Will will wrap up with some general ideas about how to use your computer efficiently:
- do not save things locally – nowadays, with cloud storage being really affordable, it would be a shame to put yourself in the position where you are depended on the machine you are working on;
- do look into macOS (or whatever operating system you use) keyboard shortcuts and be aware of what shortcuts your chosen editor might offer;
- look into organising your tasks using a dedicated task manager (e.g. trello or wunderlist);
- even if many of the “old ways” are obsolete, remember that not everybody is aligned with the lastest workflows or tools, therefore you could pay attention as well at older.. things or ways to complete projects;
- use github as a source of information;
- be up to speed with notions like: DNS, hosting, domain name, FTP, SSH, SSL, best practices etc.