While coding is seen as a
tool to create software, programming can be seen as the process of taking code
to a point where it can produce the intended machine level output. Programming
is regarded a superset of coding, and is the primary function of a Software
It normally takes much more
time for an individual to become a qualified programmer than a coder, and this
usually requires an understanding of many underlying technologies. Hence a lot
of programmers are usually proficient in a number of different languages and
have a fundamental understanding of the relationship between conceptualisation
and implementation. A good programmer should be able to recognise the most
useful software and technology stack needed in order to complete a task.
Like coding, the best way to become
a proficient programmer is getting your hands dirty, and to become
engaged with different projects through the use of different technology stacks.
By working in many different environments the learner will be exposed the
surrounding technologies and gain a deeper understanding of the entire process.
“Computer science education
cannot make anybody an expert programmer any more than studying brushes and
pigment can make somebody an expert painter.”
– Eric Raymond
It is important to note
that a formal computer science degree is not necessarily the best way to become
a good programmer. Many of the most prolific software developers achieved a
considerable amount removed from any academic or professional environment. Take
for example Apple’s Steve Wozniak, who is an entirely self taught developer and
now world-famous for his work on the Mac operating system.