Jobs in software

>> Friday, February 27, 2009

In computing a job (or process) is a term used to refer to a single instance of a program. The term is mostly used on multitasking systems. These are operating systems that are able to process many tasks 'concurrently'; however, this is normally achieved through the illusion of doing a little bit of job A, then a bit of job B, then a bit of job C, but done so quickly that the user sees them as happening at the same time. The term 'time slice' is used for the amount of time that a job gets run for, and the process of going through all the jobs, running each of them for a time slice, is known as a processing cycle. So, job A might get a timeslice of so many milliseconds, and then, whether it's finished or not, it will be job B's turn, and the computer will pause execution of job A, until the other jobs have had their turn, and job A is resumed at where it left off. The software responsible for managing this is known as a job scheduler. Because such systems tend to have many jobs active at any one time, they provide 'job' management facilities that allow the user to stop/pause/restart jobs, and to set priorities on jobs (so that job A might get more 'timeslices' per cycle than other jobs).

Computer programming (often shortened to programming or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language. The code may be a modification of an existing source or something completely new. The purpose of programming is to create a program that exhibits a certain desired behaviour (customization). The process of writing source code often requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms and formal logic.
Overview

Within software engineering, programming (the implementation) is regarded as one phase in a software development process.

There is an ongoing debate on the extent to which the writing of programs is an art, a craft or an engineering discipline.[1] Good programming is generally considered to be the measured application of all three, with the goal of producing an efficient and evolvable software solution (the criteria for "efficient" and "evolvable" vary considerably). The discipline differs from many other technical professions in that programmersgenerally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves "programmers" or even "software engineers." However, representing oneself as a "Professional Software Engineer" without a license from an accredited institution is illegal in many parts of the world.

Another ongoing debate is the extent to which the programming language used in writing computer programs affects the form that the final program takes. This debate is analogous to that surrounding the Sapir-Whorf hypothesis [2] in linguistics, that postulates that a particular language's nature influences the habitual thought of its speakers. Different language patterns yield different patterns of thought. This idea challenges the possibility of representing the world perfectly with language, because it acknowledges that the mechanisms of any language condition the thoughts of its speaker community.

Said another way, programming is the craft of transforming requirements into something that a computer can execute.


0 comments: