13 Sep, 2018

Setting up your development environment on your Macbook

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.

Frantz

Frantz is mostly a free messaging app. It will help you keep your focus in one place when dealing with communication. It included Whatsapp, Gmail, Facebook and many-many more

https://meetfranz.com/

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

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.

https://www.iterm2.com/

Oh-my-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)

https://ohmyz.sh/

Visual Studio Code

This is the most trending code editor in 2018. It has high performance and its ease of use is amazing. Quick tip, available in most nice editors: do use the command line embeded. Useful extensions, apart from those the editor suggests automatically:

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.

https://www.sequelpro.com/

Cyberduck

Among others, cyberduck is a popular FTP client. It will help whenever you have to transfer files to servers.

https://cyberduck.io/

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 npmcommand. 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.

https://www.docker.com/

General ideas

  • 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.

More tools

If you want to go deeper into useful tools, do check out https://draghici.net/tools/ as well.