Essential tools for programmers

programmertools
programmertools

In today’s post we are going to see some essential tools for programmers.

The list is as follows:

1) Text editor

The three most popular text editors currently are
Sublime Text
Atom
Brackets
The main criteria for choosing any editor must be:
a. Should work across Windows, Mac or Linux. Your preferences and settings should be available regardless of which OS you’re using since we tend to switch OS at home and at office depending on the projects we are working on.
b.Highly customizable with cross-platform plugins and themes.
c.Easy to use without steep learning curve

Also this editors allow sftp/ftp support to edit files directly on remote server if required by adding packages.

Also there are many IDE’s available like Eclipse and Microsoft Visual Studio Code which are useful for specific purposes, for general programming purposes simple text editors can be quite useful. And for server-side coding in the terminal, vim editor with customization by configuring .vimrc file or emacs can also be great choice.

There are also many commercial web development IDE available like webstorm and phpstorm.

The choice of text editor/IDE mainly depends on personal preferences and comfort level.

I switched to atom from sublime some time back since it was easy to add packages for specific purposes,get console output directly in the editor,ready integration with github and ability to tweak it as much as I liked.

2) Version control

Is is always good to have backup of code and maintain version control if there are multiple developers. The three most popular version control softwares are

  • Github
  • Bitbucket
  • Gitlab

I generally like to keep all publicly available code on github and private repositories on bitbucket since bitbucket allows us keep repositories private for free.

If you have many private projects and small numbers of users per project, Bitbucket is the preferred option because of its per-repo pricing. If you have large teams collaborating on just a few projects, Github or Gitlab may be the better option.

Gitlab is can host private repos for free and has almost all features of github with many more additional features.

As of April 2016, GitHub reports having more than 14 million users and more than 35 million repositories while Gitlab is actively used by over 100,000 organizations.

There are many other version control softwares available but this are among the most popular ones.

3) Code inspectors/Postman/SEOQuake

Firebug is a little plugin for Firefox which makes debugging errors in websites a lot easier and is a little better than web inspectors in Firefox and chrome for front end developers.

Chrome developer tools are also quite useful to inspect elements,resources, tracking loading times of various resources and also to test your website on different screen sizes using emulation mode.
Postman is chrome extension that allows you to test REST apis from server side to validate and save get/post requests to server before integrating with the front end.

SeoQuake allows you to check any webpage for a huge selection of SEO parameters on the fly.

4) Collaboration softwares

Asana is task management app which makes managing tasks within a team a lot simpler and easier.

Trello is free forever where a user can create unlimited boards, lists, cards, members, attachments and more without paying any money.

Jira takes software based approach for task management where you can assign tasks, report bugs and resolve issues.

Evernote is also a great option to take quick notes,set blog/website tasks and sync notes across phones and laptop.

5) Cloud based IDEs (Cloud9 vs Codenvy)

Although not yet used by many developers, cloud based ides allow us to develop programs independently of any workstation that we use to write our code and reduces the hassles of installing softwares and configuring each device before we actually start coding since we can directly select templates with softwares preinstalled like LAMP/MEAN stack essentially saving our time.
Cloud9 is a cloud based IDE which allows us to develop apps on the go anytime and anywhere. It essentially gives us access to a cloud based linux virtual machine with sudo privileges in which we can tinker around as much as we like.
Codenvy works on similar lines but it is bit more sophisticated than cloud9.

6) FTP tools

Filezilla is one of the most popular tools to transfer files to server and is available across all three OS.

WinSCP and Moba Xterm are great tools for Windows users which have much better session management and live code editing features.

Cyberduck is also a good option for Mac and Windows users who don’t like Filezilla

7) PaaS platforms for hosting projects:

Openshift and Heroku are popular PaaS platforms to host and test your web apps before moving them into production environment.

It mainly depends on choice of software stack that you need to test.

Openshift provides first 3 web apps for free while there are unlimited web apps allowed on Heroku.
The idle time(time after which server will be suspended) for heroku is 1hour while in case of openshift it is 24hours.

8) Code snippets sharing

Github gists and Jsfiddle are two popular platforms to share small code snippets/projects with the developer community.

9) Javascript libraries

Jquery along with jquery mobile & jqueryUI,Backbone.js,D3.js,Momentjs are popular javascript libraries that are quite useful for frontend development. In backend development, node.js has grown quite popular for handling asynchronous requests to server.

10) Front end frameworks

Bootstrap,Foundation and Semantic UI are useful to create responsive websites with ease.

11) Web application frameworks

The list of web application frameworks is quite long mainly due to the fact of newer frameworks arising quite frequently.

The popular ones in web development are:

  • AngularJS:It is a popular MVC framework from Google
  • Reactjs: It is a view library from Facebook which is mainly used with Redux for web apps development
  • Vue: It is a relatively new MVVM for building interactive interfaces.
  • Mithril: It is a client-side MVC framework
  • Django:It is a python Web framework that encourages rapid development and clean, pragmatic design.
  • Flask: A microframework for Python based on Jinja 2.
  • Ruby on Rails: It is a web-application framework that includes everything needed to create database-backed web applications, with the MVC pattern
  • Zend framework:An open source framework for developing web applications and services using PHP
  • Express.js: Fast and minimalist web framework for Node.js.
  • Meteor:Full-stack JavaScript app platform that assembles all the pieces you need to build modern web and mobile apps which allows integration with Angular or React in the frontend.
    And the list simply never ends since we can write another story on simply listing all the available frameworks

12) Task Runners:

 

 

 

Share post-
About Saurabh Mhatre 71 Articles
Currently working in web and hybrid application development