Weapons for computer programmers

Weapons for computer programmers

I have been working as a PHP developer for around past three years and today I am going to provide you a list of essential tools (I like to call it weapons) for a web developer.

It’s not necessary that everyone should agree to my views but, these are the best freewares or open source tools that I would recommend to start development.

Since I am a web developer the list focuses on the needs of a web developer.

Let’s start with most essential thing required to get started

The Operating System

For first few months I was working on windows system and it worked quite well but since, when I switched to Linux and I just fell in love with it and I recommend it to everyone. My personal favorite flavor of Linux is Ubuntu but you may consider other Linux distributes like Fedora, Kali, XUbuntu, Mint and many many more.

If you are switching from windows then Ubuntu is the best option, most of windows shortcuts work exactly the same way in Ubuntu and best thing about Linux is the power of command line and it’s open source.

If I want to install PHP on a windows system, the normal steps are go to PHP website, download the software and install then set path in Environment Variables so that you can use it from command line, where as in Linux just execute sudo apt-get install php done.
It will automatically connect, download and install PHP and set up for you to use it from command line or I would say Terminal, it’s that simple.
Let’s take another example, if you want to use mysql then command is sudo apt-get install mysql-server.

Are you bad with remembering commands?, Don’t worry Ubuntu takes care of that too.

If you want to install mysql then just type mysql in terminal and since it’s not installed, it will suggest you command to install mysql then just copy and then paste command to install and set it up, you are done and you can directly copy/paste from/on terminal (windows users can call it command prompt) using Ctrl+shift+c to copy and Ctrl+shift+v to paste, isn’t that cool.

I am going to skip Mac OS X, but if you have OS X inbuilt then you can continue using it, it is very close to Linux with option of Homebrew filling up place for apt-get package manager.

I can keep on talking on Linux, Windows and Mac OS X but let’s switch to other tools.

The next essential tool a developer need is a Powerful Text Editor

My personal favorite text editor is Sublime text which is proprietary tool but, if you are looking for an open source alternative then you can go for Atom by github. It’s a 21st century hackable text editor with lots of packages/plugins and themes available, plugins like Emmet for Zen Coding, Pigments to display colors in files, Code Linter, Code Snippets, Remote Edit and many more (you can check those here)

The next thing a web developer need is a Web Browser for testing

Most developers rely on chrome with extensions but my personal favorite is Firefox developer edition which has most of Mozilla’s web debug tools inbuilt like Valance, Page Inspector, Web Console, JS Debugger, Eyedropper, Network Monitor and many more.

Since I am a back end developer and I work on various json rest APIs for that Firefox developer edition provides inbuilt json linter which will format json in object format and also formats json into readable(readable for programmers not for humans) format.

The Last thing a developer needs is a good Version Control System

The best version control system available for developers is Git, which is an open source distributed version control system which manages projects efficiently.

Git allows multiple developers to work on a single project on their local copy of the project, in git language we call it clone and after implementation of a feature is completed the developers can save those changes with a note decided by developer, we call it commit and note is called commit message, and at last developers can upload their code on a central server so that others can merge it with their code in git language we call it push.

You can set up your own git server for central project location which we call repository or else you can use some famous online git providers like

  1. Github: The best location for open source projects. It does provide private project repositories also but its not free, you can check pricing here.
  2. Bitbucket: A popular git provider with option for private repositories, but pricing applies for large teams.
  3. Gitlab: Git provider which provides free public/private repositories with unlimited collaborators.

command to install git client on Linux sudo apt-get install git.

And with these weapons I am ready for the battle but, here are a few additional tools which a backend developer (specifically PHP developer) can use.

  1. Nginx: An Open source Web Server which can handle around 10 Thousand concurrent connections relying on asynchronous Event-Driven architecture. Installation command for Linux sudo apt-get install nginx.
  2. Adminer: a single PHP file which let you manage mysql database comfortably, if you are bored of setting up and using PHPMyAdmin then you can consider this. This is not as powerful as PHPMyAdmin but it’s easy to setup and works like charm.
  3. Vim: A powerful command based text editor for those who like to work on command line.

Did I miss something, Please post those in comment section and I will include those.

Thank You!!!

Live Long and Prosper!!!