Just knowing how to code in a particular language is not enough to call yourself a software developer in 2017.

There are a lot of things that are expected from you when you call yourself a developer and having a computer science degree is no more important. A basic knowledge of all these tools is expected from you.

Version control (git)

Git is a free and open source distributed version control system. The purpose of Git is to manage a project, or a set of files, as they change over time. Git stores this information in a data structure called a repository.

Unit tests (junit/Jasmine)

junit and jasmine

With incredible increase in the code base, there is huge need for writing the unit test case for the same. junit and jasmine are used for writing test cases for java and javascript respectively. and similarly there are different tools for different languages. You need to have the knowledge of at least one of these tools that works for the language that you are working in.

Database (sql/mongo db)

mongodb and sql

No matter what you do, create a website or some portal or anything. You will need a database for sure. SQL for that matter is relational database. Mongodb is a document oriented noSql database. You might not get a change on work on the db but you should have some info about basic queries.

Command line

command prompt

You will not be able to work on many things if you don’t have a basic knowledge of CLI (command line interface) commands. Because many tools are CLI based. After all, That black screen is not that scary.

Build tools (grunt/ant)


Concatination, Uglification, Pre-processing, transpilling etc are a part of build processes these days. Tools like grunt, gulp, ant lets you automate these tasks. Similarly, There are different tools available for different languages. And you are expected to know at least one of these tools for your language.

Dev ops

DevOps (a clipped compound of “development” and “operations”) is a software engineering practice that aims at unifying software development (Dev) and software operation (Ops). It is also known as continuous integration process. Jenkins and other tools are used for the same purpose.

That’s my take on being a developer in 2017. I might be missing something, I guess that’s what the comment section is for.