Исходник - это исходный текст какой-либо программы, в том виде, в котором его пишет программист. То есть в той форме, в которой она может быть изменена как угодно, даже переписана заново. Исходный код программы это ее все. Это она сама...
Скомпилированная программа - бинарник - это уже продукт. Исходный код программы, переведенный в машинные коды. То есть исходник - это то, что читает процессор, а исходник - то, что может читать (и, соответственно, править) программист.
Грустно, когда у тебя есть только бинарник и нет исходника - тогда при попытке что-то в программе изменить, ты ее ломаешь. Так получается разносортное, пардон, дерьмо. Порой сделанное качественное и даже годное у употреблению, порой - наоборот: это уже зависит от того, сколько у кого мозгов и откуда и кого растут руки.
Короче, суть в том, что хорошо бы уметь все переписывать с самого-самого начала...
(мини-лекция придумана, записана и отредактирована при полупассивном участии поглощенного линейкой Учителя, так что если что - помидорами закидывать ЕГО).