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 .
Networking:
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.
By(Web Guru Inclusive)
back