Old Articles‎ > ‎

Want to be a Core Technology Person

I believe that insight and know-how of the following six subjects is essential 

Modular Programming :

Best learnt through C , it gives the grip on the fundamental programming skills ,like structured programming , modular programming , file management and the like. Doing it through C also give us opportunity to see and experiment with the hardware model. Also most of the popular languages like C++ , Java , Perl , Python have syntax similar to C . 

Object Oriented Programming: 

This builds up a sophisticated management layer over the procedural management techniques. Creating a new model for thinking about the problem and narrating it in the language. C++ and Java are both great tools to learn these paradigm. However the real language of OOPs (Object Oriented Programming) is UML ( Unified Modeling Language). The knowledge of UML will be indispensable in near future. 

Operating System:

This layer of software makes the application independent of the management chore of computer resource. These resources can be categorized broadly hardware resources and software resources. 

Hardware Resource :

Memory , microprocessor (multitasking), I/0( files, printer, networks). Software Resource : This layer provides the user/administrator with the control to organize and configure several software components, like drivers ,servers and allow file management.

Understanding OS (Operating System) is vital to understand the dependencies of application and other system software on it , and its (OS) implication in designing the software. Concepts like multitasking , multithreading , Inter-Process-Communication are of immense importance. The OS of choice in this case is LINUX as its source code is available for study. Also Java is a good candidate, as Java has pulled the OS functionality into it . 


This subject deals with the issues of connecting computer together for communication and sharing of resources. Because of plethora of different topologies and protocols this subject can be quite involved . Concentration on TCP/IP would be fine . C / Linux and Java would be good candidates to experiment .Studying Web Architecture is of immense importance. 

Databases( RDBMS ):

Databases are omnipresent , Issues like designing the database and knowing SQL are among the necessary skill sets if one wants to do even a mediocre project nowadays. Ability to fuse the application with databases through ODBC or JDBC layers also form important skill set. Because of these layers, applications are independent of the RDBMS. 

Software Process:

This subject deals with the Software Development Cycle and its management. Right from project specifications , to design , development , testing and maintenance , resource allocation is required. Timings , Skills and Software development are to be managed. Rational Unified Process seems to be the best candidate to concentrate on.

Component Technologies like COM and CORBA would be much easier to follow if these six core subjects are understood well.