Things you should know before you join your first software development company

by Abhishek

I know, I have been there. As a fresh graduate you almost don’t know anything about challenges you may face in your first software development job. It is not just about programming, it is a lot more.

Our education system simply does not prepare us for that. But fortunately there is internet now!

I am going to talk about things you should know before joining a small software development companies like ours.

According to me following are some of the basic tools you should be aware of.

1) Version Control Systems:

Imagine yourself working in a team on a software development project. Project has hundreds of files having thousands of lines of code.

  • How do you do changes in same file and merge them together?
  • How do you keep track of changes done by you and your team members everyday in different files?
  • How do you roll back to the stable version of code if something goes wrong?

Coding and merging can become a nightmare as the team gets big and collaboration gets stronger. Fortunately there are tools available to get us out of that nightmare.

They are called Version Control Systems

One of the best version control systems is SVN. It’s an open source tool with many advantages over its competitors.

Github is another version control system with online collaboration features. It is getting popular amongst hardcore programmers now a days. So try it out if you get a chance.

Also read this article to know more about Version Control Systems.

2) FTP Client

You might have studied about FTP protocol in your college. FTP client works on the same protocol.

You are most likely to use them in your first job for transferring files on a live server or an intranet server.

  • You check-out the code from SVN
  • You work on your code
  • You test the code in your local environment
  • You check-in the code in SVN
  • You make the code live using FTP client
  • You test the code on live sever

This is a very basic routine you may follow everyday at your job. So knowing about FTP client is of utmost importance.

Filezilla is a free and one of the best available FTP clients.

3) Project Management Tool

Now this depends from company to company but any decent software company cannot do away without one. Some build their own project management tools, some use readymade tools from the market.

We use Basecamp at Digicorp. It is one of the best project management tools we have used so far. It makes life easier and lets you focus on your core job, which is programming!

This link has list of good project management tools available in the market. Try which are free to use and use it in your college project to collaborate with each other. It will surely pay off in your first job.

4) Bug Tracking Tool

As per its wikipedia article:

“A bug tracking system is a software application that is designed to help quality assurance and programmers keep track of reported software bugs in their work. It may be regarded as a type of issue tracking system

Any software company you may join will surely use this.

We use BugTracker.NET and BugZilla.

5) Email Etiquettes

In your professional life you will have to write lot of emails everyday. You will write to your team members, to your clients, to your project manager etc. And this is something they really don’t teach in engineering colleges. So like all the other subjects (which they teach) you will have to learn this one also on your own!!

Here is the article to help you in learning some Email etiquettes.

6) Writing Skills

Writing skills are THE MOST important asset of a programmer. Some of the great programmers in the world have been stressing on it since long now.

Read this article and all the links mentioned in that article to know what I am talking about.

Ignore my last advise at your own peril.

So aspiring young engineers, let me know what you think of above list. It is not an exhaustive list but good enough to get you started. Let me know if I have missed any important point here.