Programmers spend more time reading code than writing it
Programming sounds like writing, but most of a programmer's day goes to reading: working out what existing code does, reusing it and changing it. That is why readability matters so much. One study found that a handful of simple clean-ups made code shorter and drastically cut the time needed to understand it.
The urge to program machines is ancient. In the 9th century the Banu Musa brothers of Persia described a mechanical flute player whose tunes could be changed, and in 1206 the engineer Al-Jazari built a drum automaton whose rhythms were set with pegs and cams. Also in the 9th century, Al-Kindi described frequency analysis, the earliest known code-breaking algorithm. In 1801 the Jacquard loom switched weaves by swapping punched cards, and in the 1880s Herman Hollerith began storing data in machine-readable form; his 1906 tabulator could be rewired for different jobs through a plug board.
Ada Lovelace's 1843 algorithm for Bernoulli numbers is usually counted as the first computer program, though Babbage had drafted one for his engine in 1837, and Lovelace was first to imagine uses beyond arithmetic. Early electronic machines were coded directly in binary machine language, then in assembly, where abbreviations like ADD stood in for numeric codes. Assembly still tied a program to one kind of processor. FORTRAN in 1957 was the first widely used high-level language, letting scientists type formulas more or less as they would on paper. Programs mostly arrived on punched cards or tape until the late 1960s, when terminals and storage became cheap enough to type directly.
Whatever the method, good software needs several qualities. It must be reliable, avoiding logic slips such as off-by-one errors; robust when data is corrupt or the power fails; usable; portable across platforms; efficient; and maintainable by whoever inherits it. Efficiency is relative: even a slow language like Python often responds instantly for people, and buying more hardware can be cheaper than a programmer's time.
Choosing the right method matters too. Programmers compare algorithms using Big O notation, which describes how time or memory grows with input size. Many teams now work in short Agile cycles of a few weeks rather than plans stretching over years.
Source: Computer programming