Computer Careers
The careers or job opportunities in computer field can be classified
in to the following groups:
- Software Programming
- Hardware Programming (VLSI)
- Administration
- Testing or Quality Assurance (QA)
Software Programming
We can classify the programmers or programming jobs based on various
parameters. Following are some parameters:
- Programming Language Used
- Operating System Used
- Abstraction Layer Used
Based on the programming language, we classify programmers, as Assembly
programmers, C programmers, C++ programmers, Java programmers, C# programmers
etc..
Based on the OS we classify as Linux/Unix Programmers, Windows Programmers,
Mac Programmers etc..
We develop programs on some abstraction layer that is by using the
services provided by the underlying abstraction layer. The lowest layer
is hardware abstraction. Developing programs directly to run on top of
hardware comes under this layer. Next layer is OS abstraction layer.
In this layer, we develop programs by using OS services. While programming
at OS abstraction layer, we do not care about hardware. Final layers are
application abstraction layers. These application abstraction layers
run on top of OS abstraction layer, and provide various application
abstractions like Graphical User Interface (GUI), Web application environment,
Database application environment etc.. While developing programs on
top of application abstractions, we do not care about underlying OS.
DEPIK's expertise lies in System Programming that includes the following
skills:
- C and Assembly Languages
- Linux/Unix Operating System
- Hardware Abstraction Layer and OS abstraction layer
Hardware Programming (VLSI)
Hardware programming is required to design and develop a new hardware chips.
The hardware logic of a chip is specified by using a hardware language
such a Verilog and VHDL. So one should learn these languages and
associated tools. Students also should be good at Digital Electronics
to learn these hardware languages.
Administration
Administration is about managing and maintaining the Hardware,
Operating System, Network and Applications. In small organizations a
single administrator called System Administrator will do all the above
works. However large organizations will have separate administrators for
each of the above works. So the following are various administration
careers possible:
- OS administration (Unix/Linux/Solaris/HP-US/Windows)
- Network Administration (LAN/WAN)
- Application Administration (Database/WEB/SAP)
Testing or Quality Assurance
Test Engineers are QA Engineers are responsible for testing and assuring
the quality of the application programs developed by programmers.
Depending on the type of applications these engineers are testing,
we can classify these careers as below:
- GUI Application Testing
- Web Application Testing
- Network Protocol Testing
- Telecom Protocol Testing
The protocol testing requires very good knowledge of the protocols.
These test engineers should be as good as or even better than the
developers of the protocols. In order to test the protocols, the
tester may need to develop some applications. Typically scripting
languages such as Perl, Python, TCL are used to write test applications.
The scripting languages are also useful to automate the testing
process (Test Automation) as well as for System and Network administration.
Knowledge of C language is going to be very helpful in learning
these languages.
Another type of testing possible is called unit testing or API testing.
When programmers (developers) develop some generic functions, these generic
functions should tested to validate that these functions are working as
expected or not. For this purpose, the testers should know the programming
language used to call those API functions.
|