Pages

Wednesday, November 30, 2011

IT industry

Wish to get into IT? Make sure you know the basics. Here’s what IT is all about:

What is information technology ?

The Information Technology industry is a large industry. Over the past 50 years, IT has shaped the modern world & continues to change it.

The major segments in IT are hardware & software. Software consists of products & services. Software products are packaged or ready-to-use software made by a company for use by others. Software services companies typically do programming for client companies on a contract basis. These companies take care of the client company’s ‘outsourced’ development & maintenance of software, training, etc.

What is the size of the IT industry.

IT is a global industry: In 2010, the worldwide spending on IT was estimated to be $2.0 trillion.

Which industries use software

 Software is now an essential part of our lives. Commonly-used software applications (such as electronic bills) are all around us. These help our daily lives function smoothly & also improve productivity of each & every business & organization.

Some industries which use IT extensively include banking, finance, insurance & telecom. Some of the commonly used application software in business are database systems, ERP, accounting & payroll, office automation (spreadsheet, word processing), CAD/ CAM, etc.

 What are the use of software

Software is developed for different devices & ‘platforms’ such as PCs, the Web, mobiles, iPhones & gaming consoles. Software can also be classified as being for home or personal use or for business use. Operating system software, middleware or application software is another commonly-used classification.

 What is code

Software is written in ‘lines’ of code where each line is a set of logical instructions for the computer. There are many alternative software ‘languages’ in which code can be written e.g. C++, Java, ASP.

In early days, in the 1960s, typical programs were small; even a program of 10,000 lines was considered big. Later, longer programs were developed e.g. those developed for NASA’s moon program which ran into a million lines of code.

Software programs need to be written, as well as constantly modified & ‘debugged’ (or corrected).

Why Indian IT industry is so talked about

·         Size of IT industry in India: The Indian IT industry is large: 2 million people work here. Of these, about 1.5 million work on exports i.e. overseas contracts, while the rest work in the domestic market.

·         Offshoring: Indian IT companies have pioneered the ‘offshore’ model. Thus, instead of doing work ‘onsite’ i.e. by going to work at the client’s company abroad, these companies have set up processes to get this work done in India. This results in much lower costs for the client company. By far, the biggest market for such work is the US.

·         Top companies: Well-known Indian companies in this field include Infosys, TCS, Wipro & HCL Technologies. Multinational software companies like IBM, HP & Cognizant have also entered India & built an increasingly strong presence here.

In fact, there are an estimated 8000 IT firms in India. There are also thousands of other, non-IT companies in India & most of them have their own IT department, whether small or big.

·         Industry growth: Since 2001, the Indian IT sector has been growing at about 28% every year; in 2008, the sector grew at 28% to reach over $70 billion in revenues. In the same year, employment grew at 26%. There is still a lot of growth possible: Indian IT firms account for only 15% of the world market of outsourced offshored software valued at $380 billion.

·         English advantage: India has a large English speaking population – this is an advantage over many other countries. This is one reason why India is a preferred country for IT work. There are many new markets & areas where Indian firms are making a mark; these include the European & Japanese markets, software products, engineering services, remote infrastructure management, etc.

What are the job prospects in the IT industry

·         Each year, lakhs of people are employed in the IT industry, most of them new college graduates. In 2009, Infosys is recruiting 20,000 freshers out of college at an average salary of Rs. 3.25 lakhs per year. Other large firms too are hiring in large numbers.
·         A career in the software industry means being a part of the most ‘happening’ industries of our time. There is no area today that is not or will not be touched in some way by software.
·         If you have an interest in trying or solving challenging problems, IT is a great field to work. 

What are the job prospects in IT
 According to an Associate Consultant, Cognizant Technology Solutions* :

·         IT is an in-demand career so there are many opportunities to earn good salaries as compared to other industries.
·         Many opportunities to travel abroad on-the-job or to find jobs anywhere in the world.
·         Global outlook/ culture & world-class standards in functioning of most IT companies leads to greater work satisfaction. Also, IT companies are full of enthusiastic people who are fun to work with!
·         Technology continues to expand at a rapid pace, providing great opportunities for job growth.

*Cognizant is a leading global provider of Information Technology, consulting & Business Process Outsourcing services.

What are the various job roles in IT

The IT industry is huge & growing. Most IT professionals work in offices in comfortable surroundings. They are mostly employed in IT, telecom, banking & insurance and BPO companies, among others.

Good IT professionals possess the following skills, among others :

·         Logical reasoning ability

·         Numerical ability

·         Imaginative mind

·         Interest in problem-solving

·         Interest in keeping oneself updated about new technology

·         Communication skills, written and oral, is a plus point


Facts about IT in India

·         India has 81 million Internet users (as per The Internet Governance forum).

·         India is ranked 4th among the top 10 nations in the world for high Internet usage (as per the Internet Governance forum).

·         The number of mobile phone users in India is 300 million & is growing by 8 million per month.

·         The domestic IT market in India is expected to cross Rs. 200,000 crore in 2012 (as per IDC India).

·         Many global companies outsource IT work to India because of India’s highly-skilled, English-speaking population & low costs. 

Tuesday, November 29, 2011

IT job roles

Programmers

·         Assist systems analysts in defining requirements of users of the proposed IT system.
·         Create a detailed design for the proposed system.
·         Translate specifications - for a software product or project - given by the systems analyst into lines of code i.e. programs.
·         Modify code to correct errors or to enhance a program’s capabilities.
·         Test programs already developed.
·         Prepare documentation for the program developed & designed.
·         This is an entry-level IT job. Programmers may also be called software engineers, web developers, etc. depending on the specific job content.

To be successful as a programmer, you need certain professional qualities:

·         Technical aptitude
·         Logical approach to solving problems
·         Ability to work independently as well as be a team player
·         Good communication skills, written as well as oral, are a plus point
·         Willingness to continuously learn since technology keeps changing

Web developers
These are programmers who work on online (web) applications.

·         They create prototypes of the site based on the site’s objectives.
·         Depending on the website, developers may have to develop interactive forms, shopping carts, mailing lists & online programs.
·         They use programming languages (such as Java, VB Script, MS-SQL, MySQL CGI, Perl, Visual C++, C#, SQL, JSP, ASP.NET, PHP, XML & DHTML) to create these programs & applications.
System analysts


·         System analysts study the needs of users of the system & define their requirements through documents/ processes.
·         These documents are then used by the programming team to create a better system.
Software testing & Quality Assurance
Software is tested by 'Software Testers' to confirm if it has been built as planned & is performing well. This includes finding software 'bugs'. Software is put through several types of tests. Various manual methods & automated tools are used for this.
      Software Quality Assurance involves the entire software development process & is oriented towards prevention of problems.
Quality Asssurance (QA) professionals
·         Monitor & improve the processes by which software is created.
·         Make sure that any agreed-upon standards & procedures are followed.
·         Ensure that problems are found & dealt with.
Database analysts, architects & administrators

Data is core to any IT application. Data professionals make sure that users can access & manage data in a flexible, efficient & secure manner.
They:
·         Analyze & design databases.
·         Develop, install & implement databases.
·         Perform database administration & maintainance to ensure data integrity.
·         Perform database testing.
·         Provide data assurance i.e. security of data.

      Software Architects, Solution builders & Consultants
These are senior job roles.
Software Architects have a deep understanding of a single technology area.

Solution builders understand a wide range of technologies & pull them together to create a solution to a customer problem.

Consultants not only have a broad knowledge of technology, they usually have deep knowledge of a particular industry or business.
Project Managers 
·         Programmers/ software engineers usually work in teams. Each project team may consist of 10 to 15 engineers & is headed by a project leader. Two, three or more project teams are together supervised by a project manager. Delivery managers are senior people who supervise several project groups & coordinate with the sales people in the company and with the client.
·         A software engineer can choose to follow the 'management path' & grow into a project leader and then into a project manager. Or he or she can follow the 'technical path' & become a database specialist, software architect or a specialist in a given technology.
Technical writers & Documentation specialists  
·         They create manuals for users to:
·         Develop documents for each project/ application.
·         Maintain copies of all documents developed for future use.

Helpdesk & Technical support
·         Help install, maintain & repair PCs, printers and other devices, LAN, Wide Area Networks (WAN).
·         Ensure Internet connectivity.
·         Are usually available immediately to resolve hardware & connectivity problems. Software or hardware installed at a customer’s premises may require support of the following types: installation, configuration. troubleshooting, customer queries or training.
Management Information Systems (MIS) 
·         To manage any organization, its managers need information about its various activities e.g. sales, finance, purchase, HR. This information is usually got from data & reports from the organization’s computer network/ system.
·         Some of the entry-level MIS jobs are data analysts & data entry operators.
   
Other IT jobs
IT people may also work in sales & marketing or as faculty i.e. in teaching or as trainers. They can also work in hardware & networking jobs such as network administrators or system administrators

Sunday, November 6, 2011

Writing a Binary File - Using write()

Lets write a code to store some data in a file in binary mode using the write()

Example 1

#include "iostream.h"
#include "fstream.h"
#include "conio.h"
class person
{
 char name[10],addr[20];
 int age;
public:
 void getpers()
 {
  cout<<"\nEnter name : ";
  cin>>name;
  cout<<"\nEnter address : ";
  cin>>addr;
  cout<<"\nEnter age : ";
  cin>>age;
 }

void showpers()
{
cout<<"\Name : "<<name;
cout<<"\nAddress : "<<addr;
cout<<"\nAge : "<<age;
}
};
void main()
{
clrscr();
person pers;
pers.getpers();
ofstream out("list",ios::app);
out.write((char *)&pers,sizeof(person));
cout<<"\nData Saved In File ";
out.close();
}

When the above code is run, it asks the user to enter name,address and age of a person and the same data is stored in a file called "list". The message "Data Saved In File" confirms that the data has been saved in the file.
Point to remember
After compiling the above code a new file named "list" is created and the data is stored in it. To verify that the file has been created and data stored, if you try to open the file using normal methods, for example, go to DOS Shell and type the command "type list",  you will see that the file contains data that is not readable by us. Why ? because the data is stored using the "write()" function which is a binary function. To read such a file we will use some functions that are able to process binary files. Have a look at the next post.

Binary Files

In the earlier posts, I wrote about handling text or character files. Now is the time to learn another type of file handling - Binary File Handling.

 
What is a Binary File
All the files that we use are not text or char files. We don't "read" all the files, some of them are "heard" or "viewed"  also like audio, picture or video files. A char file is something that stores only char data that can be easily read using a basic text editor whereas a binary file can be a collection of text, char or audio, video etc.In binary files, to input and output data with the extraction and insertion operators (<< and >>) and functions like getline is not efficient, since we do not need to format any data, and data may not use the separation codes used by text files to separate elements (like space, newline, etc...).
 
File streams include two member functions specifically designed to input and output binary data sequentially: write and read. The first one (write) is a member function of ostream inherited by ofstream. And read is a member function of istream that is inherited by ifstream. Objects of class fstream have both members. Their prototypes are:
 
write ( memory_block, size );
read ( memory_block, size );
 
 
Where memory_block is of type "pointer to char" (char*), and represents the address of an array of bytes where the read data elements are stored or from where the data elements to be written are taken. The size parameter is an integer value that specifies the number of characters to be read or written from/to the memory block.
Binary files are very similar to arrays of structures, except the structures are in a disk-file rather than an array in memory. Binary files have two features that distinguish them from text files:
  1. You can instantly use any structure in the file.
  2. You can change the contents of a structure anywhere in the file.
Why Should I use Binary Files Handling Functions
The answer is quite simple - If you use the functions like put() or get() , you can only handle characters or strings since these functions only know how to handle chars. So if a user wishes to input an integer or float value, these function will show their incapability in processing the same. On the other hand using binary file handling functions, we can easily process data of any type, be it integer, float, char or string.

Binary File Handling Functions
To read or write data in binary form the following functions are used
  1. write : To write the data in a file in binary format
  2. read : To read the data from a file in binary format.

Reading a binary file - Using read()

A file that has been created using binary functions like "fwrite" can only be read using the "fread" function that can read or process a binary file. Following is the same code that was given in the previous post "Writing a binary file - Using write()". If you look at the end of the code you will see that there some additional statements there.
Example 1

#include "iostream.h"
#include "fstream.h"
#include "conio.h"
class person
{
char name[10],addr[20];
int age;
public:
void getpers()
{
cout<<"\nEnter name : ";
cin>>name;
cout<<"\nEnter address : ";
cin>>addr;
cout<<"\nEnter age : ";
cin>>age;
}


void showpers()
{
cout<<"\Name : "<<name;
cout<<"\nAddress : "<<addr;
cout<<"\nAge : "<<age;
}
};
void main()
{
clrscr();
person pers;
pers.getpers();
ofstream out("list",ios::app);
out.write((char *)&pers,sizeof(person));
cout<<"\nData Saved In File ";
out.close();// closing the file from write mode
// READING SECTION
 ifstream in("list"); // reopening the file in read mode
 in.read((char *)&pers,sizeof(person)); // reading the data using the read() function
 pers.showpers(); // displaying the data
 in.close(); //closing the file again

}

The above code first opens the file in the write() mode, gets the data from the user, stores into the file and then reopens the file to read the data. When the data is read using the read() function, the data will be displayed exactly as it as entered. Therefore keep in mind "if written using write(), use read()"