Efekt uboczny - to zmiana wartości jakichś danych  podczas opracowania wyrażenia, różna od tej zmiany jaka ma być wynikiem wyrażenia.
Np. jeśli (jak w C, C++ czy Javie) przypisanie jest wyrażeniem, to opracowanie następującego wyrażenia:

a = (c = d) - 1

nie tylko zmienia wartość a (co jest "główną" intencją), ale rownież wartość zmiennej c.

W programowaniu należy unikać efektów ubocznych, bowiem są one często trudne do kontrolowania i mogą prowadzić do niespodziewanych reazultatów.