Computer programming is an essential prerequisite for musical composition. Imagine if that were the case. Of course it is not, any more than composition is necessary for programming. However, in algorithmic composition you do not get very far without recourse to computer programming, and for composers to learn programming, algorithmic composition is the best way to get started.
Writing a program that outputs a specific composition is very different from programming for the general needs of some other user, which is what professional programmers do. Since no assumptions about the interaction with some unknown user have to be made, it should be much easier. Programming in algorithmic composition is nothing other than a particular way of composing, a method that inserts a layer of formalisation between the composer and the music. Algorithmic composition is a wonderful opportunity to investigate ideas, to learn about models and simulations, to map data to sound.
Generative music, which is not necessarily synonymous with algorithmic composition, is often concerned with making long pieces or a set of pieces that may be created on demand. The forthcoming album Signals & Systems is filled to the brim with algorithmic compositions, and the source code for a program that outputs variants on one of the pieces is now available.