This article analyses the knowledge needed to understand a computer program within the philosophy of information. L. Floridi's method of levels of abstraction is applied to the relation between an ideal programmer and a modern computer seen together as an informational organism. The results obtained by the mental experiment known as the Knowledge Game are applied to this relation, so to explain what a programmer should know in order to program a modern computer. In particular, this analysis clearly shows why non-conscious agents have no hopes to write significant programs. Two main objections are then presented and attacked by corresponding counterobjections.